Avatar utilizator
SCOOB
Administrator
Administrator
  • Mesaje: 4897
    Membru din: 07 Aug 2024, 18:53
  • Reacții: 119400
  • Mesaje utile: 47
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Avatar utilizator
    SCOOB
    Administrator
    Administrator
    *Descriere:

    Acesta este un FIX care rezolva o problema veche de pe toate sursele.

    Daca esti GM si te faci invizibil folosind comanda /inv, daca dai zoom la camera si te uiti dintr-un anumit unghi vei putea vedea anumite efecte ale caracterului invizibil (efecte stralucire de la iteme +9, stema GM, etc.)

    Acest bug este prezent si la Ninja care folosesc skill-ul "Camuflaj" sau la playerii care folosesc item-ul "Steag alb" pentru a se face invizibili.

    Acest FIX rezolva acest lucru, facand caracterul invizibil complet invizibil pentru playerii nromali!

    Dupa ce faceti FIX-ul, aveti aici un Update (rezolva problema la invizibilitate dupa relog):
    Relog bugs fixes (2)

    Bugs:
    - Relog with active AFFECT_EUNHYEONG and the character will be visible again after 2 seconds
    - Relog with an active effect like poison or bleeding and AFFECT_EUNHYEONG and when you come visible again the debuffs will not be visible.

    FIX:
    In InstanceBaseEffect.cpp:

    Find void CInstanceBase::__SetReviveInvisibilityAffect(bool isVisible) and modify as follows
    (or add above void CInstanceBase::__Assassin_SetEunhyeongAffect(bool isVisible) if you don't have it at all)
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    In void CInstanceBase::__Assassin_SetEunhyeongAffect(bool isVisible) add the ShowAllAttachingEffects() command in the else statement like this:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Last but not least go to the switch statement in void CInstanceBase::__SetAffect(UINT eAffect, bool isVisible) and change the AFFECT_REVIVE_INVISIBILITY case like this:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    *Poze / Video:

    Poza cu bug-ul:
    picture.png
    *Link download / Code:

    Deschidem InstanceBaseEffect.cpp si cautam:
    Code:
        		case AFFECT_INVISIBILITY:
    Modificam tot case-ul cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Daca nu ai ENABLE_CANSEEHIDDENTHING_FOR_GM, poti adauga de aici imbunatatirea: can-see-hidden-things-t2832.html

    Nou 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)
    • Nou Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele rapid & simplu.

    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
    Comunitatea Metin2 Romania este si pe Discord! :ymcowboy:

    2500+ membri • Chat activ zilnic • Support • Cereri & Resurse

    ► discord.gg/jWxeDSf7HP ◄





    See full signature
    Avatar utilizator
    salexandru9982
    Contributor
    Contributor
  • Mesaje: 225
    Membru din: 26 Noi 2024, 08:43
  • Reacții: 1431
  • Mesaje utile: 1
  • Status: Uite si eu pe aici!
  • Regat: Jinno
  • [ID Discord]
  • Medalii

    Avatar utilizator
    salexandru9982
    Contributor
    Contributor

    Mesaj

    si dupa ce faceti fix-ul asta mai jos va las fix la effect-ul ala mov de la stelth skill care nu se vede la alti playeri

    1. GameLib/ActorInstance.h

    In struct TAttachingEffect, add a field after isAttaching:
    Code:
    BOOL isKeepVisible;
    Replace void HideAllAttachingEffect(); with:
    Code:
    void		HideAllAttachingEffect(bool bKeepProtected = false);
    void		KeepAttachingEffectVisible(DWORD dwEffectIndex);
    2. GameLib/ActorInstanceAttach.cpp

    In AttachEffectByID, after ae.isAttaching = TRUE; add:

    Code:
    ae.isKeepVisible = FALSE;
    In the race-data effect block (ATTACHING_DATA_TYPE_EFFECT), after ae.isAttaching = TRUE; add:
    Code:
    ae.isKeepVisible = FALSE;
    Replace HideAllAttachingEffect and add the new function below it:
    Code:
    void CActorInstance::HideAllAttachingEffect(bool bKeepProtected)
    {
    	std::list<TAttachingEffect>::iterator it;
    	for(it = m_AttachingEffectList.begin(); it!= m_AttachingEffectList.end();++it)
    	{
    		if (bKeepProtected && it->isKeepVisible)
    			continue;
    
    		CEffectManager::Instance().SelectEffectInstance(it->dwEffectIndex);
    		CEffectManager::Instance().HideEffect();
    #ifdef __ENABLE_STEALTH_FIX__
    		CEffectManager::Instance().ApplyAlwaysHidden();
    #endif
    	}
    }
    Code:
    void CActorInstance::KeepAttachingEffectVisible(DWORD dwEffectIndex)
    {
    	std::list<TAttachingEffect>::iterator it;
    	for(it = m_AttachingEffectList.begin(); it!= m_AttachingEffectList.end();++it)
    	{
    		if (it->dwEffectIndex == dwEffectIndex)
    		{
    			it->isKeepVisible = TRUE;
    			break;
    		}
    	}
    }
    3. GameLib/ActorInstanceMotionEvent.cpp, in ProcessMotionEventEffectEvent

    Change the AttachEffectByID (inside if (c_pEffectData->isFollowing)) to:
    Code:
    		if (c_pEffectData->isFollowing)
    		{
    			AttachEffectByID(0,
    						c_pEffectData->strAttachingBoneName.c_str(),
    						c_pEffectData->dwEffectIndex,
    						&c_pEffectData->v3EffectPosition);
    		}
    With:
    Code:
    		if (c_pEffectData->isFollowing)
    		{
    			DWORD dwEID = AttachEffectByID(0,
    						c_pEffectData->strAttachingBoneName.c_str(),
    						c_pEffectData->dwEffectIndex,
    						&c_pEffectData->v3EffectPosition);
    			KeepAttachingEffectVisible(dwEID);
    		}
    Change the last AttachEffectByID (the final else branch) to:
    Code:
    	{
    		AttachEffectByID(0, NULL, c_pEffectData->dwEffectIndex, &c_pEffectData->v3EffectPosition);
    	}
    With;
    Code:
    	{
    		DWORD dwEID = AttachEffectByID(0, NULL, c_pEffectData->dwEffectIndex, &c_pEffectData->v3EffectPosition);
    		KeepAttachingEffectVisible(dwEID);
    	}
    4. UserInterface/InstanceBase.cpp, in the CInstanceBase::Render() loop

    Replace the inside of the loop with:
    Code:
    if (pkInstEach->IsAffect(AFFECT_EUNHYEONG) || pkInstEach->IsAffect(AFFECT_INVISIBILITY))
    {
    	if (CPythonPlayer::Instance().IsMainCharacterIndex(pkInstEach->GetVirtualID()))
    		continue;
    
    	const bool bStealthOnly = pkInstEach->IsAffect(AFFECT_EUNHYEONG) && !pkInstEach->IsAffect(AFFECT_INVISIBILITY);
    	pkInstEach->m_GraphicThingInstance.HideAllAttachingEffect(bStealthOnly);
    }
    GM te vede ca este smecher =))

    Player PLA
    See full signature

    Înapoi la “FIX-uri”

    Discord ID copiat: