Да и смысла занулять нет. Это у функций чаще всего один обработчик, и то, не запрещено иметь много.
!?PI
!!VRy1:S777; портим значение
!?PI;
!!IF:M^%Y1^; выводим 777
Привет всем. Bers? тут непонятная штука случилась подскажи. что это может быть и как с эти бороться.
http://rgho.st/6PZPp6zcc
Странно что при этоm версия от igrik работает, а на диск Е установил заново, снеся все что было, и все равно такая ошибка.
Создай папку Debug\Era в папке игры.
(19.09.2018 17:27)igrik Wrote: [ -> ]Остались всего 2 диалога, но самых сложных:
"WoG опции" - тут я даже еще не копал
"IF_D/E" - нужно разобраться с загрузкой изображений в 32 битном режиме с HD
Ещё про совместимость с Тифоном не забудьте. Пока что с wogNativeDialogs вылетает после успешной проверки кавалерийского бонуса воговским кодом в IsChampion(void) (вог-перехват на 0х44306D), поэтому wogNativeDialogs пришлось выключить.
(26.10.2018 14:23)XEPOMAHT Wrote: [ -> ]Ещё про совместимость с Тифоном не забудьте. Пока что с wogNativeDialogs вылетает после успешной проверки кавалерийского бонуса воговским кодом в IsChampion(void) (вог-перехват на 0х44306D), поэтому wogNativeDialogs пришлось выключить.
Вылетает, потому что Мастер и я в одно и то же место установили хуки (он на проверку иммунитета к кав.бонусу, я на проверку полета).
Блин, я а этого изначально не знал. Что-нить придумаю...
upd: исправлено! Просто изменил адрес хука на Тифоновский (0x44307A, а у меня хук стоял в 0x44307E).
Code:
// не считать кавалерийский бонус при полете
_int_ __stdcall Y_AntiKavalierAndFly(LoHook* h, HookContext* c)
{
if ( *(_dword_*)(c->ebx +132) >> 1 & 1 ) { // проверить флаг атакующего на полет
c->return_address = 0x4430A3; // обходим расчет кавалерийского бонуса (он всё равно не работает)
return NO_EXEC_DEFAULT;
}
return EXEC_DEFAULT;
}
//////////////////////////
_PI->WriteLoHook(0x44307A, Y_AntiKavalierAndFly); // не считать кавалерийский бонус при полете
PS: сегодня обновлю wogNativeDialogs.dll c окном WoG настроек (правда пока что без сделанного окна загрузки и сохранения настроек, и без прокрутки.)
Ещё один то-ли баг, то ли нет в ERA 2.7.7:
Команда !!IF:N1/$; упорно берёт значение из z1 и не желает брать значения из других z-переменных (вместо $ можно заносить любой мусор - интерпретатору всё равно).
XEPOMAHT, неплохо бы кидать такие баг-репорты с кусками кода, которым тестируешь.
Кстати, это опечатка Славы в нескольких местах (судя из исходников). И тянется она еще из wog 3.58f
Вот исправление этой ошибки:
Теперь !!IF:N1/$; работает со всеми локальными, глобальными и отрицательными переменными z, а не только с z1
(30.10.2018 12:53)Algor Wrote: [ -> ]XEPOMAHT, неплохо бы кидать такие баг-репорты с кусками кода, которым тестируешь.
Вот кусок кода (простейшая подсказка для жилища монстра):
(30.10.2018 13:24)igrik Wrote: [ -> ]Вот исправление этой ошибки:
Спасибо огромное! Переоформил в бинарный патч erm_if_n1_fix.bin
Хмм, я верно понимаю что из DL нельзя получить текст введёный в поле для ввода?
P.S. А почему всёж выбрали Lua? Ruby на мой взгляд гораздо лучше был бы, у него синтаксис вменяемее, встроить не так сложно
Strelok21, ruby сложнее интегрировать, у него нет и близкой той скорости и низкоуровневого инструментарии, что у Lua. Добавь сюда много магии в движке, отсутствии строгой документации по работе интерпретатора, большие накладные расходы по памяти и скоростит и т.д. Покажи лучше игры, в которых испльзуется Ruby )))
Ну лучшие версии рпг-мейкера использовали руби, пока они не решили что веб это якобы круто. Скорость у него конечно похуже луа, но последние версии рубей довольно шустрые. Руби я как то встраивал в си, основная проблема была подружить с андроидом, что согласен, отсутствие хорошей документации мешало.
P.S. Так что там с DL?
P.P.S. Само для себя пишу модуль на луа для упрощённой обёртки над ерм ресиверами, пока луа сам не научится их вызывать. Как думаете, будет полезно кому если поделюсь?
Что то навроде
Code:
Library.dialog_create(filename, dialog_id, inst_open) -- создать диалог и сразу открыть если inst_open true
P.P.P.S. Хотелка. Или обработать ерм из карты ДО луа, или грузить файл луа при загрузке карты с таким же названием, или возможность интерпретировать луа файл из ерм в событии карты. Что бы мой луа не интерпретирвало на чужих картах.
Какая-то проблема со скриптом оруженосца в последней сборке
СейвЯД: на ходу любого компьютера возникает постоянно (связано с боем, думаю). А переделанное вог окно просто на высоте.
Происходит краш(посмотрел читами), когда компьютер пытается подобрать свиток на 10 часов. Поверхность, лава. Без хд мода так же вылет.
ЯД
daemon_n, спасибо большое за репорты. Исправлены оба момента. Сборка перезалита.
1. Скрипт оруженосца - не знаю каким боком попал тестовый скрипт, а не итоговый (после того как я внедрил поддержку ИИ).
2. Исправлен серьезный недочет в плагине защиты артефактов. Ошибка происходила, когда координаты поиска защитника выходили за домустимые границы. Например x = -1 или x больше ширины карты. Свиток то лежал прямо на последней клетке карты (y=0). А когда в функцию поиска тайла клетки передавалась координата y=-1, происходил вылет.