8 mesaje
  • Mesaje: 26
  • Reacții: 255
  • Mesaje utile: 1
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    *Descriere:

    Acest sistem permite jucătorilor să activeze sau să dezactiveze câștigul de experiență prin intermediul unui buton din taskbar.
    Folosește un efect special (`AFFECT_EXP_CURSE`) pentru a bloca EXP și actualizează starea butonului dinamic.

    *Poze / Video (obligatoriu):

    [C++/Py] Anti Exp in Task Bar - ShadowsPR0 - Mesaj 1 - Imagine 1
    [C++/Py] Anti Exp in Task Bar - ShadowsPR0 - Mesaj 1 - Imagine 2


    *Link download:

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

    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

    📢 Resurse Metin2 Premium!

    Zeci de resurse Metin2 Premium - exclusive și 100% funcționale începând cu 15.99€!.

    Vezi resursele Cumpără premium
    Premium
    Premium
    Anunț
  • Mesaje: 2
  • Reacții: 1
  • Mesaje utile: 0
  • Medalii

    0811 03:18:22876 :: Traceback (most recent call last):

    0811 03:18:22876 :: File "game.py", line 789, in BINARY_NEW_AddAffect

    0811 03:18:22876 :: File "uiTaskBar.py", line 902, in UpdateAntiExpButtonState

    0811 03:18:22877 :: AttributeError
    0811 03:18:22877 :: :
    0811 03:18:22877 :: 'module' object has no attribute 'CheckAffect'
    0811 03:18:22877 ::
  • Mesaje: 26
  • Reacții: 255
  • Mesaje utile: 1
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    masteriodo1988-maker scrie: 0811 03:18:22876 :: Traceback (most recent call last):

    0811 03:18:22876 :: File "game.py", line 789, in BINARY_NEW_AddAffect

    0811 03:18:22876 :: File "uiTaskBar.py", line 902, in UpdateAntiExpButtonState

    0811 03:18:22877 :: AttributeError
    0811 03:18:22877 :: :
    0811 03:18:22877 :: 'module' object has no attribute 'CheckAffect'
    0811 03:18:22877 ::

    In Client Src -> PythonPlayerModule.cpp
    Code:
    // Find:
    
    PyObject * playerSetAttackKeyState(PyObject* poSelf, PyObject* poArgs)
    
    
    // Add Above:
    
    #ifdef ENABLE_ANTI_EXP
    PyObject* playerCheckAffect(PyObject* poSelf, PyObject* poArgs)
    {
    	DWORD dwType;
    	if (!PyTuple_GetUnsignedLong(poArgs, 0, &dwType))
    		return Py_BadArgument();
    
    	BYTE bApplyOn;
    	if (!PyTuple_GetByte(poArgs, 1, &bApplyOn))
    		return Py_BadArgument();
    
    	int iAffIndex = CPythonPlayer::Instance().GetAffectDataIndex(dwType, bApplyOn);
    	return Py_BuildValue("b", iAffIndex != -1);
    }
    #endif
    
    
    // Find:
    
    		{ NULL,							NULL,								NULL },
    
    // Add Above:
    
    #ifdef ENABLE_ANTI_EXP
    		{ "CheckAffect",				playerCheckAffect,					METH_VARARGS },
    #endif
    Link download actualizat.
  • Mesaje: 5
  • Reacții: 3
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    'GetAffectDataIndex': is not a member of 'CPythonPlayer'
  • Mesaje: 26
  • Reacții: 255
  • Mesaje utile: 1
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    blackorck1997 scrie: 'GetAffectDataIndex': is not a member of 'CPythonPlayer'
    in PythonPlayer.cpp
    Code:
    Search for:
    
    CPythonPlayer::CPythonPlayer(void)
    
    Add Above:
    
    int CPythonPlayer::GetAffectDataIndex(DWORD dwType, BYTE bApplyOn)
    {
    	int ret = -1, i = 0;
    	for (TAffectDataVector::iterator it = m_mapAffectData.begin(); it != m_mapAffectData.end(); ++it, ++i)
    	{
    		TPacketAffectElement elem = *it;
    		if (elem.dwType == dwType && (bApplyOn == 0 || bApplyOn == elem.bPointIdxApplyOn))
    		{
    			ret = i;
    			break;
    		}
    	}
    	return ret;
    }
    in PythonPlayer.h
    Code:
    search for:
    
    		void	RemoveAffect(DWORD dwType, BYTE bApplyOn);
    
    Add below:
    
    		int		GetAffectDataIndex(DWORD dwType, BYTE bApplyOn);

    Can i ask what source you are working on as most sources should have these functions ?
    Administrator Administrator
  • Mesaje: 3543
  • Reacții: 59235
  • Mesaje utile: 37
  • Status: Pe aici.. 🤠
  • Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    Avatar utilizator
    Administrator
    Administrator

    Mesaj de [HF]White »

    Testat, perfect functional - Mersi!



    Edit: Poti pune textu cu activat/dezactivat direct din python in functia:
    Code:
    def UpdateAntiExpButtonState(self):
    folosind
    Code:
    chat.AppendChat("Text aici")
    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
  • Mesaje: 22
  • Reacții: 4
  • Mesaje utile: 0
  • Medalii

    https://gyazo.com/9e3ad1372b5b937f84346b0bfabaac4c

    REVIN CU O INTREBARE? ASA TREBUIE SA FUNCTIONEZE? Vad la scoob ca ii ramane pe toggle, dar mie nu insa am scos din sursa GetAffectDataIndex
    am scos si din game.py codurile astea 2 puse :
    Code:
    if app.ENABLE_ANTI_EXP and type == chr.NEW_AFFECT_EXP_CURSE:
    			if self.interface.wndTaskBar:
    				self.interface.wndTaskBar.UpdateAntiExpButtonState()
    + din uitaskbar.py
    Code:
    if app.ENABLE_ANTI_EXP:
    		def UpdateAntiExpButtonState(self):
    			if self.toggleButtonDict.has_key(TaskBar.BUTTON_ANTI_EXP):
    				button = self.toggleButtonDict[TaskBar.BUTTON_ANTI_EXP]
    
    				if player.CheckAffect(chr.NEW_AFFECT_EXP_CURSE, 0):
    					button.Down()
    				else:
    					button.SetUp()
    si mergea fara probleme pe toggle 100%
    insa intrebarea mea e
    ce rol are codul asta ? xd adica ce face el mai exact
    Code:
    	if app.ENABLE_ANTI_EXP:
    		def UpdateAntiExpButtonState(self):
    			if self.toggleButtonDict.has_key(TaskBar.BUTTON_ANTI_EXP):
    				button = self.toggleButtonDict[TaskBar.BUTTON_ANTI_EXP]
    
    				if player.CheckAffect(chr.NEW_AFFECT_EXP_CURSE, 0):
    					button.Down()
    				else:
    					button.SetUp()
  • Mesaje: 22
  • Reacții: 4
  • Mesaje utile: 0
  • Medalii

    p.s. / https://gyazo.com/1c8db7474b7d1442616b769bba6a8cac
    am comentat ce am zis mai sus, iar butonul de on/off isi da update bine la toggle !

    astept sa mi zica cineva cum se comporta functia aia ( UpdateAntiExpButtonState ) sau am facut eu ceva gresit !

    📢 Resurse Metin2 Premium!

    Zeci de resurse Metin2 Premium - exclusive și 100% funcționale începând cu 15.99€!.

    Vezi resursele Cumpără premium
    Premium
    Premium
    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 “Sisteme Metin2”

    Informații

    Utilizatori ce navighează pe acest forum: byronovo, Muertikk, PepsiZero și 7 vizitatori

    Discord ID copiat: