igrik
Posts: 2819
|
Кстати, Berserker, ты в Эру не добавлял расчет AI_Value и Fight_Value командиров?
Если нет, то вот рабочий код:
Code:
// ===============================================================================
// добавление AIValue командира
// ===============================================================================
_int64_ getAIValue_NPC(int heroID){
if ( heroID < 0 && heroID > 155 )
return 0; // выход, если номер героя неправильный
_Npc_* npc = GetNpc(heroID); // структура командира
if ( npc->on < 1 || npc->alive ) return 0; // выход, если командиров нет (-1), уволен или мертв
_Hero_* hero = o_GameMgr->GetHero(heroID);
_int64_ value = 0;
int attNPC = Get_NpcSkillPower(npc, 0);
attNPC += hero->attack;
int defNPC = Get_NpcSkillPower(npc, 1);
defNPC += hero->defence;
int hpNPC = Get_NpcSkillPower(npc, 2);
int damageNPC = Get_NpcSkillPower(npc, 3);
int speedNPC = Get_NpcSkillPower(npc, 5);
int isShoot = npc->specBon[0] & 0x10 ? 2 : 1;
// формула: (атака * макс.урон * скорость * стреляет [1-нет / 2-да] + защита * здоровье ) / 2
value = (_int64_)((attNPC * damageNPC * speedNPC * isShoot + defNPC * hpNPC) >> 2);
return value;
}
bool check_AIValue_isNotHero = false;
_int64_ __stdcall get_AIValue_Hook(HiHook* hook, int army)
{
_int64_ value;
int armyNPC = army;
value = CALL_1(_int64_, __thiscall, hook->GetDefaultFunc(), army);
if (!check_AIValue_isNotHero) {
int heroID = *(int*)(armyNPC -119);
if ( heroID >= 0 && heroID < 156)
value += getAIValue_NPC(heroID);
}
check_AIValue_isNotHero = false;
return value;
}
int __stdcall get_AIValue_And_NPC_Error(LoHook* h, HookContext* c)
{
check_AIValue_isNotHero = true;
return EXEC_DEFAULT;
}
int __stdcall get_Fight_Value_Hook(LoHook* h, HookContext* c)
{
_Hero_* hero = o_BattleMgr->hero[c->ebx];
if (!hero) return EXEC_DEFAULT;
c->ecx += getAIValue_NPC(hero->id);
return EXEC_DEFAULT;
}
// ==========================================================================
// ==========================================================================
// исправление бага блока командира, когда защита падала из-за флага "в защите"
_PI->WriteCodePatch(0x76E7D7, "%n", 24); // 15 nop
_PI->WriteCodePatch(0x76E80B, "%n", 13); // 13 nop
_PI->WriteHexPatch(0x76E7D7, "8B4D 08 C601 01 C641 02 04");
// добавляем расчет командиров в проверку Fight_Value
_PI->WriteLoHook(0x41EAD2, get_Fight_Value_Hook);
// продобавляем в расчет AI_Value и расчет командиров
_PI->WriteHiHook(0x44A950, SPLICE_, EXTENDED_, THISCALL_, get_AIValue_Hook);
// ставим лоухук, чтобы понять что идет расчет AI_Value без наличия героя
_PI->WriteLoHook(0x5C1867, get_AIValue_And_NPC_Error);
_PI->WriteLoHook(0x42758F, get_AIValue_And_NPC_Error);
_PI->WriteLoHook(0x42CA6B, get_AIValue_And_NPC_Error);
_PI->WriteLoHook(0x52846A, get_AIValue_And_NPC_Error);
game bug fixes extended.dll || My Plugins || My GitHub
|
|
06.06.2018 15:48 |
|
Heromant
Posts: 348
|
(06.06.2018 15:23)Berserker Wrote: Heromant, так в HD+ нет ЕРМ/Луа/Плагинов и иной нагрузки в бою. Большинство скриптов считают по мануалу, что бои с ИИ только расчётные. Прикинь, проигрывание звуков и попытки проигрывания анимации в таком быстром бою. А то ещё и всплывающий диалог. В целом идею, конечно, понимаю, но она ведь неспроста отключена в HD+ для Вога?
Кто-то хочет играть в WoG/ERA только с баллансирующими настройками с небольшим четко ограниченным набором скриптов. Я прекрасно понимаю, что Бараторч включил "защиту от дураков". Но думаю, если тщательно проверить каждый активируемый ERM скрипт, касающийся боёвки, то нормально будет. Не будут работать нормально только те, в которых делается предположение, что если быстрый бой, то в нём одна из сторон обязательно человек. Таких, думаю, меньшинство, так как на человека есть одна проверка, а на быстрый бой другая. Может он нам даст версию хотя бы с обещанием нераспространения, где "защита дураков" будет отключена .
|
|
06.06.2018 16:32 |
|
Vedmedkin
Posts: 10
|
(04.06.2018 22:16)Berserker Wrote: Heromant, первое не планируется лично мной (может кто осилит плагин), второе — если не ошибаюсь, один из бинарных патчей в Фениксе как раз это и делает.
Vedmedkin, подскажите версию Эры и путь к игре, пожалуйста.
путь к игре F:\Games\Heroes 3 wog
А где смотреть версию Era II?
(This post was last modified: 08.06.2018 01:16 by Vedmedkin.)
|
|
08.06.2018 00:31 |
|
SATCHEL
Posts: 13
|
Здравствуйте, кто-нибудь знает где можно русификатор найти под Эровский вог ( В виде мода )? А то рабочих ссылок я найти не могу, стоит Эра 2.75. В титуле ссылка на русификатор дохлая.
(This post was last modified: 16.06.2018 10:17 by SATCHEL.)
|
|
16.06.2018 10:08 |
|
Algor
Posts: 3881
|
|
16.06.2018 15:17 |
|
SATCHEL
Posts: 13
|
Algor, Уже )
И вот еще , вылазит такая фигня wog getbitmap816 could not be "bitmap8" resource "" . Ресурс не указан. Играю с модом на XXL карты, что это может быть?
(This post was last modified: 18.06.2018 14:27 by SATCHEL.)
|
|
17.06.2018 15:39 |
|
Maxop
Posts: 11
|
Ни у кого нет скрипта Архитектор (автозастройка городов) для Era.
|
|
24.06.2018 10:40 |
|
Valery
Posts: 2196
|
Bersy, we have tons of complaints in HC about latest Era versions, people can't just start it. Same people said 2.46 worked fine. personally I have no problems with 2.72 and uploaded full installed version, yet they can't fix it, still LUA missing messages. Maybe you have a few time and see if possible to get back to 2.46 installing configuration.
|
|
26.06.2018 14:23 |
|
igrik
Posts: 2819
|
|
26.06.2018 14:28 |
|
Valery
Posts: 2196
|
Well, according to Berserker notes, saves from 246 will no longer be compatible with later versions and I already experienced that. I see no point having people submitting 246 saves for debug that we can't open. Aren't also some technical additions in latest, new events or so?
|
|
26.06.2018 15:31 |
|
igrik
Posts: 2819
|
|
26.06.2018 18:48 |
|
Vedmedkin
Posts: 10
|
Может кто то поможет таки решить проблему, которую не смог решить и гугл мне не помог. все было нормально, играл без проблем, а недавно стал получать это:
Assert violation in file (Дальше ссылка на несуществующую директорию) on line 489
Error at adress:
Message: "Failed to load angel.dll"
Причем герои HotA работают без проблем.
Версия ERA 2 2.7.5
(This post was last modified: 30.06.2018 00:02 by Vedmedkin.)
|
|
29.06.2018 23:27 |
|
Heromant
Posts: 348
|
(04.06.2018 22:16)Berserker Wrote: Heromant Wrote:Второй вопрос:
Есть ли в ERA или каких-то скриптах к ней фикс повышения (вместо понижения) урона от башен, если есть втор. навык доспехи или закл. защита от стрельбы?
второе — если не ошибаюсь, один из бинарных патчей в Фениксе как раз это и делает.
Это в папке After WoG которые? Не нашел что-то.
|
|
03.07.2018 11:16 |
|
Reinc
Posts: 145
|
Скачал версию 2.7.5, всё стало лучше работать, стабильнее и красивее, но я встретил новые для себя проблемы:
1) при разделении отрядов во время битвы, количество существ в изначальном стеке становится огромным (2637756). В старой версии Эры и ещё просто в ВоГе скрипт с разделением такую проблему не создавал.
2) мои оруженосцы не поднимаются ни заклинанием "оживление мертвецов", ни "воскрешением".
3) если командир был воскрешён в битве, то после битвы он всё равно считается мёртвым.
4) палатка первой помощи лечит/воскрешает без всякой анимации и звуков, я даже не сразу понял, что лечение вообще происходит.
Старый-престарый баг с ВоГ-сундуками по-прежнему существует: получаю и ресурсы и параметр, а не что-то одно.
(This post was last modified: 21.07.2018 20:33 by Reinc.)
|
|
21.07.2018 18:07 |
|
ALEXALEX3434
Posts: 272
|
Какие отличия era 2.7.5 от старой 2.4.3.
Никак не могу найти описание.Поиск тоже не дал результата.Если есть описание ткните носом.
|
|
26.07.2018 14:37 |
|