das ist eindeutig ein klassischer Oberhau von rechts oben nach links unten.. nicht umsonst hatten die Macher von Gothic 1 im Animationsstudio Schwertmeister dabei - jetzt merkt man es.
Auch der Zweihändige Hieb wirkt um einiges besser als das "Herumgewirble" x + <- oder x+ -> des originalspiels.
Die Frage ist, wenn man die Zeit und den Nutzen abwägt - lohnt es sich solche Animationen zu re-proprammieren? bzw vielleicht gibt es sie sogar noch als Ressource und müssen nur eingefügt werden?
als Denkanstoß: die Hiebanimationen müssen die originalen nicht ersetzen, stattdessen könnten sie als 2er Combo eingesetzt werden ähnlich wie in Gothic 2, in der man als Anfänger auch 2 Hiebfolgen machen kann.
No. I made these videos. I studied the version 1.01e on 100% and can share information..
Unfortunately, in this version already removed most of the old content from earlier versions. Old dialogs it is almost gone.
I continue to hope that the Gothic ECTS demo (3-5 September 2000) exists to this day. It will be more interesting content. In the version for the ECTS is fully worked the transfer of objects through the focus and the throwing of objects. For the ects demo preparing the description, you can find it in documents demo version 1.04d. Like for instance, this passage:
Spoiler:(zum lesen bitte Text markieren)
. Gothic Demo Walkthrough
•
Right after the intro You will find Yourself at the shore of a lake. In front of You is a guy named Diego. (The name will be in the Focus. Means You can see his name above his head)
Go to him and talk to him. He will offer to join You on Your way to the Old Camp. Then he will run towards the Old Camp so follow him.
Once in a while he will stop. Just talk to him again. He won't hurt You. At the first gate the game will play another cutscene (camera will move and You will loose control over Your character for a while. Do not worry noone can hurt You during these cutscenes). Then Diego will run to a mine that is blocked up.
Diego will stop there and ask You to get a weapon. Go up the path and then over the bridge to the left to get a worn-out-sword. Get it and go back to Diego. Talk to him again. He will lead You further downhill.
After a few steps there might be a Creature on the way. It is a scavenger. If• it is there Diego will give You an apple and tell You that You either can fight or try to fool the monster with the apple. To fool it throw the apple at the monster. But you can also fight the monster directly. equip the weapon first, toggle to fighting mode and start to attack it. If you’ve killed the Scavenger, go back to Diego. If the Scavenger killed You, press DEL (a cheat-key in this demo) to live again, and give it a second try.
Talk to Diego and he will lead You further downhill where you will encounter two bandits that will be persuaded by Diego to let go.
This is where Diego leaves.
Go towards the Old Camp and talk to the guards at the bridge. They won't be friendly, but that's not their job.
Go to the main gate of the Old Camp. Again talk to the guards and enter the Old Camp.
After the next cutscene a guy will come up to You and ask You for Your sword if You have one. Either You give him Your sword or You can fight him. If You talk to Grim later in the game he will explain his behaviour.
Whatever decision You made, Thorus will come up to You and will greet You.
If You talk to him he will offer You a mission. He will ask you to beat up Mordrag. Mordrag is a bandit and can be found at the marketplace.
Turn right and go round the castle to a huge roofed area. Go to Mordrag and talk to him or beat him up right away. If You talk to him he will offer You a deal.
After this go back to Thorus and talk to him. If You saved Mordrag's face he will give You a second chance. So go back and hit him. DO NOT KILL HIM.
After you did so Thorus will offer You a second mission. He asks You to go to Ian who can be found next to the Old Mine. There You shall ask Ian for a List.
Because You do not know how to get there, turn around and find a guy named Graham. He is one of the miners.
He will offer to give You a map for a piece of steel.
So make Your way to the smith Huno. Turn left from the entrance, go round the castle and pass the arena. You will find Huno the smith there. Talk to him and he will tell You that he needs ore. You do not have any, so go and get some.
No one will give it to You for nothing... (steal it, open chests, kick some ass...) Give the ore to Huno and he will give You the steel. For the steel You will get the map.
Wow. This is a huge world. And there You can see the Old Mine.
Run to the Old Mine and talk to Ian. Take the list and go back to Thorus. Now have a look around the Old Camp.
Turn to the right and You can find Sly. He will tell You a bit about the Shadows. Go on and You will meet Herek. Talk to him and he will try to hit You. Kick his ass.
Then talk to Bloodwyn. If You give him 3 ore he will protect You.
Stay on the path and talk to Dusty. Give him some food and he will give You some information. Go to the marketplace. There You can find Canthar. Talk to him and to Gravo.
Then talk to Fisk and he will offer You some armor.
If You give Bruce what he asks for he will give You a hint where to find a key. Use the key and go to the hut and open the chest.
Dexter will offer You a sword. If You buy it be careful since it is Jackals sword and he will want it back. Leave the marketplace.
At the corner You can find Whistler. Talk to him and You will probably get Yourself an axe. Continue Your way.
Talk to Ryan and then to Fox. Both will talk about the same business in a different way.
Continue Your way to the smith. Next to the arena You can find Jackel.
Go on to Guy. The path will guide You through his hut. This a thing he does not like at all.
Then You will be witness as Fletcher asks Jesse for protection money. Since Jesse does not have the ore Jesse will come to You and will try to get the ore from You. After You made Your decision talk to Fletcher.
Go to Snaf. He is just cooking something, but he is short of Meatbugs. Go get him 3 Meatbugs (smallest Monsters in game). In return he will give You meatbugragout.
Talk to Mud. You have to hit him to get rid of him again.
Ok and talk to Fingers, Scatty and to Kirgo to get some useful information.
And that’s all we’ve prepared for this demo…
A demo for the ECTS has a huge value for any true fan of Gothic 1. It is very interesting, but I'm not sure it exists now, purely theoretically, it could be preserved from Dieter Hildebrandt, Tom Putzki and Egmont
Sie hatten mal geplant, dass alle Cutscenes ingame stattfinden (noch immersiver). Und so eben auch ein paar Kamerafahrten, die einem sozusagen das Gebiet vorstellen, das man betritt. Ähnlich wie in Shadow Man. Mir fallen jetzt keine anderen Beispiele ein, aber gibt es oder gab es ja häufig.
Sie hatten mal geplant, dass alle Cutscenes ingame stattfinden (noch immersiver). Und so eben auch ein paar Kamerafahrten, die einem sozusagen das Gebiet vorstellen, das man betritt. Ähnlich wie in Shadow Man. Mir fallen jetzt keine anderen Beispiele ein, aber gibt es oder gab es ja häufig.
Das wäre in der Tat immersiver und eindeutig erfrischend. Ist dies technisch noch möglich oder wurde diese Funktion verworfen?
Wenn es möglich sein sollte, dann hoffe ich dass wenigstens Standard Kamerafahrten wie am Anfang beim Betreten des Tals nach dem ersten Scavenger kurz ein Flug Richtung altes Lager gemacht wird - würde klasse aussehen. Mit der Musik im Hintergrund...
Eine Idee wäre kurz beim Betreten eines Lagers eine grobe Luftfahrt über das Gebiet zu sehen - also nicht jedes Straße einzeln das wäre zu detailreich und würde nicht ins spiel passen. eher eine 3-5 sekündige kurze Fahrt um Grob die Konturen von Oben zu erschauen.
.. Nyx würde das wohl auch die nötige Würze verleien um es als Immersiontechnisch und spielmechanisch als äußerst scharf zu bezeichnen.
Das wäre in der Tat immersiver und eindeutig erfrischend. Ist dies technisch noch möglich oder wurde diese Funktion verworfen?
Klar, ist immer noch möglich.
Zitat von Emanuel Rhobar
Eine Idee wäre kurz beim Betreten eines Lagers eine grobe Luftfahrt über das Gebiet zu sehen - also nicht jedes Straße einzeln das wäre zu detailreich und würde nicht ins spiel passen. eher eine 3-5 sekündige kurze Fahrt um Grob die Konturen von Oben zu erschauen.
So in etwa wird das dann auch aussehen. Ähnlich wie die kurze Kamerafahrt im Schläfertempel.
Ich denke es gibt so einige Stellen im Spiel, wo sich solch eine Kamerafahrt anbieten würde.
Klingt jedenfalls nach einem recht interessanten Feature. Würde gerne mal eine Kamerafahrt als Beispiel sehen.
Vielleicht gibt es ja irgendwann ein wenig Material diesbezüglich von Issues.
Ein Beispiel hat er ja bereits genannt. Den Schläfertempel. Also einfach mal auf YouTube ein Lets Play vom Schläfertempel suchen und dann sieht man eine.
Es gibt aber auch ein paar bereits veröffentlichte Mods, die mit Kamerafahrten arbeiten.
Triggers for the camera was also in the transitions between locations, they exist in 1.01e, one such video have on my the channel.
By the way, I strongly recommend to restore the texture of the castle, which was the alpha version of Gothic 0.90:
Triggers for the camera was also in the transitions between locations, they exist in 1.01e, one such video have on my the channel.
By the way, I strongly recommend to restore the texture of the castle, which was the alpha version of Gothic 0.90:
So toll die Alpha ist, das schwammige Kamerasystem muss man jetzt nicht übernehmen.
Was ist denn da jetzt schwammiger als im fertigen Spiel? Er scheint nur mit Maus zu spielen, damit ist die Steuerung immer schwammig und er dreht halt oft hektisch nach links und rechts. PB hat das Spiel nicht umsonst für die Tastatur entwickelt. Oder meinst du, weil die Kamera im Kampfmodus leicht nach rechts versetzt ist? Das wird, wie auf den Screenshots zu sehen, auch in Orpheus und Nyx der Fall sein.
die Kamera im Kampfmodus leicht nach rechts versetzt ist? Das wird, wie auf den Screenshots zu sehen, auch in Orpheus und Nyx der Fall sein.
Danke, dass Ihr Euch wagt dem Alpha treu zu sein und neue Systeme eingeht. Ich finde das seitversetzte System sogar !besser! - weil ich mich erinnere, vor einem Kampf immer mit der Maus nach oben geschwenkt zu haben um besser den Abstand zwischen Held und Gegner sehen zu können. In der klassischen Perspektive sieht man nicht genau weil der Held "im Weg" ist.- so aber haben wir die Sache fein gelöst.
Thanks, good work. As a basis they should be fine, just need a bit to modify them for full identity
PS: Lali, Here is the script camera from 1.01e to mode melee, ranged, and magic.
Eine Idee wäre kurz beim Betreten eines Lagers eine grobe Luftfahrt über das Gebiet zu sehen - also nicht jedes Straße einzeln das wäre zu detailreich und würde nicht ins spiel passen. eher eine 3-5 sekündige kurze Fahrt um Grob die Konturen von Oben zu erschauen.
Na geh! Wo bleibt da die Spannung des Erkundens? Das ist was für diese Spiele mit Minimaps – grausam!
Könntet ihr diese neue Kameraeinstellung während des Kämpfens optional machen?
Ich weiß, es wird in etlichen RPG's so gemacht und ich habe auch schon viele Games gespielt, die eine solche Kamera hatten, aber gefallen hat es mir nie wirklich. Habe zum Teil extra Mods installiert, die die Kamera anpassbar machen.
In actionreicheren Games mit schnellerem Kampfsystem wie The Witcher zum Beispiel mag eine solche Kamera Sinn machen, aber in Gothic braucht man sie wirklich nicht unbedingt.
Auch von meiner Seite: Eure Bemühungen in allen Ehren, dass ihr die Alpha-Version so genau wie möglich rekonstruieren wollt, und die veränderte Kameraperspektive ist dabei auch ein interessantes Detail, aber bitte zwingt sie uns nicht auf.
Könntet ihr diese neue Kameraeinstellung während des Kämpfens optional machen?
Ich weiß, es wird in etlichen RPG's so gemacht und ich habe auch schon viele Games gespielt, die eine solche Kamera hatten, aber gefallen hat es mir nie wirklich. Habe zum Teil extra Mods installiert, die die Kamera anpassbar machen.
In actionreicheren Games mit schnellerem Kampfsystem wie The Witcher zum Beispiel mag eine solche Kamera Sinn machen, aber in Gothic braucht man sie wirklich nicht unbedingt.
Auch von meiner Seite: Eure Bemühungen in allen Ehren, dass ihr die Alpha-Version so genau wie möglich rekonstruieren wollt, und die veränderte Kameraperspektive ist dabei auch ein interessantes Detail, aber bitte zwingt sie uns nicht auf.
Ein Tastendruck und die Kamera zentriert sich wieder hinter dem Helden.
Ich persönlich finde die seitliche Perspektive für Fernkampf & Magie allerdings übersichtlicher.
instance INFO_BAALNAMIB_DRUGMONOPOL(C_Info)
{
npc = GUR_1204_BaalNamib;
condition = info_baalnamib_drugmonopol_condition;
information = info_baalnamib_drugmonopol_info;
permanent = 0;
important = 0;
description = "Hast Du noch einen Aufgabe für mich?";
};
func int info_baalnamib_drugmonopol_condition()
{
BAALNAMIB_HELPBROTHERS = LOG_SUCCESS;
return;
};
func void info_baalnamib_drugmonopol_info()
{
var C_Npc Jacko;
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Offer_02_01"); //Ich hätte da sehr wichtige Aufgaben für Dich.
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Offer_15_02"); //Und die wäre?
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Offer_02_03"); //Salm, einer unserer Brüder hat sich mit einigen armen Seelen aus dem Neuen Lager zusammen getan und angefangen Drogen herzustellen.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Offer_02_04"); //Er besorgt das Sumpfkraut und alles, was sie sonst noch brauchen und die anderen stellen die Drogen her.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Offer_02_05"); //Wir können nicht dulden, dass andere Drogen herstellen --- nur wir stellen Drogen her!
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Offer_15_06"); //Interessant, was soll ich aber genau machen?
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Offer_02_07"); //Du sollst die Typen treffen und Dich als neuer Kurier ausgeben und dadurch herausfindest, wo das Labor versteckt ist.
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Offer_15_08"); //Und was ist mit Salm?
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Offer_02_09"); //Bruder Salm hat beschlossen, uns zu verlassen, er wird Dich also nicht behelligen.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Offer_02_10"); //Erzählen seinen Kumpanen einfach, das Du Salm aus dem Weg geräumt hast, damit Du seine Geschäfte übernehmen kannst, das wird auf sie glaubhafter wirken, als wenn Du was anderes erzählst.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_FuncYes_02_01"); //Bevor Salm ging, hat er uns anvertraut, dass er sich immer Nachts am Holzturm unweit des Neune Lagers mit ihnen getroffen hat, um die im Tempel gestohlenen Sachen aus zu tauschen.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_FuncYes_02_02"); //Gehe dort hin und finde heraus, wo das Labor ist.
BAALNAMIB_DRUGMONOPOL = LOG_RUNNING;
Jacko = Hlp_GetNpc(Org_862_Jacko);
TA_BeginOverlay(Jacko);
TA_Min(Jacko,0,0,15,0,ZS_Position,"OW_PATH_064");
TA_EndOverlay(Jacko);
};
instance INFO_BAALNAMIB_DRUGMONOPOL_SUCCESS(C_Info)
{
npc = GUR_1204_BaalNamib;
nr = 1;
condition = info_baalnamib_drugmonopol_success_condition;
information = info_baalnamib_drugmonopol_success_info;
permanent = 0;
description = "Ich habe das Labor gefunden";
};
func void info_baalnamib_drugmonopol_success_info()
{
var C_Npc baalnamib;
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Success_15_01"); //Ich habe das Labor gefunden.
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Success_15_02"); //Es ist in der Nähe des Neue Lagers am See mit der Hütte. Hinter einigen Sträuchern liegt eine Höhle, dort ist es.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Success_02_03"); //Das hat Dich einen großen Schritt zur Erleuchtung gebracht. Was die Ungläubigen betrifft, sie werden den Zorn des Schläfers zu spüren bekommen.
BAALNAMIB_DRUGMONOPOL = LOG_SUCCESS;
baalnamib = Hlp_GetNpc(GUR_1204_BaalNamib);
baalnamib.aivar[AIV_MISSION1] = baalnamib.aivar[AIV_MISSION1] + 1;
};
instance INFO_BAALNAMIB_DRUGMONOPOL_FAILED(C_Info)
{
npc = GUR_1204_BaalNamib;
nr = 1;
condition = info_baalnamib_drugmonopol_failed_condition;
information = info_baalnamib_drugmonopol_failed_info;
permanent = 0;
description = "Ich habe kein Labor gefunden";
};
func void info_baalnamib_drugmonopol_failed_info()
{
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Failure_02_01"); //Hast Du das Nest der Ratten gefunden mein Freund?
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Failure_15_02"); //Leider nein, sie ließen sich nicht darauf ein, mir das Labor zu zeigen.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Failure_02_03"); //Du wirst noch an Dir arbeiten müssen, um ein Bruder von uns zu werden.
BAALNAMIB_DRUGMONOPOL = LOG_FAILED;
};
var int baalnamib_helpbrothers;
instance INFO_BAALNAMIB_HELPBROTHERS(C_Info)
{
npc = GUR_1204_BaalNamib;
condition = info_baalnamib_helpbrothers_condition;
information = info_baalnamib_helpbrothers_info;
permanent = 0;
important = 0;
description = "Kann ich mich für die Bruderschaft nützlich machen";
};
func void info_baalnamib_helpbrothers_info()
{
AI_Output(other,self,"Mis_1_Psi_HelpBrothers_Offer_15_01"); //Kann ich mich für die Bruderschaft nützlich machen.
AI_Output(self,other,"Mis_1_Psi_HelpBrothers_Offer_02_02"); //Du könntest beweisen ob Du gewillt bist, uns beizutreten.
AI_Output(other,self,"Mis_1_Psi_HelpBrothers_Offer_15_03"); //Lass hören.
AI_Output(self,other,"Mis_1_Psi_HelpBrothers_Offer_02_04"); //Einige Brüder brauchen auf den Sumpfkrautfelder Hilfe. Gehe zu ihnen und frage sie einfach, wie Du ihnen zur Hand gehen kannst.
AI_Output(self,other,"Mis_1_Psi_HelpBrothers_Offer_02_05"); //Wenn Du dies machst, zeigst Du Deinen Willen ein vollwertiges Mitglied unserer Gemeinschaft zu werden.
BAALNAMIB_HELPBROTHERS = LOG_RUNNING;
};
instance INFO_BAALNAMIB_HELPBROTHERS_SUCCESS(C_Info)
{
npc = GUR_1204_BaalNamib;
nr = 1;
condition = info_baalnamib_helpbrothers_success_condition;
information = info_baalnamib_helpbrothers_success_info;
permanent = 0;
description = "Ich habe den Brüdern geholfen und sie haben mir dies mitgegeben.";
};
func void info_baalnamib_helpbrothers_success_info()
{
var C_Npc baalnamib;
AI_Output(self,other,"Mis_1_Psi_HelpBrothers_Success_02_01"); //Ah, Du hast das Sumpfkraut dabei, gut. Du warst Deinen zukünftigen Brüder bestimmt eine große Hilfe.
AI_Output(self,other,"Mis_1_Psi_HelpBrothers_Success_02_02"); //Du bist jetzt bereit, eine richtige Aufgabe zu bekommen.
AI_Output(self,other,"Mis_1_Psi_HelpBrothers_Success_02_03"); //Ich sehe Dich schon als neuen Bruder in unserer Mitte!
BAALNAMIB_HELPBROTHERS = LOG_SUCCESS;
baalnamib = Hlp_GetNpc(GUR_1204_BaalNamib);
baalnamib.aivar[AIV_MISSION1] = baalnamib.aivar[AIV_MISSION1] + 1;
};
instance Info_BaalNamib_BROTHERHOOD(C_Info)
{
npc = GUR_1204_BaalNamib;
condition = Info_BaalNamib_BROTHERHOOD_Condition;
information = Info_BaalNamib_BROTHERHOOD_Info;
important = 0;
permanent = 0;
description = "Gibt es Aufgaben, die ich für die Bruderschaft erledigen kann?";
};
func int Info_BaalNamib_BROTHERHOOD_Condition()
{
return Npc_GetTrueGuild(hero) == GIL_NOV;
};
func void Info_BaalNamib_BROTHERHOOD_Info()
{
var C_Npc Kalom;
AI_Output(other,self,"Info_BaalNamib_BROTHERHOOD_15_01"); //Gibt es Aufgaben, die ich für die Bruderschaft erledigen kann?
AI_Output(self,other,"Info_BaalNamib_BROTHERHOOD_02_02"); //Unser Meister der weise Y'Berion schickt nach einem Novizen. Nun da Du ein Bruder der Gemeinschaft geworden bist,geh zu ihnen und biete Deine Hilfe an.
Info_ClearChoices(Info_BaalNamib_BROTHERHOOD);
Info_AddChoice(Info_BaalNamib_BROTHERHOOD,"In Ordnung, ich werde ihn sofort aufsuchen",Info_BaalNamib_BROTHERHOOD_OK);
Info_AddChoice(Info_BaalNamib_BROTHERHOOD,"Wo finde ich Y'Berion?",Info_BaalNamib_BROTHERHOOD_YBWO);
Info_AddChoice(Info_BaalNamib_BROTHERHOOD,"Weißt Du, was ich für Y'berion erledigen soll?",Info_BaalNamib_BROTHERHOOD_YBWAS);
Kalom = Hlp_GetNpc(GUR_1201_CorKalom);
Npc_ExchangeRoutine(Kalom,"kapitel2");
AI_ContinueRoutine(Kalom);
};
func void Info_BaalNamib_BROTHERHOOD_YBWO()
{
AI_Output(other,self,"Info_BaalNamib_BROTHERHOOD_YBWO_15_01"); //Wo finde ich Y'Berion?
AI_Output(self,other,"Info_BaalNamib_BROTHERHOOD_YBWO_02_02"); //Er hält sich im inneren des Tempelbergs auf. Wie immer.
};
func void Info_BaalNamib_BROTHERHOOD_YBWAS()
{
AI_Output(other,self,"Info_BaalNamib_BROTHERHOOD_YBWAS_15_01"); //Weißt Du, was ich für Y'berion erledigen soll?
AI_Output(self,other,"Info_BaalNamib_BROTHERHOOD_YBWAS_02_02"); //Eine große Beschwörung wird stattfinden. Allerdings brauchen wir dafür einen magischen Gegenstand.
AI_Output(self,other,"Info_BaalNamib_BROTHERHOOD_YBWAS_02_03"); //Y'berion sucht Männer, die mutig genug sind, ihm dieses Artefakt bringen.
AI_Output(other,self,"Info_BaalNamib_BROTHERHOOD_YBWAS_15_04"); //Klingt einfach.
AI_Output(self,other,"Info_BaalNamib_BROTHERHOOD_YBWAS_02_05"); //Wenn es einfach wäre,hätten wir den Gegenstand schon. Sprich erst mal mit Y'berion. Er wird Dir alles erklären.
};
func void Info_BaalNamib_BROTHERHOOD_OK()
{
AI_Output(other,self,"Info_BaalNamib_BROTHERHOOD_OK_15_01"); //In Ordnung, ich werde ihn sofort aufsuchen.
AI_Output(self,other,"Info_BaalNamib_BROTHERHOOD_OK_02_02"); //Möge der Schläfer Dich beschützen
Info_ClearChoices(Info_BaalNamib_BROTHERHOOD);
};
func void info_renyu_drugmonopol_info()
{
AI_Output(self,other,"Info_Renyu_DrugMonopol_10_01"); //Was soll das, wieso bringst Du den mit, wo ist Salm?
AI_Output(other,self,"Info_Renyu_DrugMonopol_15_02"); //Dass kann ich Dir erklären.
AI_Output(self,other,"Info_Renyu_DrugMonopol_10_03"); //Was willst Du, ich hoffe Du hast eine gute Ausrede?
};
instance INFO_RENYU_DRUGMONOPOL_01(C_Info)
{
npc = Org_860_Renyu;
nr = 1;
condition = info_renyu_drugmonopol_01_condition;
information = info_renyu_drugmonopol_01_info;
important = 0;
description = "Ich soll euch an die Sekte verraten";
};
func void info_renyu_drugmonopol_01_info()
{
var C_Npc Lares;
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Plan_FuncYes_15_01"); //Ich soll euch an die Sekte verraten.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Plan_FuncYes_12_02"); //Und Du hast Dich entschieden, uns nicht zu verraten?
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Plan_FuncYes_15_03"); //Ja, was will ich schon bei den Verrückte im Sumpf.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Plan_FuncYes_12_04"); //Das war eine gute Entscheidung. Du bist genau der Richte fürs Neue Lager. Weißt Du was, Du hältst Deine Klappe und ich erzähle einigen Leuten im Lager, dass Du in Ordnung bist.
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Plan_FuncYes_15_05"); //Gut, bin einverstanden.
Lares = Hlp_GetNpc(Org_801_Lares);
Lares.aivar[AIV_MISSION1] = Lares.aivar[AIV_MISSION1] + 1;
};
instance INFO_RENYU_DRUGMONOPOL_02(C_Info)
{
npc = Org_860_Renyu;
nr = 1;
condition = info_renyu_drugmonopol_02_condition;
information = info_renyu_drugmonopol_02_info;
important = 0;
description = "Ich bin der neue Kurier!";
};
func void info_renyu_drugmonopol_02_info()
{
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Plan_FuncNo_15_01"); //Ich bin euer neuer Mann im Sekten Lager, Salm hatte keine Lust mehr.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Plan_FuncNo_12_02"); //Salm hatte keine Lust mehr?
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Plan_FuncNo_15_03"); //Ja, ich habe ihn davon überzeugt, um es gleich auf den Punkt zu bringen, ich habe ihn aus dem Weg geräumt, um seine Geschäfte zu übernehmen, dass heißt für Euch, ich bekomme den gleichen Anteil wie er.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Plan_FuncNo_12_04"); //Was kannst Du uns dafür bieten?
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Plan_FuncNo_15_05"); //Ihr bekommt alles was ihr braucht und ich halte meine Klappe.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Plan_FuncNo_12_06"); //Einverstanden.
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Plan_FuncNo_15_07"); //Da ich schon hier bin, was könnt ihr gebrauchen?
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Plan_FuncNo_12_08"); //Also Töpfe, Stampfer und Sumpfkraut wäre nicht schlecht, bring es morgen zum Turm vorne.
};
instance INFO_JACKO_DRUGMONOPOL(C_Info)
{
npc = Org_862_Jacko;
nr = 1;
condition = info_jacko_drugmonopol_condition;
information = info_jacko_drugmonopol_info;
important = 0;
permanent = 1;
description = "Ich bin der neue Kurier!";
};
func void info_jacko_drugmonopol_info()
{
var C_Npc Jacko;
Jacko = Hlp_GetNpc(Org_862_Jacko);
TA_BeginOverlay(Jacko);
TA_Min(Jacko,0,0,12,0,zs_waitatlabor_jacko,"LOCATION_23_CAVE_1_IN");
TA_EndOverlay(Jacko);
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Info1_15_01"); //Ich bin der neue Kurier!
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Info1_12_02"); //Was?!
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Info1_15_03"); //Du wartest doch auf Salm?
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Info1_12_04"); //Was...ähm...nein, lass mich in Ruhe.
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Info1_15_05"); //Du wartest vergeblich, er wird nicht kommen und Dir die Sachen für das Labor bringen, denn ich habe sein Geschäft übernommen.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Info1_12_06"); //Wieso, was ist mit Salm.
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Info1_15_07"); //Bring mich zuerst zu Deinen Kumpanen, wir haben einiges zu bereden.
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Info1_12_08"); //Nein, das kann ich nicht machen...
AI_Output(other,self,"Mis_1_Psi_DrugMonopol_Info1_15_09"); //Los bring mich hin, bevor ich es mir anders überlege, ihr braucht doch das Zeug von der Sekte, oder?
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_Info1_12_10"); //(gequält) Ahh, na gut...Folge mir
};
func void zs_waitatlabor_jacko()
{
var int einmal;
B_FollowMode();
if(Hlp_StrCmp(Npc_GetNearestWP(self),self.wp))
{
B_SmartTurnToNpc(self,hero);
if(Npc_GetDistToNpc(self,hero) < 500)
{
if(einmal == 0)
{
AI_Output(self,other,"Mis_1_Psi_DrugMonopol_ZS_05_01"); //So, hier sind wir, rede mit Renyu.
einmal = 1;
};
};
};
};
Xardas
Spoiler:(zum lesen bitte Text markieren)
instance KDF_404_XARDAS_LOADSWORD03(C_Info)
{
npc = KDF_404_Xardas;
condition = kdf_404_xardas_loadsword03_condition;
information = kdf_404_xardas_loadsword03_info;
important = 0;
permanent = 0;
description = "Benötige ich sonst noch etwas?";
};
func int kdf_404_xardas_loadsword03_condition()
{
if(Npc_KnowsInfo(hero,kdf_404_xardas_loadsword02))
{
return 1;
};
};
func void kdf_404_xardas_loadsword03_info()
{
AI_Output(other,self,"Kdf_404_Xardas_LoadSword03_15_01"); //Benötige ich sonst noch etwas?
AI_Output(self,other,"Kdf_404_Xardas_LoadSword03_14_02"); //Du könntest noch eine bessere Rüstung gebrauchen, da noch viele Gefahren auf Dich warten.
AI_Output(self,other,"Kdf_404_Xardas_LoadSword03_14_03"); //Ich gebe Dir diesen Brief, gib ihn dem Schmied im Inneren Ring des Alten Lagers, er wird Dir sagen was er benötigt um eine gute Rünstung herstellen zu können..
CreateInvItem(hero,itwrletter4blacksmith);
Log_CreateTopic("Dämonenbeschwörer",LOG_NOTE);
Log_AddEntry("Dämonenbeschwörer","Xardas gab mir einen Brief den ich dem Schmied im Inneren Ring des Alten Lagers bringen soll, damit dieser mir eine bessere Rünstung schmiedet.");
};
Stone
Spoiler:(zum lesen bitte Text markieren)
instance DIA_GRD_219_Stone(C_Info)
{
npc = GRD_219_Stone;
condition = DIA_GRD_219_Stone_Condition;
information = DIA_GRD_219_Stone_Info;
important = 0;
permanent = 0;
description = "Lies Dir diesen Brief mal durch.";
};
func void DIA_GRD_219_Stone_Info()
{
AI_Output(other,self,"DIA_GRD_219_Stone_10_01"); //Lies Dir diesen Brief mal durch.
AI_Output(self,other,"DIA_GRD_219_Stone_10_02"); //Warum sollte ich?
AI_Output(other,self,"DIA_GRD_219_Stone_10_03"); //Weil er von Xardas ist.
AI_Output(self,other,"DIA_GRD_219_Stone_10_04"); //Sag das doch gleich! Gib her!!
AI_Output(self,other,"DIA_GRD_219_Stone_10_05"); //Aha...so so...Du sollst also eine neue Rüstung bekommen? Ich kann Dir eine Rüstung schmieden, Du musst mir nur das Erz dafür besorgen.
AI_Output(self,other,"DIA_GRD_219_Stone_10_06"); //Bringe mir 1000, 5000 oder 10000 Erz, je mehr Du bringst, um so besser wird die Rüstung sein.
Npc_RemoveInvItem(hero,itwrletter4blacksmith);
Log_CreateTopic("Stone der Schmied",LOG_NOTE);
Log_AddEntry("Stone der Schmied","Ich habe der Brief Stone dem Schmied übergeben und diese hat sich bereit erklärt die Rüstung zu schmieden. Nur muss ich ihm Erz dafür bringen, entweder 1000, 5000 oder 10000 Erz, je mehr um so besser ist die Rüstung.");
};
instance DIA_GRD_219_Stone1(C_Info)
{
npc = GRD_219_Stone;
condition = DIA_GRD_219_Stone1_Condition;
information = DIA_GRD_219_Stone1_Info;
important = 0;
permanent = 1;
description = "Ich habe das Erz";
};
func int DIA_GRD_219_Stone1_Condition()
{
if(Npc_HasItems(hero,ore_armor_l) || Npc_HasItems(hero,ore_armor_m) || Npc_HasItems(hero,ore_armor_h))
{
AI_Output(self,other,"DIA_GRD_219_Stone1_10_02"); //Ich habe Dir eine Rüstung geschmiedet, lass mich jetzt in Ruhe.
AI_StopProcessInfos(self);
}
else if(Npc_KnowsInfo(hero,DIA_GRD_219_Stone))
{
return 1;
};
};
func void dia_grd_219_stone_armor1()
{
Info_ClearChoices(DIA_GRD_219_Stone1);
if(Npc_HasItems(hero,ItMiNugget) >= 1000)
{
AI_Output(self,other,"DIA_GRD_219_Stone1_10_05"); //Gut hierist die Rüstung
CreateInvItem(hero,ore_armor_l);
Npc_RemoveInvItems(hero,ItMiNugget,1000);
AI_StopProcessInfos(self);
}
else
{
AI_Output(self,other,"DIA_GRD_219_Stone1_10_06"); //Du hast zu wenig Erz, komme wieder wenn Du genug hast.
};
};
func void dia_grd_219_stone_armor2()
{
Info_ClearChoices(DIA_GRD_219_Stone1);
if(Npc_HasItems(hero,ItMiNugget) >= 5000)
{
AI_Output(self,other,"DIA_GRD_219_Stone1_10_05"); //Gut hierist die Rüstung
CreateInvItem(hero,ore_armor_m);
Npc_RemoveInvItems(hero,ItMiNugget,5000);
AI_StopProcessInfos(self);
}
else
{
AI_Output(self,other,"DIA_GRD_219_Stone1_10_06"); //Du hast zu wenig Erz, komme wieder wenn Du genug hast.
};
};
func void dia_grd_219_stone_armor3()
{
Info_ClearChoices(DIA_GRD_219_Stone1);
if(Npc_HasItems(hero,ItMiNugget) >= 10000)
{
AI_Output(self,other,"DIA_GRD_219_Stone1_10_05"); //Gut hierist die Rüstung
CreateInvItem(hero,ore_armor_h);
Npc_RemoveInvItems(hero,ItMiNugget,10000);
AI_StopProcessInfos(self);
}
else
{
AI_Output(self,other,"DIA_GRD_219_Stone1_10_06"); //Du hast zu wenig Erz, komme wieder wenn Du genug hast.
};
};
func void grd_200_thorus_guild_info()
{
AI_Output(other,self,"GRD_200_THORUS_GUILD_Info_NR_01"); //Kann ich jetzt aufgenommen werden?
AI_Output(self,other,"GRD_200_THORUS_GUILD_Info_NR_02"); //Du hast Dich bewährt.Wir nehmen Dich ins Lager auf. Du willst doch Schatten werden?
Info_ClearChoices(grd_200_thorus_guild);
Info_AddChoice(grd_200_thorus_guild,"Ja,ich bin dabei",grd_200_thorus_guild_yes);
Info_AddChoice(grd_200_thorus_guild,"Ich überlegs mir noch",grd_200_thorus_guild_later);
};
func void grd_200_thorus_guild_yes()
{
AI_Output(other,self,"GRD_200_THORUS_GUILD_Yes_NR_01"); //Ja. Ich bin dabei.
AI_Output(self,other,"GRD_200_THORUS_GUILD_Yes_NR_02"); //Hier ist die Kleidung der Schatten.Jetzt gehörst Du zu uns
AI_Output(self,other,"GRD_200_THORUS_GUILD_Yes_NR_03"); //Halte Dich erst mal an die anderen Schatten. Komm wieder, wenn Du für die nächste Aufgabe bereit bist!
Npc_SetTrueGuild(hero,GIL_STT);
CreateInvItem(hero,stt_armor_m);
grd_200_thorus_guild.permanent = 0;
};
func void grd_200_thorus_guild_later()
{
AI_Output(other,self,"GRD_200_THORUS_GUILD_Later_NR_01"); //Ich überlegs mir noch.
AI_Output(self,other,"GRD_200_THORUS_GUILD_Later_NR_02"); //Du solltest Deine Entscheidung gut überlegen.
grd_200_thorus_guild.permanent = 1;
};
instance INFO_THORUS_GOTOKALOM(C_Info)
{
npc = GRD_200_Thorus;
condition = info_thorus_gotokalom_condition;
information = info_thorus_gotokalom_info;
important = 1;
};
func int info_thorus_gotokalom_condition()
{
return Npc_GetTrueGuild(hero) == GIL_STT;
};
func void info_thorus_gotokalom_info()
{
AI_Output(self,other,"Info_Thorus_GoToKalom_09_01"); //Wir stehen mit der Bruderschaft in Handelskontakt. Das bedeutet nicht, das wir ihnen unbedingt vertrauen.
AI_Output(self,other,"Info_Thorus_GoToKalom_09_02"); //Mach Dich auf den Weg in den Sumpf.
AI_Output(self,other,"Info_Thorus_GoToKalom_09_03"); //Wenn Du dort im Lager bist, halte die Ohren auf.Alles was Du erfährst kann für uns nützlich sein.
AI_Output(self,other,"Info_Thorus_GoToKalom_09_04"); //Und je mehr Du erfährst, desto besser.Das Ganze erfordert ein gewisses Feingefühl, Du weißt was ich meine?
AI_Output(other,self,"Info_Thorus_GoToKalom_15_05"); //Bleib ruhig, ich werde ihren Zorn nicht heraufbeschwören.
AI_Output(self,other,"Info_Thorus_GoToKalom_09_06"); //Ich wusste, das Du mich verstehen würdest.
};
Hunter
Spoiler:(zum lesen bitte Text markieren)
instance DIA_GRD_207_HUNTER(C_Info)
{
npc = grd_207_hunter;
condition = dia_grd_207_hunter_condition;
information = dia_grd_207_hunter_info;
important = 1;
permanent = 0;
};
func int dia_grd_207_hunter_condition()
{
return 1;
};
func void dia_grd_207_hunter_info()
{
AI_Output(self,other,"DIA_GRD_207_Hunter_10_01"); //Was willst Du von mir? Wenn Du willst das ich Dir Armbrustschießen zeige, lass Dir gesagt sein, dass das Dich was kosten wird.
};
instance DIA_GRD_207_HUNTER3(C_Info)
{
npc = grd_207_hunter;
condition = dia_grd_207_hunter3_condition;
information = dia_grd_207_hunter3_info;
important = 0;
permanent = 1;
description = "Zeig mir Armbrustschießen?";
};
func int dia_grd_207_hunter3_condition()
{
return 1;
};
func void dia_grd_207_hunter3_info()
{
AI_Output(self,other,"DIA_GRD_207_Hunter3_10_01"); //Wie Du willst, dann lass aber zuerst 50 Erz für Stufe 1 und 200 Erz für Stufe 2 rüberwachsen.
Info_ClearChoices(dia_grd_207_hunter3);
Info_AddChoice(dia_grd_207_hunter3,"Zurück",dia_grd_207_hunter_back);
Info_AddChoice(dia_grd_207_hunter3,"Armbrustschießen Stufe 2 lernen (Kosten 20 LP und 200 Erz)",dia_grd_207_hunter_train3);
Info_AddChoice(dia_grd_207_hunter3,"Armbrustschießen Stufe 1 lernen (Kosten 10 LP und 50 Erz)",dia_grd_207_hunter_train2);
Info_AddChoice(dia_grd_207_hunter3,"Geschicklichkeit erhöhen (Kosten 1 LP) ",dia_grd_207_hunter_train1);
};
func void dia_grd_207_hunter_train1()
{
Info_ClearChoices(dia_grd_207_hunter3);
if((hero.lp >= 1) && (hero.attribute[ATR_DEXTERITY] <= 20))
{
AI_Output(self,other,"DIA_GRD_207_Hunter3_10_02"); //Geschicklichkeit und eine Armbrust sind die Werkzeuge eines jeden Schützen.
hero.lp = hero.lp - 1;
hero.attribute[ATR_DEXTERITY] = hero.attribute[ATR_DEXTERITY] + 1;
PrintScreen("Geschicklichkeit gesteigert",-1,50,"MENU.TGA",10);
}
else
{
AI_Output(self,other,"DIA_GRD_207_Hunter3_10_03"); //Ich kann Dein Geschicklichkeit nicht mehr steigern.
};
};
func void dia_grd_207_hunter_train2()
{
Info_ClearChoices(dia_grd_207_hunter3);
if((hero.lp >= 10) && (!Npc_GetTalentSkill(hero,NPC_TALENT_CROSSBOW) == 1) && (Npc_HasItems(hero,ItMiNugget) >= 50))
{
Npc_RemoveInvItems(other,ItMiNugget,50);
hero.lp = hero.lp - 10;
Npc_SetTalentSkill(hero,NPC_TALENT_CROSSBOW,1);
PrintScreen("Armbrust Stufe 1 erlernt",-1,50,"MENU.TGA",10);
}
else
{
AI_Output(self,other,"DIA_GRD_207_Hunter3_10_04"); //Komm wieder, wenn Du genug Lehrpunkte oder Erz hast, Du weißt ja ich will 50 Erz und Du benötigst 10 Lernpunkte.
};
};
func void dia_grd_207_hunter_train3()
{
Info_ClearChoices(dia_grd_207_hunter3);
if((hero.lp >= 20) && (!Npc_GetTalentSkill(hero,NPC_TALENT_CROSSBOW) == 2) && (Npc_HasItems(hero,ItMiNugget) >= 200))
{
Npc_RemoveInvItems(other,ItMiNugget,200);
hero.lp = hero.lp - 20;
Npc_SetTalentSkill(hero,NPC_TALENT_CROSSBOW,2);
PrintScreen("Armbrust Stufe 2 erlernt",-1,50,"MENU.TGA",10);
}
else
{
AI_Output(self,other,"DIA_GRD_207_Hunter3_10_05"); //Komm wieder, wenn Du genug Lehrpunkte oder Erz hast, Du weißt ja ich will 200 Erz und Du benötigst 20 Lernpunkte.
};
};