Current time: 03.12.2024, 17:45 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
HD-mod. Баги и доработки
Author Message
Berserker Offline
Administrators

Posts: 16657
Post: #1
Баг 
Давайте писать здесь, что в первую очередь хотелось бы исправить в HD моде.

Мой список:
-) Отключить долбанную телеметрию, когда без пункта «проверять обновления» процесс постоянно стучится в интернет.

-) Сделать какой-нибудь механизм уведомления при загрузке из боя. Например, генерация события Эры. Сейчас из-за этого страдают OnGameEnter/OnGameLeave.

-) У меня игра после возвращения из фона и щелчка по любой кнопке или нажатии F12 подвисает от 5 секунд до 30 и более. Процесс виснет на WaitForSingleObject. Если подтвердится, что такое поведение только на новых версиях HD-мода, то стоит обратить внимание. Снятие твиков на звуки не помогло.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
22.11.2020 06:32
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #2

-) нет ERM-поддержки ПКМ кликов на новых кнопках интерфейса на экране Карты приключений
-) не отключается SmoothMovement через <OpenGL.SmoothMovement> = 0 в режиме OpenGL от Verokster
-) 100% краш при нажатии ПКМ на стрелочке "перелистывания артефактов" на экране жертвенного алтаря (Click to View)



+) на днях я переименовал HD_SOD.dll в HD_WOG.dll - почти всё работало как надо. Я прошу добавить эти же функции в оригинальный HD_WOG.dll, поскольку они точно работают без нареканий:
  • Быстрая Экипировка артефактов на экране героя
  • Открытие "зоны Двери измерений" на клавишу "R"
  • Открытие меню настроек в главном меню нажатием на "колёсико"
  • Возможность собирать и разбирать артефакты прямо в рюкзаке
  • Настройка шахматного таймера и отображение классического (В чистой ЭРЕ он работает, но не отображается)
  • Отображение текщего количества и остатка очков передвижения героя при наведении на его портрет рядом с его именем.
  • Online lobby! Работает PvE!!! - я проверил) (безусловно надо отключить некоторые моды и скрипты, но сам факт возможности играть вдвоём без всяких хамачи!!!)
       Во время PVP битвы вылезает sz = 24193! (type = 1005), но это всё потому что dll от СоД, я так понимаю, либо с чем ещё проблема.


Image: widget.png?style=banner2

Новейший Heroes Launcher
22.11.2020 06:47
Visit this user's website Find all posts by this user Quote this message in a reply
Grossmaster Away
Moderators

Posts: 587
Post: #3

Хотелось бы, чтобы исправили отсутствие онлайн лобби для версии wog/Era 148


Новая графика для WoG
(This post was last modified: 22.11.2020 12:20 by Grossmaster.)
22.11.2020 09:57
Visit this user's website Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #4

Grossmaster, я уже написал, что лобби можно сделать, точнее, оно уже сделано, и относительно работает для Эры. На базе Сод, что:
а) имеет недостатаки в качестве работы
б) имеет недостатки в качестве обслуживания
в) платное (хотя нам ОХ не нужны: не сработают, потому 190 р/мес на одного хоста (второй игрок присоединиться может без оплаты) не так и жалко)

(22.11.2020 06:32)Berserker Wrote:  -) У меня игра после возвращения из фона и щелчка по любой кнопке или нажатии F12 подвисает от 5 секунд до 30 и более. Процесс виснет на WaitForSingleObject. Если подтвердится, что такое поведение только на новых версиях HD-мода, то стоит обратить внимание. Снятие твиков на звуки не помогло.

Не встречал. А какой список модов и версия hd? Могу порекомендовать удалить настройки ЭРЫ (файл era.ini) из \HoMM 3 ERA\_HD3_Data\Settings и запустить hd launcher ещё раз, затем уже игру.


Image: widget.png?style=banner2

Новейший Heroes Launcher
22.11.2020 10:15
Visit this user's website Find all posts by this user Quote this message in a reply
baratorch Offline

Posts: 197
Post: #5
Показывает язык 
(22.11.2020 06:32)Berserker Wrote:  Давайте писать здесь, что в первую очередь хотелось бы исправить в HD моде.

