Current time: 23.06.2018, 02:12 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA II
» WoG Era 2: Русская и Английская версии
Author Message
Berserker Offline
Administrators

Posts: 10554
Post: #3826

И ходы станут тормознее. Конкретно баг с артами скриптами подправить можно.


Скачать Герои 3 Эра и всё, что с ней связано
05.06.2018 23:01
Find all posts by this user Quote this message in a reply
Heromant Offline

Posts: 300
Post: #3827

(05.06.2018 23:01)Berserker Wrote:  И ходы станут тормознее. Конкретно баг с артами скриптами подправить можно.
А кто-то уже поправлял?
Да ненамного. Когда играешь с HD+ в другую версию не замечаешь разницы субъективно. Зато многое можно было бы реализовать.
Например, я немного правил алгоровский скрипт c применением зоркости прямо в бою. Так вот, компам пришлось прописывать совершенно другой код зоркости. При этом если бы была автобитва, можно было бы нормально прописать скрипт и для изучения компами заклинаний в битве с нейтралами-кастерами.
В остальных случаях, с учётом различных изменений в ERM скриптах по сравнению с оригиналом, мы имеем сильно отличающийся от ожидаемого результат в расчётных битвах. Некоторые вещи в AI Value учесть невозможно.
05.06.2018 23:41
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10554
Post: #3828

Heromant, так в HD+ нет ЕРМ/Луа/Плагинов и иной нагрузки в бою. Большинство скриптов считают по мануалу, что бои с ИИ только расчётные. Прикинь, проигрывание звуков и попытки проигрывания анимации в таком быстром бою. А то ещё и всплывающий диалог. В целом идею, конечно, понимаю, но она ведь неспроста отключена в HD+ для Вога?


Скачать Герои 3 Эра и всё, что с ней связано
06.06.2018 15:23
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1331
Post: #3829

Кстати, 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);


Скачать HoMM3 ERA 2.4.6 || (myMods)
Скачать HoMM3 ERA 2.7.5 (Repack: Rus & HD)
06.06.2018 15:48
Visit this user's website Find all posts by this user Quote this message in a reply
Heromant Offline

Posts: 300
Post: #3830

(06.06.2018 15:23)Berserker Wrote:  Heromant, так в HD+ нет ЕРМ/Луа/Плагинов и иной нагрузки в бою. Большинство скриптов считают по мануалу, что бои с ИИ только расчётные. Прикинь, проигрывание звуков и попытки проигрывания анимации в таком быстром бою. А то ещё и всплывающий диалог. В целом идею, конечно, понимаю, но она ведь неспроста отключена в HD+ для Вога?
Кто-то хочет играть в WoG/ERA только с баллансирующими настройками с небольшим четко ограниченным набором скриптов. Я прекрасно понимаю, что Бараторч включил "защиту от дураков". Но думаю, если тщательно проверить каждый активируемый ERM скрипт, касающийся боёвки, то нормально будет. Не будут работать нормально только те, в которых делается предположение, что если быстрый бой, то в нём одна из сторон обязательно человек. Таких, думаю, меньшинство, так как на человека есть одна проверка, а на быстрый бой другая. Может он нам даст версию хотя бы с обещанием нераспространения, где "защита дураков" будет отключенаSpiteful.
06.06.2018 16:32
Find all posts by this user Quote this message in a reply
Vedmedkin Offline

Posts: 2
Post: #3831

(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
Find all posts by this user Quote this message in a reply
SATCHEL Offline

Posts: 13
Post: #3832

Здравствуйте, кто-нибудь знает где можно русификатор найти под Эровский вог ( В виде мода )? А то рабочих ссылок я найти не могу, стоит Эра 2.75. В титуле ссылка на русификатор дохлая.
(This post was last modified: 16.06.2018 10:17 by SATCHEL.)
16.06.2018 10:08
Find all posts by this user Quote this message in a reply
Algor Offline
Administrators

Posts: 2534
Post: #3833

SATCHEL, тремя постами выше у igrik'а в подписи ссылка Скачать HoMM3 ERA 2.7.4 (Repack: Rus & HD).
Скачай и возьми оттуда WoG Rus.


16.06.2018 15:17
Visit this user's website Find all posts by this user Quote this message in a reply
SATCHEL Offline

Posts: 13
Post: #3834

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
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-2018 MyBB Group