Hallo,
ich würde gerne in der uiinventory (genau gesagt inventory sidebar) einen Button öffnen. Dieser Button braucht eine Funktion aus der game.py
Auf m2dev hat VegaS eine Lösung gepostet. Die ist allerdings nicht vollständig.
VegaS Lösung:
Python
- root/game.py
- # Search for:
- self.interface = interfaceModule.Interface()
- # Replace with:
- self.interface = interfaceModule.Interface(self)
- root/interfaceModule.py
- # Search for:
- def __init__(self):
- systemSetting.SetInterfaceHandler(self)
- # Replace with:
- def __init__(self, wndGame):
- self.wndGame = wndGame
- systemSetting.SetInterfaceHandler(self)
- root/uiInventory.py
- wndGame = self.interface.wndGame
- if wndGame:
- wndGame.StartAttack() # Function from game.py
Hab ich genau so gemacht. Meine Funktion in der uiinventory sieht so aus:
Wenn ich das so mache, öffnet sich aber nichts. syserr:
Code
- 0727 18:59:21897 :: Traceback (most recent call last):
- 0727 18:59:21897 :: File "ui.py", line 1973, in CallEvent
- 0727 18:59:21897 :: File "ui.py", line 91, in __call__
- 0727 18:59:21897 :: File "ui.py", line 73, in __call__
- 0727 18:59:21898 :: File "uiInventory.py", line 1174, in ClickIesire
- 0727 18:59:21898 :: AttributeError
- 0727 18:59:21898 :: :
- 0727 18:59:21898 :: 'SidebarInventoryWindow' object has no attribute 'interface'
- 0727 18:59:21898 ::
Lösung?