Мой список:
-) Отключить долбанную телеметрию, когда без пункта «проверять обновления» процесс постоянно стучится в интернет.
Это не телеметрия (пока Spiteful ). ХД просто проверяет наличие более новой версии. И использует полученную инфу при краше. Если версия актуальная - предлагает отправить крашлог, если нет - предлагает обновиться.
Очень полезно. Однако слишком поздно я это сделал, меня продолжают заваливать крашлогами от очень неактуальных версий ХД.

Но если очень прям мешает, могу сделать твик на отключение этого.

(22.11.2020 06:32)Berserker Wrote:  -) Сделать какой-нибудь механизм уведомления при загрузке из боя. Например, генерация события Эры. Сейчас из-за этого страдают OnGameEnter/OnGameLeave.
Без проблем. Где, кого и как мне уведомлять? Какой приблизиительный код мне нужно выполнять?

(22.11.2020 06:32)Berserker Wrote:  -) У меня игра после возвращения из фона и щелчка по любой кнопке или нажатии F12 подвисает от 5 секунд до 30 и более. Процесс виснет на WaitForSingleObject. Если подтвердится, что такое поведение только на новых версиях HD-мода, то стоит обратить внимание. Снятие твиков на звуки не помогло.
что-то странное, не припомню чтобы кто-то жаловался на это.
какая ОС? какой графический режим в ХД?
можно же выяснить где эта WaitForSingleObject? место вызова будет полезнее для понимания проблемы.

P.S. прости Берс, что не ответил на твое письмо. Очень занят на тот момент был, а потом забыл про него.
22.11.2020 12:08
Find all posts by this user Quote this message in a reply
baratorch Offline

Posts: 197
Post: #6

(22.11.2020 06:47)daemon_n Wrote:  -) нет ERM-поддержки ПКМ кликов на новых кнопках интерфейса на экране Карты приключений
Не представляю что нужно сделать, чтобы она появилась.
(22.11.2020 06:47)daemon_n Wrote:  +) на днях я переименовал HD_SOD.dll в HD_WOG.dll - почти всё работало как надо. Я прошу добавить эти же функции в оригинальный HD_WOG.dll, поскольку они точно работают без нареканий:
  • Быстрая Экипировка артефактов на экране героя
  • Открытие "зоны Двери измерений" на клавишу "R"
  • Открытие меню настроек в главном меню нажатием на "колёсико"
  • Возможность собирать и разбирать артефакты прямо в рюкзаке
  • Настройка шахматного таймера и отображение классического (В чистой ЭРЕ он работает, но не отображается)
  • Отображение текщего количества и остатка очков передвижения героя при наведении на его портрет рядом с его именем.
  • Online lobby! Работает PvE!!! - я проверил) (безусловно надо отключить некоторые моды и скрипты, но сам факт возможности играть вдвоём без всяких хамачи!!!)
       Во время PVP битвы вылезает sz = 24193! (type = 1005), но это всё потому что dll от СоД, я так понимаю, либо с чем ещё проблема.

Онлайн лобби для Эры я давно планирую сделать. Модели монетизации как в сод не будет. Скорее всего я либо повешу отдельный донат-гол как в Хоте. Либо сделаю гол + модель: "плати сколько хочешь" (от нуля и больше)

Не уверен, что Одновременный ход получится/захочется сделать для Эры. Но если когда-нибудь он будет сделан, то будет платным (не по моей воле).

P.S. daemon_n, донатить мне на развитие ХД под Эру через сод-лобби не надо, пожалуйста.
22.11.2020 12:24
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #7

baratorch, понял всё и принял) Спасибо большое за ответ!
Что касается ПКМ - я сам не знаю, так понимаю, требуется вызвать окно текста на ПКМ, которого нет (Click to View)
) - Просто наблюдение, что нет возможности перехватить некоторые клики.
Например, клик на окошки существ для найма имеет высший приоритет. Если подумать, hd mod перехватывает нужные ему клики на себя полностью. Ну, к сожалению, я не программист.

В общем, если наёду ещё что-нибудь, отпишу. Ещй раз ОГРОМНОЕ СПАСИБО!!!

