GhostManSD, вот, на основе скрипта Dracolichа.
!?OBx/y/l;При посещении объекта....
!!UN : U54/-1/?y1;Считаем количество бродячих монстров.
!!DO15/1/y1/1&y1>0 : P;Вызываем цикл, находящий и обрабатывающий бродячих монстров.
;Функция нахождения и обработки бродячего монстра.
!?FU15;Функция нахождения и обработки бродячего монстра.
!!UN : U54/-1/x16/1;Находим координаты бродячего монстра.
!!MO1 : G?y1;Считываем количество монстров.
!!OB : U?y2;Считываем номер мрнстра.
!!MA : Ly2/?y3;Считываем уровень монстра.
!!VRy4&y3<6 : S7-y3;Если монстр 1 - 6 уровня, вычисляем коэффициент для монстров 1 - 6 уровня.
!!VRy1&y3<6 : Sy1*y4;Если монстр 1 - 6 уровня, считаем новое количество монстров.
!!VRy1&y3=6 : Sy1*3:2;Если монстр 7 уровня, считаем новое количество монстров.
!!MO1 : Gy1;Устанавливаем новое количество монстров.
Добавлено:
М. А. К. С., я всё понял, оказывается я не все if-ы убрал.
Сейчас исправлю.
(03.08.2010 18:38)Sav Wrote: [ -> ]М. А. К. С., я всё понял, оказывается я не все if-ы убрал.
Сейчас исправлю.
Спасибо
М. А. К. С., я всё понял, оказывается я не все if-ы убрал.
Исправил.
!?CM2&$mc where$=119/$mc flags$=512;
!!CM:R0;
!!IF:W-1;
!!IF:Q1/17/w46/4^ ВТОРИЧНЫЕ НАВЫКИ
Неистраченные очки: {%W46}^;
!?CM2&$mc where$=119/$mc type$=12;
!!CM:R0;
!!IF:W-1;
!!HE-1:N?y1;
!!VRv2:S0;
!!DO22510/0/27/1:Py1/2;
!!IF&w46=0:M^У вас нет очков вторичных навыков!^;
!!FU&w46=0:E;
!!HE-1:B2/?y10;
!!VRy10:%2;
!!VRy10&w200=1:S2;
!!VRz1:S^~ Изучение нового навыка: ~^;
!!VRz2:S^Нейтральные^;
!!VRz3:S^Боевые^;
!!VRz4:S^Магические^;
!!VRz5:S^Отмена^;
!!IF:G1/5/8/1/2/3/4/5;
!!FU&v5=8:E;
!!FU9501&v5=1 : Py1/y10/y12/y77/?y1/?y10/?y12/?y77;
!!FU9502&v5=2 : Py1/y10/y11/?y1/?y10/?y11;
!!FU9503&v5=4 : Py1/y10/y11/?y1/?y10/?y11;
!?CM2&$mc where$>=79/$mc where$<=86/$mc flags$=32/
$mc type$=12;
!!CM:R0;
!!VRy1:S$mc where$-78;
!!HE-1:Sy1/?y2/1;
!!FU&y2=-1:E;
!!HE-1:Sy2/?y3;
!!VRy4:Sy2*3+2+y3;
!!IF:Q2/20/y4/2^ Вы желаете обменять данный навык на
1000 очков опыта?^;
!!FU&-2:E;
!!HE-1:Sy2/0;
!!FU22512:P;
!!VRw46:+1000;
!!UN:R3/-1;
!?CM2&$mc where$>=79/$mc where$<=86/$mc flags$=4/
$mc type$=12;
!!CM:R0;
!!VRy1:S$mc where$-78;
!!HE-1:Sy1/?y2/1;
!!FU&y2=-1:E;
!!HE-1:Sy2/?y99;
!!VRy98&y99=3:Sy2*3+2+y99;
!!IF&y99=3:Q1/20/y98/1^ Текущий навык уже на экспертном
уровне!^;
!!FU&y99=3:E;
!!HE-1:B2/?y10;
!!VRy10:%2;
!!VRy10&w200=1:S2;
!!VRy3&y2=0:S0;
!!VRy3&y2=1:S1;
!!VRy3&y2=2:S0;
!!VRy3&y2=3:S0;
!!VRy3&y2=4:S0;
!!VRy3&y2=5:S0;
!!VRy3&y2=6:S1;
!!VRy3&y2=7:S2;
!!VRy3&y2=8:S2;
!!VRy3&y2=9:S1;
!!VRy3&y2=10:S1;
!!VRy3&y2=11:S2;
!!VRy3&y2=12:S0;
!!VRy3&y2=13:S0;
!!VRy3&y2=14:S2;
!!VRy3&y2=15:S2;
!!VRy3&y2=16:S2;
!!VRy3&y2=17:S2;
!!VRy3&y2=18:S2;
!!VRy3&y2=19:S1;
!!VRy3&y2=20:S1;
!!VRy3&y2=21:S0;
!!VRy3&y2=22:S1;
!!VRy3&y2=23:S1;
!!VRy3&y2=24:S2;
!!VRy3&y2=25:S2;
!!VRy3&y2=26:S1;
!!VRy3&y2=27:S1;
!!VRy4:S1000;
!!VRy4&y10=2:S1000;
!!VRy4&y10=0/y3=1:S1000;
!!VRy4&y10=0/y3=2:S1000;
!!VRy4&y10=1/y3=2:S1000;
!!VRy4&y10=1/y3=1:S1000;
!!VRy4&y10=2/y3=0:S1000;
!!IF:W-1;
!!VRy5:Sy2*3+2+y99;
!!IF&w46<y4:Q1/20/y5/1^{К сожалению}
невозможно повысить уровень данного навыка!
--------------------------------------------
Кол -во вторичных очков: {%W46}
Требуемое кол-во: {%Y4}
^;
!!FU&w46<y4:E;
!!IF:Q2/20/y5/2^{Статистика}:
Текущее кол-во очков: {%W46}
Требуемое кол-во: {%Y4}
-------------------------------
Желаете улучшить данный навык?^;
!!FU&-2:E;
!!VRz1:S^ss_upg.WAV^;
!!SN:Pz1;
!!HE-1:Sy2/d1;
!!VRw46:*-1+y4*-1;
!!FU22512:P;
!!UN:R3/-1;
--------------------
!?FU9501;
!!VRx4:S1000;
!!VRx4&x2=2:S1000;
!!VRz2:S^ Выберите навык для изучения: {Стоимость: %Y77
| Имеется: %W46}^;
!!HE-1:S0/?v24;
!!HE-1:S2/?v25;
!!HE-1:S3/?v26;
!!HE-1:S4/?v27;
!!HE-1:S5/?v28;
!!HE-1:S13/?v29;
!!HE-1:S21/?v30;
!!FU22505:P22/23/24/25/26/27/28/29/30/31/32/33;
!!VRz22&v24=0:S^ Поиск Пути^;
!!VRz23&v25=0:S^Логистика^;
!!VRz24&v26=0:S^Разведка^;
!!VRz25&v27=0:S^Дипломатия^;
!!VRz26&v28=0:S^Навигация^;
!!VRz27&v29=0:S^Имущество^;
!!VRz28&v30=0:S^Обучение^;
!!VRz29:S^Отмена^;
!!IF:G1/1/128/2/22/23/24/25/26/27/28/29;
!!VRv360:S0;
!!DO22515/0/30/1:Pv1/360;
!!VRx3:Sv360+1;
!!FU&x3=8:E;
!!VRw46:-x4;
!!VRx1&x3=1:S0;
!!VRx1&x3=2:S2;
!!VRx1&x3=3:S3;
!!VRx1&x3=4:S4;
!!VRx1&x3=5:S5;
!!VRx1&x3=6:S13;
!!VRx1&x3=7:S21;
!!HE-1:Sx1/1;
!!VRz1:S^sslearn.WAV^;
!!SN:Pz1;
!!FU22512:P;
!!UN:R3/-1;
!!VRx5 : Sx1;
!!VRx6 : Sx2;
!!VRx7 : Sx3;
!!VRx8 : Sx4;
!?FU9502;
!!VRx1:S1000;
!!VRx1&x2=0:S1000;
!!VRx1&x2=1:S1000;
!!HE-1:S1/?v24;
!!HE-1:S6/?v25;
!!HE-1:S9/?v26;
!!HE-1:S10/?v27;
!!HE-1:S19/?v28;
!!HE-1:S20/?v29;
!!HE-1:S22/?v30;
!!HE-1:S23/?v31;
!!HE-1:S26/?v32;
!!HE-1:S27/?v33;
!!FU22505:P22/23/24/25/26/27/28/29/30/31/32/33;
!!VRz2:S^ Выберите навык для изучения: {Стоимость: %Y1 |
Имеется: %W46}^;
!!VRz22&v24=0:S^Стрельба^;
!!VRz23&v25=0:S^Воодушевление^;
!!VRz24&v26=0:S^Удача^;
!!VRz25&v27=0:S^Баллистика^;
!!VRz26&v28=0:S^Тактика^;
!!VRz27&v29=0:S^Артиллерия^;
!!VRz28&v30=0:S^Нападение^;
!!VRz29&v31=0:S^Броня^;
!!VRz30&v32=0:S^Сопротивление^;
!!VRz31&v33=0:S^Первая Помощь^;
!!VRz32:S^Отмена^;
!!IF:G1/1/1024/2/22/23/24/25/26/27/28/29/30/31/32;
!!VRv360:S0;
!!DO22515/0/30/1:Pv1/360;
!!VRx3:Sv360+1;
!!FU&x3=11:E;
!!VRw46:*-1+x1*-1;
!!VRx1&x3=1:S1;
!!VRx1&x3=2:S6;
!!VRx1&x3=3:S9;
!!VRx1&x3=4:S10;
!!VRx1&x3=5:S19;
!!VRx1&x3=6:S20;
!!VRx1&x3=7:S22;
!!VRx1&x3=8:S23;
!!VRx1&x3=9:S26;
!!VRx1&x3=10:S27;
!!HE-1:Sx1/1;
!!VRz1:S^sslearn.WAV^;
!!SN:Pz1;
!!FU22512:P;
!!UN:R3/-1;
!!VRx4 : Sx1;
!!VRx5 : Sx2;
!!VRx6 : Sx3;
!?FU9503;
!!VRx1:S1000;
!!VRx1&x2=0:S1000;
!!VRx1&x2=1:S1000;
!!HE-1:S7/?v24;
!!HE-1:S8/?v25;
!!HE-1:S11/?v26;
!!HE-1:S14/?v27;
!!HE-1:S15/?v28;
!!HE-1:S16/?v29;
!!HE-1:S17/?v30;
!!HE-1:S18/?v31;
!!HE-1:S24/?v32;
!!HE-1:S25/?v33;
!!FU22505:P22/23/24/25/26/27/28/29/30/31/32/33;
!!VRz2:S^ Выберите навык для изучения: {Стоимость: %Y1 |
Имеется: %W46}^;
!!VRz22&v24=0:S^Мудрость^;
!!VRz23&v25=0:S^Мистицизм^;
!!VRz24&v26=0:S^Глаз Орла^;
!!VRz25&v27=0:S^Магия Огня^;
!!VRz26&v28=0:S^Магия Воздуха^;
!!VRz27&v29=0:S^Магия Воды^;
!!VRz28&v30=0:S^Магия Земли^;
!!VRz29&v31=0:S^Грамотность^;
!!VRz30&v32=0:S^Интеллект^;
!!VRz31&v33=0:S^Волшебство^;
!!VRz32:S^Отмена^;
!!VRv2:S0;
!!IF:G1/1/1024/2/22/23/24/25/26/27/28/29/30/31/32;
!!VRv360:S0;
!!DO22515/0/30/1:Pv1/360;
!!VRx3:Sv360+1;
!!FU&x3=11:E;
!!VRw46:*-1+x1*-1;
!!VRx1&x3=1:S7;
!!VRx1&x3=2:S8;
!!VRx1&x3=3:S11;
!!VRx1&x3=4:S14;
!!VRx1&x3=5:S15;
!!VRx1&x3=6:S16;
!!VRx1&x3=7:S17;
!!VRx1&x3=8:S18;
!!VRx1&x3=9:S24;
!!VRx1&x3=10:S25;
!!HE-1:Sx1/1;
!!VRz1:S^sslearn.WAV^;
!!SN:Pz1;
!!FU22512:P;
!!UN:R3/-1;
!!VRx4 : Sx1;
!!VRx5 : Sx2;
!!VRx6 : Sx3;
6.07.2010 07:02
Добавлено:
Извини, повторился - у меня просто инет лагает.
(03.08.2010 18:59)Sav Wrote: [ -> ]М. А. К. С., я всё понял, оказывается я не все if-ы убрал.
Исправил.
СПС, все работает
Sav, долго скрипт не пахал. Потом вник, в чем дело. Вместо !!OB:... должно быть !!OBv1/v2/v3:... Добавил еще пару десятков строк, дабы число монстров увеличивалось по дробному коэффициенту (3 знака после запятой).
GhostManSD, извини, я сам потестить не мог - потому и ошибся.

