def UnselectItemSlot(self, selectedSlotPos): if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1: return if shop.IsPrivateShop(): self.AskBuyItem(selectedSlotPos) else: if app.ENABLE_OFFLINE_SHOP: net.SendShopBuyPacket(selectedSlotPos) else: net.SendShopBuyPacket(self.__GetRealIndex(selectedSlotPos))
def OnUpdate(self): val, self.lastTime = OpenLib.timeSleep(self.lastTime, TIME_WAIT) if not val or self.State == STATE_NONE or not OpenLib.IsInGamePhase(): return if self.State == STATE_WAITING_OPEN_SHOP: #chat.AppendChat(3,"Waiting for shop to be open.") if shop.IsOpen(): self.State = STATE_SELLING return self.OpenShop() if self.State == STATE_SELLING: val, self.lastTimeSell = OpenLib.timeSleep(self.lastTimeSell, TIME_SELL) if val: if len(self.sellItems_list) == 0: self.State = STATE_BUYING return slot = self.sellItems_list.pop(0) net.SendShopSellPacketNew(slot, player.GetItemCount(slot), 1) chat.AppendChat(3, "[NPC-SHOPER] Sold item at slot " + str(slot)) return if self.State == STATE_BUYING: val, self.lastTimeBuy = OpenLib.timeSleep(self.lastTimeBuy, TIME_BUY) if (val): if len(self.buyItems_list) == 0: self.State = STATE_FINISH_SHOPPING return slot = self.buyItems_list.pop(0) net.SendShopBuyPacket(slot) else: return if self.State == STATE_FINISH_SHOPPING: self.EndNPCBusiness() return if self.State == STATE_GIVING_ITEMS: val, self.lastTimeGive = OpenLib.timeSleep(self.lastTimeGive, TIME_GIVE_ITEM) if not val: return if len(self.giveItems_list) == 0: self.EndNPCGiveItem() return else: vid = self.npcAction.SearchVIDClosest() if vid == None: #chat.AppendChat(3,"[NPC-GIVER] No NPC with vid " +str(vid)+" is close.") self.EndNPCGiveItem() return else: slot = self.giveItems_list.pop() #chat.AppendChat(3,"[NPC-GIVER] Giving "+ str(player.GetItemCount(slot)) + " item(s) at slot " +str(slot)+" to VID " +str(vid)) net.SendGiveItemPacket(vid, player.SLOT_TYPE_INVENTORY, slot, player.GetItemCount(slot)) OpenLib.skipAnswers(self.npcAction.event_answer)
def AnswerBuyItem(self, flag): if flag: pos = self.itemBuyQuestionDialog.pos net.SendShopBuyPacket(pos) self.itemBuyQuestionDialog.Close() self.itemBuyQuestionDialog = None
def AnswerBuyItem(self, flag): if flag: pos = self.itemBuyQuestionDialog.pos net.SendShopBuyPacket(pos) self.itemBuyQuestionDialog.Close() self.itemBuyQuestionDialog = None constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
def BuyItemDirectly(self, item): vid = item.shop slot = item.slot x, y, z = player.GetMainCharacterPosition() dst_x, dst_y, dst_z = chr.GetPixelPosition(vid) if (dst_x + dst_y < 0.000001): return Movement.TeleportStraightLine(x, y, dst_x, dst_y) net.SendOnClickPacket(vid) net.SendShopBuyPacket(slot) Movement.TeleportStraightLine(dst_x, dst_y, x, y) net.SendShopEndPacket()
def SelectEmptySlot(self, selectedSlotPos): if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1: return selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos( selectedSlotPos) if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber( ) attachedItemCount = mouseModule.mouseController.GetAttachedItemCount( ) attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex( ) if player.SLOT_TYPE_INVENTORY == attachedSlotType: itemCount = player.GetItemCount(attachedSlotPos) attachedCount = mouseModule.mouseController.GetAttachedItemCount( ) self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount) if item.IsRefineScroll(attachedItemIndex): self.wndItem.SetUseMode(False) elif player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType: mouseModule.mouseController.RunCallBack("INVENTORY") elif player.SLOT_TYPE_OFFLINE_SHOP == attachedSlotType: mouseModule.mouseController.RunCallBack("INVENTORY") elif player.SLOT_TYPE_SHOP == attachedSlotType: net.SendShopBuyPacket(attachedSlotPos) elif player.SLOT_TYPE_SAFEBOX == attachedSlotType: if player.ITEM_MONEY == attachedItemIndex: net.SendSafeboxWithdrawMoneyPacket( mouseModule.mouseController.GetAttachedItemCount()) snd.PlaySound("sound/ui/money.wav") else: net.SendSafeboxCheckoutPacket(attachedSlotPos, selectedSlotPos) elif player.SLOT_TYPE_MALL == attachedSlotType: net.SendMallCheckoutPacket(attachedSlotPos, selectedSlotPos) mouseModule.mouseController.DeattachObject()
def SelectEmptySlot(self, selectedSlotPos): if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1: return selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(player.DRAGON_SOUL_INVENTORY, selectedSlotPos) print "__debug", selectedSlotPos if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() attachedItemCount = mouseModule.mouseController.GetAttachedItemCount() attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex() attachedInvenType = player.SlotTypeToInvenType(attachedSlotType) if player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType: mouseModule.mouseController.RunCallBack("INVENTORY") elif player.SLOT_TYPE_SHOP == attachedSlotType: net.SendShopBuyPacket(attachedSlotPos) elif player.SLOT_TYPE_SAFEBOX == attachedSlotType: if player.ITEM_MONEY == attachedItemIndex: net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount()) snd.PlaySound("sound/ui/money.wav") else: net.SendSafeboxCheckoutPacket(attachedSlotPos, player.DRAGON_SOUL_INVENTORY, selectedSlotPos) elif player.SLOT_TYPE_MALL == attachedSlotType: net.SendMallCheckoutPacket(attachedSlotPos, player.DRAGON_SOUL_INVENTORY, selectedSlotPos) elif player.RESERVED_WINDOW != attachedInvenType: if player.IsDSEquipmentSlot(attachedInvenType, attachedSlotPos): srcItemPos = (attachedInvenType, attachedSlotPos) dstItemPos = (player.DRAGON_SOUL_INVENTORY, selectedSlotPos) self.__OpenQuestionDialog(FALSE, srcItemPos, dstItemPos) else: itemCount = player.GetItemCount(attachedInvenType, attachedSlotPos) attachedCount = mouseModule.mouseController.GetAttachedItemCount() self.__SendMoveItemPacket(attachedInvenType, attachedSlotPos, player.DRAGON_SOUL_INVENTORY, selectedSlotPos, attachedCount) mouseModule.mouseController.DeattachObject()
def OnUpdate(self): val, self.lastTime = OpenLib.timeSleep(self.lastTime, self.TIME_WAIT) if val: if len(self.toDropSlots) > 0: slot = self.toDropSlots.pop(0) net.SendItemDropPacketNew(slot, player.GetItemCount(slot)) return if len(self.toSellSlots) > 0: slot = self.toSellSlots.pop(0) net.SendShopSellPacketNew(slot, player.GetItemCount(slot), 1) return if len(self.toStackMoveActions) > 0: args = self.toStackMoveActions.pop(0) OpenLog.DebugPrint("[STACK] - Changing item position from " + str(args[0]) + " to " + str(args[1]) + " count " + str(args[2])) net.SendItemMovePacket(args[0], args[1], args[2]) return if len(self.toSortMoveActions) > 0: args = self.toSortMoveActions.pop(0) OpenLog.DebugPrint("[SORT] - Changing item position from " + str(args[0]) + " to " + str(args[1]) + " count " + str(args[2])) net.SendItemMovePacket(args[0], args[1], args[2]) return if len(self.toBuySlots) > 0: slot = self.toBuySlots.pop(0) net.SendShopBuyPacket(slot) return if self.callback != None: self.callback() self.callback = None
def UnselectItemSlot(self, selectedSlotPos): if shop.IsPrivateShop(): self.AskBuyItem(selectedSlotPos) else: net.SendShopBuyPacket(self.__GetRealIndex(selectedSlotPos))