Tárgy tárgya húzása

Indította TrueLev, 2017-07-26, 12:06:17

Sziasztok,

Azt akarom, hogyha egy bizonyos tárgyat egy másik tárgyra húzom, akkor ne piros négyzet legyen hanem sárga.
(Az akció aminek le kell futnia lefut, csak piros a négyzet tehát csak szépséghiba, de javítani szeretném)
Ezt hol és hogy lehetne pontosan beállítani pythonban?

uiInventory.py
__DropSrcItemToDestItemInInventory
__CanUseSrcItemToDstItem
__IsUsableItemToItem

Nem tudtam teljesen rájönni ezekbe mit, nem tudnál esetleg egy konkrét példát?
Pl 5-ös itemvnum cuccokat 6-os itemvnum cuccra húzva sárga legyen.

2017-07-26, 12:49:32 #3 Utolsó szerkesztés: 2017-07-26, 12:55:14 Szerző: [VIP]P3NG3R
Először is ebben
__IsUsableItemToItem
meg kell adni h a kurzor "alatti" tárgy használható-e más tárgyakon, majd itt
__CanUseSrcItemToDstItem
azt hogy a tárgy használható-e azon a tárgyon, ahol a kurzor van.

def __IsUsableItemToItem(self, srcItemVnum, srcSlotPos):
if srcItemVnum == 5:
return True
elif....


def __CanUseSrcItemToDstItem(self, srcItemVnum, srcSlotPos, dstSlotPos):
if srcSlotPos == dstSlotPos:
return False

dstItemVnum = player.GetItemIndex(dstSlotPos)
dstItemCount = player.GetItemCount(dstSlotPos)
if srcItemVnum == dstItemVnum:
return player.IsFlagBySlot(player.INVENTORY, dstSlotPos, item.ITEM_FLAG_STACKABLE) and not player.IsAntiFlagBySlot(player.INVENTORY, dstSlotPos, item.ITEM_ANTIFLAG_STACK) and dstItemCount < player.GetItemStackMax(): #GetItemStackMax returns a value from serverside

if srcItemVnum == 5 and dstItemVnum == 6:
return True


Valahogy így. A stackos cuccost hagy ki az saját, nem fog működni a c++ rész nélkül :>.

2017-07-26, 13:02:56 #4 Utolsó szerkesztés: 2017-07-26, 14:19:33 Szerző: TrueLev
Idézglobal name 'srcItemVnum' is not defined

Mind a kettőnél ott írja ahol van az if srcItemVnum == 5:


Szerk: Megvan, ez kell még bele:
srcItemVnum = player.GetItemIndex(srcSlotPos)
Ezt a kódok elejére illesztve működik, köszi :)