Page 1 of 2
Frage zum Scripting... AND OR NOT ?
Posted: Sat Sep 16, 2006 3:41 pm
by kokunze
Wenn ich zusätzliche Bedingungen für ein Event hinzufügen sind diese automatisch "and"-verknüpft. Es ist also kein Problem zu sagen:
"Wenn Spieler die Zone xy betritt UND er bereits Quest yz beendet hat" ...
Geht das auch andersrum? Kann ich irgendwie eine Aussage negieren bzw oder befehle nutzen?
Was ich gern sagen würde wäre dann:
"Wenn Spieler die Zone xy betritt ODER die Zone yz betritt"
bzw
"Wenn Spieler die Zone xy betritt und die Quest yz NICHT beendet hat"
(in diesem Fall könnte man das nicht beendet durch "aktiv ODER inaktiv" ersetzen, aber auch da bräuchte man einen ODER Befehl.
Re: Frage zum Scripting... AND OR NOT ?
Posted: Sat Sep 16, 2006 4:47 pm
by epawel
Hört sich verwirrend an
Re: Frage zum Scripting... AND OR NOT ?
Posted: Sat Sep 16, 2006 7:51 pm
by zerotacg
kokunze wrote:"Wenn Spieler die Zone xy betritt ODER die Zone yz betritt"
Zone xy triggert event A und zone yz triggert event a
also bei beiden zonen n event rein haun das das triggert was du willst
wenn dann eine der beiden zonen betreten wird wird der triggfer ausgelöst
kokunze wrote:
"Wenn Spieler die Zone xy betritt und die Quest yz NICHT beendet hat"[/b]
man hat mehrere sachen zur auswahl bei nem quest
completed
prerequest
etc
könntest damit arbeiten und den trigger deactivieren wenn der Quest beendet ist
Re: Frage zum Scripting... AND OR NOT ?
Posted: Sun Sep 17, 2006 4:15 pm
by kokunze
hmm, muss ich mir mal noch genauer anschauen. Wollte halt das der Missionesgeber die Mission erst gibt, wenn man bereits ein par andere erledigt hat. Soweit kein Problem...
Nun soll er aber wenn man die anderen Missionen noch nicht erledigt hat, ne Ersatz Nachricht sprechen. Und da liegt das Problem zu sagen, wenn du Quest1, oder Quest2 oder Quest3 noch nicht erledigt hast, dann mache Dialog xy.
Re: Frage zum Scripting... AND OR NOT ?
Posted: Mon Sep 18, 2006 9:54 am
by yadayada
Setz nen Fake-Trigger zum Start des Szenarios, der bei Erfüllung von Quest 1 oder 2 oder 3 ausgelöst wird.
Beim letzten NPC prüfst dann, ob der Trigger ausgelöst wurde. Wenn ja, gib Mission, wenn nein, naja....gib sie nicht. *g*
Re: Frage zum Scripting... AND OR NOT ?
Posted: Mon Sep 18, 2006 4:44 pm
by sahera
kokunze wrote:Nun soll er aber wenn man die anderen Missionen noch nicht erledigt hat, ne Ersatz Nachricht sprechen. Und da liegt das Problem zu sagen, wenn du Quest1, oder Quest2 oder Quest3 noch nicht erledigt hast, dann mache Dialog xy.
Kannst ein Event setzen indem du sagst das der Dialog aktiv ist solange eines der Quest nicht abgeschlossen also Aktiv ist. Nach Abschliessen des jeweiligen Quest einfach die gemachten Quest auf inaktiv setzen, wenn alle Quest inaktiv sind wird dann der Dialog auch inaktiv.
Ich hoffe ich habe dich richtig verstanden
Re: Frage zum Scripting... AND OR NOT ?
Posted: Mon Sep 18, 2006 5:20 pm
by kokunze
yadayada wrote:Setz nen Fake-Trigger zum Start des Szenarios, der bei Erfüllung von Quest 1 oder 2 oder 3 ausgelöst wird.
Beim letzten NPC prüfst dann, ob der Trigger ausgelöst wurde. Wenn ja, gib Mission, wenn nein, naja....gib sie nicht. *g*
Das versteh ich jetzt nicht ganz wie es gemeint ist. Ein einfacher User Trigger kann doch nur "getriggert" werden, aber keinen Status wie 1 oder 0, bzw ja oder nein annehmen.
Zu Sahera:
Glaub ich weiß wie du das meinst. Die einfachste Variante einer Oder Verknüpfung ist für jedes Oder ereignes nen eigenes Event zu machen. Ist aber halt sehr aufwendig und hat bei mir aus irgend einem Grund nicht gefunzt.
Mein Beispiel:
"Wird Missionsgeber3 als Ziel ausgewählt und (Mission 1 oder Mission 2 sind noch nicht abgeschlossen oder GingoAngriffTruppe lebt noch), starte Dialog 1"
daraus wurden durch meine Variante 5 Events:
- Wird Missionsgeber3 als Ziel gewählt und ist Mission 1 aktiv, starte Dialog 1
- Wird Missionsgeber3 als Ziel gewählt und ist Mission 1 inaktiv, starte Dialog 1
- Wird Missionsgeber3 als Ziel gewählt und ist Mission 2 aktiv, starte Dialog 1
- Wird Missionsgeber3 als Ziel gewählt und ist Mission 2 inaktiv, starte Dialog 1
- Wird Missionsgeber3 als Ziel gewählt und lebt GingoAngriffTruppe noch, starte Dialog 1
(Es werden jeweils nach aktiv und inatkiv gefragt. Nur so ist gesichert das der Dialog getriggert wird, wenn man die Quest noch nicht angenommen hat UND wenn man sie angenommen aber noch nicht beendet hat)
Man sieht gleich den erheblichen Mehraufwand. Ausserdem wurde seltsamerweise der Dialog auch getriggert wenn beide Missionen successful waren und die GingoAngriffTruppe tot war.
Re: Frage zum Scripting... AND OR NOT ?
Posted: Mon Sep 18, 2006 6:02 pm
by seroin0
Das ist auch kein Wunder, warum er den Dialog startet, wenn die Gingotruppe tot ist oder wenn beide Missionen Erfüllt sind.
Schon wenn man die beiden Events sieht, so merkt man, dass der Dialog praktisch immer getriggert wird, da nunmal eine Mission entweder Aktiv oder Deaktiv sein kann.
Oder anders gesagt: diese 5 Zeilen sagen nicht mehr aus als diese:
Wenn Missionsgeber3 als Ziel gewählt, starte Dialog 1.
Warum reduzierst du das ganze nicht?
- Wird Missionsgeber3 als Ziel gewählt und ist Mission 1 inaktiv, starte Dialog 1
- Wird Missionsgeber3 als Ziel gewählt und ist Mission 2 inaktiv, starte Dialog 1
- Wird Missionsgeber3 als Ziel gewählt und lebt GingoAngriffTruppe noch, starte Dialog 1
So ist sichergestellt, das der Dialog nicht 100% der Zeit getriggert ist.
(Ich gebe keine Garantie auf Richtigkeit, da selbst noch nicht getestet
)
Re: Frage zum Scripting... AND OR NOT ?
Posted: Mon Sep 18, 2006 6:46 pm
by yadayada
Ich meinte damit, dass Du Dir nen künstlichen 1 oder 0 Zustand schaffst, der mit der eigentlichen Sache nichts zu tun hat.
Beispielsweie kannst ja nach Erfüllung von Mission 1, 2 oder 3 irgendwo einen Yubo spawnen und der Dialog des letzten NPC richtet sich dann danach, ob der Yubo lebt oder nicht.
Re: Frage zum Scripting... AND OR NOT ?
Posted: Mon Sep 18, 2006 7:20 pm
by tridman
kokunze wrote:Mein Beispiel:
"Wird Missionsgeber3 als Ziel ausgewählt und (Mission 1 oder Mission 2 sind noch nicht abgeschlossen oder GingoAngriffTruppe lebt noch), starte Dialog 1"
Mal meine Lösungsidee:
Du scriptes Dialog 1 und sagt generell er soll gestartet werden, wenn Missionsgeber3 als Ziel ausgewählt wird.
Dann machst du folgende Events:
1. Wenn Mission 1 abgeschlossen -> Deaktiviere Dialog 1
2. Wenn Mission 2 abgeschlossen -> Deaktiviere Dialog 1
3. Wenn GingoAngriffTruppe stirbt -> Deaktiviere Dialog 1
Resultat ist, dass Der dialog gestartet wird, solange er aktiv ist. Sobald eine oder mehrere der Events getriggert wurden wird der Dialog abgeschaltet und wird auch nicht gestartet.