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

    Util pentru GM - pentru a testa dropuri.

    Poti seta dintr-o fereastra drop custom.

    De exemplu: Setez drop exp: 50%, drop yang: 235%, drop iteme: 93%

    *Poze / Video:
    [C++/Py] Sansa Drop Personalizata (GUI) - Mesaj 1 - Imagine 1
    *Link download / Code:

    Deschidem cmd.cpp si cautam:
    Code:
    struct command_info cmd_info[] =

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



    Cautam:
    Code:
        { "\n",        NULL,            0,            POS_DEAD,    GM_IMPLEMENTOR    }

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



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



    Deschidem priv_manager.cpp si cautam:
    Code:
        value = MINMAX(0, value, 100);

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




    Deschidem interfaceModule.py si adaugam sub imports:
    Code:
    import uiPersonalDropManager
    Cautam:
    Code:
            self.wndGuildBuilding = None

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



    Cautam:
    Code:
            self.wndChatLog = wndChatLog

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



    Cautam:
    Code:
            if self.wndGuildBuilding:
                self.wndGuildBuilding.Destroy()

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



    Cautam:
    Code:
            del self.wndGuildBuilding

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



    Cautam:
    Code:
            if self.wndExpandedTaskBar:
                self.wndExpandedTaskBar.Hide()

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



    Cautam:
    Code:
        def ShowGift(self):
            self.wndTaskBar.ShowGift()

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



    Deschidem game.py si cautam:
    Code:
                "mall"          : self.__InGameShop_Show,

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



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


    Facem un fisier nou uiPersonalDropManager.py :
    Code:
    import app
    import player
    import net
    import chat
    import grp
    import dbg
    
    import ui
    import localeInfo
    import uiToolTip
    import uiCommon
    
    from _weakref import proxy
    
    WINDOW_WIDTH = 305
    WINDOW_HEIGHT = 185
    
    SLIDER_LIMITS = (0, 250)
    DEFAULT_SLIDER_VALUE = 100
    
    class PersonalDropWindow(ui.ScriptWindow):
    	def __init__(self):
    		ui.ScriptWindow.__init__(self)
      
    		self.__children = {}
    		self.__BuildWindow()
    
    	def __del__(self):
    		ui.ScriptWindow.__del__(self)
    
    	def __ValueToSliderPos(self, value):
    		minValue, maxValue = SLIDER_LIMITS
    		if maxValue <= minValue:
    			return 0.0
    
    		if value < minValue: value = minValue
    		elif value > maxValue: value = maxValue
      
    		return float(value - minValue) / float(maxValue - minValue)
    
    	def __SliderPosToValue(self, pos):
    		minValue, maxValue = SLIDER_LIMITS
      
    		if pos < 0.0: pos = 0.0
    		elif pos > 1.0: pos = 1.0
      
    		value = minValue + (maxValue - minValue) * pos
    		return int(round(value))
    
    	# -------------------------------------------------------------------------
    	def __BuildWindow(self):
    		# Root window
    		self.SetWindowName("PersonalDropWindow")
    		self.SetSize(WINDOW_WIDTH, WINDOW_HEIGHT)
    		self.SetCenterPosition()
    		self.AddFlag("movable")
    		self.AddFlag("float")
    
    		# Main board
    		board = ui.BoardWithTitleBar()
    		board.SetParent(self)
    		board.SetSize(WINDOW_WIDTH, WINDOW_HEIGHT)
    		board.SetPosition(0, 0)
    		board.SetTitleName("PersonalDrop")
    		board.SetCloseEvent(self.Close)
    		board.AddFlag("attach")
    		board.Show()
    		self.__children["board"] = board
      
    		SLIDER_TYPES = ("exp", "gold", "item")
      
    		for i, sliderType in enumerate(SLIDER_TYPES):
    			sliderTitle = ui.TextLine()
    			sliderTitle.SetParent(board)
    			sliderTitle.SetText(sliderType + ":")
    			sliderTitle.SetPosition(30, 40 + (30 * i + 10))
    			sliderTitle.Show()
    			self.__children["{}_title".format(sliderType)] = sliderTitle
      
    			sliderSlider = ui.SliderBar()
    			sliderSlider.SetParent(board)
    			sliderSlider.SetSize(WINDOW_WIDTH, 10)
    			sliderSlider.SetPosition(30 + 35, 40 + (30 * i + 10))
    			sliderSlider.SetSliderPos(self.__ValueToSliderPos(DEFAULT_SLIDER_VALUE))
    			sliderSlider.SetEvent(lambda sliderType=sliderType: self.OnSliderChange(sliderType))
    			sliderSlider.Show()
    			self.__children["{}_slider".format(sliderType)] = sliderSlider
    
    			sliderValue = ui.TextLine()
    			sliderValue.SetParent(board)
    			sliderValue.SetText(str(DEFAULT_SLIDER_VALUE))
    			sliderValue.SetPosition(190 + 70, 40 + (30 * i + 10) - 2)
    			sliderValue.Show()
    			self.__children["{}_value".format(sliderType)] = sliderValue
       
    		confirmButton = ui.Button()
    		confirmButton.SetParent(board)
    		confirmButton.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
    		confirmButton.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
    		confirmButton.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
    		confirmButton.SetText("Confirm")
    		confirmButton.SetPosition(100, 150)
    		confirmButton.SetEvent(ui.__mem_func__(self.OnConfirmButtonClick))
    		confirmButton.Show()
    		self.__children["confirm_button"] = confirmButton
    		
    	def OnConfirmButtonClick(self):
    		expValue = self.__children["exp_value"].GetText()
    		goldValue = self.__children["gold_value"].GetText()
    		itemValue = self.__children["item_value"].GetText()
      
    		# dbg.TraceError("Confirm button clicked {} {} {}".format(expValue, goldValue, itemValue))
    		net.SendChatPacket("/personal_drop_mgr {} {} {}".format(expValue, goldValue, itemValue))
    	
    	def OnSliderChange(self, sliderType):
    		pos = self.__children["{}_slider".format(sliderType)].GetSliderPos()
    		self.__children["{}_value".format(sliderType)].SetText(str(self.__SliderPosToValue(pos)))
      
      		# dbg.TraceError("Slider({}) changed: {}".format(sliderType, self.__SliderPosToValue(pos)))
    
    	def Open(self):
    		if self.IsShow():
    			return
    
    		self.Show()
    		self.SetTop()
    
    	def Close(self):
    		self.Hide()
    	
    	def ToggleWindow(self):
    		if self.IsShow():
    			self.Close()
    		else:
    			self.Open()
    
    	def Destroy(self):
    		self.Close()
    		self.ClearDictionary()
    
    	def OnPressEscapeKey(self):
    		self.Close()
    		return True
    
    	def OnKeyDown(self, key):
    		if key == app.DIK_ESC:
    			self.OnPressEscapeKey()
    			return True
    
    		return False
    
    # window = PersonalDropWindow()
    # window.Open()
    
    Si adaugam quest-ul asta:
    Code:
    quest personal_drop_mgr begin
        state start begin
            when login with pc.is_gm() begin
                set_state(run)
            end
        end
    
        state run begin
            when letter begin
                send_letter("<GM> Personal Drop")
            end
    
            when button or info begin
                cmdchat("open_personal_drop_mgr")
            end
        end
    end

    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

    📢 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ț

    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: ethalor2official, keksz021, Piticul14, Vaynz, Zbychu și 9 vizitatori

    Discord ID copiat: