dosinabox / g2nr_unofficial_update

Исходники скриптов, релизы, хотфиксы и тестовые версии неофициального обновления для игры "Готика 2: Ночь Ворона".
https://worldofplayers.ru/threads/36817
The Unlicense
13 stars 1 forks source link

B_SetFightSkills и B_AddFightSkill #277

Open Kor-Angar opened 3 years ago

Kor-Angar commented 3 years ago

писал пару раз на тему B_SetFightSkills, напишу ещё разок:-)

у меня всегда в начале игры не подключаются оверлые(так они называются?) у НПС, то есть даже те кто должен мастерски держать меч, держат его как необученные. что бы всё включилось, надо сохранять игру, а потом загружать или совершать какие то подобные действия. Наверное это происходит потому что я играю с D3D11.

Но ведь в этой функции можно устанавливать навыки через B_AddFightSkill , тогда оверлыи будут сразу включаться без пляски с бубнами :-)

func void B_SetFightSkills(var C_Npc slf,var int percent)
{   
    B_AddFightSkill(slf,NPC_TALENT_1H,percent);
    B_AddFightSkill(slf,NPC_TALENT_2H,percent);
    B_AddFightSkill(slf,NPC_TALENT_BOW,percent);
    B_AddFightSkill(slf,NPC_TALENT_CROSSBOW,percent);

    /*
    B_RaiseFightTalent(slf,NPC_TALENT_1H,percent);
    B_RaiseFightTalent(slf,NPC_TALENT_2H,percent);
    B_RaiseFightTalent(slf,NPC_TALENT_BOW,percent);
    B_RaiseFightTalent(slf,NPC_TALENT_CROSSBOW,percent);
    */
};

image

Kor-Angar commented 3 years ago

оверлые

Overlay

Kor-Angar commented 3 years ago

если в B_AddFightSkill

Mdl_RemoveOverlayMds(slf,"humans_1hST1.MDS");
Mdl_RemoveOverlayMds(slf,"humans_1hST2.MDS");

перенести в начало ничего страшного не будет?

    if(talent == NPC_TALENT_1H)
    {
        Mdl_RemoveOverlayMds(slf,"humans_1hST1.MDS");  // сюда перенести
        Mdl_RemoveOverlayMds(slf,"humans_1hST2.MDS"); // сюда перенести

        slf.HitChance[NPC_TALENT_1H] += percent;
        if(slf.HitChance[NPC_TALENT_1H] > 100)
        {
            slf.HitChance[NPC_TALENT_1H] = 100;
        };
        if(slf.HitChance[NPC_TALENT_1H] < 0)
        {
            slf.HitChance[NPC_TALENT_1H] = 0;
        };
        if(slf.HitChance[NPC_TALENT_1H] >= 60)
        {
            Npc_SetTalentSkill(slf,NPC_TALENT_1H,2);
            Mdl_ApplyOverlayMds(slf,"humans_1hST2.mds");
        }
        else if(slf.HitChance[NPC_TALENT_1H] >= 30)
        {
            Npc_SetTalentSkill(slf,NPC_TALENT_1H,1);
            Mdl_ApplyOverlayMds(slf,"humans_1hST1.mds");
        }
        else
        {
            Npc_SetTalentSkill(slf,NPC_TALENT_1H,0);
        //  Mdl_RemoveOverlayMds(slf,"humans_1hST1.MDS"); // отсюда перенести
        //  Mdl_RemoveOverlayMds(slf,"humans_1hST2.MDS"); // отсюда перенести
        };
    };
Kor-Angar commented 3 years ago

перенести в начало ничего страшного не будет?

тоже связано с Overlay. из-за этого штрафы/бонусы от шмоток некорректно меняли Overlay :-)