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