Здравствуйте... Я включил в настройках "вог" опцию , при которой катапульта бьёт врагов огненным шаром.. Так бы ничего, но выяснились две проблемы, которые меня разочаровали сильно:
1. Враги в меня не стреляют с катапульты! Что делать или как их заставить стрелять в меня? Ход просто пропускают и всего делов.. Значимость катапульты не помогает выставить её применение врагами в боях (замки крушит само собой, но в бою один на один врагами не используется, хотя и имеется у них на поле битвы).. Как заставить врагов применять её против меня (в хэлпе не нашёл ответа на этот вопрос)
2. Если приблизиться к моей катапульте и нанесёт ей урон враг, то она, как говорится, не ответит, но если же я вдруг выстрелю в ближнем бою - игра тут же уходит в тёмный экран. Как эти баги можно вообще исправить...
Что-то мне подсказывает, что идея с катапультой не проработана как следует....
Так хочется бить всех катапультой, а не баллистой...
Может кто знает ответы....
Катапульте нужно скорость каждый ход в 0 ставить, как минимум.
Нашел в мануале ЭРЫ подобный пример:
Здесь используется функция GetGameState, где можно посмотреть список функций и значения которые они выдают? В мануале не нашел такого
Список функций можно посмотреть программой для просмотра списка экспортируемых функций dll. В отладчике ещё можно, если библиотека загружена.
А конкретно для Эры можно в исходниках (Tools\Era\Source), там уже и параметры, и возвращаемое значение, и назначение функции.
Quote:Катапульте нужно скорость каждый ход в 0 ставить, как минимум.
- я так понял, что дело тут очень тёмное и лучше мне в дебри эти, наверное, не лезть !!! Спасибо за то, что мой ответ, в отличие от первого, хоть как-то был удостоен внимания..
P.S. скорость у катапульты всё равно на нуле и ходит она в любом случае быстрее всех, как при штурме замка...
Тип существа изменяется с катапульты на магога, отсюда и все проблемы. Ничего "тёмного" тут нет.
Quote:Тип существа изменяется с катапульты на магога, отсюда и все проблемы. Ничего "тёмного" тут нет.
- я этот код разбирал и видел это.. Просто никак не могу врагов заставить использовать в битвах эту же катапульту, а без этого интерес как-то пропадает, поскольку они мне не могут ответить.. Я могу её использовать, но они почему то нет.. Они сами ход пропускают, я заметил и ходить не хотят.. Код там для меня чрезвычайно замудрёный...
fatsawhorse, я не сильно понимаю, в чем проблема. В BH враги используют катапульту, глянь там (BH Machines.erm).
Quote:fatsawhorse, я не сильно понимаю, в чем проблема. В BH враги используют катапульту, глянь там (BH Machines.erm).
- я первым делом рассматривал этот вариант, но там только по магии, но не по существам. Тем более, в хэлпе нет нигде никакого ресейвера, который бы принудительно заставил бы определённого монстра атаковать!!! Может быть я слепой, но нигде его не нашёл..
Вопрос, есть скрипт.
****************************************************************************
*********************На карте оявляется случайный монстр********************
****************************************************************************
!#TM45:S1/999/2/255;
!?TM45;
!!FU28447:P?y-1/?y-2/?y-3;Вызываем функцию генерации координат случайной свободной клетки.
!!VRy=11:R120;Генерируем случайный номер монстра.
!!UN:Iy-1/y-2/y-3/54/y11;Ставим случайного монстра на клетку.
!!VRy=12:R12;Устанавливаем случайное количество монстров.
!!MOy-1/y-2/y-3:Gy12;Устанавливаем случайное количество монстров.
;Функции генерации случайной свободной клетки карты.
!?FU28447;Функция генерации случайной свободной клетки карты.
!!UN:X?y1/?y2;Считываем размеры карты.
!!VRy2:+1;Вычисляем количество уровней на карте.
!!VRy3:Sy1*y1*y2;Вычисляем количество клеток карты.
!!VRy3:-1;Вычисляем номер последней клетки карты.
!!VRy4:Sv2;Сохраняем значение глобальной переменной.
!!VRv2:S0;Обнуляем переменную счёта свободных клеток.
!!DO28448/0/y3/1:Py1/y2;Запускаем цикл, проходящийся по всем клеткам карты и считающий число свободных клеток на ней.
!!FU&v2<=0:E;Если свободных клеток нет, завершаем функцию.
!!VRy5:Sv2-1;Вычисляем условный номер последней свободной клетки.
!!VRv2:S0 Ry5;Генерируем случайный условный номер свободной клетки.
!!DO28449/0/y3/1:Py1/y2;Запускаем цикл, проходящийся по клеткам карты и вычисляющий реальный номер клетки.
!!VRx1:Sv2%y1;Вычисляем и возвращаем x-координату клетки.
!!VRx2:Sv2:y1%y1;Вычисляем и возвращаем y-координату клетки.
!!VRx3:Sv2:y1:y1%y2;Вычисляем и возвращаем z-координату клетки.
!!VRv2:Sy4;Восстанавливаем значение глобальной переменной.
!?FU28448;Функция проверки свободности клетки.
!!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 в переменную свободных клеток.
!?FU28449;Функция проверки свободности клетки.
!!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;Если реальный номер клетки вычислен, завершаем цикл.
как привязать вычисление стоимости монстра к его количеству появляемому на карте?
!!MA : Cy-1/6/?y-2;Считываем стоимость монстра.
!!VRy-3 : S30000:y-2;Вычисляем количество монстров исходя из стоимости.
сколько не пытаюсь, скрипт глючит, заранее благодарен.
M.A.K.C. Wrote:сколько не пытаюсь, скрипт глючит, заранее благодарен.
Навскидку, перед этим кодом v2 хранит вовсе не то, что тебе нужно.
M.A.K.C. Wrote:
Это делать вовсе не обязательно, v2 - временная переменная и в ней ничего полезного нет. К тому же, вторая строка в общем случае не исполняется.
Was trying to place artifacts on monsters stacks, like this:
but when loop occurs, day 1, some monsters stacks give error (MO:A has no setup). Some work, some don't, any idea what I could do?
It only works for preconfigured monsters. ERM help has a list of what works this way. You can recreate the monster to enable this command, as all monsters placed via ERM will have necessary data.
Also it's slightly less than 5% chance in your code, because y2 can take on 101 different values (from 0 to 100).
Thanks, I figured out there must be something about editor. I managed to work around by replacing the monster script with post battle scripts.
And for chance, this?
!!VRy1:S1 R100;
!!FU&y1<=5:E;