Current time: 23.04.2024, 19:32 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Ваши вопросы по ERM-скриптам
Author Message
Berserker Offline
Administrators

Posts: 16488
Post: #7411



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

Posts: 1005
Post: #7412

Berserker, спасибо, проверил, теперь мои лыжи не едут совсем, юниты (кроме оруженосца) теперь вообще не получают бонуса к скорости, может я где накосячил:


Тот, кто просыпается рано - жаворонок, поздно - сова. А тот, кто плохо спит и ходит с черными кругами под глазами - панда!
01.11.2020 01:42
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7413

Перед !?FU(OnBattleRound)&v997=0/v35<>v36; [Battle round trigger for tactics, before tactics phase]
Попробуй вставить:
!?FU(OnBattleRound);
!!IF:M^%v997 %v35 %v36^;

Будет выводиться раунд и значения тактик героев.


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

Posts: 1005
Post: #7414

Berserker, выводит 030, 130 и т.п., все значения в норме, все юниты получили +3 к скорости, как и положено..


Тот, кто просыпается рано - жаворонок, поздно - сова. А тот, кто плохо спит и ходит с черными кругами под глазами - панда!
01.11.2020 02:09
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7415

Panda, то есть проблемы и не было с обновлённой dll? Перепроверь, пожалуйста. Не забудь про F12.


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

Posts: 1005
Post: #7416

Berserker, перепроверил с обновленной dll, проблем пока что не наблюдаю, после добавления "!?FU(OnBattleRound);" и F12 пока что всё хорошо, все юниты получают +3 к скорости как и положено Ab


Тот, кто просыпается рано - жаворонок, поздно - сова. А тот, кто плохо спит и ходит с черными кругами под глазами - панда!
01.11.2020 02:47
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7417

Panda,
дополнительный
!?FU(OnBattleRound);
!!IF:M^%v997 %v35 %v36^;

Можешь смело удалять. Ты не нажал F12 в прошлый раз, видимо.


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

Posts: 1005
Post: #7418

Berserker, да, всё хорошо, я уже на новой карте перепроверил, что поделать, руки из пятой точки (может "промахнулся"), или склероз ("старость не радость") 148


Тот, кто просыпается рано - жаворонок, поздно - сова. А тот, кто плохо спит и ходит с черными кругами под глазами - панда!
01.11.2020 03:41
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1292
Post: #7419

Возможно ли сделать так, чтобы в бою с нейтралами можно было откупиться и сохранить армию?
Если да, то подскажите, плиз, как это сделать.


Карта-мод "Война на Холсте"
01.11.2020 19:09
Find all posts by this user Quote this message in a reply
Valery Offline

Posts: 2196
Post: #7420

Are ghosts hardcoded of I forgot everything about flags?

Trying to make ghosts alive, tried removing undead flag then adding alive, nothing works

*Remove Ghosts undead flag

Code:
!!MA:X159/?k; save abilities in k
!*VRj:Sk &262144*-1; check for undead ability;
!*VRk:+j; remove
!*MA:X159/k;

or/and

!!VRk:|16; add alive
!!MA:X159/k;
(This post was last modified: 02.11.2020 19:10 by Valery.)
02.11.2020 19:09
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #7421

Valery


game bug fixes extended.dll || My Plugins || My GitHub
02.11.2020 19:17
Visit this user's website Find all posts by this user Quote this message in a reply
Valery Offline

Posts: 2196
Post: #7422

ok, so it means it worked but something strange, after script ghosts aren't still affected by curse, how can I solve that. Curse should work if undead flag is removed, no?

@Edit: ah ok, they had immunity fire flag also 105

Solved,thanks
(This post was last modified: 02.11.2020 19:44 by Valery.)
02.11.2020 19:20
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #7423