(22.11.2020 12:24)baratorch Wrote:  P.S. daemon_n, донатить мне на развитие ХД под Эру через сод-лобби не надо, пожалуйста.

Принял144


Image: widget.png?style=banner2

Новейший Heroes Launcher
22.11.2020 12:32
Visit this user's website Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1349
Post: #8

-) Сделать опциональным использование twcrport.def, то есть чтобы можно было переключаться на большие иконки из pcx (в старых версиях HotA как раз использовались отдельные иконки, а потому код наверняка сохранился. По крайней мере я на это надеюсьAb). Это на самом деле очень важно, так как если существ становится штук 220, то на всех кадрах получается каша.


Создал новый глобальный мод: WoG Ultra Edition
(This post was last modified: 22.11.2020 18:23 by Raistlin.)
22.11.2020 13:35
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #9

Бара, привет, рад тебя видеть!
Отвечу чуть позже по пунктам всем. Главное, чтобы был хотя бы один резервный канал связи. Остальное всё решаемо 177


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
22.11.2020 16:29
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #10

(22.11.2020 12:24)baratorch Wrote:  
(22.11.2020 06:47)daemon_n Wrote:  -) нет ERM-поддержки ПКМ кликов на новых кнопках интерфейса на экране Карты приключений
Не представляю что нужно сделать, чтобы она появилась.
Нужно просто всегда выполнять код этой функции 0x402E70.
После реализации кнопок HD мода в ряде случаев ты не даёшь ей выполниться. А Вог использует её вызов как аля HiHook с перехватом типа CALL:
Code:
// клики мауса на карте
// 0x74EEA6 char __stdcall MouseClick(_EventMsg_* msg)
  {0x408955,0,DP(MouseClick)},


game bug fixes extended.dll || My Plugins || My GitHub
22.11.2020 18:27
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #11

Quote:Мне нужно было события входа/выхода в основной цикл игры. Модеры в нём ставят/снимают патчи на лету.

(* MainGameCycle: OnEnterGame, OnLeaveGame and MapFolder settings*)
Core.p.WriteHiHook(Ptr($4B0BA0), PatchApi.SPLICE, PatchApi.EXTENDED, PatchApi.THISCALL_, @Hook_MainGameLoop);

Там корректный сплайсинг твоей функцией. Веду подсчёт числа входов и выходов. Когда счётчик на 0 — точно выход из последнего диалога в основное меню.
Но вот беда, в ХД-моде есть возможность загрузки игры во время боя. И каким-то образом там идёт манипуляция регистрами что-ли, но мод обработчик не получает управления, счётчик сбивается.
В качестве решения мне бы подошёл вызов события

procedure FireEvent (EventName: pchar; {n} EventData: pointer; DataSize: integer); stdcall;
из era.dll

FireEvent('$OnGameLeave', nil, 0);

Буквально GetProcAddress(LoadLibrary(...), ...) + вызов.

Quote:Один хороший модер очень просит возможность получить функцию загрузки сохранённой игры прямо с карты приключений без сторонних диалогов. Возможно ли?
Это просто теоретический вопрос. Если можно сразу же загрузить игру без промежуточных диалогов, то такая функция была бы востребована весьма. Именно программно.

Quote:»» Нет, цветной текст никогда не работал в 32-bit TRUE режимах в ХД. Для этого нужно переписывать код цветного текста под 32 бита. Я считаю, это лучше сделать со стороны Эры, с помощью моих консультаций.
Поддержку цветного текста для режимов 32 бита делал RoseKavalier, но там он динамически патчит код HD. Хотелось бы более цивилизованно.

Сейчас Эра перехватывает следующие адреса:
Core.Hook(@Hook_HandleTags, Core.HOOKTYPE_BRIDGE, 7, Ptr($4B509B));
Core.Hook(@Hook_GetCharColor, Core.HOOKTYPE_BRIDGE, 8, Ptr($4B4F74));
Core.Hook(@Hook_BeginParseText, Core.HOOKTYPE_BRIDGE, 6, Ptr($4B5255));

