Sziasztok.!
Eddig úgy nagyon elkerülte a figyelmem az, hogy ha megnyitom egyszer egy gombbal a rendszert, akkor ha még egyszer rákattintok ugyan úgy megnyitja. Ezt próbáltam egy már meglévő gomb alapján lemásolni, hogy ne nyissa meg csak 1x, de nem igazán sikerült.
Alapvetően ez nyitja meg a rendszert.
def ToggleDragonRouletteWindow(self):
self.wndRoulette = uiroulette.RouletteWindow()
self.wndRoulette.Open()
Ezt megpróbáltam "def ToggleDragonSoulWindow(self):" alapján így:
def ToggleDragonRouletteWindow(self):
self.wndRoulette = uiroulette.RouletteWindow()
if False == self.wndRoulette.IsShow():
self.wndRoulette.Open()
else:
self.wndRoulette.Hide()
A Hide() helyett próbáltam Close()-al is, de az sem oldotta meg a bajom, sajnos továbbra is többször meg lehet nyitni.
Végeredményében nekem mindegy, hogy bezárja, vagy csak nem nyitja meg még egyszer. A lényeg az lenne, hogy ne nyissa meg egynél többször egyszerre.
Erre valaki tudna építőjellegű ötletet adni? :)
Ahogy nézem a sárkány rulett-et akarod, én is betettem nemrég. Nekem olyan ha megvan nyitva, még1x megakarja, akkor bezárja. :o Mingy ránézek a kódra nálam hogy van.
Game.py-be ez van amikor megkapja a szervertől a command-ot: (Lehet te nem npc-re tetted, mind1)
def __ru_open (self):
self.Roulette.Open()
uiroulett.py-be meg ez: (Ez a fontos!)
def Open(self):
if self.IsShow():
self.RouletteBoard.Hide()
self.Loaded = 0
self.Hide()
return
self.OpenRouletteBoard()
Tehát próbáld te is a Def Open-be hasonlóan megcsinálni.
-------------------------------
Szerk: Mutatok még egy megoldást, bár ez lehet elég gagyi, de én sok dolognál így csináltam meg:
constinfo.py-be valahova felülre az importok alá írd be ezt:
VALAMI1 = 0
def ToggleDragonRouletteWindow(self): meg legyen így:
def ToggleDragonRouletteWindow(self):
self.wndRoulette = uiroulette.RouletteWindow()
if constInfo.VALAMI1 == 0:
self.wndRoulette.Open()
constInfo.VALAMI1 = 1
elif constInfo.VALAMI1 == 1:
self.wndRoulette.Hide()
constInfo.VALAMI1 = 0
+ ahol ez van felül legyen ott az import constInfo és kész.
az uiroulette.py-mben nekem is megvan ez:
def Open(self):
if self.IsShow():
self.RouletteBoard.Hide()
self.Loaded = 0
self.Hide()
return
self.OpenRouletteBoard()
Ezért nem is értettem, hogy miért nem zárja be.
Nekem ez expanded taskbar-ban van megírva, ehhez pedig nem game.py-t használtam, hanem itnerfacemodule.py-t. Nem tudom ez mennyire befolyásolja a dolgokat, hiszen, ha megnyitja, akkor elvileg be is kéne, hogy zárja nem?
Esetleg próbáld meg a másik megoldást amit írtam, nekem rengeteg dolog van az inventory-ra írva, majdnem mindnél így csináltam ahol buggos volt.
constinfo.py:
Rulett = 0
ifm.py:
def ToggleDragonRouletteWindow(self):
self.wndRoulette = uiroulette.RouletteWindow()
if constInfo.Rulett == 0:
self.wndRoulette.Open()
constInfo.Rulett = 1
elif constInfo.Rulett == 1:
self.wndRoulette.Hide()
constInfo.Rulett = 0
és mégis megnyitja többször, illetve nem is zárja be :|
ifm.py-be van import constInfo felül?
a roulett fájljában lesz az osztály.show() függvény, ami minden alkalommal megnyitja.