(25.03.2016 21:23)Algor Wrote: M.A.K.C., проще всего добавить через !!EA
Рабочий пример: option 822 - block snipers and wraiths.erm из ERA Scripts.
В !!EA такой опции нет, надо способность поставить юниту №37
покажи на примере? Заранее спасибо!
и вопрос
********************************************************************************
На карте периодически появляются камни силы и сундуки сокровищ"
********************************************************************************
!#TM43:S2/999/1/255;
!?TM43;
!!FU19022:P?y-1/?y-2/?y-3;Вызываем функцию генерации координат случайной свободной клетки.
!!VRy-10:R10;y1-случайное число (0..10)
!!UN&y-10=0:Iy-1/y-2/y-3/101/0/101/0/0/1;Ставим приз на клетку. сундук
!!UN&y-10=1:Iy-1/y-2/y-3/101/1/101/1/0/1;Ставим приз на клетку. сундук
!!UN&y-10=2:Iy-1/y-2/y-3/101/5/101/5/0/1;Ставим приз на клетку. сундук
!!UN&y-10=3:Iy-1/y-2/y-3/81/0/81/0/0/1;Ставим приз на клетку. ученый
!!UN&y-10=4:Iy-1/y-2/y-3/76/0/76/0/0/1;Ставим приз на клетку. случайный рессурс
!!UN&y-10=5:Iy-1/y-2/y-3/12/0/12/0/0/1;Ставим приз на клетку. костер
!!UN&y-10=6:Iy-1/y-2/y-3/62/0/62/0/0/1;Ставим приз на клетку. тюрьма
!!UN&y-10=7:Iy-1/y-2/y-3/101/7/101/7/0/1;Ставим приз на клетку. сундук
!!UN&y-10=8:Iy-1/y-2/y-3/101/8/101/8/0/1;Ставим приз на клетку. сундук
!!UN&y-10=9:Iy-1/y-2/y-3/101/9/101/9/0/1;Ставим приз на клетку. сундук
!!UN&y-10=10:Iy-1/y-2/y-3/101/10/101/10/0/1;Ставим приз на клетку. сундук
;Функции генерации случайной свободной клетки карты.
!?FU19022;Функция генерации случайной свободной клетки карты.
!!UN:X?y1/?y2;Считываем размеры карты.
!!VRy2:+1;Вычисляем количество уровней на карте.
!!VRy3:Sy1*y1*y2;Вычисляем количество клеток карты.
!!VRy3:-1;Вычисляем номер последней клетки карты.
!!VRy4:Sv2;Сохраняем значение глобальной переменной.
!!VRv2:S0;Обнуляем переменную счёта свободных клеток.
!!DO19023/0/y3/1:Py1/y2;Запускаем цикл, проходящийся по всем клеткам карты и считающий число свободных клеток на ней.
!!FU&v2<=0:E;Если свободных клеток нет, завершаем функцию.
!!VRy5:Sv2-1;Вычисляем условный номер последней свободной клетки.
!!VRv2:S0 Ry5;Генерируем случайный условный номер свободной клетки.
!!DO19024/0/y3/1:Py1/y2;Запускаем цикл, проходящийся по клеткам карты и вычисляющий реальный номер клетки.
!!VRx1:Sv2%y1;Вычисляем и возвращаем x-координату клетки.
!!VRx2:Sv2:y1%y1;Вычисляем и возвращаем y-координату клетки.
!!VRx3:Sv2:y1:y1%y2;Вычисляем и возвращаем z-координату клетки.
!!VRv2:Sy4;Восстанавливаем значение глобальной переменной.
!?FU19023;Функция проверки свободности клетки.
!!VRy1:Sx16%x1;Вычисляем x-координату клетки.
!!VRy2:Sx16:x1%x1;Вычисляем y-координату клетки.
!!VRy3:Sx16:x1:x1%x2;Вычисляем z-координату клетки.
!!TRy1/y2/y3:E?y4;Считываем проходимость клетки.
!!TRy1/y2/y3:P?y5;Считываем посещаемость клетки.
!!TRy1/y2/y3:T?y6/d/d/d/d/d/d/d;Считываем тип территории клетки.
!!FU&y4=0|y5=0/y6=8/y6=9:E;Если клетка недоступна, завершаем тфункцию.
!!OBy1/y2/y3:T?y7;Считываем тип объекта на клетке.
!!VRv2&y7<>34:+1;Если на клетке стоит не герой, добавляем 1 в переменную свободных клеток.
!?FU19024;Функция проверки свободности клетки.
!!VRy1:Sx16%x1;Вычисляем x-координату клетки.
!!VRy2:Sx16:x1%x1;Вычисляем y-координату клетки.
!!VRy3:Sx16:x1:x1%x2;Вычисляем z-координату клетки.
!!TRy1/y2/y3:E?y4;Считываем проходимость клетки.
!!TRy1/y2/y3:P?y5;Считываем посещаемость клетки.
!!TRy1/y2/y3:T?y6/d/d/d/d/d/d/d;Считываем тип территории клетки.
!!OBy1/y2/y3&y4=1/y5=1/y6<>8/y6<>9:T?y7;Если клетка свободна, считываем тип объекта на клетке.
!!VRv2&y4=0|y5=0/y6=8/y6=9/y7=34:+1;Если клетка несвободна или на ней есть герой, добавляем 1 в переменную реального номера клетки.
!!VRx16&x16=v2:Sx1*x1*x2;Если реальный номер клетки вычислен, завершаем цикл. **
****************************************************************************
********************************************************************************
На море периодически появляются няшки и морские сундуки "
********************************************************************************
!#TM44:S3/999/3/255;
!?TM44;
!!FU28450:P?y-1/?y-2/?y-3;Вызываем функцию генерации координат случайной свободной клетки.
!!VRy-10:R4;y1-случайное число (0..5)
!!UN&y-10=0:Iy-1/y-2/y-3/29/0/29/0/8/1;Ставим приз на клетку.
!!UN&y-10=1:Iy-1/y-2/y-3/82/0/82/0/8/1;Ставим приз на клетку.
!!UN&y-10=2:Iy-1/y-2/y-3/86/0/86/0/8/1;Ставим приз на клетку.
!!UN&y-10=3:Iy-1/y-2/y-3/59/0/59/0/8/1;Ставим приз на клетку.
!!UN&y-10=4:Iy-1/y-2/y-3/125/0/125/0/8/1;Ставим приз на клетку.
;Функции генерации случайной свободной клетки карты.
!?FU28450;Функция генерации случайной свободной клетки карты.
!!UN:X?y1/?y2;Считываем размеры карты.
!!VRy2:+1;Вычисляем количество уровней на карте.
!!VRy3:Sy1*y1*y2;Вычисляем количество клеток карты.
!!VRy3:-1;Вычисляем номер последней клетки карты.
!!VRy4:Sv2;Сохраняем значение глобальной переменной.
!!VRv2:S0;Обнуляем переменную счёта свободных клеток.
!!DO28451/0/y3/1:Py1/y2;Запускаем цикл, проходящийся по всем клеткам карты и считающий число свободных клеток на ней.
!!FU&v2<=0:E;Если свободных клеток нет, завершаем функцию.
!!VRy5:Sv2-1;Вычисляем условный номер последней свободной клетки.
!!VRv2:S0 Ry5;Генерируем случайный условный номер свободной клетки.
!!DO28452/0/y3/1:Py1/y2;Запускаем цикл, проходящийся по клеткам карты и вычисляющий реальный номер клетки.
!!VRx1:Sv2%y1;Вычисляем и возвращаем x-координату клетки.
!!VRx2:Sv2:y1%y1;Вычисляем и возвращаем y-координату клетки.
!!VRx3:Sv2:y1:y1%y2;Вычисляем и возвращаем z-координату клетки.
!!VRv2:Sy4;Восстанавливаем значение глобальной переменной.
!?FU28451;Функция проверки свободности клетки.
!!VRy1:Sx16%x1;Вычисляем x-координату клетки.
!!VRy2:Sx16:x1%x1;Вычисляем y-координату клетки.
!!VRy3:Sx16:x1:x1%x2;Вычисляем z-координату клетки.
!!TRy1/y2/y3:E?y4;Считываем проходимость клетки.
!!TRy1/y2/y3:P?y5;Считываем посещаемость клетки.
!!TRy1/y2/y3:T?y6/d/d/d/d/d/d/d;Считываем тип территории клетки.
!!FU&y4=8|y5=8/y6<8/y6=9:E;Если клетка недоступна, завершаем тфункцию.
!!OBy1/y2/y3:T?y7;Считываем тип объекта на клетке.
!!VRv2&y7<>34:+1;Если на клетке стоит не герой, добавляем 1 в переменную свободных клеток.
!?FU28452;Функция проверки свободности клетки.
!!VRy1:Sx16%x1;Вычисляем x-координату клетки.
!!VRy2:Sx16:x1%x1;Вычисляем y-координату клетки.
!!VRy3:Sx16:x1:x1%x2;Вычисляем z-координату клетки.
!!TRy1/y2/y3:E?y4;Считываем проходимость клетки.
!!TRy1/y2/y3:P?y5;Считываем посещаемость клетки.
!!TRy1/y2/y3:T?y6/d/d/d/d/d/d/d;Считываем тип территории клетки.
!!OBy1/y2/y3&y4=1/y5=1/y6<>0/y6<>9:T?y7;Если клетка свободна, считываем тип объекта на клетке.
!!VRv2&y4=8|y5=8/y6<8/y6=9/y7=34:+1;Если клетка несвободна или на ней есть герой, добавляем 1 в переменную реального номера клетки.
!!VRx16&x16=v2:Sx1*x1*x2;Если реальный номер клетки вычислен, завершаем цикл. **
Эти два скрипта оживляют игру, как добиться генерации случайных монстров?
Да, ERM SCRIPM MASTER нет новее 1.1.2.7?
в МОР вместе с его версией модификации шел редактор, позволяющий поставить монстрам способности, заклинания, стрельбу, такого отдельно нет?