Создание простого trigger


Triggers - это наиболее мощная часть скрипта сферы с которой вы будете иметь дело. Tiggers будут встречаться и в простых скриптах, на пару строк, и в гигантских скриптах, на много страниц. С целью обучения мы допишем скрипт claymore, который мы создавали на предыдущем обучении. Этот скрипт превратит меч claymore в волшебное оружие, которое будет добавлять 5 к силе игрока. Вообще, прежде чем писать любой скрипт, вы должны точно знать, что вы хотите получить. Мы хотим, что бы в нашем скрипте происходили следующие вещи:
+5 STR - прибавлялось при экипировке,
-5 SRT - отнималось при де экипировке.
Сначала сфокусируемся на добавлении силы. Во-первых, надо определить какой trigger нам для этого нужен. Это trigger на экипировку:
ON=@EQUIP
SRC.STR=+5

Здесь написано, что сила (STR), человека (SRC), который оборудовал item, увеличилась на 5. Это самый простой способ изменить переменную в сфере. Заканчиваем строчкой:
RETURN 0

Хотя инструкция RETURN не всегда необходима, и НЕ необходима в этом случае, это будет хорошим тоном в написании скрипта. Вы можете использовать RETURN 0 или RETURN 1. RETURN 0 - закончит скрипт и разрешит выполнение всех действий связанных с trigger. RETURN 1 - завершит скрипт без выполнения действий указанных в нём от начала, то есть в нашем случае item просто не будет оборудован.
Терпеть напишем подобный скрипт для раз экипировки. И выглядеть это будет следующим образом:
ON=@UNEQUIP
SRC.STR=+(-5)
RETURN 0

Обратите внимание, что вместо того, что бы вычесть 5 от STR мы прибавили отрицательное пять. Это из-за ограничения языка сферы. Для вычитания вы должны всегда прибавлять отрицательное число. -5 не обязано выделяться круглыми скобками, но это делает скрипт легче читаемым.
Законченный скрипт выглядит следующим образом:
[ITEMDEF i_magic_claymore]
ID=013b7
NAME=claymore of strength
TYPE=t_weapon_sword
WEIGHT=14
SKILL=swordsmanship
DAM=15,43
REQSTR=50
TWOHANDS=Y

ON=@CREATE
HITPOINTS=115,150

ON=@EQUIP
SRC.STR=+5
RETURN 0

ON=@UNEQUIP
SRC.STR=+(-5)
RETURN 0
Hosted by uCoz