М. А. К. С., в моём скрипте, делающим битву со случайным монстром была ошибка. Здесь исправленный вариант.
!?OBx/y/l&-11/1000;При посещении человеком непосещённого объекта...
!!OBx/y/l : M-1/1/0;Убираем стандартное собщение.
!!VRz10 : S^Куда пойдёшь?^;Устанавливаем текст вопроса.
!!VRz11 : S^Налево.^;Устанавливаем текст 1 варианта ответа.
!!VRz12 : S^Направо.^;Устанавливаем текст 2 варианта ответа.
!!VRz13 : S^Прямо.^;Устанавливаем текст 3 варианта ответа.
!!VRz14 : S^Прочь отсюда.^;Устанавливаем текст 4 варианта ответа.
IF : G1/5001/0/10/11/12/13/14;Вызываем диалог.
!!VRv5002 : S-1;Устанавливаем переменную награды в -1.
!?OBx/y/l&-11/1000/v5001<8;При посещении человеком непосещённого объекта, если он выбрал один из путей...
!!VRy-1 : R165;Генерируем случайный номер монстра.
!!VRy-1&y-1>121 : Sy-1+1;Исключаем 1 неиспользуемого монстра.
!!VRy-1&y-1>123 : Sy-1+1;Исключаем 2 неиспользуемого монстра.
!!VRy-1&y-1>125 : Sy-1+1;Исключаем 3 неиспользуемого монстра.
!!VRy-1&y-1>127 : Sy-1+1;Исключаем 4 неиспользуемого монстра.
!!VRy-1&y-1>144 : Sy-1+5;Исключаем боевые машины и стрелковые башни.
!!VRy-1&y-1>159 : Sy-1+4;Исключаем Эмиссаров.
!!VRy-1&y-1>173 : Sy-1+18;Исключаем командиров.
!!MA : Cy-1/6/?y-2;Считываем стоимость монстра.
!!VRy-3 : S30000:y-2;Вычисляем количество монстров исходя из стоимости.
!!HE-1 : Tx/y/l/y-1/y-3;Вызываем сражение с этими монстрами.
!!HE-1 : O?v5002;Проверяем, победил ли герой (проверяем его хозяина после битвы), если нет - в переменную награды попадёт -1.
!?OBx/y/l&-11/1000/v5002>-1;При посещении человеком непосещённого объекта, если переменная награды больше -1...
!!VRy-1 : R2;Генерируем случайный номер награды.
IF&y-1=0 : M^Вы получаете по 10 каждого ресурса!^;Если номер награды равен 1, выводим сообщение.
!!OW&y-1=0 : R-1/0/10 R-1/1/10 R-1/2/10 R-1/3/10 R-1/4/10 R-1/5/10;Если номер награды равен 1, даём игроку по 10 каждогь ресурса.
IF&y-1=1 : M^Вы получаете 40 кабанов!^;Если номер награды равен 2, выводим сообщение.
!!HE-1&y-1=1 : C2/140/40/1;Если номер награды равен 2, даём герою 40 кабанов.
IF&y-1=2 : M^Вы получаете Голубку Удачи!^;Если номер награды равен 3, выводим сообщение.
!!HE-1&y-1=2 : A4/48;Если номер награды равен 3, даём герою Голубку удачи.
!!IF : V11/1;Устанавливаем флаг посещённости.
!?OBx/y/l&11/1000;При посещении человеком посещённого объекта...
!!OBx/y/l : M-1/1/0;Убираем стандартное собщение.
IF : M^Надпись неразборчива.^;Выводим сообщение.
2ая строка
Quote:!!OWx/y/l : M-1/1/0;
OB все-таки?
Quote:!!HE-1&y-1=2 : A48;Если номер награды равен 3, даём герою Голубку удачи.
A4/48 нужно. во избежание
Да и вообще, стиль написания сильно напоминает индусов :^^:
Первое - конечно.
Второе - вроде действительно лучше, тебе лучше знать.
Сейчас поправлю предыдущий пост.
По поводу стиля написания не понял, что тебе не нравится? И, кстати, что значит ^^?
Sav, даже лучше, что ошибся: есть возможность самому разобраться. Заодно можно детально разобрать скрипт и вникнуть в его суть. Так потихоньку и учусь, благодаря замечательным людям с этого форума. Взял скрипт готовый, открыл ERM-Help и вникаешь. По-моему, это просто замечательный способ учиться.

