ZVSE
!?OB5/163; при посещении объекта тип 5 (артефакты) подтипа 163 (номер нашего арта)
!!HE-1:A163; дать текущему героя артефакт №163
!!UN:Ov998/v999/v1000/1; удалить посещенный объект с карты, а также удалить его описание
!!IF&1000:M^Вы наткнулись на бла-бла-бла Щит, стряхнули с него пыль и положили в свой ранец.^;
!#VRz883:S^Щит бла-бла-бла^; (Запомним в переменную z883 название артефакта) При настройке следующих артов или т.п, данная переменная (z883) не должна нигде использоваться, иначе собъётся описание
!#VRz884:S^{Щит бла-бла-бла}
Надетый на левую руку Щит бла-бла-бла увеличивает сопротивление магии героя. В начале боя все войска героя защищены заклинанием "Щит".^; (Запомним в переменную z884 описние щита) При настройке следующих артов или т.п, данная переменная (z892) больше нигде не должна использоваться
!#UN:A163/1/25000; (Даём нашему щиту цену 25000 золотых)
!#UN:A163/3/8; (Ценность нашего арта. Он у нас важный - это 8)
!#UN:A163/9/z883; (Присвоим название, запомненное в z891)
!#UN:A163/10/z884; (Присвоим описание, запомненное в z892)
!?AE1&v998=163; тригер при одевании артефакта №163
!!HE-1:Fd/d2/d/d; (При одевании артефакта дает +2 защиты)
!!IF:W-1; обращение к личной переменной текущего героя (у каждого героя их от w1 до w200)
!!HE-1:S26/?w120; узнаем текущий уровень втор.навыка сопротивление и запоминаем его в w120 чтобы при снятии арта вернуть навык сопротивления таким, какой он бвл у героя до одевания артефакта/ При настройке следующих артов или т.п, данная переменная (w120) больше нигде не должна использоваться
!!HE-1:S26/3; устанавливаем сопротивление в эксперт
*/ в данном коде я не проверял заняты ли все слоты втор.навыков героя или нет. Т.е. навык сопротивления установится в эксперт даже если все слоты будут заняты (он станет скрытым навыком)
!?AE0&v998=163; тригер при снятии артефакта №163
!!HE-1:Fd/d-2/d/d; (при снятии артефакта -2 защиты)
!!IF:W-1; обращение к личной переменной текущего героя
!!HE-1:S26/w120; возвращаем уровень сопротивления (какой был до одевания артефакта)
*/ настраиваем щит на существ в бою
*/ 1) для атакующего героя
!?BR0; боевой тригер
!!BA:H0/?v375; узнаем номер атакующего героя и запоминаем его (номер героя) в переменную v375
!!HEv375:A1/?y1/4; проверяем номер артефакта, одетого на левую руку атакующего героя и запоминаем его (номер артефакта) в переменную y1. Если никакой артефакт не одет, то переменная y1 будет равна -1.
!!FU&y1<>163:E; выход, если у1 не равна 163 (означает, что щит на руке не одет)
!!DO3553/0/20/1:P; старт циклической функции (под любым неиспользованным номером, я взял №3553) от 0 до 20 с шагом 1. От 0 до 20 потому что у каждого из героев (и атакующего и защищающегося имеется по 21 стеков для существ во время боя - 7 оновных и 11 для вызова, например вызова элементалей)
!?FU3553; старт функции №3553. Она стартует 21 раз
!!BMx1:M27/99/2; переменная х1 - это переменная в циклической функции. Здесь она содержит номер стека и изначально равна 0. 27 -номер заклинания щита. 99 - продолжительность. 2 - щит продвинутого уровня
!!VRx1:+1; выполняем переход к следующиму по порядку стеку при следующем старте функции
*/ 2) для защищающегося героя
!?BR0; боевой тригер
!!BA:H1/?v376; тоже, но для защищающегося героя
!!HEv376&v376<>-2:A1/?y2/4; тоже для защищающегося героя (сработает только если защищающийся герой существует (не равен -2), чтобы не выбивало ошибок, т.е. битва не с нейтралами)
!!FU&y2<>163:E; выход, если у2 не равна 163 (если щит на руке не одет)
!!DO3554/0/20/1:P; то же, что и в первом случае
!?FU3554; то же, что и в первом случае
!!VRx1&x1=0:S21; номера стеков защищающегося героя начинаются с 21-го
!!BMx1:M27/99/2; то же, что и в первом случае
!!VRx1:+1; то же, что и в первом случае
--------------------------------------------------------------------------------
конец скрипта
--------------------------------------------------------------------------------
Всё остальное просто.
Для 169 и 170 используй ещё и таймеры (!!TM... и !?TM...)