Berserker
Posts: 16657
|
|
24.09.2021 18:04 |
|
Archer30
Posts: 1175
|
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?
Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 25.09.2021 16:04 by Archer30.)
|
|
25.09.2021 16:02 |
|
daemon_n
Posts: 4343
|
|
25.09.2021 17:27 |
|
Archer30
Posts: 1175
|
|
25.09.2021 17:42 |
|
daemon_n
Posts: 4343
|
|
02.10.2021 11:20 |
|
Raistlin
Posts: 1349
|
Просто структура 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");
Впервые я с этим столкнулся, занимаясь Колизеем магов. Сейчас по факту проблема решена, но если кто-то знает причину ее возникновения, прошу поделиться.
Создал новый глобальный мод: WoG Ultra Edition
|
|
02.10.2021 11:37 |
|
XEPOMAHT
Posts: 2356
|
(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 - не очень удачное решение (там кучи проверок, т.к. желтый квадрат могут перекрывать другие жёлтые квадраты).
(This post was last modified: 02.10.2021 19:27 by XEPOMAHT.)
|
|
02.10.2021 19:23 |
|
SergOz
Posts: 1315
|
Raistlin, так ты бы эту лесенку показал - можно было бы на других компах протестить.
У меня бывало такое пару раз, но всегда оказывалось, что где-то не поставил точечку
Карта-мод "Война на Холсте"
|
|
29.10.2021 22:33 |
|
Raistlin
Posts: 1349
|
Без проблем, спасибо за совет! Суть кода заключается в том, чтобы давать Минотаврам блок вне зависимости от системы опыта, но только если урон наносится физический. Работает все, кроме проверки на урон.
Code:
//Блок Проклятых минотавров
Magic->WriteLoHook(0x71C719, ModifyPartialBlock);
_int_ __stdcall ModifyPartialBlock(LoHook* h, HookContext* c)
{
int DamageType = IntAt(0x28326C0);
//Debug(DamageType != FireShieldDamage && DamageType != LightningStrike && DamageType != MoatDamage && DamageType != DeathRippleDamage);
if (DamageType != FireShieldDamage && DamageType != LightningStrike && DamageType != MoatDamage && DamageType != DeathRippleDamage)
{
//Debug(DamageType);
_BattleStack_ Defender = *(_BattleStack_*)IntAt(c->ebp + 8);
if (Randint(1, 100) <= 20 && (Defender.creature_id == DamnedMinotaur || Defender.creature_id == LegendaryMinotaur))
{
//Debug(DamageType);
IntAt(c->ebp - 8) = 50;
IntAt(c->ebp - 4) = 20;
//Debug(DamageType);
c->return_address = 0x71C89F;
return NO_EXEC_DEFAULT;
}
}
return EXEC_DEFAULT;
}
UPD. Мистика, да и только! Я поменял кое-какой код, не связанный с этой особенностью, и плагин, очевидно, перестроился - бага больше нет.
Создал новый глобальный мод: WoG Ultra Edition
|
|
29.10.2021 23:17 |
|
Archer30
Posts: 1175
|
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?
Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 02.11.2021 06:34 by Archer30.)
|
|
02.11.2021 06:32 |
|