2 mesaje
Administrator Administrator
  • Mesaje: 3449
  • Reacții: 48407
  • Mesaje utile: 29
  • Status: Pe aici.. 🤠
  • Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    *Descriere:

    Mai jos aveti un FIX pentru o problema legata de atacul la saman de pe cal sau mount.

    Problema este ca atunci cand samanii ataca si au viteza de atac peste 145 puncte, acestia nu dau damage la fiecare hit. (nu se vede dmg cu galben)

    De ce se intampla acest bug vizual?
    Deoarece nu sunt sincronizate unele chestii sursa <-> client, iar animatia de la atac pe shaman este mai rapida decat proceseaza sursa binary + client, astfel dmg nu este afisat.

    Cum reproducem acest bug?
    Faceti-va un caracter de saman -> dati-va viteza de atac 200 -> urcati pe un mount -> atacati o piatra metin

    *Poze / Video:

    Dupa FIX, atacul va fi rezolvat exact ca la celalalte caractere:

    [FIX] Bug Atac Shaman si Lycan de pe Mount/Cal - Mesaj 1 - Imagine 1
    *Link download / Code:

    Deschidem ActorInstance.h si cautam:
    Code:
    protected:
            void __RunNextCombo();
            void __ClearCombo();
            void __OnEndCombo();
    
            void __ProcessDataAttackSuccess(const NRaceData::TAttackData & c_rAttackData, CActorInstance & rVictim, const D3DXVECTOR3 & c_rv3Position, UINT uiSkill = 0, BOOL isSendPacket = TRUE);
            void __ProcessMotionEventAttackSuccess(DWORD dwMotionKey, BYTE byEventIndex, CActorInstance & rVictim);
            void __ProcessMotionAttackSuccess(DWORD dwMotionKey, CActorInstance & rVictim);
    
    Adaugam sub:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschidem acum ActorInstanceBattle.cpp si cautam:
    Code:
    void CActorInstance::__ProcessDataAttackSuccess(const NRaceData::TAttackData & c_rAttackData, CActorInstance & rVictim, const D3DXVECTOR3 & c_rv3Position, UINT uiSkill, BOOL isSendPacket)
    {
        if (NRaceData::HIT_TYPE_NONE == c_rAttackData.iHittingType)
            return;
    
        InsertDelay(c_rAttackData.fStiffenTime);
    
        if (__CanPushDestActor(rVictim) && c_rAttackData.fExternalForce > 0.0f)
        {
            __PushCircle(rVictim);
    
            // VICTIM_COLLISION_TEST
            const D3DXVECTOR3& kVictimPos = rVictim.GetPosition();
            rVictim.m_PhysicsObject.IncreaseExternalForce(kVictimPos, c_rAttackData.fExternalForce); //*nForceRatio/100.0f);
    
            // VICTIM_COLLISION_TEST_END
        }
    
        // Invisible Time
        if (IS_PARTY_HUNTING_RACE(rVictim.GetRace()))
        {
            if (uiSkill) // ÆÄƼ »ç³É ¸ó½ºÅÍ¶óµµ ½ºÅ³ÀÌ¸é ¹«Àû½Ã°£ Àû¿ë
                rVictim.m_fInvisibleTime = CTimer::Instance().GetCurrentSecond() + c_rAttackData.fInvisibleTime;
    
            if (m_isMain) // #0000794: [M2KR] Æú¸®¸ðÇÁ - ¹ë·±½Ì ¹®Á¦ ŸÀÎ °ø°Ý¿¡ ÀÇÇÑ ¹«Àû ŸÀÓÀº °í·ÁÇÏÁö ¾Ê°í Àڽаø°Ý¿¡ ÀÇÇѰ͸¸ üũÇÑ´Ù
                rVictim.m_fInvisibleTime = CTimer::Instance().GetCurrentSecond() + c_rAttackData.fInvisibleTime;
        }
        else // ÆÄƼ »ç³É ¸ó½ºÅͰ¡ ¾Æ´Ò °æ¿ì¸¸ Àû¿ë
        {
            rVictim.m_fInvisibleTime = CTimer::Instance().GetCurrentSecond() + c_rAttackData.fInvisibleTime;
        }
    Inlocuim sau adaptam (vezi #ifdef __ENABLE_SHAMAN_ATTACK_FIX__):

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Adaugam la sfarsitul fisierului:
    Code:
    #ifdef __ENABLE_SHAMAN_ATTACK_FIX__
    float CActorInstance::__GetInvisibleTimeAdjust(const UINT uiSkill, const NRaceData::TAttackData& c_rAttackData) {
    
        static const int shamanw = 3, shamanm = 7;
    
        if ((GetRace() != shamanw && GetRace() != shamanm) ||
            uiSkill != 0 ||
            m_fAtkSpd < 1.3)
            return 0.0f;
    
        const auto scale = (m_fAtkSpd - 1.3) / 1.3;
        const auto inv = c_rAttackData.fInvisibleTime * 0.5;
        return inv * scale;
    }
    #endif
    Nota! Aveti grija sa aveti urmatorul include:
    Code:
    #include "../UserInterface/Locale_inc.h"

    Pentru Lycan, cautam:
    Code:
    shamanm = 7
    Adaugam:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cautam:
    Code:
    	if ((GetRace() != shamanw && GetRace() != shamanm) ||
    		uiSkill != 0 ||
    		m_fAtkSpd < 1.3)
    		return 0.0f;
    Adaptam:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.

    Cum descarc de pe TeraBox?

    Afișează detalii Ascunde detalii
    • Este asemănător cu Mega.nz
    • Instalați-vă clientul lor de Download de aici
    • Faceți-vă un cont (vă puteți loga cu Facebook / Google / etc)
    • Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele

    De ce folosim TeraBox?

    • Este gratuit
    • Primești 1TB de spațiu gratuit la orice cont creat!
    • Este ușor de folosit și varianta premium este foarte ieftină
    • Fișierele nu sunt șterse niciodată
    TeraBox logo
    Te asteptam si pe serverul de Discord :p - aici ne-am strans toata comunitatea de Metin2 din Romania.
    Link: https://discord.gg/jWxeDSf7HP

    Suntem peste 1700 membri! - Avem chat activ zilnic, support, cereri, resurse. :D :ymcowboy:




    See full signature

    🔥 Hai pe Discord! - Chat activ și support direct

    Te așteptăm și pe serverul de Discord - aici ne-am strâns toată comunitatea de Metin2 din România.

    Alătură-te acum!
    1300+ de membri activi!
    Robot Discord
    Roboțelu'
    Anunț
    Administrator Administrator
  • Mesaje: 3449
  • Reacții: 48407
  • Mesaje utile: 29
  • Status: Pe aici.. 🤠
  • Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    Avatar utilizator
    Administrator
    Administrator

    Mesaj de [HF]White »

    Am adaugat FIX si pentru lycan, care suferea de aceeasi boala :))
    Te asteptam si pe serverul de Discord :p - aici ne-am strans toata comunitatea de Metin2 din Romania.
    Link: https://discord.gg/jWxeDSf7HP

    Suntem peste 1700 membri! - Avem chat activ zilnic, support, cereri, resurse. :D :ymcowboy:




    See full signature

    🔥 Hai pe Discord! - Chat activ și support direct

    Te așteptăm și pe serverul de Discord - aici ne-am strâns toată comunitatea de Metin2 din România.

    Alătură-te acum!
    1300+ de membri activi!
    Robot Discord
    Roboțelu'
    Anunț
    Scrie răspuns

    Creează-ți un cont sau autentifică-te pentru a participa la discuție

    Trebuie să fii membru pentru a răspunde

    Creează-ți un cont

    Membrii pot crea subiecte noi și pot descărca resurse Metin2 Gratuit!


    Te poți înregistra sau conecta rapid utilizând contul tău de Discord, Github sau Google.

    Înregistrare

    Autentifică-te

    Înapoi la “FIX-uri”

    Informații

    Utilizatori ce navighează pe acest forum: kuze11 și 2 vizitatori

    Discord ID copiat: