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

Full Version: Вопросы по моддингу
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(25.08.2018 18:18)MOP Wrote: [ -> ]Ошибся. Стандартная кнопка GSPBUT2.DEF.
(25.08.2018 18:01)totkotoriy Wrote: [ -> ]Хм... это как в процессе? Текстом? В первый раз такое вижу, текст же при нажатии тоже смещается и становится темнее.
Да вообще-то все эти кнопки - "Случайная карта", "Доступные сценарии", "Дополнительные опции" - такие. И у меня кнопка "Опции MoP" такая же, и в самом диалоге опций таких кнопок много (я этот элемент и в DL-шаблоны добавил).
А не знаешь где текст от этих кнопок хранится?
GENRLTXT.TXT
(25.08.2018 18:30)MOP Wrote: [ -> ]GENRLTXT.TXT
Так а там нету строк с WoG Options и настроить...

Нашёл в HD_WOG.dll...
В HD_WOG.dll зашиты.
(25.08.2018 19:18)MOP Wrote: [ -> ]В HD_WOG.dll зашиты.
Тоже уже нашёл.... спасибо! )))
Подскажите плиз, можно ли отключить отображение кнопки плагина buttons в скриптах?
(29.08.2018 00:41)totkotoriy Wrote: [ -> ]Подскажите плиз, можно ли отключить отображение кнопки плагина buttons в скриптах?
Всмысле? Дай более развёрнутый вопрос.
(29.08.2018 12:13)igrik Wrote: [ -> ]
(29.08.2018 00:41)totkotoriy Wrote: [ -> ]Подскажите плиз, можно ли отключить отображение кнопки плагина buttons в скриптах?
Всмысле? Дай более развёрнутый вопрос.
Ну вот плагином buttons.dll добавлены новые кнопки, например кнопки быстрого перемещения армии в замке. Можно ли такую кнопку как-нибудь отключить в ERM, то есть чтоб она не показывалась? А то получается, что какая-нибудь настройка отключена, а кнопка осталась.
(29.08.2018 13:13)totkotoriy Wrote: [ -> ]Ну вот плагином buttons.dll добавлены новые кнопки, например кнопки быстрого перемещения армии в замке. Можно ли такую кнопку как-нибудь отключить в ERM, то есть чтоб она не показывалась? А то получается, что какая-нибудь настройка отключена, а кнопка осталась.
Сомневаюсь что так можно. Либо можно, но геморно. Но я не знаю как это достаточно корректно сделать на ERM.
спасибо... печально :/
Который день ломаю голову над багом, который отравил возникшее было желание работать над модом. Суть такова:
Написана коротенькая функция - переходник к игровой процедуре. Аргумент - один, соглашение - stdcall.
Записал эту функцию в exe, чтобы вызывать, как прочие, методом push-ret.
Дальше начинается идиотизм... Суть бага - в вылете при переходе в главное меню.

Вызываю эту функцию из процедуры обновления строки ресурсов - вылет.
Переписываю её в другое место экзешника - вылет.
Переписываю в WERD и вызываю просто call-ом - о чудо, вылета нет!
Опять зашиваю в exe - вылет!
Вызываю её через mov eax, адрес; call eax - вылет!
Вызываю зашитую из другого места кода (скажем, правый клик на карте) - вылета нет!!
Вызываю из процедуры обновления строки ресурсов другую push-ret-ную функцию с аналогичным соглашением вызова - вылета нет!!
Вызываю из процедуры обновления строки ресурсов пустышку (retn 4) - вылет!!!

Вопрос: какого хрена???

Вылет идёт в какой-то подфункции функции RtlFreeHeap, что в ntdll.dll. Функция, в свою очередь, вызывается из HeapFree, что в KeRNeL32.
Quote:Функция, в свою очередь, вызывается из HeapFree, что в KeRNeL32.
Странная функция какая-то. Зачем нужен переходник? Сохраняешь ли ты регистры до вызова оригинала и восстанавливаешь ли после?
MOP, мало информации. Что делает функция? Код функции? Куда в ехе зашил? Откуда вызываешь, из какого участка кода? Что со стеком не перекосил ли стек? Когда вылетает - при вызове функции, во время исполнения, или по возврату?
По факту - чудес не бывает. Если не работает значит - где-то ошибка. Помню как-то неделю просидел над кодом длл, которая упорно не хотела работать. И часть кода там была написана на встроенном ассемблере. Я до буквы все проверил, несколько раз прогнал отладчиком. Потом заменил весь код просто на вызов MessageBox и даже в таком виде оно отказывалось работать. В итоге Сергрой подсказал - проверь стек. И действительно стек был перекошен. Оказалось, что в том встроенном ассемблере то ли pusha то ли push по-умолчанию пихало в стек word вместо dword.
Наконец смог зайти на форум (почему не мог долгое время - так и не понял).
Простите за беспокойство. Проблема давно решена, ошибка была плавающая из-за некорректности кода в совершенно другой области.
MOP, это радует! Ab
Reference URL's