Použití triggerů

Triggers neboli volně přeloženo spouštěče, jsou ty skripty, které ovládají celou hru. Právě jimi se ovládají akce, které nastávají při předem nadefinované situaci. Abych to vysvětlil: Máme zbraň, která má přidávat +5 k síle hráče.


Je velice důležité, abyste přesně věděli, co chcete programovat ještě před začátkem, protože skripty tohoto druhu mohou mít několik řádek,
ale stejně tak i mnoho stran. Takže si velice pečlivě rozmyslete, co budete dělat, abyste se zbytečně dělali s něčím, co potom smažete.
Za příklad jsem vybral úlpně jednoduchý skript, a to přidání +5 k síle hráče. Takže skript musí provést tyto dva základní úkony:
Při nasazení zbraně přidat +5 k síle
Při sundání zbraně odebrat 5 od síly hráče
Je nutné abych řekl, že triggers nejsou úplně stejné jako ostatní skripty a to v tom, že se musí vázat k nějaké postavě nebo místu, kde jsou. Proto
každý příkaz musí začínat SRC. Podle anglického slova source - zdroj. V našem případě hráč či místo, kde se věc v dané chvíli nachází.

Takže chceme, aby se skript provedl při nasazení a sundání:
ON = @EQUIP
ON = @UNEQUIP
V části ON = @EQUIP přidáme hráči sílu
SRC.STR = <SCR.STR> + 5
Všimněte si, že proměnná SRC.STR je uzavřena v takovéto <> závorce, ale jen tehdy pokud se jakkoliv mění. Je sice možné aby i proměnná před
rovnítkem byla uzavřena do těchto závorek, ale je to zbytečné. Dále chceme, aby se skript ukončil po této řádce.
RETURN 0
Musím uvést, že není sice nutné ukončit skript tímto příkazem(!Jen v určitých případech!), ale je to takové nepsané pravidlo - kdokoliv to může po vás
číst a když v tom bude zmatek, tak se na to raději vykašle.
RETURN 0 ukončí právě probíhající skript, ale povolí dalším skriptům, které mohou být k této věci vázány vůbec nastat. RETURN 1 ukončí právě probíhající
skript, ale už nedovolí jinému něco provést, v našem případě by to znamenalo, že věc nepůjde sundat.
No a nakonec potřebujeme naši věc sundat:
ON=@UNEQUIP
SRC.STR=<SRC.STR>+(-5)
RETURN 0

Zde si zajisté všimnete, že místo toho abych odečítal 5 vlastně přičítám zápornou pětku. Je to tím, že skriptovací jazyk sphéry je omezený, a proto
raději přičítejte záporná čísla. Kdybyste rovnou odečítali, mohlo by to vyústit k chybám v chodu sphéry.

No a celý skript bude vypadat takto:
ON=@EQUIP
SRC.STR=<SRC.STR>+5
RETURN 0
ON=@UNEQUIP
SRC.STR=<SRC.STR>+(-5)
RETURN 0
Přidejte to k nějaké věci a uvidíte. Abyste věděli, jaké jsou ostatní skriptovací příkazy používané pro tento druh skriptů, tak dalším dílem je jen výčet
těchto příkazů.

Autor: Sandal

Poslal: Sandal - Úterý, 21 září, 2004 - 06:05 CET