Sav
Posts: 2180
|
А у тебя не сложнее? Сейчас ещё протестирую.
|
|
16.09.2010 21:43 |
|
GhostManSD
Posts: 1054
|
У меня можно даже без добавления функции. А у тебя - сканирование слотов и прочая. Речь же шла об отряде монстров, т.е. о тех, что на карте. Так что тут не надо сканировать каждый слот и вычислять его стоимость.
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
|
|
16.09.2010 21:57 |
|
Sav
Posts: 2180
|
Поправил свой скрипт (в предпрошлом сообщении). Теперь он точно работает.
Кстати, у него есть преимущество в том, что он считает цену улучшенного стека среди неулучшенных монстров, если таковой появился. Добавлено:
GhostManSD, ты зря запоминаешь владельца героя. Можно просто сравнить с -1.
(This post was last modified: 16.09.2010 22:02 by Sav.)
|
|
16.09.2010 22:00 |
|
GhostManSD
Posts: 1054
|
Sav, кстати, да. Спасибо.
А насчет улучшенного отряда стеков - не критично, ибо игрок, имхо, должен получать совсем копейки за такие победы. А то особого баланса это не привнесет.
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
|
|
16.09.2010 22:04 |
|
Sav
Posts: 2180
|
GhostManSD, в твоём скрипте деньги не добавляются.
|
|
16.09.2010 22:05 |
|
M.A.K.C.
Posts: 472
|
(16.09.2010 21:26)GhostManSD Wrote: Если брать проценты, то будет более справедливо. Золото за победу = 25% *[стоимость существа] *[количество]. Справки под рукой нет, пишу в общем виде:
не работает (скрипт)
Все свежие обновления я выкладываю на своем сайте здесь.
(This post was last modified: 16.09.2010 22:12 by M.A.K.C..)
|
|
16.09.2010 22:11 |
|
Sav
Posts: 2180
|
Quote:не работает (скрипт)
Quote:Все работает
Так работает или нет?
(This post was last modified: 16.09.2010 22:20 by Sav.)
|
|
16.09.2010 22:17 |
|
GhostManSD
Posts: 1054
|
Я ж говорю, писал без справки. Не до того сейчас, Ксенофонт давит мертвым грузом.
И все же, работает или нет?
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
|
|
16.09.2010 22:24 |
|
Sav
Posts: 2180
|
Поправленный вариант у меня работает.
!?OB54/-1; Триггер при посещении монстра
!!OBv998/v999/v1000:U?y-1; Запомнить номер существа
!!MA:Cy-1/6/?y-2; Запомнить стоимость монстра
!!MOv998/v999/v1000:G?y-3; Запомнить кол-во
!!FU9000:Py-2/y-3; Запустить функцию вычисления получаемого золота
!?FU9000; Функция вычисления получаемого золота
; x1 - стоимость монстра, x2 - количество
!!VRx1:*25 :100; Вычислить 25% от стоимости
!!VRv9401:Sx1 *x2; Вычислить количество золота
!$OB54/-1; Пост-триггер при посещении монстра
!!HE-1:O?y-1; Запомнить владельца героя
!!FU&y-1=-1:E; Выйти, если игрок проиграл
!!OW:R-1/6/dv9401; Установить новое количество золота
!!UN:R2; Проблема, видимо, была в переменной v9001, по всей видимости используемой в бою и обнулявшейся, но я изменил там ещё немало чего, так что не факт.
(This post was last modified: 16.09.2010 22:29 by Sav.)
|
|
16.09.2010 22:29 |
|
GhostManSD
Posts: 1054
|
Стараюсь не добавлять значения через префикс d. Ибо не всегда работает нужным образом.
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
|
|
16.09.2010 22:34 |
|
Sav
Posts: 2180
|
GhostManSD Wrote:Стараюсь не добавлять значения через префикс d. Ибо не всегда работает нужным образом.
А можно пример? У меня всегда с d всё работало. А делать с нем проще и изящнее.
|
|
16.09.2010 22:36 |
|
M.A.K.C.
Posts: 472
|
Все работает (вариант Sav)
Вариант GhostManSD предыдущая версия не работала
!#TM51:S30/30/7/1;Устанавливаем таймер на 30 день.
!?TM51;При срабатывании таймера... !!VRv62:S-1;Подготавливаем x-координату к поиску координат шахт. !!UN:U53/-1/?y1;Считаем количество шахт на карте. !!DO91/1/y1/1:P53;Запускаем цикл, находящий и устанавливающий все шахты на карте.
!?FU91;Функция поиска и установки шахты. !!UN:Ux1/-1/-1/62;Находим координаты шахты. !!MNv62/v63/v64:O-1;Делаем шахту нейтральной. !!VRy1:R165;Генерируем случайный номер монстра. !!VRy1&y1>121:Sy1+1;Исключаем 1 неиспользуемого монстра. !!VRy1&y1>123:Sy1+1;Исключаем 2 неиспользуемого монстра. !!VRy1&y1>125:Sy1+1;Исключаем 3 неиспользуемого монстра. !!VRy1&y1>127:Sy1+1;Исключаем 4 неиспользуемого монстра. !!VRy1&y1>144:Sy1+5;Исключаем боевые машины и стрелковые башни. !!VRy1&y1>159:Sy1+4;Исключаем Эмиссаров. !!VRy1&y1>173:Sy1+18;Исключаем командиров. !!MA:Cy1/6/?y2;Считываем стоимость монстра. !!VRy3:S30000:y2;Вычисляем количество монстров исходя из стоимости. !!MNv62/v63/v64:M0/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M1/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M2/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M3/y1/y3;Устанавливаем этих монстров на охрану шахты. !!MNv62/v63/v64:M4/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M5/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M6/-1/0;Обнуляем охрану шахты.
на 30-й день выдает ошибку !!MA:Cy1/6/?y2;Считываем стоимость монстра. как быть?
Все свежие обновления я выкладываю на своем сайте здесь.
(This post was last modified: 16.09.2010 22:38 by M.A.K.C..)
|
|
16.09.2010 22:37 |
|
Sav
Posts: 2180
|
Исправил шахты. Побочный эффект - шахта во время её посещения меняет владельца на "левого". Это исправляется после посещения и не влияет на игру, но может бросаться в глаза при быстрой битве.
!#IF:V20/0;Сбрасываем контрольный флаг.
!#TM51:S30/30/7/1;Устанавливаем таймер на 30 день.
!?TM51;При срабатывании таймера... !!VRv62:S-1;Подготавливаем x-координату к поиску координат шахт. !!UN:U53/-1/?y1;Считаем количество шахт на карте. !!DO91/1/y1/1:P53;Запускаем цикл, находящий и устанавливающий все шахты на карте.
!?OB53;При посещении шахты... !!MNv998/v999/v1000:O?y-1;Проверяем влдельца шахты. !!FU&y-1>-1:E;Если у шахты есть владелец, выходим из триггера. !!OBv998/v999/v1000:U?y-1;Считываем подтип шахты. !!FU&y-1=7:E;Если шахта - заброшенная, выходим из триггера. !!OW:C?y-1;Считываем цвет текущего игрока. !!VRy-2:S7-y-1;Вычисляем цвет временного влдельца шахты. !!MNv998/v999/v1000:Oy-2/1;Устанавливаем временного влдельца шахты. !!IF:V20/1;Устанавливаем контрольный флаг.
!$OB53&20;После посещения шахты, если контрольный флаг равен 1... !!OW:C?y-1;Считываем цвет текущего игрока. !!MNv998/v999/v1000:O?y-2;Считываем цвет влдельца шахты. !!MNv998/v999/v1000&y-1<>y-2:O-1;Если владелец шахты - не текущий игрок, делаем шахту нейтральной. !!IF:V20/0;Сбрасываем контрольный флаг.
!?FU91;Функция поиска и установки шахты. !!UN:Ux1/-1/-1/62;Находим координаты шахты. !!MNv62/v63/v64:O-1;Делаем шахту нейтральной. !!VRy1:S0 R165;Генерируем случайный номер монстра. !!VRy1&y1>121:Sy1+1;Исключаем 1 неиспользуемого монстра. !!VRy1&y1>123:Sy1+1;Исключаем 2 неиспользуемого монстра. !!VRy1&y1>125:Sy1+1;Исключаем 3 неиспользуемого монстра. !!VRy1&y1>127:Sy1+1;Исключаем 4 неиспользуемого монстра. !!VRy1&y1>144:Sy1+5;Исключаем боевые машины и стрелковые башни. !!VRy1&y1>159:Sy1+4;Исключаем Эмиссаров. !!VRy1&y1>173:Sy1+18;Исключаем командиров. !!MA:Cy1/6/?y2;Считываем стоимость монстра. !!VRy3:S30000:y2;Вычисляем количество монстров исходя из стоимости. !!MNv62/v63/v64:M0/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M1/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M2/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M3/y1/y3;Устанавливаем тип и количество монстров на охране шахты. !!MNv62/v63/v64:M4/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M5/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M6/-1/0;Обнуляем охрану шахты.
|
|
16.09.2010 23:31 |
|
M.A.K.C.
Posts: 472
|
(16.09.2010 23:31)Sav Wrote: Исправил шахты. Побочный эффект - шахта во время её посещения меняет владельца на "левого". Это исправляется после посещения и не влияет на игру, но может бросаться в глаза при быстрой битве.
!#IF:V20/0;Сбрасываем контрольный флаг.
!#TM51:S30/30/7/1;Устанавливаем таймер на 30 день.
!?TM51;При срабатывании таймера... !!VRv62:S-1;Подготавливаем x-координату к поиску координат шахт. !!UN:U53/-1/?y1;Считаем количество шахт на карте. !!DO91/1/y1/1:P53;Запускаем цикл, находящий и устанавливающий все шахты на карте.
!?OB53;При посещении шахты... !!MNv998/v999/v1000:O?y-1;Проверяем влдельца шахты. !!FU&y-1>-1:E;Если у шахты есть владелец, выходим из триггера. !!OBv998/v999/v1000:U?y-1;Считываем подтип шахты. !!FU&y-1=7:E;Если шахта - заброшенная, выходим из триггера. !!OW:C?y-1;Считываем цвет текущего игрока. !!VRy-2:S7-y-1;Вычисляем цвет временного влдельца шахты. !!MNv998/v999/v1000:Oy-2/1;Устанавливаем временного влдельца шахты. !!IF:V20/1;Устанавливаем контрольный флаг.
!$OB53&20;После посещения шахты, если контрольный флаг равен 1... !!OW:C?y-1;Считываем цвет текущего игрока. !!MNv998/v999/v1000:O?y-2;Считываем цвет влдельца шахты. !!MNv998/v999/v1000&y-1<>y-2:O-1;Если владелец шахты - не текущий игрок, делаем шахту нейтральной. !!IF:V20/0;Сбрасываем контрольный флаг.
!?FU91;Функция поиска и установки шахты. !!UN:Ux1/-1/-1/62;Находим координаты шахты. !!MNv62/v63/v64:O-1;Делаем шахту нейтральной. !!VRy1:S0 R165;Генерируем случайный номер монстра. !!VRy1&y1>121:Sy1+1;Исключаем 1 неиспользуемого монстра. !!VRy1&y1>123:Sy1+1;Исключаем 2 неиспользуемого монстра. !!VRy1&y1>125:Sy1+1;Исключаем 3 неиспользуемого монстра. !!VRy1&y1>127:Sy1+1;Исключаем 4 неиспользуемого монстра. !!VRy1&y1>144:Sy1+5;Исключаем боевые машины и стрелковые башни. !!VRy1&y1>159:Sy1+4;Исключаем Эмиссаров. !!VRy1&y1>173:Sy1+18;Исключаем командиров. !!MA:Cy1/6/?y2;Считываем стоимость монстра. !!VRy3:S30000:y2;Вычисляем количество монстров исходя из стоимости. !!MNv62/v63/v64:M0/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M1/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M2/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M3/y1/y3;Устанавливаем тип и количество монстров на охране шахты. !!MNv62/v63/v64:M4/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M5/-1/0;Обнуляем охрану шахты. !!MNv62/v63/v64:M6/-1/0;Обнуляем охрану шахты.
Все работает, большое тебе спасибо за такую работу и помощь.
Все свежие обновления я выкладываю на своем сайте здесь.
|
|
16.09.2010 23:49 |
|
Valery
Posts: 2196
|
Is there any way to make a creature walk then shoot from destination position? (re-enable turn in some way, trigger 100% morale?)
67108864 bits (set if done) is triggering on the next creature turn, so will not work.
|
|
18.09.2010 20:22 |
|