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

Full Version: Плагины. Обсуждение
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
Там не костыль. В разных диалогах разные кнопки. Опции можно просматривать и из меня сохранения игры. Потому есть функция конфигурации диалога до отображения.
(11.02.2024 22:05)Berserker Wrote: [ -> ]Там не костыль. В разных диалогах разные кнопки. Опции можно просматривать и из меня сохранения игры. Потому есть функция конфигурации диалога до отображения.

Там 2 набора кнопок, переключаемых флагом. Флаг можно менять непосредственно перед запуском диалога вог-опций смотря из того, запущена в игре карта или нет. Соотвественно, так ВоГ-опции можно посмотреть в любой момент игры. Тифон сейчас делает именно так.

Вот ещё одни свзязанные с вог-опциями костыли, полной переделкой которых сейчас занимаюсь. Бараторч за каким-то чёртом ставит свою кнопку, Игрик - свою, Херомант - свою. Итого: 3 кнопки, находящиеся на ОДИНАКОВЫХ КООРДИНАТАХ и, теоретически, должны открывать ОДНО И ТОЖЕ в ОДНОМ ДИАЛОГЕ!!!! Почему только теоретически? Потому что эти кнопки НИЧЕРТА В ИГРЕ НЕ ДЕЛАЮТ, тупо болтаются на форме, а сам клик происходит из рассчёта координат на форме диалога. В итоге, мне приходится прятать кнопки Бараторча и Игрика, чтобы запрограммировать кнопку вог-опций по-содовски и так же добавить к ней подсказку (к сожалению, и Игрик, и Бараторч ставят свои кнопки только после конструктора окна, а не прямо в нём, поэтому отключить эти кнопки невозможно - отключается весь функционал HD-мода в этом окне, да и кнопки плагина на XXXL-карты перестают работать... в общем совместмость на платформе ЭРЕ - главная БЕДА. Извините, накипело....). Беда кнопок Бараторча и Игрика - они возвращают 0 при клике на них, поэтому их невозможно запрограммировать. Поэтому приходится ставить свою кпопку, которую понимает и обрабатывает содовский код.
Да, эта боль понятна.
1. Что значит каким-то чёртом HD-mod/WND ставит кнопку? Ты видел как делает это Вог? - Там просто проверяется условное место клика и по нему запускается меню Вог опций. Вот это - костыльная реализация, причем которая при увеличенных разрешениях уже корректно не работает.
2. Именно поэтому неправильно утверждать, что клик на кнопку Вог-Опций "не возвращает ничего". Он выставляет параметры клика (x=640, y=110, itemId=0), которые Вог сам потом коректно обрабатывает и поготавливает меню Вог опций. Это сделано, чтобы не поломать код Вога. А ты его сейчас начал ломать, т.е. делаешь то, на что обычно сам же и жалуешься.
3. Я добавляю эту кнопку, потому что кнопка HD-modа не имеет перевода. Вот решил я так на тот момент. Не вижу проблемы их скрыть стандартными средствами игры, делов то: 2 вызова одной и той же фунции , чтобы скрыть кнопки HD и WND. Если прям архикритично - могу убрать свою (тогда останется кнопка HD-мода, которая всегда будет на английском). Но за много лет - это первая жалоба, что кнопок видитиле две.
4. Кнопка запрограммирована как раз таки по Содовски, так что тут не надо ля-ля. Суть твоей претензии заключается в том, что это сделано в HiHook'e, а не LoHook'e, но эта претензия не принимается. HiHook всегда более предпочтительный инструмент. Этот вопрос уже неоднократно аргументировался.
(12.02.2024 05:17)igrik Wrote: [ -> ]1. Что значит каким-то чёртом HD-mod/WND ставит кнопку? Ты видел как делает это Вог? - Там просто проверяется условное место клика и по нему запускается меню Вог опций. Вот это - костыльная реализация, причем которая при увеличенных разрешениях уже корректно не работает.

Воговская реализация не была переделана под нормальную. Т.е. пытались поправить это дело и в HD-моде, и в wog_native_dialogs.era, но до конца так и не довели. Воговские кастыли не были заменены.

