Ascalon
Senior Member
- Registriert
- 08.04.2008
- Beiträge
- 2.730
Warum man zwei Scriptblöcke braucht ist eigentlich ganz simpel: Um sicher zu gehen, dass die Dialoge auch wirklich alle ausgeführt werden. Es kann z.B. vorkommen dass der Timer gerade ausläuft, die Figur aber stumm oder bewusstlos ist oder dass genau in der Sekunde ein Kampf beginnt oder der Spieler etwas macht was die Aktion unterbricht. Beispiel:
Es kann passieren, dass dieses Script gerade dann anläuft wenn gleichzeitig z.B. Orks auftauchen, die den NPC angreifen. Dann wird die Variable hochgestuft, allerdings beginnt das Gespräch nicht, da der Charakter gerade beschäftigt ist. Der Scriptblock wird unterbrochen.
Um das zu vermeiden wird in EINEM Block die Variable gesetzt und im nächsten Block immer wieder gecheckt ob die Variable ein Gespräch triggert. So kann z.B. der Timer mitten in einem Kampf auslaufen, die Variable wird auf 2 gesetzt und ein anderen Block checkt ob gerade a) Die Variable auf 2 ist und b) kein Kampf ist, damit das Gespräch triggern kann.
Code:
IF
Global("LOVETALK","GLOBAL",1)
GolbalTimerExperienced("LOVETALKTIMER","GLOBAL")
THEN
RESPONSE #100
IncrementGlobal("LOVETALK","GLOBAL",1)
StartDialogNoSet(player1)
END
Es kann passieren, dass dieses Script gerade dann anläuft wenn gleichzeitig z.B. Orks auftauchen, die den NPC angreifen. Dann wird die Variable hochgestuft, allerdings beginnt das Gespräch nicht, da der Charakter gerade beschäftigt ist. Der Scriptblock wird unterbrochen.
Um das zu vermeiden wird in EINEM Block die Variable gesetzt und im nächsten Block immer wieder gecheckt ob die Variable ein Gespräch triggert. So kann z.B. der Timer mitten in einem Kampf auslaufen, die Variable wird auf 2 gesetzt und ein anderen Block checkt ob gerade a) Die Variable auf 2 ist und b) kein Kampf ist, damit das Gespräch triggern kann.