Afiseaza design de tip "grid" in loc de lista cu scrollbar pentru sistemul de Mob Info Drop Target.
*Poze / Video:
Inainte:
Dupa:
*Link download / Code:
Deschidem root/uitarget.py.
Pasul 1: Construim infrastructura Grid
Cautam in functia __init__:
Code:
self.stoneImg = None
self.stoneVnum = None
self.lastStoneVnum = 0
self.nextStoneIconChange = 0
self.SetSize(self.BOARD_WIDTH, 0)
Explicatie:
In locul vechiului listbox, se construieste o grila de 49 sloturi (7x7) in care vor fi afisate drop-urile.
Pasul 2: Curatam sloturile cand se schimba mobul
Cautam in functia __LoadInformation:
Code:
self.stoneImg = None
self.stoneVnum = None
self.nextStoneIconChange = 0
self.__LoadInformation_Default(race)
Explicatie:
Cand apesi pe alt mob, vechile iteme trebuie sterse din grid, altfel raman afisate peste noile drop-uri.
Pasul 3: Adaugam functia de cautare a unui slot liber
Cautam:
Code:
def __LoadInformation_Drops(self, race):Explicatie:
Aceasta functie cauta un loc liber in grid in functie de inaltimea itemului:
- 1 slot
- 2 sloturi
- 3 sloturi
Pasul 4: Inlocuim vechiul sistem ListBox cu Grid
Cautam in functia __LoadInformation_Drops, in blocul else::
Code:
else:
itemListBox = ui.ListBoxExNew(32 + 5, self.MAX_ITEM_COUNT)Explicatie:
Aici se renunta la afisarea in lista lunga si se afiseaza itemele direct in grid, cautand pentru fiecare un slot liber potrivit.
Pasul 5: Rezolvam problema tooltip-ului
Cautam:
Code:
def OnShowItemTooltip(self, vnum):Explicatie:
Aceasta functie ia itemul exact din slotul pe care intri cu mouse-ul si trimite vnum-ul corect catre tooltip.
Tot in root/uitarget.py cautam:
Code:
def OnHideItemTooltip(self):
self.itemTooltip.HideToolTip()
Explicatie:
Aceasta modificare rezolva eroarea de tip:
Code:
OverInItem() takes exactly 2 arguments (1 given)Code:
*argsRezultat:
Dupa aceasta modificare:
- drop-urile nu mai sunt afisate in listbox
- ele vor fi afisate intr-un grid de 49 sloturi
- itemele vor fi asezate in functie de dimensiunea lor
- tooltip-ul va functiona corect
- la schimbarea mobului, grid-ul va fi curatat corect


la acest mesaj și conținutul se va afișa automat.