(12.02.2024 05:17)igrik Wrote: [ -> ]2. Именно поэтому неправильно утверждать, что клик на кнопку Вог-Опций "не возвращает ничего". Он выставляет параметры клика (x=640, y=110, itemId=0), которые Вог сам потом коректно обрабатывает и поготавливает меню Вог опций. Это сделано, чтобы не поломать код Вога. А ты его сейчас начал ломать, т.е. делаешь то, на что обычно сам же и жалуешься.

Кнопка должна окрывать само воговское меню, а не создавать новые кастыли, чтобы заставлять корректно срабатывать воговские кастыли с HD-модом. В исходных кодах функция, открывающая меню, по неизвестным причинам закомментирована. 105

(12.02.2024 05:17)igrik Wrote: [ -> ]3. Я добавляю эту кнопку, потому что кнопка HD-modа не имеет перевода. Вот решил я так на тот момент.

На кнопке можно заменить текст вызовом содовской функции 5FED80h. Т.к. это стандартный параметр элемента диалога "text", описанный в erm-хелпе.

(12.02.2024 05:17)igrik Wrote: [ -> ]Не вижу проблемы их скрыть стандартными средствами игры, делов то: 2 вызова одной и той же фунции , чтобы скрыть кнопки HD и WND.

Адрес этой функции пока не нашёлся.

(12.02.2024 05:17)igrik Wrote: [ -> ]Если прям архикритично - могу убрать свою (тогда останется кнопка HD-мода, которая всегда будет на английском). Но за много лет - это первая жалоба, что кнопок видитиле две.

Смысл, тогда начнут жаловаться игроки, что кпопка не на русском. Лучше оставить как есть.

(12.02.2024 05:17)igrik Wrote: [ -> ]Суть твоей претензии заключается в том, что это сделано в HiHook'e, а не LoHook'e, но эта претензия не принимается. HiHook всегда более предпочтительный инструмент. Этот вопрос уже неоднократно аргументировался.

Претензия в общем-то в том, что Вы с Бараторчем ставите хуки на одинаковые адреса, в итоге при затирании хука затирается весь HiHook, поэтому конкретно что-то одно из данного типа хука отключить нельзя - тут либо всё, либо ничего. Но это мои проблемы, не Ваши, поэтому в ЭРЕ+ можно найти 1 весёлый феаноровский плагин с кучей хуков на адрес-пустышку, несмотря на то, что это HiHook-и, только там варварским способом удалось запретить их исполнение в отдельно взятом плагине. Совершенно не хочется заниматься этим варварством и в плагинах Игрика. Лучше как-то попытаться договориться (с Феанором это нереально, т.к. он давно ушёл из моддинга и поддержкой своих плагинов уже лет 10 не занимается).

(12.02.2024 05:17)igrik Wrote: [ -> ]Да уж, XEPOMAHT. Ты явно не умеешь работать в команде. Постоянно на всех жалуешься, что это не так, да это не так.

Умел бы работать в команде - меня сейчас бы здесь уже не было. Увы, характер скверный, не женат, друзей нет, ссорюсь со всеми и ничего с этим поделать не могу.

(12.02.2024 05:17)igrik Wrote: [ -> ]Если кто-то когда-то попытается домодифицировать ERA+, то я предсталяю как это будет сложно сделать ему.

Вряд ли кому-то это особо нужно, т.к. 99% моддеров предпочитают делать моды с 0. Все, кроме Майора, кто были тем или иным способом связаны с ERA+, давно занимаются чем-то другим, остался один я.
(12.02.2024 07:44)XEPOMAHT Wrote: [ -> ]Воговская реализация не была переделана под нормальную. Т.е. пытались поправить это дело и в HD-моде, и в wog_native_dialogs.era, но до конца так и не довели. Воговские кастыли не были заменены.
Кнопка должна окрывать само воговское меню, а не создавать новые кастыли, чтобы заставлять корректно срабатывать воговские кастыли с HD-модом. В исходных кодах функция, открывающая меню, по неизвестным причинам закомментирована.
Никто ничего не пытался поправить (про так называемые Воговские костыли).
Исправлялась только графическя часть, не трогая логику. Поэтому функция, открывающая Воговское меню закомментирована. Она использовалась только для тестов при написании кода, не более.
Это называется разделение зон ответственности. Почитай на досуге об этом.


