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

    Atunci cand mori, buff-urile de la Shaman nu vor mai disparea.

    Acestea vor ramane in continuare pe tine, pana cand le dezactivezi tu sau expira timpul.

    *Poze / Video:
    *Link download / Code:

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

    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
    Te asteptam si pe serverul de Discord :p - aici ne-am strans toata comunitatea de Metin2 din Romania.
    Link: https://discord.gg/jWxeDSf7HP

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





    See full signature
    Developer Developer
  • Mesaje: 14
  • Reacții: 93
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • [ID Discord]
  • Contact:

    Medalii

    Avatar utilizator
    Developer
    Developer

    Mesaj de _wawaaa »

    O mica imbunatatire pentru sistemul de pastrare a buff-urilor dupa moarte. Pe langa faptul ca poti alege exact ce affect-uri raman active, sunt gestionate si efectele vizuale pentru a evita problemele care pot aparea pe unele surse dupa revive.


    Locale_inc.h
    Adauga:
    Code:
    #define KEEP_BUFFS_PVM_AFTER_DIE
    
    InstanceBase.h
    Cauta:
    Code:
    		void __ClearAffects();
    
    Adauga:
    Code:
    
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    		void __HideAffectEffects();
    		void __RestoreAffectEffects();
    #endif
    

    InstanceBaseBattle.cpp
    Cauta:
    Code:
    void CInstanceBase::Revive()
    {
    	m_isGoing=FALSE;
    	m_GraphicThingInstance.Revive();
    
    	__AttachHorseSaddle();
    
    Adauga:
    Code:
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    	__RestoreAffectEffects();
    #endif
    
    Cauta in functia: void CInstanceBase::Die()
    Code:
    	////////////////////////////////////////
    	__ClearAffects();
    	////////////////////////////////////////
    
    Modifica:
    Code:
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    	__HideAffectEffects();
    #else
    	////////////////////////////////////////
    	__ClearAffects();
    	////////////////////////////////////////
    #endif
    
    Instance BaseEffect.cpp
    Cauta functia:
    Code:
    void CInstanceBase::__SetNormalAffectFlagContainer(const CAffectFlagContainer& c_rkAffectFlagContainer)
    
    Adauga: INAINTE
    Code:
    
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    void CInstanceBase::__HideAffectEffects()
    {
    	if (IsStone())
    		return;
    	for (int i = 0; i < CAffectFlagContainer::BIT_SIZE; ++i)
    	{
    		if (m_kAffectFlagContainer.IsSet(i))
    			__SetAffect(i, false);
    	}
    }
    void CInstanceBase::__RestoreAffectEffects()
    {
    	if (IsStone())
    		return;
    	for (int i = 0; i < CAffectFlagContainer::BIT_SIZE; ++i)
    	{
    		if (m_kAffectFlagContainer.IsSet(i))
    			__SetAffect(i, true);
    	}
    }
    #endif
    

    service.h sau commondefines.h
    Adauga:
    Code:
    #define KEEP_BUFFS_PVM_AFTER_DIE
    
    char.h
    Cauta:
    Code:
    		void ClearAffect(bool bSave = false);
    
    Modifica:
    Code:
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    		void ClearAffect(bool bSave = false, bool letBuffs = false);
    #else
    		void ClearAffect(bool bSave = false);
    #endif
    
    Cauta:
    Code:
    		bool			IsGoodAffect(BYTE bAffectType) const;
    Adauga:
    Code:
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    		bool			IsKeepBuffAfterDieAffect(BYTE bAffectType) const;
    #endif
    char_affect.cpp
    Cauta:
    Code:
    void CHARACTER::ClearAffect(bool bSave)
    Modifica:
    Code:
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    void CHARACTER::ClearAffect(bool bSave, bool letBuffs)
    #else
    void CHARACTER::ClearAffect(bool bSave)
    #endif
    In aceasi functie, cauta:
    Code:
    		if (bSave)
    		{
    			if ( IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType) )
    			{
    				++it;
    				continue;
    			}
    
    Adauga:
    Code:
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    			if (letBuffs && IsKeepBuffAfterDieAffect(pkAff->dwType))
    			{
    				++it;
    				continue;
    			}
    #endif
    

    Dupa functia:
    Code:
    void CHARACTER::RemoveGoodAffect()
    {
    	[...]
    }
    
    Aici poti pune ce affect sa ramana
    Adauga:
    Code:
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    bool CHARACTER::IsKeepBuffAfterDieAffect(BYTE bAffectType) const
    {
    	switch (bAffectType)
    	{
    		case SKILL_HOSIN:
    		case SKILL_REFLECT:
    		case SKILL_GICHEON:
    		case SKILL_KWAESOK:
    		case SKILL_JEUNGRYEOK:
    			return true;
    	}
    	return false;
    }
    #endif
    

    char_battle.cpp
    Cauta:
    Code:
    	SetPosition(POS_DEAD);
    	ClearAffect(true);
    
    Modifica:
    Code:
    	SetPosition(POS_DEAD);
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    	if (IsPC())
    		ClearAffect(true, true);
    	else
    		ClearAffect(true);
    #else
    	ClearAffect(true);
    #endif
    

    Cauta:
    Code:
    	if (GetDesc() != NULL) {
    		itertype(m_list_pkAffect) it = m_list_pkAffect.begin();
    		while (it != m_list_pkAffect.end()) {
    			CAffect* pkAff = *it++;
    
    Adauga:
    Code:
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    			if (IsKeepBuffAfterDieAffect(pkAff->dwType))
    				continue;
    #endif
    

    Functia devine asa:
    Code:
    	if (GetDesc() != NULL) {
    		itertype(m_list_pkAffect) it = m_list_pkAffect.begin();
    		while (it != m_list_pkAffect.end()) {
    			CAffect* pkAff = *it++;
    #ifdef KEEP_BUFFS_PVM_AFTER_DIE
    			if (IsKeepBuffAfterDieAffect(pkAff->dwType))
    				continue;
    #endif
    			SendAffectAddPacket(GetDesc(), pkAff);
    		}
    	}
    
    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 “Îmbunătățiri”

    Informații

    Utilizatori ce navighează pe acest forum: br34k3r, DraK0n, Ene, Himura, Nicu Moza și 6 vizitatori

    Discord ID copiat: