igrik, раз разговор про UN:C, просвети: есть 2 скрипта, оба работают идеально.
Но в первом 75% это 6554608, а во втором 1061158912. Если сделать наоборот то волшебство просто не работает, а кавелерийский бонус приводит к вылету. Полагаю что в первом случае (кав. бонус) задается не значение напрямую, а указывается "переадресация" где это значение взять.
Добавлю в тему UN:C запись FAQ для чайников, а то много путаницы.
AuAu, у меня оказвается тоже дёргается. Будет время - посмотрю как сделать чтобы не прерывался фейспалм. Сейчас не могу глянуть детальнее.
Igor, сложно будет объяснить, если ты не знаком с простыми (основными, стандартными) типами данных.
В первом случае используется ссылка на массив переменных double (размер 8 байт). В твоём случае ссылка подменена на другую переменную double (кстати которая даст прирост за одну клетку на 480%, не знаю откуда взялся разговор про 75%). Поэтому и вылетов нет. Для работы программы всё корректно. Тут адрес ссылки на значение весит 4 байта, а само значение весит 8 байт. Ты патчишь адрес ссылки.
Во втором случае по адресу 6548092 (dec) ты правишь само значение, а не адрес ссылки на значение. Патчишь ты как раз 4 байта. И для данного кода программы используется тип переменной float, которое тоже имеет размер 4 байта. Еще раз, ты патчишь именно содержимое переменной, а не ссылку на другую переменную! Это важное отличие от первого способа. Именно поэтому, если поменять способы местами появляются вылеты.
Теперь коротко:
В первом случае при изменении способа ты пихаешь неизвестный для программы адрес, и программа пытается залезть туда, куда ей лезсть вообще не положено. Получается закономерный вылет.
Во втором случае сама формула начинает просто считать коряво. Как именно коряво она считает я не знаю. Нужно исследовать, но я не вижу в этом смысла.
(25.09.2019 18:14)igrik Wrote: [ -> ]AuAu, у меня оказвается тоже дёргается. Будет время - посмотрю как сделать чтобы не прерывался фейспалм. Сейчас не могу глянуть детальнее.
Глубоко пришлось копать. Но готово)
Добавь в конец скрипта:
igrik, уххх О_о Благодарю, о, Великий!
У меня меж тем снова что-то не работает - скопировал это из темы шаблонов
ZVSE
; отключаем способности командиров
!!UN:C7785525/2/37008; [3: Суккуб - Очарование]
!!UN:C7772712/2/37008; [8: Астральный дух -
Но Астральный дух всё равно прогоняет существ вражеского героя.
(25.09.2019 20:55)AuAu Wrote: [ -> ]ZVSE
; отключаем способности командиров
!!UN:C7785525/2/37008; [3: Суккуб - Очарование]
!!UN:C7772712/2/37008; [8: Астральный дух -
Но Астральный дух всё равно прогоняет существ вражеского героя.
В шапке темы по
UN:C черным по белому же написано! Внимательнее будьте:
UPD: это были не совсем полный патч для данных командиров.
А вот это полный! (вырезаем полностью функции пацифизма и очарования).
igrik, а, хорошо. Кстати, если герой защищается - то работает даже так.
"Атаковать ХХХ урон ХХХ убьёт ХХХ" - где эту надпись можно найти и сократить? никак не находится
А есть на ERM способ реализовать кнопку переиграть бой как в HoMM3 HD?
(27.09.2019 12:59)Igor Wrote: [ -> ]А есть на ERM способ реализовать кнопку переиграть бой как в HoMM3 HD?
В сборке
daemon_n есть плагин
igrik'a BattleReplay.dll, но он по умолчанию отключен, поскольку не со всеми стандартными воговскими скриптами совместим. Можно попробовать включить, но некоторые скрипты будут выдавать баги.
На ERM такое весьма затруднительно сделать.
Upd: Соглашусь с
daemon_n, я не совсем точно выразился)
(27.09.2019 12:59)Igor Wrote: [ -> ]А есть на ERM способ реализовать кнопку переиграть бой как в HoMM3 HD?
Есть
ВОТ ТАКОЕ ЧУДО!!!
В игровой сборке в плагинах лежит, но отключен по умолчанию.
(27.09.2019 13:34)wessonsm Wrote: [ -> ] Можно попробовать включить, но некоторые скрипты будут выдавать баги.
Я бы сказал, что не все Эрм опции поддерживают переигровку.
Скрипт просто не срабатывает, если переиграть битву.
(25.09.2019 22:06)AuAu Wrote: [ -> ]"Атаковать ХХХ урон ХХХ убьёт ХХХ" - где эту надпись можно найти и сократить? никак не находится
(27.09.2019 12:59)Igor Wrote: [ -> ]А есть на ERM способ реализовать кнопку переиграть бой как в HoMM3 HD?
На ERM это сделать практически невозможно. Адски, просто адски сложно. Это что касается ERM
А так да - есть плагин, на который уже дали ссылку.
Как ж так, искал же в извлечённых тхт через блокнот :О
Сенкс со мач. Устал пялиться в нижниq правый угол :D
Вопрос по ресейверу HE, синтаксис A1/$1/$2, а именно
!!HE:A1/?@/x; - где @ - переменная для сохранения результата, x - номер проверяемого слота. Если артефакта нет, значение переменной равно -1. Ищу способ удобной активации спец. возможностей артефактов (в данном случае при клике по экипированному артефакту).
Что в скрипте не так? Выдает всегда: Артефакт в слоте -1.
!!FU|y1<>52:E; [выход если в слоте не телескоп] shouldnt this be y2 ? y1 still holds the value from the click
Кто-нибудь юзал ещё скрипт на поднятие лимита защиты (85%)?
Чёт у меня вылеты довольно частые стали случаться когда
вражеские мобы в первый раз получают ход. Началось с того дня, как скрипт защиты добавил, мб опять что-то не вставил куда-то?
И ещё - BattleReplay.dll при рестарте битвы возвращает лишь одну палатку/баллисту/тележку, можно сделать, чтобы возвращал все??
