ZVSE
!?BR&v997=-1/1000;В начале боя человека... !!DO90/0/41/1 : P9/0;Вызываем цикл, вызывающий стражу всех стеков. !!BU : R;Обновляем.
;Функции вызова стражи.
!?FU90;Функция поиска гексов для стражи. !!BMx16 : T?y7;Проверяем тип монстра. !!FU&y7<>x1 : E;Если монстр не подходит, выходим из функции. !!BMx16 : P?y7;Считываем позицию монстра. !!VRy8 : Sy7:17;Вычисляем ряд позиции монстра. !!VRy9 : Sy8%2;Вычисляем чётность ряда позиции монстра. !!VRy1 : Sy7-1;Вычисляем позицию 1 стражи. !!VRy2&y9=0 : Sy7-17;Вычисляем позицию 2 стражи, в зависимости от чётности ряда позиции монстра. !!VRy2&y9=1 : Sy7-18;Вычисляем позицию 2 стражи, в зависимости от чётности ряда позиции монстра. !!VRy3 : Sy2+1;Вычисляем позицию 3 стражи. !!VRy4 : Sy7+1;Вычисляем позицию 4 стражи. !!VRy5 : Sy2+35;Вычисляем позицию 5 стражи. !!VRy6 : Sy5-1;Вычисляем позицию 6 стражи. !!BMx16 : B?y10;Считываем количество монстров. !!BMx16 : I?y11;Считываем сторону монстра. !!DO91/1/6/1 : Py1/y2/y3/y4/y5/y6/y10/x2/y11;Вызываем цикл, вызывающий стражу на каждую клетку.
!?FU91;Функция постановки стражи на гекс. !!VRy1 : Sxx16%17;Считываем столбец позиции монстра. !!FU&y1=0|y1=16/xx16<1/xx16>185 : E;Если гекс вне поля боя, завершаем функцию. !!BU : Oxx16/?y1;Проверяем, нет ли препятствий на гексе. !!FU&y1>0 : E;Если на гексе есть препятствия, завершаем функцию. !!BU : Exx16/?y1;Проверяем, нет ли стека на гексе. !!BMy1&y1>-1 : T?y2;Если на гексе есть стек, проверяем тип монстра стека. !!BMy1&y1>-1/y2=x8 : Ndx7;Если на гексе есть стек, его тип монстра - нужный, добавляем туда нужное количество монстров. !!FU&y1>-1 : E;Если на гексе есть стек, завершаем функцию. !!BU : Sx8/x7/xx16/x9/-1/0;Вызываем стражу на гекс.
Добавлено:
Quote:Тогда что есть, что нет скрипта...
Не понял.
(This post was last modified: 10.08.2010 17:29 by Sav.)