Dracolich, а чем плох !!HE-1:Ax? Справки просто нет под рукой. Артефакт коряво добавляется? Или одна команда добавляет в рюкзак, а другая - в слот (если тот не занят, иначе - в рюкзак)?
Добавлено:
^^ - один из кавайных эмотиконов. Или, например, ^_~. Или даже d^,^b.
Вот, опять донимаю вас вопросами. Как сделать такую финтифлюшку: при начале новой недели, если это - неделя монстров, проверить количество появившихся монстров. Далее, если монстр 1-го уровня, то установить кол-во 80-100. Если второго - 70-90.
GhostManSD, вот.
Может, можно сделать это и лучше, но я не смог.
!#TM1 : S8/999/7/1;Устанавливаем таймер на каждый 1 день.
!?PI;В начале игры.
UN : X?y-1/?y-2;Считываем размер карты.
!!DO11/1/y-1/1 : Py-1/y-2/0;Вызываем цикл, устанавливающий PO-типы объектов.
!?TM1;Каждый 1 день...
!!UN : X?y-1/?y-2;Считываем размер карты.
!!DO11/0/y-2/1 : Py-1/y-2/1;Вызываем цикл, проверяющий карту на новых монстров и работающий с ними.
!?BA0;В начале битвы...
!!BA : P?v11/?v12/?v13;Получаем координаты атакованного.
!?BA1;В конце битвы...
!!POv11/v12/v13 : T0;Сбрасываем PO-тип объекта в этой точке.
;Функции установки PO-объектов и проверки монстров в одной вертикали на всех уровнях карты.
!?FU11;Функция прохода по вертикали карты.
!!DO12/1/x1/1 : Px2/x16/x3;Вызываем цикл, проходящий по вертикали карты.
!?FU12;Функция прохода по уровням в одной и той же координате карты и выбора установки или проверки.
!!DO13/0/x1/1&x3=0 : Px2/x16;Вызываем цикл установки клеток на разных уровнях в одной и той же координате карты.
!!DO14/0/x1/1&x3=1 : Px2/x16;Вызываем цикл проверки клеток на разных уровнях в одной и той же координате карты.
!!FU13;Функция установки клетки карты.
!!TRx1/x2/x16 : E?y1;Проверяем, нет ли объекта на клетке карты.
!!POx1/x2/x16&y1=1 : T0;Если на клетке карты нет объекта, сбрасываем PO-тип объекта.
!!FU&y1=1 : E;Если на клетке карты нет объекта, завершаем функцию.
!!OBx1/x2/x16 : T?y1;Проверяем тип объекта.
!!POx1/x2/x16 : Ty1;Устанавливаем PO-тип объекта.
!!FU14;Функции проверки клетки карты на монстров.
!!POx1/x2/x16 : T?y1;Проверяем PO-тип объекта на клетке карты.
!!FU&y1=54 : E;Если PO-тип объекта - монстр, завершаем функцию.
!!TRx1/x2/x16 : E?y1;Проверяем, нет ли объекта на клетке карты.
!!FU&y1=1 : E;Если на клетке карты нет объекта, завершаем функцию.
!!OBx1/x2/x16 : U?y1;Считываем номер монстра.
!!MA : Ly1/?y2;Считываем уровень монстра.
!!VRy3&y2=0 : S80;Если монстры - 1 уровня, устанавливаем переменную их количества.
!!VRy3&y2=0 : R20;Если монстры - 1 уровня, добавляем к переменной их количества случайное число.
!!VRy3&y2=1 : S70;Если монстры - 2 уровня, устанавливаем переменную их количества.
!!VRy3&y2=1 : R20;Если монстры - 1 уровня, добавляем к переменной их количества случайное число.
!!MOx1/x2/x16&y2=0|y2=1 : Gy3;Устанавливаем количество монстров.
!!POx1/x2/x16 : T54;Устанавливаем PO-тии объекта на клетке карты.
Не гарантирую, что сработает. Может тормозить игру. При постановке или удлении объекта надо установить PO-тип объекта на номер поставленного объекта или сбросить его в 0 с помощью PO : T.
Ого, как сложно. А это не будет задевать старых монстров, оставшихся с прошлых дней?
Sav, по идее, можно сделать иначе. В начале игры я уже пробежался циклом по монстрам и установил их минимальное количество. Можно добавить еженедельный таймер, включающий в себя цикл, который бы проверял всех монстров на количество. Если монстр первого левела с количеством менее 80, то установить кол-во от 80 до 100. Для второго и прочих уровней тоже считать.
По идее, это проще реализовать. Я сейчас понял, что это могу реализовать даже я. Если быть точным, я это уже реализовал в самом начале карты. Просто надо добавить в цикл проверку монстра в цикле на количество, а затем запускать еженедельный таймер, содержащий этот цикл.
То есть все появляющиеся монсты будут иметь количество менее 80, 70 и т. д.?
Тогда можно и просто проверять монстров в каждой неделе. Но тогда стоящие в начале игры монстры должны иметь количестово 80, 70 и т. д. и более.
У меня была пара недочётов, исправил.
!#TM1 : S8/999/7/1;Устанавливаем таймер на каждый 1 день.
!?PI;В начале игры.
UN : X?y-1/?y-2;Считываем размер карты.
!!DO11/1/y-1/1 : Py-1/y-2/0;Вызываем цикл, устанавливающий PO-типы объектов.
!?TM1;Каждый 1 день...
!!UN : X?y-1/?y-2;Считываем размер карты.
!!DO11/0/y-2/1 : Py-1/y-2/1;Вызываем цикл, проверяющий карту на новых монстров и работающий с ними.
!?BA0;В начале битвы...
!!BA : P?v11/?v12/?v13;Получаем координаты атакованного.
!?BA1;В конце битвы...
!!НЕ-1 : O?y-1;Проверяем, победил ли герой.
!!POv11/v12/v13&y-1>-1 : T?y-2;Если герой победил, проверяем, монстра ли он победил.
!!POv11/v12/v13&y-1>-1/y-2=54 : T0;Если герой победил монстра, сбрасываем PO-тип объекта в этой точке.
;Функции установки PO-типов объектов и проверки монстров в одной вертикали на всех уровнях карты.
!?FU11;Функция прохода по вертикали карты.
!!DO12/1/x1/1 : Px2/x16/x3;Вызываем цикл, проходящий по вертикали карты.
!?FU12;Функция прохода по уровням в одной и той же координате карты и выбора установки или проверки.
!!DO13/0/x1/1&x3=0 : Px2/x16;Вызываем цикл установки клеток на разных уровнях в одной и той же координате карты.
!!DO14/0/x1/1&x3=1 : Px2/x16;Вызываем цикл проверки клеток на разных уровнях в одной и той же координате карты.
!!FU13;Функция установки клетки карты.
!!TRx1/x2/x16 : E?y1;Проверяем, нет ли объекта на клетке карты.
!!POx1/x2/x16&y1=1 : T0;Если на клетке карты нет объекта, сбрасываем PO-тип объекта.
!!FU&y1=1 : E;Если на клетке карты нет объекта, завершаем функцию.
!!OBx1/x2/x16 : T?y1;Проверяем тип объекта.
!!POx1/x2/x16&y1=34 : T0;Если объект - герой, сбрасываем тип объекта на 0.
!!POx1/x2/x16&y1<>34 : Ty1;Если объект - не герой, устанавливаем PO-тип объекта.
!!FU14;Функции проверки клетки карты на монстров.
!!POx1/x2/x16 : T?y1;Проверяем PO-тип объекта на клетке карты.
!!FU&y1=54 : E;Если PO-тип объекта - монстр, завершаем функцию.
!!TRx1/x2/x16 : E?y1;Проверяем, нет ли объекта на клетке карты.
!!FU&y1=1 : E;Если на клетке карты нет объекта, завершаем функцию.
!!OBx1/x2/x16 : U?y1;Считываем номер монстра.
!!MA : Ly1/?y2;Считываем уровень монстра.
!!VRy3&y2=0 : S80;Если монстры - 1 уровня, устанавливаем переменную их количества.
!!VRy3&y2=0 : R20;Если монстры - 1 уровня, добавляем к переменной их количества случайное число.
!!VRy3&y2=1 : S70;Если монстры - 2 уровня, устанавливаем переменную их количества.
!!VRy3&y2=1 : R20;Если монстры - 1 уровня, добавляем к переменной их количества случайное число.
!!MOx1/x2/x16&y2=0|y2=1 : Gy3;Устанавливаем количество монстров.
!!POx1/x2/x16 : T54;Устанавливаем PO-тии объекта на клетке карты.
Смысл моего скрипта в том, что он в начале игры устанавливает PO-переменные для жёлтых (со входом, с монстром и т. д.) клеток карты на типы объектов, на них стоящих. В начале недели скрипт проверяет все клетки карты и, если видит, что на этой клетке есть монстр, но PO-тип этой клетки карты не соответсвует типу "монстр" (54), то скрипт считает такого монстра появившимся в начале недели и устанавливает его количество, а также устанавливает PO-переменную для этой клетки в 54 (чтобы больше этих монстров не трогать). Если какой-либо монстр побеждён в битве, скрипт сбрасывает PO-переменную на его клетке в 0. Всех поставленных скриптом монстров мой скрипт будет считать появившимися в начале недели, поэтому для каждой постановки объекта надо устанавливать PO-переменную в тип поставленного объекта, а для каждого удаления - в 0.
Вот только будет ли работать -не знаю.

