*Descriere:
Afiseaza design de tip "grid" in loc de lista cu scrollbar pentru sistemul de Mob Info Drop Target.
*Poze / Video:
*Link download / Code:
Deschidem root/uitarget.py.
Pasul 1: Construim infrastructura Grid
Cautam in functia __init__:
Inlocuim cu:
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:
Inlocuim cu:
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:
Adaugam deasupra:
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::
Puteti sterge tot vechiul cod din acel bloc else pana la partea cu self.AppendTextLine(localeInfo.TARGET_INFO_NO_ITEM_TEXT), apoi il inlocuim cu:
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:
Adaugam deasupra:
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:
Inlocuim cu:
Explicatie:
Aceasta modificare rezolva eroarea de tip:
Prin , functia nu mai crapa daca primeste argumente suplimentare de la evenimentul UI.
Rezultat:
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
Afiseaza design de tip "grid" in loc de lista cu scrollbar pentru sistemul de Mob Info Drop Target.
*Poze / Video:
Inainte:
Dupa:
- 03-22-2026, 13-22-36.png (364.22 KiB) Vizualizat 1110 dată
- 03-22-2026, 13-22-43.png (522.18 KiB) Vizualizat 1110 dată
*Link download / Code:
Deschidem root/uitarget.py.
Pasul 1: Construim infrastructura Grid
Cautam in functia __init__:
Cod: Selectaţi tot
self.stoneImg = None
self.stoneVnum = None
self.lastStoneVnum = 0
self.nextStoneIconChange = 0
self.SetSize(self.BOARD_WIDTH, 0)
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.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:
Cod: Selectaţi tot
self.stoneImg = None
self.stoneVnum = None
self.nextStoneIconChange = 0
self.__LoadInformation_Default(race)
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.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:
Cod: Selectaţi tot
def __LoadInformation_Drops(self, race): Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.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::
Cod: Selectaţi tot
else:
itemListBox = ui.ListBoxExNew(32 + 5, self.MAX_ITEM_COUNT) Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.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:
Cod: Selectaţi tot
def OnShowItemTooltip(self, vnum): Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.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:
Cod: Selectaţi tot
def OnHideItemTooltip(self):
self.itemTooltip.HideToolTip()
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Explicatie:
Aceasta modificare rezolva eroarea de tip:
Cod: Selectaţi tot
OverInItem() takes exactly 2 arguments (1 given)Cod: Selectaţi tot
*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



