interfacemodule.py Aç Arat: def GetInventoryPageIndex(self): üstüne ekle: def AttachItemFromSafebox(self, slotIndex, itemIndex): if self.wndInventory and self.wndInventory.IsShow(): self.wndInventory.AttachItemFromSafebox(slotIndex, itemIndex) return True def AttachInvenItemToOtherWindowSlot(self, slotWindow, slotIndex): if self.wndSafebox and self.wndSafebox.IsShow(): return self.wndSafebox.AttachItemFromInventory(slotWindow, slotIndex) return False uiinventory.py Aç Arat: def __UseItem(self, slotIndex): üstüne ekle: def __GetCurrentItemGrid(self): itemGrid = [[False for slot in xrange(player.INVENTORY_PAGE_SIZE)] for page in xrange(player.INVENTORY_PAGE_COUNT)] for page in xrange(player.INVENTORY_PAGE_COUNT): for slot in xrange(player.INVENTORY_PAGE_SIZE): itemVnum = player.GetItemIndex(slot + page * player.INVENTORY_PAGE_SIZE) if itemVnum <> 0: (w, h) = item.GetItemSize(item.SelectItem(itemVnum)) for i in xrange(h): itemGrid[page][slot + i * 5] = True return itemGrid def __FindEmptyCellForSize(self, itemGrid, size): for page in xrange(player.INVENTORY_PAGE_COUNT): for slot in xrange(player.INVENTORY_PAGE_SIZE): if itemGrid[page][slot] == False: possible = True for i in xrange(size): p = slot + (i * 5) try: if itemGrid[page][p] == True: possible = False break except IndexError: possible = False break if possible: return slot + page * player.INVENTORY_PAGE_SIZE return -1 def AttachItemFromSafebox(self, slotIndex, itemIndex): itemGrid = self.__GetCurrentItemGrid() if item.GetItemType(item.SelectItem(itemIndex)) == item.ITEM_TYPE_DS: return emptySlotIndex = self.__FindEmptyCellForSize(itemGrid, item.GetItemSize()[1]) if emptySlotIndex <> -1: net.SendSafeboxCheckoutPacket(slotIndex, player.INVENTORY, emptySlotIndex) return True Arat: def __UseItem(self, slotIndex): ItemVNum = player.GetItemIndex(slotIndex) item.SelectItem(ItemVNum) Değiş: def __UseItem(self, slotIndex): if self.interface and self.interface.AttachInvenItemToOtherWindowSlot(player.INVENTORY, slotIndex): return ItemVNum = player.GetItemIndex(slotIndex) item.SelectItem(ItemVNum) uisafebox.py Aç İmportlarda item yoksa ekle Arat: class SafeboxWindow(ui.ScriptWindow): tekrar arat: def UseItemSlot(self, slotIndex): Değiş: def __GetCurrentItemGrid(self): itemGrid = [[False for cell in xrange(safebox.SAFEBOX_PAGE_SIZE)] for page in xrange(self.pagecount)] for page in xrange(self.pagecount): for slot in xrange(safebox.SAFEBOX_PAGE_SIZE): itemVnum = safebox.GetItemID(slot + page * safebox.SAFEBOX_PAGE_SIZE) if itemVnum <> 0: item.SelectItem(itemVnum) (w, h) = item.GetItemSize() for i in xrange(h): itemGrid[page][slot + i * safebox.SAFEBOX_SLOT_X_COUNT] = True return itemGrid def __FindEmptyCellForSize(self, itemGrid, size): for page in xrange(self.pagecount): for slot in xrange(safebox.SAFEBOX_PAGE_SIZE): if itemGrid[page][slot] == False: possible = True for i in xrange(size): p = slot + safebox.SAFEBOX_SLOT_X_COUNT * i try: if itemGrid[page][p] == True: possible = False break except IndexError: possible = False break if possible: return slot + page * safebox.SAFEBOX_PAGE_SIZE return -1 def AttachItemFromInventory(self, slotWindow, slotIndex): attachedItemID = player.GetItemIndex(slotWindow, slotIndex) item.SelectItem(attachedItemID) if item.IsAntiFlag(item.ITEM_ANTIFLAG_SAFEBOX): return False itemGrid = self.__GetCurrentItemGrid() item.SelectItem(attachedItemID) emptySafeboxSlot = self.__FindEmptyCellForSize(itemGrid, item.GetItemSize()[1]) if emptySafeboxSlot == -1 or item.GetItemType() == item.ITEM_TYPE_ELK: return False net.SendSafeboxCheckinPacket(slotWindow, slotIndex, emptySafeboxSlot) return True def UseItemSlot(self, slotIndex): if mouseModule.mouseController.isAttached(): mouseModule.mouseController.DeattachObject() if self.interface: globalSlotIndex = self.__LocalPosToGlobalPos(slotIndex) self.interface.AttachItemFromSafebox(globalSlotIndex, safebox.GetItemID(globalSlotIndex))