Yardım FastInventory Butonları Aktif Etme

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

sharap

MT Üye
MT Üye
Mesaj
298
Çözümler
15
Beğeni
140
Puan
529
Ticaret Puanı
0
Arkadaşlar Merhaba Aeldra yan menüyü ekledim yalnız bu tuşları nasıl aktif ederim bir türlü bulamadım.


UiInventory.py Menü Kodları:
        def __LoadWindow(self):
            if self.isLoaded == 1:
                return
            self.isLoaded = 1
            try:
                pyScrLoader = ui.PythonScriptLoader()
                pyScrLoader.LoadScriptFile(self, "UIScript/FastInventoryWindow.py")
            except:
                import exception
                exception.Abort("FastInventoryWindow.LoadWindow.LoadObject")
            try:
                self.wndFastInventoryLayer = self.GetChild("FastInventoryLayer")
                self.GetChild("Menu_1").SetEvent(ui.__mem_func__(self.ClickMenu1))
                self.GetChild("Menu_2").SetEvent(ui.__mem_func__(self.ClickMenu1))
                self.GetChild("Menu_3").SetEvent(ui.__mem_func__(self.ClickMenu1))
                self.GetChild("Menu_4").SetEvent(ui.__mem_func__(self.ClickMenu1))
                self.GetChild("Menu_5").SetEvent(ui.__mem_func__(self.ClickMenu1))
                self.GetChild("Menu_6").SetEvent(ui.__mem_func__(self.ClickMenu1))
            except:
                import exception
                exception.Abort("FastInventoryWindow.LoadWindow.BindObject")

        def ClickMenu1(self):
            if self.wndInventory.interface:
                self.wndInventory.interface.ToggleSwitchbotWindow()
            return True


Şuan ekli olan Biyolog Sistemi var onu aktif edeceğim.
 
Etkinleştirmekten kastın nedir tam olarak?
 
Etkinleştirmekten kastın nedir tam olarak?

Hocam butonları ekledim bende hızlı biyolog sistemi F7 de window F7 basınca açılıyor. Ama Yan menüye taşımak istiyorum normalde interfacede olsa örnek bulup eklemeye çalışıyordum ama uiinventory.py içerisinde olduğu için eklemeyi nasıl yapacağımı bilmiyorum.
 
Anladım, yapman gereken şey basit. Aşağıdakileri dikkatlice uyguladığında sorunsuz çalışır diye düşünüyorum.
Öncelikle kodu incele:
Python:
        def __LoadWindow(self):
            if self.isLoaded == 1:
                return
            self.isLoaded = 1
            try:
                pyScrLoader = ui.PythonScriptLoader()
                pyScrLoader.LoadScriptFile(self, "UIScript/FastInventoryWindow.py")
            except:
                import exception
                exception.Abort("FastInventoryWindow.LoadWindow.LoadObject")
            try:
                self.wndFastInventoryLayer = self.GetChild("FastInventoryLayer")
                self.GetChild("biyolog_sistemi").SetEvent(ui.__mem_func__(self.BiyologSistemiAc))
            except:
                import exception
                exception.Abort("FastInventoryWindow.LoadWindow.BindObject")

Sonrasında ise; uiscript/FastInventoryWindow.py dosyasında menü kısmına bir blok eklemen gerekiyor ve name özelliği (yukarıdaki koda göre) biyolog_sistemi olmak zorunda. Ve type özelliği button olacak. Daha sonra bu menünün iconunu falan kendin ayarlayıp blok içinde tanımlaman gerekiyor.

Örnek(uiscript/minimap.py den rastgele aldım):
Python:
                ## ScaleUpButton
                {
                    "name" : "biyolog_sistemi",
                    "type" : "button",

                    "x" : 101,
                    "y" : 116,

                    "default_image" : ROOT + "minimap_scaleup_default.sub",
                    "over_image" : ROOT + "minimap_scaleup_over.sub",
                    "down_image" : ROOT + "minimap_scaleup_down.sub",
                },