Sav, если запустить таймер с первого дня в теле пост-инструкции, все сработает отлично.
Сейчас в голову пришла другая мысль. У меня было два цикла.
1. Первый цикл следовал непосредственно в теле !?PI и устанавливал количество монстров (1-й уровень - 100-125, 2-й - 75-100, 3-й - 60-75, 4-й - 45-60, 5-й - 30-45, 6-й - 15-30, 7-й - 5-15).
2. Второй цикл был включен в тело !?TM, сам же таймер выполнялся ежедневно. Цикл умножал количество монстров в зависимости от сложности на определенный коэффициент, устанавливая также значение !!PO:B (это оказалось необходимым, чтобы домножать количество монстров на дробный коэффициент, например, 1.033, не теряя при этом цифры за запятой).
Это - что было. Как я хочу сделать сейчас? Нужно включить второй цикл в еженедельный таймер. В цикле проверять кол-во найденных монстров и устанавливать их численность не менее и не более нужной мне.
Т.о., в теле !?PI будет два таймера: первый будет выполняться раз в неделю с первого дня и устанавливать кол-во монстров не менее нужного мне, а также заносить для новых монстров данные в !!PO:B. Второй таймер будет увеличивать число имеющихся монстров ежедневно, исходя из значения, выставленного в !!PO:B.