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

Full Version: Вопросы по моддингу
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Как тестеру — положительно.
A question of the animation of arrow tower.
So I tried to change the guards in arrow tower by UN:C, and I immediately notice an imperfection of the change.

Looks like arrow towers has a fixed range of refreshing area. Some creatures with large sprite will display incorrectly.
As you can see in the picture - The hands of the Zealot from top arrow tower are cut.
Is it possible to fix this problem?
Archer30, try increase its height (gem_DlgItemSize);
daemon_n, thanks, but looks like if I increase the height, he doesn't look as good as he is right now when he's not shooting. 102
Как можно получить структуру объекта в позиции? Функция 0x4086D0 стабильно возвращает мусор, что бы я ей не передавал. Координаты клика, фиксированные координаты - все одно и то же.
Raistlin, что за объект конкретно интересует?
Просто структура MapItem по координатам (в моем случае это координаты клика для удобства тестирования). Походу у меня опять сходит с ума компилятор или может быть дело в патчере - точно не скажу, но при использовании ERM возвращается нормальный указатель:

ExecErmCmd("CM:P?y1/?y2/?y3");
//Debug(CALL_4(int, __thiscall, 0x4086D0, o_GameMgr, 1, 1, 0)); //Мусор
//Debug(CALL_4(int, __thiscall, 0x4086D0, o_GameMgr, 2, 1, 0));
ExecErmCmd("UN:C6918840/4/?y4");
ExecErmCmd("VRy4:+92");
ExecErmCmd("UN:Cy4/4/?y5");
ExecErmCmd("SN:E4228816/2/y5/x1/x2/x3");

Впервые я с этим столкнулся, занимаясь Колизеем магов. Сейчас по факту проблема решена, но если кто-то знает причину ее возникновения, прошу поделиться.
(02.10.2021 11:37)Raistlin Wrote: [ -> ]Просто структура MapItem по координатам (в моем случае это координаты клика для удобства тестирования). Походу у меня опять сходит с ума компилятор или может быть дело в патчере - точно не скажу, но при использовании ERM возвращается нормальный указатель:

ExecErmCmd("CM:P?y1/?y2/?y3");
//Debug(CALL_4(int, __thiscall, 0x4086D0, o_GameMgr, 1, 1, 0)); //Мусор
//Debug(CALL_4(int, __thiscall, 0x4086D0, o_GameMgr, 2, 1, 0));
ExecErmCmd("UN:C6918840/4/?y4");
ExecErmCmd("VRy4:+92");
ExecErmCmd("UN:Cy4/4/?y5");
ExecErmCmd("SN:E4228816/2/y5/x1/x2/x3");

Впервые я с этим столкнулся, занимаясь Колизеем магов. Сейчас по факту проблема решена, но если кто-то знает причину ее возникновения, прошу поделиться.

Вызов 4086D0h использует пакованные координаты. CM:P?y1/?y2/?y3 выдаст обычные. В MoP например используется переходник, который сам пакует координаты и сразу вызывает 4086D0h.

Второе: CM:P?y1/?y2/?y3 со 100% точностью не выдаст "желтый квадрат" объекта. Получение структуру объекта из CM:P?y1/?y2/?y3 - не очень удачное решение (там кучи проверок, т.к. желтый квадрат могут перекрывать другие жёлтые квадраты).
Quote:Вызов 4086D0h использует пакованные координаты. CM:P?y1/?y2/?y3 выдаст обычные. В MoP например используется переходник, который сам пакует координаты и сразу вызывает 4086D0h.
Большое спасибо, этого я не знал.

Quote:Второе: CM:P?y1/?y2/?y3 со 100% точностью не выдаст "желтый квадрат" объекта. Получение структуру объекта из CM:P?y1/?y2/?y3 - не очень удачное решение (там кучи проверок, т.к. желтый квадрат могут перекрывать другие жёлтые квадраты).
Код этот временный, в релиз не пойдёт. Он нужен был только для удобства тестирования, но за советы, разумеется, спасибо 132
Уже второй раз сталкиваюсь со странной фигнёй - у меня есть лесенка if-else, заданное условие не выполняется, но код срабатывает! Почему такое происходит? Может быть, это какие-то оптимизации компилятора?

Чтобы удостовериться в том, что нет никакой ошибки, я выводил флаг условия на экран - результат был "0", но блок if все равно выполнялся.
Raistlin, так ты бы эту лесенку показал - можно было бы на других компах протестить.
У меня бывало такое пару раз, но всегда оказывалось, что где-то не поставил точечкуLupa
Без проблем, спасибо за совет! Суть кода заключается в том, чтобы давать Минотаврам блок вне зависимости от системы опыта, но только если урон наносится физический. Работает все, кроме проверки на урон.


UPD. Мистика, да и только! Я поменял кое-какой код, не связанный с этой особенностью, и плагин, очевидно, перестроился - бага больше нет.
Hi! I happen to recruit a graphics designer from the Chinese community to join ERA modding, and his first question is already tough enough...

The question: Is it possible to extend the Hero Screen (with whatever way)?
(here we use Sandris's graphcis as an example)

The idea is to include an extra panel for showing more info of the hero (most likely for big portraits, no interaction needed). As I understand, this cannnot be done with DL. When DL dialogues are opened, no interaction is allowed to the original hero screen.

What do you guys think about it? Rolleyes
(02.11.2021 06:32)Archer30 Wrote: [ -> ]The question: Is it possible to extend the Hero Screen (with whatever way)?
(here we use Sandris's graphcis as an example)

Сделать можно, только какой в этом смысл? Всё необходимое для игрока уже есть в окне героя. А ради дополнительных портретов и каких-то иных свистелок и перделок - уже лишняя информация для игрока, которая быстро надоест. Stop
XEPOMAHT, well, the actual plan is to completely remake the whole hero screen (reallocating all elements) and extend the resolution of it for more than 800*600. It could be good - many players complain about the hero screen becoming too small (coz the resolution is 800*600) after setting large resolution in HoMM 3 HD.
Reference URL's