В BeginParseText весь текст парсится на блоки (пробельные символы игнорируются). Запоминаются размеры блоков и цвета. Сами цвета вырезаются, остаются только фигурные скобки.
В Hook_GetCharColor возвращает цвет из текущего блока и текущей позиции.
В Hook_HandleTags увеличивается позиция для непробельных символов, смена блока при необходимости и обработка "{", "}"


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
22.11.2020 18:34
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #12

(22.11.2020 12:08)baratorch Wrote:  
(22.11.2020 06:32)Berserker Wrote:  -) У меня игра после возвращения из фона и щелчка по любой кнопке или нажатии F12 подвисает от 5 секунд до 30 и более. Процесс виснет на WaitForSingleObject. Если подтвердится, что такое поведение только на новых версиях HD-мода, то стоит обратить внимание. Снятие твиков на звуки не помогло.
что-то странное, не припомню чтобы кто-то жаловался на это.
какая ОС? какой графический режим в ХД?
можно же выяснить где эта WaitForSingleObject? место вызова будет полезнее для понимания проблемы.
Берс, ты сейчас не говоришь о том, когда используются фильтры 16- 32-bit OpenGL by Verok? Если да, то данные подвисания очень хорошо можно "увидеть" при использовании Olly, например в момент ввода адреса при прыжке (клавиша G, потом вставка скопированного адреса). Но данная проблема была всегда в OpenGL by Verok, т.е. даже без использования HD мода (на плагине ddraw.dll), во всяком случае на моей Win7 x64).


game bug fixes extended.dll || My Plugins || My GitHub
22.11.2020 18:42
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #13

В основном 16 bit Direct Draw + GDI. Но пробовал и 32 bit Direct Draw. Всё в оконном режиме (!) и без strethable. Когда установлю старую версию, скажу, не моя ли это проблема в системе. Я сворачиваю окно, правлю ЕРМ файлы, возвращась через секунд 10 к окну. При нажатии на кнопку опций могут по 15 секунд зависание ловить. То же самое с F12. Если кто столкнётся — отпишитесь.

Кстати, крайне желательно сохранять архив версий HD мода, как в Эре. Очень часто нужно что-то потестировать или поиграть на стабильном варианте, а есть только последний.

У меня VFS.dll при изменении файлов в папкам мода обновляет VFS, временно блокируя файловую систему. Буквально на микродолю секунды. Если файлы не меняются — всё ок. Но стоит раза три сохранить документ, развернуть игру, нажать на кнопку — фриз. Странно, что началась проблема несколько недель назад, а VFS в Эре с версии 2.8 переписана. Такое чувство, что кто-то в неудачный момент WaitForSingleObject вызывает или тоже отслеживает изменения в файлах.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
22.11.2020 19:08
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #14

Quote:-) Сделать опциональным использование twcrport.def, то есть чтобы можно было переключаться на большие иконки из pcx (в старых версиях HotA как раз использовались отдельные иконки, а потому код наверняка сохранился. По крайней мере я на это надеюсьAb). Это на самом деле очень важно, так как если существ становится штук 220, то на всех кадрах получается каша.
Не стоит возлагать на HD эту задачу. Её решать будет Эра/плагины универсально для всех дефов.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
23.11.2020 00:45
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1349
Post: #15

(17.08.2020 18:08)XEPOMAHT Wrote:  
(17.08.2020 16:53)Dalion Wrote:  в теме Эры + ты писал о возможности вывода портретов из pcx, чтобы палитра для каждого портрета была своя, а не общая для всех. Можно это как-то прикрутить к тифону? Сейчас кастомные портреты которые я делаю для добавляемых существ ломают цвета всем стандартным, хотя они в той же битности...

Можно, но это ~50 мест в коде, которые нужно пропатчить. И то, будет не полностью (в диалогах Жертвенного Алтаря и Трансформатора Скелетов от def-ов так просто не избавиться, увы). К Тифону можно, только опять HD-мод будет вылетать (т.к. он меняет координаты элементов диалога).

Berserker, XEPOMAHT, я вот из этого сообщения сделал такой вывод... Если я что-то неправильно понял, то беру просьбу назад.


Создал новый глобальный мод: WoG Ultra Edition
23.11.2020 03:00
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group