(01.11.2020 19:09)SergOz Wrote:  Возможно ли сделать так, чтобы в бою с нейтралами можно было откупиться и сохранить армию?
Если да, то подскажите, плиз, как это сделать.
На ERM это технически сложно сделать.
Я делал когда-то (уже не помню кому и зачем. Вроде Армагу(стример такой) и вроде на SoD), да и то плагином.
Code:
_bool_ isRunAwayOfMonstre = false;
int __stdcall Y_RunAwayOfMonstreQ(LoHook* h, HookContext* c)
{    
    _BattleMgr_* bm = o_BattleMgr;    
    *(int*)0x695080 = c->eax; // сохраняем кол-во денег для уплаты выкупа
    char* name; // будет хранить имя героя или монстра
    isRunAwayOfMonstre = false; // переменная от кого сбегает герой (false == от героя противника, true == от монстра)
    if(!bm->hero[1] && bm->current_side == 0) {
        int cr_id = 149; // если в описании будет указана Стрелковая Башня, то есть ошибка в нижеидущем цикле
        int value = 0;
        for (int i=0; i<20; i++) {
            if (bm->stack[1][i].creature_id != -1 && bm->stack[1][i].creature_id != 149 && bm->stack[1][i].count_current > 0) {
                if (bm->stack[1][i].creature.AI_value > value) { // вычисляем наилучший живой стек у нейтралов (если есть улучшенный стек)
                    cr_id = bm->stack[1][i].creature_id;
                    value = bm->stack[1][i].creature.AI_value;
                    // break;
                }
            }
        }
        name = o_pCreatureInfo[cr_id].name_single;
        isRunAwayOfMonstre = true;
    } else {
        name = bm->hero[1 - bm->current_side]->name;
    }
    sprintf(o_TextBuffer, o_GENRLTXT_TXT->GetString(34), name, c->eax);
    c->return_address = 0x4749EB;
    return NO_EXEC_DEFAULT;
}

int __stdcall Y_RunAwayOfMonstreBG(LoHook* h, HookContext* c)
{
    // если герой сбегает за плату от нейтралов
    // то пропускаем код передачи денег другому игроку
    // при этом вычет денег у сбегающего игрока действует
    if (isRunAwayOfMonstre) {
        c->return_address = 0x478FA1;
        return NO_EXEC_DEFAULT;
    }
    return EXEC_DEFAULT;
}


BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    static _bool_ plugin_On = 0;
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        if (!plugin_On)
        {
            plugin_On = 1;    

            _P = GetPatcher();
            _PI = _P->CreateInstance("FixForArmaggame");             

            // делаем откуп в бою с нейтралами
            _PI->WriteCodePatch(0x477EA9, "%n", 12);
            _PI->WriteLoHook(0x4749B4, Y_RunAwayOfMonstreQ);
            _PI->WriteHexPatch(0x478F77, "8918 BA 2B150000"); // меняем местами 2 инструкции кода, чтобы корректно устновить хук и сохранить код вычета денег при сбегании
            _PI->WriteLoHook(0x478F77+2, Y_RunAwayOfMonstreBG);

        }
        break;

    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}


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

Posts: 2814
Post: #7424

(02.11.2020 19:20)Valery Wrote:  ok, so it means it worked but something strange, after script ghosts aren't still affected by curse, how can I solve that. Curse should work if undead flag is removed, no?

@Edit: ah ok, they had immunity fire flag also 105

Solved,thanks
Yes)) 1024 Иммунитет к заклинаниям разума (вроде Печали, Бешенства, т.п.)
Code:
{-1,2,"wrth","ZM159G.def",0x00024402}, // 159 Ghost
2, 1024, 16384, 131072
Но они не нежить!!!!!!!! Они не имеют флага 262144


game bug fixes extended.dll || My Plugins || My GitHub
02.11.2020 19:49
Visit this user's website Find all posts by this user Quote this message in a reply
Valery Offline

Posts: 2196
Post: #7425

Strange. Curse is not mind spell, so removing their fire immunity solved the thing. Nasty ghosts
02.11.2020 20:02
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