[[Kasten GML]]betrifft nur G3: Hier werden die bisherigen Erkenntnisse über die Gothic 3-Queststruktur gesammelt: Hier haben wir eine *.info Datei (hier FILLER559.info) sie beinhaltet einen Dialog: [Info] Name=FILLER559 //Name des DIAs SortID=2238 //ID des DIAs Owner=Achmed //wen spreche ich beim Dia an? InfoGiven=false //? - BISHER UNBEKANNT - ? Parent //Übergeordneter Dialog (z.B Parent=SKALVERAM3682) Quest //Gehört der DIA zu einem Quest? (z.B Quest=Finley_AmbushTrelis) ConditionType=3 //? - BISHER UNBEKANNT - ? InfoType=2 //? - BISHER UNBEKANNT - ? GoldCost=250 //Wie viel Gold kostet dem Player der Dialog? (Wie viel muss er bezahlen um ihn aufrufen zu können?) CondOwnerNearEntity //? - BISHER UNBEKANNT - ? Folder=Varant/Bakaresh/ //? - BISHER UNBEKANNT - ? CondPlayerKnows //Wenn der Player was weiß kann er den Dia benutzen (Mehrfachoption!) (z.B CondPlayerKnows = Rendell_RefusesAnswer;Rendell_TRexDead) CondItemContainer //? - BISHER UNBEKANNT - ? CondItems // Welche Items benötigt der Spieler (Mehrfachoption?) CondItemAmounts // Wie viele Items von CondItems benötigt der Player? CondSecondaryNPC // Ist ein 2. NPC da (Partymember)? (CondSecondaryNPC=Olivier) CondSecondaryNPCstates // Status des NPC (?) (z.B CondSecondaryNPCstates=1) TeachSkillIsPerc=false //? - BISHER UNBEKANNT - ? TeachSkillIndex=0 //? - BISHER UNBEKANNT - ? TeachSkillValue=0 //? - BISHER UNBEKANNT - ? ClearChildren=false //Unterdialoge entfernen Permanent=false //Steht der Dialog dauerhaft zur Auswahl oder nur einmal //Hier ein Beispiel zum Dialog InfoScript_Commands=Say;Say;Say;SetGameEvent //Hier sind die einzelnen Befehle an die Engine, was die Personen machen //Bei SetGameEventpassiert etwas, z.B Achmed_teach wird in IDs1 aufgerufen InfoScript_Entities1=npc;player;npc; //Hier werden die einzelnen Personen unterschiede (ist es ein NPC oder der Player?) InfoScript_Entities2=;;; InfoScript_IDs1=;;;Achmed_teach //Hier wird aufgerufen (andere Dialoge, usw.) InfoScript_IDs2=;;; InfoScript_Texts=INFO_FILLER20060401190442;INFO_FILLER20060401190442_0;INFO_FILLER20060401190442_1; //Hier werden die einzelnen Texte für die Dialoge, usw aus Commands festgelegt (vll sind Strings möglich) TeachSkill (Skill) //Hier wird der zu lernende Skill eingetragen TeachAttrib (Attribute) //Hier wird ein zu lernender Attribut eingesetzt (z.B TeachAttrib=THF) TeachAttribValue=0 //Hier wird festgelegt, wie viele Punkte der Player zu seinem Attribut bekommt (z.B TeachAttribValue=0) // BEISPIEL 1 - AUFRUFE InfoScript_Commands=SetGameEvent //Hier sind die einzelnen Befehle an die Engine, was die Personen machen //Bei SetGameEventpassiert etwas, z.B Achmed_teach wird in IDs1 aufgerufen InfoScript_Entities1 InfoScript_Entities2 InfoScript_IDs1=Achmed_teach //Hier wird aufgerufen (andere Dialoge, usw.) InfoScript_IDs2 InfoScript_Texts TeachSkill (Skill) //Hier wird der zu lernende Skill eingetragen TeachAttrib (Attribute) //Hier wird ein zu lernender Attribut eingesetzt (z.B TeachAttrib=THF) TeachAttribValue=0 //Hier wird festgelegt, wie viele Punkte der Player zu seinem Attribut bekommt (z.B TeachAttribValue=0) //BEISPIEL 2 - HANDEL InfoScript_Commands=SetTradeEnabled //Player redet den NPC an um dann per SetTradeEnabled den Handel frei zu bekommen. Es gibt auch aktionen, wie "SetTeachEnabled" um den NPC als Lehrer ferizuschalten InfoScript_Entities1=npc InfoScript_Entities2 InfoScript_IDs1=true InfoScript_IDs2 InfoScript_Texts=INFO_SKALVERAM320060509135241;;INFO_SKALVERAM320060509135241_0; //BEISPIEL 3 - XPs BEKOMMEN InfoScript_Commands=GiveXP //Bei GiveXP werdem dem Player XPs übergeben InfoScript_Entities1 InfoScript_Entities2 InfoScript_IDs1=200 //200XP InfoScript_IDs2 InfoScript_Texts BEISPIEL 4 - EIN EIGENER DIALOG InfoScript_Commands=Say;Say;Say;Say InfoScript_Entities1=Player;NPC;Player;NPC InfoScript_Entities2 InfoScript_IDs1 InfoScript_IDs2 InfoScript_Texts= INFO_HAWK320060509135241_0;INFO_HAWK320060509135241_1;INFO_HAWK320060509135241_2;INFO_HAWK320060509135241_3; ---------------- Man kann auch mehrere Dialoge im Parent-Child-System verknüpfen: Dies ist durch den "Parent"-Parameter möglich: z.B: [info] Name=FILLERXXY //Name der Beispielinfo [...] Parent=FILLERXXX //Name der Parentinfo Beispiel 1: FILLERXXX - FILLERXYX - FILLERXYY Beispiel 2: FILLERXXX -FILLERXYX ->FILLERXYY ->FILLERXYZ -FILLERXYY ->FILLERYXZ ->FILLERYYX ->>FILLERXZY ->FILLER... ----- Der Aufbau eines *.quest Scripts [Quest] Name=Enzo_BringSlave //Name des Quests Type=6 //Questtyp FinishedQuests //Fertige Quests um Quest erfüllen oder ausführen zu können (z.B. FinishedQuests=Tarok_Arena_Tukash;Tarok_Arena_Vigo) LogTopic=QUEST_FILLER20060507194157 //Questtitel im Tagebuch - aus stringtable.ini ExperiencePoints=200 //Exp, die vergeben werden (Achtung! Werden mit 5 Multipliziert: 200*5!) PoliticalSuccess=0 //Ruf bei einer best. Gruppe (Assasinen usw...) PoliticalSuccessAmount=0 //Menge an Rufpunkten EnclaveSuccess=BenSala //Stadt für Rufpunktevergabe bestimmen EnclaveSuccessAmount=10 //Rufpunkte für Vergabe bestimmen JobSuccess=6 //Wie erfolgreich muss man sein, damit der Quest abgeschlossen werden kann (?) JobSuccessAmount=0 //Wie erfolgreich war man schon (?) Folder=Varant/BenSala/ //Virtueller Ordner in dem der Quest in der quests.pak gespeichert wurde DeliveryEntities=Miguel //Das, was man abliefern soll, z.B Items, NPCs (versklavung) DeliveryAmounts=1 //Wie viel soll man abliefern? DeliveryCounter=0 //Immer 0, da der Counter nur die Menge zählt, die man schon abgeliefert hat DestinationEntity=Enzo //An wen soll man den Kram abliefern? RunningTimeYears=0 //Zeitbegrenzung für Quest in Jahren (Ingame Zeit!) RunningTimeDays=0 //Zeitbegrenzung für Quest in Tagen (Ingame Zeit!) RunningTimeHours=0 //Zeitbegrenzung für Quest in Stunden (Ingame Zeit!) AttribSuccess //Attribut bei erfolg verbessern (z.B AttribSuccess=THF) AttribSuccessAmount=0 //Anzahl der Punkte, die dem Attribut hinzugefügt werden Mögliche Städte für EnclaveSuccess: Reddock KapDun Montera Okara Faring Vangard Silden Geldern Trelis Nemora Braga BenErai Enclave_Lago BenSala Bakaresh MoraSul Ishtar Wolfclan Hammerclan Fireclan Einträge bei "Type": 0=Gebe Item an NPC 1=Sprich mit NPC 2=NPC oder Monster töten 3=NPC oder Monster besiegen (nicht töten) 4=Verschwinden / NPC vertreiben 5=Arenakämpfer besiegen 6=NPC bringen 7=NPC folgen 8=Arena betreten 9= 10=Stadt/Dorf von Orks befreien