Son olarak yukarıdaki kodun şu satırında:
Python:
self.GetChild("biyolog_sistemi").SetEvent(ui.__mem_func__(self.BiyologSistemiAc))

Eğer böyle kullanırsan def BiyologSistemiAc(): isminde bir fonksiyon oluşturup, içine biyolog sistemini açan (f7 ile çağrılan fonksiyon) kodları yazman gerekiyor.
Ya da en kısa yoldan bu satırdaki self.BiyologSistemiAc kısmını direkt F7 ye atanan fonksiyon ismiyle değiştir.
 
Anladım, yapman gereken şey basit. Aşağıdakileri dikkatlice uyguladığında sorunsuz çalışır diye düşünüyorum.
Öncelikle kodu incele:
Python:
        def __LoadWindow(self):
            if self.isLoaded == 1:
                return
            self.isLoaded = 1
            try:
                pyScrLoader = ui.PythonScriptLoader()
                pyScrLoader.LoadScriptFile(self, "UIScript/FastInventoryWindow.py")
            except:
                import exception
                exception.Abort("FastInventoryWindow.LoadWindow.LoadObject")
            try:
                self.wndFastInventoryLayer = self.GetChild("FastInventoryLayer")
                self.GetChild("biyolog_sistemi").SetEvent(ui.__mem_func__(self.BiyologSistemiAc))
            except:
                import exception
                exception.Abort("FastInventoryWindow.LoadWindow.BindObject")

Sonrasında ise; uiscript/FastInventoryWindow.py dosyasında menü kısmına bir blok eklemen gerekiyor ve name özelliği (yukarıdaki koda göre) biyolog_sistemi olmak zorunda. Ve type özelliği button olacak. Daha sonra bu menünün iconunu falan kendin ayarlayıp blok içinde tanımlaman gerekiyor.

Örnek(uiscript/minimap.py den rastgele aldım):
Python:
                ## ScaleUpButton
                {
                    "name" : "biyolog_sistemi",
                    "type" : "button",

                    "x" : 101,
                    "y" : 116,

                    "default_image" : ROOT + "minimap_scaleup_default.sub",
                    "over_image" : ROOT + "minimap_scaleup_over.sub",
                    "down_image" : ROOT + "minimap_scaleup_down.sub",
                },

Son olarak yukarıdaki kodun şu satırında:
Python:
self.GetChild("biyolog_sistemi").SetEvent(ui.__mem_func__(self.BiyologSistemiAc))

Eğer böyle kullanırsan def BiyologSistemiAc(): isminde bir fonksiyon oluşturup, içine biyolog sistemini açan (f7 ile çağrılan fonksiyon) kodları yazman gerekiyor.
Ya da en kısa yoldan bu satırdaki self.BiyologSistemiAc kısmını direkt F7 ye atanan fonksiyon ismiyle değiştir.



Nedemek istediğinizi iyi anladım.

Şunu demek istiyorsunuz...

Örnek::
            try:
                self.wndFastInventoryLayer = self.GetChild("FastInventoryLayer")
                self.GetChild("Menu_1").SetEvent(ui.__mem_func__(self.ClickMenu1))
                self.GetChild("Menu_2").SetEvent(ui.__mem_func__(self.OpenBiyologDialog))
                self.GetChild("Menu_3").SetEvent(ui.__mem_func__(self.ClickMenu1))
                self.GetChild("Menu_4").SetEvent(ui.__mem_func__(self.ClickMenu1))
                self.GetChild("Menu_5").SetEvent(ui.__mem_func__(self.ClickMenu1))
                self.GetChild("Menu_6").SetEvent(ui.__mem_func__(self.ClickMenu1))
            except:
                import exception
                exception.Abort("FastInventoryWindow.LoadWindow.BindObject")

        def ClickMenu1(self):
            if self.wndInventory.interface:
                self.wndInventory.interface.ToggleSwitchbotWindow()
            return True

        def BiyologOpen(self):
            if self.interface:
                self.interface.OpenBiyologDialog()
 
Geri
Üst