Administrator
Administrator
  • Mesaje: 4965
    Membru din: 07 Aug 2024, 18:53
  • Reacții: 125342
  • Mesaje utile: 47
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • *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:
    [FIX] Efecte GM/Camuflaj invizibile - Mesaj 1 - Imagine 1
    picture.png (524.19 KiB) Vizualizat de 736 ori
    *Link download / Code:

    Deschidem InstanceBaseEffect.cpp si cautam:

    Cod: Selectaţi tot

        		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
    See full signature
    Contributor
    Contributor
  • Mesaje: 226
    Membru din: 26 Noi 2024, 08:43
  • Reacții: 1498
  • 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:

    Cod: Selectaţi tot

    BOOL isKeepVisible;
    Replace void HideAllAttachingEffect(); with:

    Cod: Selectaţi tot

    void		HideAllAttachingEffect(bool bKeepProtected = false);
    void		KeepAttachingEffectVisible(DWORD dwEffectIndex);
    2. GameLib/ActorInstanceAttach.cpp

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

    Cod: Selectaţi tot

    ae.isKeepVisible = FALSE;
    In the race-data effect block (ATTACHING_DATA_TYPE_EFFECT), after ae.isAttaching = TRUE; add:

    Cod: Selectaţi tot

    ae.isKeepVisible = FALSE;
    Replace HideAllAttachingEffect and add the new function below it:

    Cod: Selectaţi tot

    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
    	}
    }

    Cod: Selectaţi tot

    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:

    Cod: Selectaţi tot

    		if (c_pEffectData->isFollowing)
    		{
    			AttachEffectByID(0,
    						c_pEffectData->strAttachingBoneName.c_str(),
    						c_pEffectData->dwEffectIndex,
    						&c_pEffectData->v3EffectPosition);
    		}
    With:

    Cod: Selectaţi tot

    		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:

    Cod: Selectaţi tot

    	{
    		AttachEffectByID(0, NULL, c_pEffectData->dwEffectIndex, &c_pEffectData->v3EffectPosition);
    	}
    With;

    Cod: Selectaţi tot

    	{
    		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:

    Cod: Selectaţi tot

    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”

    Informații

    Utilizatori ce navighează pe acest forum: nevermindz, zsoltika199 și 2 vizitatori

    Discord ID copiat: