示例#1
0
 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))
示例#2
0
    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)
示例#3
0
    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)
示例#5
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()
示例#6
0
    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()
示例#8
0
    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
示例#9
0
 def UnselectItemSlot(self, selectedSlotPos):
     if shop.IsPrivateShop():
         self.AskBuyItem(selectedSlotPos)
     else:
         net.SendShopBuyPacket(self.__GetRealIndex(selectedSlotPos))