View Full Version : Frage zum Scripting... AND OR NOT ?
kokunze
September 16th, 2006, 05:41 PM
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.
epawel
September 16th, 2006, 06:47 PM
Hört sich verwirrend an :P
zerotacg
September 16th, 2006, 09:51 PM
"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
"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
kokunze
September 17th, 2006, 06:15 PM
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.
yadayada
September 18th, 2006, 11:54 AM
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*
sahera
September 18th, 2006, 06:44 PM
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 ;)
kokunze
September 18th, 2006, 07:20 PM
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.
seroin0
September 18th, 2006, 08:02 PM
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 ;) )
yadayada
September 18th, 2006, 08:46 PM
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.
tridman
September 18th, 2006, 09:20 PM
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.
kokunze
September 19th, 2006, 09:54 AM
Seroin, es gibt doch 3 Zustände:
inaktiv (die Mission wurde nicht angenommen)
aktiv (die Mission wurde angenommen)
succeeded (Die Mission wurde beendet)
ich hab halt auf die ersten beiden geprüft. Succeeded ist ja nicht inaktiv.
Das mit dem Yubo hatt ich auch schon überlegt (allgemein was spawnen zu lassen). Wollte es aber umgehen, nicht das der Spieler das umbringt ...
Isdiran, danke dir, ich glaub so müsste es wirklich gehen :)
vBulletin v3.5.4, Copyright ©2000-2013, Jelsoft Enterprises Ltd.