Wake of Gods Forum | Форум Во Имя Богов

Full Version: ERA Scripts 1.46f
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Algor, Drake снова радует! Ab
ERA SCRIPTS ENG на ЯД
Абсолютно замечательный!!
Drake, thanks for translation, dude! 132
(01.03.2020 22:03)Berserker Wrote: [ -> ]Drake, thanks for translation, dude! 132

No problem Bersy! Really enjoy seeing the end results and excited about JSON changes
Drake, огромное спасибо за работу!
Перезалил к себе на постоянное место.

По результатам полностью отыгранной партии (в кои-то веки!) сформировал немалый список багов. Критичных для геймплея или приводящих к вылетам среди них нет, так что исправлять буду не сильно спешно - опят начинаются грабли со свободным временем.

Пользуясь случаем спрошу: никто не в курсе, как работает механизм снятия корней дендроидов с целей? Может есть какая-то функция проверки/снятия? А то один из багов с ассасинами как раз в том, что после убийства дендроидов при определенных условиях их корни остаются висеть на цели, что неприятно.

Наличие ассасинов у ИИ, кстати, реально злит. Совет: частота спавна ассасинов косвенно завязана на количество отрядов у героя, которому они подчиняются. Чем меньше отрядов, тем меньше шанс появления ассасинов в раунде.
(01.03.2020 22:16)Algor Wrote: [ -> ]никто не в курсе, как работает механизм снятия корней дендроидов с целей?

Если склероз не изменяет, то в структуре стека состояние корней регулируется 2 переменными: в первой записывается номер стека, который наложил корни (который потом сбрасывается в -1, когда при проверке соседних клеток этот номер не обнаруживается), второй - маркер, участвующий в проверках для ИИ.
А проверка соседних клеток происходит при каких событиях случайно не помнишь?
(02.03.2020 00:33)Algor Wrote: [ -> ]А проверка соседних клеток происходит при каких событиях случайно не помнишь?

Прошу прощения, но склероз меня обманул. Снятие корней происходит в функции combatMonster_ResetSpellFromStack, которая вызывается при любом чихе и поползновении монстра. Вот кусок кода, проверяющий корни:

Code:
v5 = this->Roots_508;
        if ( v5 )
          v6 = (this->Roots_50C - v5) >> 2;
        else
          v6 = 0;
        v7 = v6;
        LODWORD(v8) = v6 - 1;
        v50 = v8;
        if ( !v7 )
          goto LABEL_18;
        break;

Т.е. чтобы проверка работала, в структуре проверяемого стека должны быть записаны 3 адреса структур стеков, которые наложили корни и с которых должны корни сниматься, если их там нет, то корни будут висеть вечно и никогда не снимутся.
(02.03.2020 12:34)XEPOMAHT Wrote: [ -> ]
(02.03.2020 00:33)Algor Wrote: [ -> ]А проверка соседних клеток происходит при каких событиях случайно не помнишь?
в функции combatMonster_ResetSpellFromStack, которая вызывается при любом чихе и поползновении монстра
При любом чихе какого монстра? На котором корни или дендроида?
И как можно вызвать эту функцию из ERM?

Вообще, кроме моего случая, емнип, был еще старый баг, когда дендроиды, попутавшие друг друга под берсерком оставались скованными до конца раунда. Тоже можно было бы поправить.
(02.03.2020 14:59)Algor Wrote: [ -> ]При любом чихе какого монстра? На котором корни или дендроида?

На котором повешены корни. По номеру заклинания.

(02.03.2020 14:59)Algor Wrote: [ -> ]И как можно вызвать эту функцию из ERM?

Примерно как-то так:

!!SN:E444230h/thiscall/структура_стека/номер_закла;

(02.03.2020 14:59)Algor Wrote: [ -> ]Вообще, кроме моего случая, емнип, был еще старый баг, когда дендроиды, попутавшие друг друга под берсерком оставались скованными до конца раунда. Тоже можно было бы поправить.

Не представляю как такой баг исправить. Для начала нужно узнать причину его.
Algor, "option 773 - land navigation.erm" отключает скрипт "option 881 - custom primary skills.erm".
А еще... (Click to View)
если я правильно понял, и скрипты родные от WoG3,58f
сообщение даёт эта строка в теле FU7777
и далее выставляет y-99=-99
Далее идёт выполнение
и в святыню записывается кривозакл -99 => итог вылет

Вопрос, как при выполнении
шестым параметром идёт в ф-цию значение не 0 , а что-то другое?

   daemon_n, подставь вывод значения x6 в тело ф-ции

Quote:!?FU7777;
   [x1=min. level, x2=max. level, x3=type, x4=element, x5=banning]
   [x6=number of exclusions, x7..x15=specific exclusions]
!!IF|x6<0/x6>9:M^x6=%X6^;
   [Display invalid parameter message for an invalid parameter]
!!IF|x1<0/x1>5:M1/z100032;
!!IF|x2<0/x2>5:M1/z100033;
!!IF|x3<0/x3>2:M1/z100034;
!!IF|x4<0/x4>15:M1/z100035;
!!IF|x5<0/x5>3:M1/z100036;
!!IF|x6<0/x6>9:M1/z100037;

   [Set y-99 to -99 for an invalid parameter]
!!VRy-99|x1<0/x1>5/x2<0/x2>5/x3<0/x3>2/x4<0/x4>15/x5<0/x5>3/x6<0/x6>9:S-99;

!!FU&y-99=-99:E; [Exit if an invalid parameter is entered]
и проделай мониторинг что там будет проходить в качестве значения x6


Или , daemon_n, надо проверить мышью что записано в той кривой святыне в качестве её заклинания, не -99 ли, дабы подтвердить мои вышеизложенные догадки.
Надюсь знаешь как простецкий срипт для клика на объекте сделать
Bes, Image: jPMrh
Проверку ранее делал с помощью "волшебства 1" Image: YfLYh
daemon_n, вот и откуда эта цифра прилетела, когда команда !!FU$spell$&y-94>0:Px2/x2/0/0/1; вообще то должна 0 засылать 102
либо поставь защиту от дурака тогда на строку записи заклинания в святыню...
Bes, методом тыка (поиском по файлу "option 773 - land navigation.erm" значения "898") нашёл: (Click to View)
Если закомментировать, проблем не будетAb
Reference URL's