Hallo, habe mir das Markierung neu gedroppter Items von Bitte melden Sie sich an, um diesen Link zu sehen. eingebaut und habe da einen kleinen Fehler den ich mal schildern möchte.
Yiv gibt an das man die Methode RefreshBagSlotWindow wie folgt anpassen soll:
Python
- def RefreshBagSlotWindow(self):
- # [...]
- for i in xrange(player.INVENTORY_PAGE_SIZE):
- # [...]
- itemVnum = getItemVNum(slotNumber)
- setItemVNum(i, itemVnum, itemCount)
- #################### NEW PART ####################
- if itemVnum == 0 and slotNumber in self.liHighlightedItems:
- self.liHightlightedItems.remove(slotNumber)
- ##################################################
- if constInfo.IS_AUTO_POTION(itemVnum):
- # [...]
- #################### NEW PART ####################
- else:
- self.wndItem.DeactivateSlot(slotNumber)
- self.__RefreshHighlights()
- ##################################################
- # [...]
Habe ich dann wie folgt gemacht:
Python
- def RefreshBagSlotWindow(self):
- getItemVNum=player.GetItemIndex
- getItemCount=player.GetItemCount
- setItemVNum=self.wndItem.SetItemSlot
- for i in xrange(player.INVENTORY_PAGE_SIZE):
- slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
- itemCount = getItemCount(slotNumber)
- # itemCount == 0이면 소켓을 비운다.
- if 0 == itemCount:
- self.wndItem.ClearSlot(i)
- continue
- elif 1 == itemCount:
- itemCount = 0
- itemVnum = getItemVNum(slotNumber)
- setItemVNum(i, itemVnum, itemCount)
- if itemVnum == 0 and slotNumber in self.liHighlightedItems:
- self.liHightlightedItems.remove(slotNumber)
- ## 자동물약 (HP: #72723 ~ #72726, SP: #72727 ~ #72730) 특수처리 - 아이템인데도 슬롯에 활성화/비활성화 표시를 위한 작업임 - [hyo]
- if constInfo.IS_AUTO_POTION(itemVnum):
- # metinSocket - [0] : 활성화 여부, [1] : 사용한 양, [2] : 최대 용량
- metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
- isActivated = 0 != metinSocket[0]
- if isActivated:
- self.wndItem.ActivateSlot(i)
- potionType = 0;
- if constInfo.IS_AUTO_POTION_HP(itemVnum):
- potionType = player.AUTO_POTION_TYPE_HP
- elif constInfo.IS_AUTO_POTION_SP(itemVnum):
- potionType = player.AUTO_POTION_TYPE_SP
- usedAmount = int(metinSocket[1])
- totalAmount = int(metinSocket[2])
- player.SetAutoPotionInfo(potionType, isActivated, (totalAmount - usedAmount), totalAmount, self.__InventoryLocalSlotPosToGlobalSlotPos(i))
- else:
- self.wndItem.DeactivateSlot(i)
- self.wndItem.DeactivateSlot(slotNumber)
- self.wndItem.RefreshSlot()
- self.__RefreshHighlights()
- if self.wndBelt:
- self.wndBelt.RefreshSlot()
Ich nehme mal an das es durch dieser Stelle scheitert.
Jetzt habe ich das Problem das Items entweder gar nicht angezeigt werden oder nur ab und zu, Items kann ich ebenfalls nicht mehr im Inventar verschieben.
Hoffe mir kann jemand helfen.
Liebe Grüße,
Youwe