Autor |
|
|
Reaktivierbare Ereignisse trotz "never then" |
|
|
|
Manchmal möchte man ein Ereignis auslösen das erst nur ein mal durchlaufen soll und dann zu einem selbst bestimmten Zeitpunkt noch mal funktionieren soll... oder eben auch öfter. Klar, man könnte das Ereignis erneut in die Wac schreiben oder man verwendet die Möglichkeit einem Script einen Namen zu geben. Dieses Script kann man das jederzeit zurücksetzen, als wäre es nie durchlaufen. An einem einfachen Beispiel erklärt. Ich habe eine Text der links oben eingeblendet werden soll... Fall 1 (immer wieder aufs Neue) und Fall 2 (wenn eine Variable einen bestimmten Wert erhält der durch ein anderes Ereignis ausgelöst wird.
Fall 1:
if [info] past(1) and never then
consol("AW2_Lost in Desert")
consol("Map made by Sleepless")
consol("wish you much fun and good luck")
endif
if elapse(600) then
reset(info)
endif
Eigentlich würde dieses Ereignis nur einmal ausgelöst (Never then) und dann nie wieder. Ich vergebe diesem Ereignis hier den Namen "info" (muss in eckigen Klammern stehen!). Das Ereignis läuft einmal durch. Nach 600 Sekunden geben ich den Befehl dass das Ereignis "info" zurückgesetzt wird. Für das Programm wurde es also noch nicht ausgelöst und es startet erneut. dies wiederholt sich bis zum Ende der Map.
Fall 2:
if [info] past(1) and never then
consol("AW2_Lost in Desert")
consol("Map made by Sleepless")
consol("wish you much fun and good luck")
endif
if V1 == 1 then
reset(info)
V1 = 0
endif
Gleiches Spiel wie oben, nur dass ich das Zurücksetzen der Ereignisses "info" abhängig mach von der Variable V1 - die durch irgendein anderes Ereignis in der Wac ausgelöst wird. Direkt nach dem Zurücksetzen, ändere ich die Variable V1 wieder auf 0. Ansonsten würde das Zurücksetzen jede Sekunde(jeden Durchlauf der Wac) ausgeführt und somit ständig erscheinen.
Um ein anderes Beispiel zur Verwendung zu zeigen, hier ein Script aus meiner "AW2 Rabbit Punch 2" bei der ein Hund immer das Bellen anfängt wenn ein Spieler in die Nähe einer Haustür kommt. Kleiner Wachhund eben. 
//////////////////////////////////////////// dog
PLOOP
if ssnnearssn(player,132570,10) enter
v20 = 0
if [dog] !v14 and never then
ssnwave(132570,"rp2_dogattack.wav",700)
endif
if chain(10) then
reset(dog)
v20 = 1
endif
endif
END
Braucht man einen bellenden Hund in der Map? Nein, der ist nicht spielentscheidend, aber ich steh einfach auf solche Details 
Letztendlich sollen diese Scripts nur zeigen wieviele Möglichkeiten man wirklich hat... und das sind wahnsinnig viele - nur begrenzt durch die eigene Fatasie.
 |
Mittlerweile kann ich schon ein bissl was  |
Dieser Beitrag wurde 1 mal editiert, zuletzt von sleepless am 09.01.2019 - 10:32.
|
Beitrag vom 09.01.2019 - 10:20 |
|
Beiträge
| Autor
| Datum
|
|
sleepless |
09.01.2019 - 10:20 |
|
Raven |
09.01.2019 - 22:25 |
|
sleepless |
10.01.2019 - 09:11 |