(12.02.2024 07:44)XEPOMAHT Wrote: [ -> ]Адрес этой функции пока не нашёлся
Code:
dlg = NewScenarioDlg(можно вытащить указатель отсюда0x587FD0)
HdButton = MEMORY[0x5FF5B0](dlg, 8888);
if ( HdButton )
  MEMORY[0x5FED80](HdButton, 6, 6); // скрыть кнопку HD
WndButton = MEMORY[0x5FF5B0](dlg, 4444);
if ( WndButton )
  MEMORY[0x5FED80](WndButton, 6, 6);  // скрыть кнопку WND
igrik, фиксы: генерация темницы на подземелье на поверхности (DungeonTerrain.dll), поле битвы в подземелье зависит от почвы (no_underground_at_underground.bin) добавите в game bug fixes?
Can we have RK's patch about AI thinking process added to game bug fixes?
https://github.com/RoseKavalier/H3Plugin...es.cpp#L78

This is useful for preventing crashes of dividing 0 (42437D) speed when war machines are placed on the map with wog map editor.
(05.03.2024 10:52)FallenAngel Wrote: [ -> ]igrik, фиксы: генерация темницы на подземелье на поверхности (DungeonTerrain.dll), поле битвы в подземелье зависит от почвы (no_underground_at_underground.bin) добавите в game bug fixes?
Можно. Загрузите оба этих файла, чтобы я не искал их, пожалуйста. Я сам их декомпилирую и включу в свой плагин.
Хм. Я думал, что заплатку "no_underground_at_underground.bin" я давным давно как включил в плагин. Но оказалось что нет.


(05.03.2024 12:37)Archer30 Wrote: [ -> ]Can we have RK's patch about AI thinking process added to game bug fixes?
https://github.com/RoseKavalier/H3Plugin...es.cpp#L78

This is useful for preventing crashes of dividing 0 (42437D) speed when war machines are placed on the map with wog map editor.
Ok, I will add it.
(05.03.2024 10:52)FallenAngel Wrote: [ -> ]igrik, фиксы: генерация темницы на подземелье на поверхности (DungeonTerrain.dll)
FallenAngel, что делает именно этот плагин, и почему его нужно включить в game bug fixes?
То что я увидел не имеет никакого отношения к исправлению багов игры.
igrik, если игра без подземелья, темница может сгенериться на чужой земле. Т.е. может стартовать без преимущества родной земли. Настаивать на включение его в плагин не буду, просто хотел узнать, добавите ли. Если что, оставлю в моде у себя просто, что мне нужно.
FallenAngel, а о побочках плагина вы вкурсе?
Этот плагин делает много чего другого, что не касается генерации земли Данжа на поверхности.
- Он зачем то устанавливает тип земель для каждого замка, что и в оригинале игры (во первых - ненужное дублирование кода, во вторых - серьёзная проблема совместимости с различными модами)
- Он добавляет показ длительности заклинаний в бою (x12 или x4 раунда и т.п.), что его явно не касается, и давно реализовано в другом плагине
- Он включает/отключает показ тени силового поля в бою (что уже сделано в плагине исправлении багов)
- Он лезет в генерацию охраны между зонами при создании случайной карты. Причём одно исправляет, а другое ломает.

Генерацию Данжа на типе поверхности "подземелье" я конечно включу в плагин исправления багов.
Но конкретно этот плагин очень, очень сильно замусорен относительно своего названия. Просто имейте это в виду.
igrik, ого, спасибо, я не знал про побочки
Обновлен плагин game bug fixes extended.dll
Code:
[+] Исправлен один из багов раздвоения героев: когда герой при полёте или хождении по воде останавливается на водном ивенте
[+] Темница на поверхности генерируется на родной земле
[+] Битвы в шахтах в подземелье проверяют тип почвы. Ранее было всегда = подземелье
[+] При осаде города у охраны при объединении армий с героем-гостем не появляются фантомные артефакты Знамя Полководца
[+] Убийство охраны у Лагеря Беженцев больше не ломает тип существ в этом лагере
[+] Исправлен вылет из игры, когда Суккуб очаровывает существ при битве после разрушения строения в городе.
[+] Добавлен показ стоимости улучшений существ на кнопке апгрейда в окне существа (я не хотел делать в этом плагине, но было очень удобно, потому что используется один и тот же хук, что и в исправлении описания кнопки Сказочного дракона. Поэтому, пусть будет уже так)
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
Reference URL's