Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ui
- import player
- import mouseModule
- import net
- import app
- import snd
- import item
- import chat
- import grp
- import uiScriptLocale
- import uiRefine
- import uiAttachMetin
- import uiPickMoney
- import uiCommon
- import uiPrivateShopBuilder
- import localeInfo
- import constInfo
- import ime
- import wndMgr
- import uiToolTip
- import event
- import player
- from uiToolTip import ItemToolTip
- AFFECT_DICT = ItemToolTip.AFFECT_DICT
- ITEM_MALL_BUTTON_ENABLE = True
- ITEM_FLAG_APPLICABLE = 1 << 14
- class CostumeWindow(ui.ScriptWindow):
- def __init__(self, wndInventory):
- import exception
- if not app.ENABLE_COSTUME_SYSTEM:
- exception.Abort("What do you do?")
- return
- if not wndInventory:
- exception.Abort("wndInventory parameter must be set to InventoryWindow")
- return
- ui.ScriptWindow.__init__(self)
- self.isLoaded = 0
- self.wndInventory = wndInventory;
- self.__LoadWindow()
- def __del__(self):
- ui.ScriptWindow.__del__(self)
- def Show(self):
- self.__LoadWindow()
- self.RefreshCostumeSlot()
- ui.ScriptWindow.Show(self)
- def Close(self):
- self.Hide()
- def __LoadWindow(self):
- if self.isLoaded == 1:
- return
- self.isLoaded = 1
- try:
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "UIScript/CostumeWindow.py")
- except:
- import exception
- exception.Abort("CostumeWindow.LoadWindow.LoadObject")
- try:
- wndEquip = self.GetChild("CostumeSlot")
- self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))
- self.button_wid=[]
- for i in xrange(1,5):
- self.button_wid.append(self.GetChild("wid"+str(i)))
- self.button_wid[i-1].SetEvent(ui.__mem_func__(self.ChangeWid), i)
- except:
- import exception
- exception.Abort("CostumeWindow.LoadWindow.BindObject")
- ## Equipment
- wndEquip.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))
- wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))
- wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
- wndEquip.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
- wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))
- wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))
- self.wndEquip = wndEquip
- def ChangeWid(self, arg):
- net.SendChatPacket("/change_wid %d %d" % (2,arg))
- def RefreshCostumeSlot(self):
- getItemVNum=player.GetItemIndex
- for i in xrange(item.COSTUME_SLOT_COUNT):
- slotNumber = item.COSTUME_SLOT_START + i
- self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0)
- slotAce = item.COSTUME_SLOT_ACCE
- self.wndEquip.SetItemSlot(slotAce, getItemVNum(slotAce), 0)
- self.wndEquip.RefreshSlot()
- class BeltInventoryWindow(ui.ScriptWindow):
- def __init__(self, wndInventory):
- import exception
- if not app.ENABLE_NEW_EQUIPMENT_SYSTEM:
- exception.Abort("What do you do?")
- return
- if not wndInventory:
- exception.Abort("wndInventory parameter must be set to InventoryWindow")
- return
- ui.ScriptWindow.__init__(self)
- self.isLoaded = 0
- self.wndInventory = wndInventory;
- self.wndBeltInventoryLayer = None
- self.wndBeltInventorySlot = None
- self.expandBtn = None
- self.minBtn = None
- self.__LoadWindow()
- def __del__(self):
- ui.ScriptWindow.__del__(self)
- def Show(self, openBeltSlot = FALSE):
- self.__LoadWindow()
- self.RefreshSlot()
- ui.ScriptWindow.Show(self)
- if openBeltSlot:
- self.OpenInventory()
- else:
- self.CloseInventory()
- def Close(self):
- self.Hide()
- def IsOpeningInventory(self):
- return self.wndBeltInventoryLayer.IsShow()
- def OpenInventory(self):
- self.wndBeltInventoryLayer.Show()
- self.expandBtn.Hide()
- self.AdjustPositionAndSize()
- def CloseInventory(self):
- self.wndBeltInventoryLayer.Hide()
- self.expandBtn.Show()
- self.AdjustPositionAndSize()
- ## ?? ???? ??? ???? BASE ??? ??, ??.. ?? ?????? ?? ??? ??? ??..
- def GetBasePosition(self):
- x, y = self.wndInventory.GetGlobalPosition()
- return x - 148, y + 255
- def AdjustPositionAndSize(self):
- bx, by = self.GetBasePosition()
- if self.IsOpeningInventory():
- self.SetPosition(bx, by)
- self.SetSize(self.ORIGINAL_WIDTH, self.GetHeight())
- else:
- self.SetPosition(bx + 138, by);
- self.SetSize(10, self.GetHeight())
- def __LoadWindow(self):
- if self.isLoaded == 1:
- return
- self.isLoaded = 1
- try:
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "UIScript/BeltInventoryWindow.py")
- except:
- import exception
- exception.Abort("CostumeWindow.LoadWindow.LoadObject")
- try:
- self.ORIGINAL_WIDTH = self.GetWidth()
- wndBeltInventorySlot = self.GetChild("BeltInventorySlot")
- self.wndBeltInventoryLayer = self.GetChild("BeltInventoryLayer")
- self.expandBtn = self.GetChild("ExpandBtn")
- self.minBtn = self.GetChild("MinimizeBtn")
- self.expandBtn.SetEvent(ui.__mem_func__(self.OpenInventory))
- self.minBtn.SetEvent(ui.__mem_func__(self.CloseInventory))
- #if localeInfo.IsARABIC() :
- #self.expandBtn.SetPosition(self.expandBtn.GetWidth() - 2, 15)
- #self.wndBeltInventoryLayer.SetPosition(self.wndBeltInventoryLayer.GetWidth() - 5, 0)
- #self.minBtn.SetPosition(self.minBtn.GetWidth() + 3, 15)
- for i in xrange(item.BELT_INVENTORY_SLOT_COUNT):
- slotNumber = item.BELT_INVENTORY_SLOT_START + i
- wndBeltInventorySlot.SetCoverButton(slotNumber, "d:/ymir work/ui/game/quest/slot_button_01.sub",\
- "d:/ymir work/ui/game/quest/slot_button_01.sub",\
- "d:/ymir work/ui/game/quest/slot_button_01.sub",\
- "d:/ymir work/ui/game/belt_inventory/slot_disabled.tga", FALSE, FALSE)
- except:
- import exception
- exception.Abort("CostumeWindow.LoadWindow.BindObject")
- ## Equipment
- wndBeltInventorySlot.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))
- wndBeltInventorySlot.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))
- wndBeltInventorySlot.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
- wndBeltInventorySlot.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
- wndBeltInventorySlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))
- wndBeltInventorySlot.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))
- self.wndBeltInventorySlot = wndBeltInventorySlot
- def RefreshSlot(self):
- getItemVNum=player.GetItemIndex
- for i in xrange(item.BELT_INVENTORY_SLOT_COUNT):
- slotNumber = item.BELT_INVENTORY_SLOT_START + i
- self.wndBeltInventorySlot.SetItemSlot(slotNumber, getItemVNum(slotNumber), player.GetItemCount(slotNumber))
- self.wndBeltInventorySlot.SetAlwaysRenderCoverButton(slotNumber, TRUE)
- avail = "0"
- if player.IsAvailableBeltInventoryCell(slotNumber):
- self.wndBeltInventorySlot.EnableCoverButton(slotNumber)
- else:
- self.wndBeltInventorySlot.DisableCoverButton(slotNumber)
- self.wndBeltInventorySlot.RefreshSlot()
- class Pety(ui.ScriptWindow):
- def __init__(self, wndInventory):
- ui.ScriptWindow.__init__(self)
- self.toolTip = uiToolTip.ToolTip()
- self.toolTip.Hide()
- self.tooltipItem = uiToolTip.ItemToolTip()
- self.tooltipItem.Hide()
- self.wndInventory = wndInventory;
- self.__Initialize()
- self.__Load()
- def __del__(self):
- ui.ScriptWindow.__del__(self)
- def __Initialize(self):
- self.titleBar = 0
- def Destroy(self):
- self.Hide()
- self.ClearDictionary()
- self.toolTip = None
- self.__Initialize()
- def __Load_LoadScript(self, fileName):
- try:
- pyScriptLoader = ui.PythonScriptLoader()
- pyScriptLoader.LoadScriptFile(self, fileName)
- except:
- import exception
- exception.Abort("Load_Error: Pety")
- def __Load(self):
- self.__Load_LoadScript("UIScript/Pety.py")
- self.__Load_BindObject()
- self.SetCenterPosition()
- self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
- def __Load_BindObject(self):
- try:
- GetObject = self.GetChild
- self.titleBar = GetObject("titlebar")
- #
- self.thin1 = GetObject("thin1")
- self.pet_avatar = GetObject("pet_avatar")
- self.pet_lv = GetObject("pet_lv")
- self.pet_name = GetObject("pet_name")
- self.pet_exp = GetObject("pet_exp")
- self.slots = GetObject("slots")
- #
- self.tip_lv = GetObject("tip_lv")
- self.tip_exp = GetObject("tip_exp")
- self.tip_lv.ShowToolTip = lambda : self.OverInPetyButton(20)
- self.tip_lv.HideToolTip = lambda : self.OverOutPetyButton()
- self.tip_exp.ShowToolTip = lambda : self.OverInPetyButton(30)
- self.tip_exp.HideToolTip = lambda : self.OverOutPetyButton()
- #
- self.slots.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
- self.slots.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
- self.slots.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))
- self.slots.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))
- self.slots.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))
- self.slots.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))
- #
- self.bon = []
- self.bon_slot = []
- self.bon_mix = []
- for i in xrange(1,5):
- self.bon.append(self.GetChild("bon"+str(i)))
- self.bon_slot.append(self.GetChild("bon"+str(i)+"_img"))
- self.bon_slot[i-1].SetEvent(ui.__mem_func__(self.BonusAdd), i)
- self.bon_slot[i-1].ShowToolTip = lambda arg=i: self.OverInPetyButton(arg+40)
- self.bon_slot[i-1].HideToolTip = lambda : self.OverOutPetyButton()
- self.bon_mix.append(self.GetChild("bon"+str(i)+"_mix"))
- self.bon_mix[i-1].SetEvent(ui.__mem_func__(self.BonusMix), i)
- self.bon_mix[i-1].ShowToolTip = lambda arg=i: self.OverInPetyButton(arg)
- self.bon_mix[i-1].HideToolTip = lambda : self.OverOutPetyButton()
- self.SetSlots()
- except:
- import exception
- exception.Abort("Pety.__Load_BindObject")
- def SetSlots(self):
- getItemVNum=player.GetItemIndex
- self.slots.SetItemSlot(item.EQUIPMENT_ITEM_NEW_SLOT_7, getItemVNum(item.EQUIPMENT_ITEM_NEW_SLOT_7), 0)
- self.slots.SetItemSlot(item.EQUIPMENT_ITEM_NEW_SLOT_8, getItemVNum(item.EQUIPMENT_ITEM_NEW_SLOT_8), 0)
- self.slots.RefreshSlot()
- def BonusAdd(self, arg):
- constInfo.PetBonus = int(arg)
- event.QuestButtonClick(constInfo.PetyTab['id'])
- def BonusMix(self, arg):
- constInfo.PetBonus = int(arg+4)
- event.QuestButtonClick(constInfo.PetyTab['id'])
- def OverInPetyButton(self, arg):
- self.tooltipItem.ClearToolTip()
- if arg <= 4:
- self.tooltipItem.SetTitle(uiScriptLocale.pet_tip1 % str(arg))
- self.tooltipItem.SetTitle(uiScriptLocale.pet_tip2)
- self.tooltipItem.AppendSpace(5)
- item.SelectItem(53202)
- self.tooltipItem.SetTextGift(item.GetItemName())
- self.tooltipItem.SetTitle(uiScriptLocale.pet_tip3)
- self.tooltipItem.Show()
- elif arg == 20:
- self.tooltipItem.SetTitle(uiScriptLocale.pet_tip4)
- self.tooltipItem.SetTextGift(str(constInfo.PetyTab['max_lv']))
- self.tooltipItem.Show()
- elif arg == 30:
- self.tooltipItem.SetTitle(uiScriptLocale.pet_tip5)
- self.tooltipItem.AppendSpace(5)
- self.tooltipItem.SetTextGift(uiScriptLocale.pet_tip6)
- self.tooltipItem.SetTextGift(uiScriptLocale.pet_tip7)
- self.tooltipItem.AppendSpace(5)
- self.tooltipItem.Show()
- elif arg >= 40:
- tab_lv=[3,5,8,10]
- self.tooltipItem.SetTitle(uiScriptLocale.pet_tip9)
- self.tooltipItem.SetTextGift(str(tab_lv[arg-41]))
- self.tooltipItem.Show()
- def OnUpdate(self):
- if int(constInfo.PetActive) == 0:
- self.Hide()
- return
- self.pet_lv.SetText(str(constInfo.PetyTab['lv']))
- if int(constInfo.PetyTab['lv']) >= int(constInfo.PetyTab['max_lv']):
- self.pet_exp.SetText(uiScriptLocale.pet_tip10)
- else:
- self.pet_exp.SetText(str(constInfo.PetyTab['exp'])+"/"+str(constInfo.PetyTab['exp_need']))
- if int(constInfo.PetId) == 0:
- self.pet_name.SetText(uiScriptLocale.pet_tip11)
- self.pet_avatar.Hide()
- else:
- item.SelectItem(int(constInfo.PetId))
- pet_name = item.GetItemName()
- self.pet_avatar.Show()
- avatar = int(constInfo.PetId)-54000
- self.pet_avatar.LoadImage("gui/pety/pet"+str(avatar)+".tga")
- rep = pet_name.replace('Pet', '')
- self.pet_name.SetText(str(rep))
- for i in xrange(1,5):
- if constInfo.PetBonusTab['bon'+str(i)] != 0:
- bonus_id=int(constInfo.PetBonusTab['bon'+str(i)])
- bonus_name=AFFECT_DICT[bonus_id](constInfo.PetBonusTab['bon'+str(i)+'_val'])
- self.bon[i-1].SetText(str(bonus_name))
- else:
- self.bon[i-1].SetText(uiScriptLocale.pet_tip12)
- def OverOutPetyButton(self):
- self.tooltipItem.Hide()
- def OnPressEscapeKey(self):
- self.Close()
- return True
- def Show(self):
- ui.ScriptWindow.Show(self)
- def Close(self):
- self.Hide()
- class Runy(ui.ScriptWindow):
- def __init__(self, wndInventory):
- ui.ScriptWindow.__init__(self)
- self.wndInventory = wndInventory;
- self.__Initialize()
- self.__Load()
- def __del__(self):
- ui.ScriptWindow.__del__(self)
- def __Initialize(self):
- self.titleBar = 0
- def Destroy(self):
- self.ClearDictionary()
- self.Hide()
- self.__Initialize()
- def __Load_LoadScript(self, fileName):
- try:
- pyScriptLoader = ui.PythonScriptLoader()
- pyScriptLoader.LoadScriptFile(self, fileName)
- except:
- import exception
- exception.Abort("Load_Error: Runy")
- def __Load(self):
- self.__Load_LoadScript("UIScript/Runy.py")
- self.__Load_BindObject()
- self.SetCenterPosition()
- self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
- def __Load_BindObject(self):
- try:
- GetObject = self.GetChild
- self.titleBar = GetObject("titlebar")
- wndEquip = self.GetChild("slot_table")
- except:
- import exception
- exception.Abort("OptionDialog.__Load_BindObject")
- wndEquip.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))
- wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))
- wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
- wndEquip.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
- wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))
- wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))
- self.wndEquip = wndEquip
- def OnUpdate(self):
- getItemVNum=player.GetItemIndex
- for i in xrange(4):
- slotNumber = item.EQUIPMENT_ITEM_NEW_SLOT_1 + i
- self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0)
- self.wndEquip.RefreshSlot()
- def OnPressEscapeKey(self):
- self.Close()
- return True
- def Show(self):
- ui.ScriptWindow.Show(self)
- def Close(self):
- self.Hide()
- class InventoryWindow(ui.ScriptWindow):
- USE_TYPE_TUPLE = ("USE_CLEAN_SOCKET", "USE_CHANGE_ATTRIBUTE", "USE_ADD_ATTRIBUTE", "USE_ADD_ATTRIBUTE2", "USE_ADD_ACCESSORY_SOCKET", "USE_PUT_INTO_ACCESSORY_SOCKET", "USE_PUT_INTO_RING_SOCKET")
- questionDialog = None
- tooltipItem = None
- wndCostume = None
- wndPet = None
- wndRuny = None
- dlgPickMoney = None
- sellingSlotNumber = -1
- isLoaded = 0
- isOpenedCostumeWindowWhenClosingInventory = 0
- isOpenedBeltWindowWhenClosingInventory = 0
- def __init__(self):
- ui.ScriptWindow.__init__(self)
- self.toolTip = uiToolTip.ToolTip()
- self.toolTip.Hide()
- self.yangTextLine = []
- self.deleteyangTextLine = 0
- self.yangcheck = 0
- self.bpcheck = 0
- self.bpTextLine = []
- self.deletebpTextLine = 0
- self.temp_yangTextLine = 0
- self.temp_bpTextLine = 0
- self.__LoadWindow()
- def __del__(self):
- ui.ScriptWindow.__del__(self)
- def Show(self):
- self.__LoadWindow()
- ui.ScriptWindow.Show(self)
- if self.isOpenedCostumeWindowWhenClosingInventory and self.wndCostume:
- self.wndCostume.Show()
- def BindInterfaceClass(self, interface):
- self.interface = interface
- def __LoadWindow(self):
- if self.isLoaded == 1:
- return
- self.isLoaded = 1
- try:
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "UIScript/InventoryWindow.py")
- except:
- import exception
- exception.Abort("InventoryWindow.LoadWindow.LoadObject")
- try:
- wndItem = self.GetChild("ItemSlot")
- wndEquip = self.GetChild("EquipmentSlot")
- self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))
- self.wndMoney = self.GetChild("Money")
- self.BP_points_slot = self.GetChild("BP_points_slot")
- self.BP_points = self.GetChild("BP_points")
- self.yang_add = self.GetChild("yang_add")
- self.bp_add = self.GetChild("bp_add")
- self.mallButton = self.GetChild2("MallButton")
- self.DSSButton = self.GetChild2("DSSButton")
- self.costumeButton = self.GetChild2("CostumeButton")
- self.inventoryTab = []
- self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))
- self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))
- self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))
- self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))
- self.inventoryTab.append(self.GetChild("Inventory_Tab_05"))
- self.belt_buttons = []
- self.belt_buttons.append(self.GetChild("teleportacja"))
- self.belt_buttons.append(self.GetChild("sklep"))
- self.belt_buttons.append(self.GetChild("kon"))
- self.belt_buttons.append(self.GetChild("marmur_sklep"))
- self.belt_buttons.append(self.GetChild("marmur_odmien"))
- self.belt_buttons.append(self.GetChild("zmiana_eq"))
- self.belt_buttons.append(self.GetChild("bs"))
- self.belt_buttons.append(self.GetChild("drop"))
- self.belt_buttons.append(self.GetChild("autopot_czerwony"))
- self.belt_buttons.append(self.GetChild("autopot_niebieski"))
- self.belt_buttons.append(self.GetChild("wspomagacze"))
- if self.costumeButton and not app.ENABLE_COSTUME_SYSTEM:
- self.costumeButton.Hide()
- self.costumeButton.Destroy()
- self.costumeButton = 0
- except:
- import exception
- exception.Abort("InventoryWindow.LoadWindow.BindObject")
- for i in xrange(len(self.belt_buttons)):
- self.belt_buttons[i].SetEvent(ui.__mem_func__(self.function_belt_buttons), i)
- self.belt_buttons[i].ShowToolTip = lambda arg=i: self.show_tooltip(arg)
- self.belt_buttons[i].HideToolTip = lambda : self.hide_tooltip()
- self.BP_points_slot.ShowToolTip = lambda : self.show_tooltip(40)
- self.BP_points_slot.HideToolTip = lambda : self.hide_tooltip()
- ## Item
- wndItem.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
- wndItem.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
- wndItem.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
- wndItem.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
- wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
- wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
- ## Equipment
- wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
- wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
- wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
- wndEquip.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
- wndEquip.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
- wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
- ## PickMoneyDialog
- dlgPickMoney = uiPickMoney.PickMoneyDialog()
- dlgPickMoney.LoadDialog()
- dlgPickMoney.Hide()
- ## RefineDialog
- self.refineDialog = uiRefine.RefineDialog()
- self.refineDialog.Hide()
- ## AttachMetinDialog
- self.attachMetinDialog = uiAttachMetin.AttachMetinDialog()
- self.attachMetinDialog.Hide()
- self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
- self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
- self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg))
- self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))
- self.inventoryTab[4].SetEvent(lambda arg=4: self.SetInventoryPage(arg))
- self.inventoryTab[0].Down()
- self.inventoryPageIndex = 0
- self.wndItem = wndItem
- self.wndEquip = wndEquip
- self.dlgPickMoney = dlgPickMoney
- #new_fnc
- import uiDozorcaIs
- self.dozorca_is = uiDozorcaIs.Dozorca_Is()
- #import uiTeleportacja
- #self.teleportacja = uiTeleportacja.Teleportacja()
- import uiMarmury
- self.marmury = uiMarmury.Marmury()
- import uiZmianaEq
- self.zmianaeq = uiZmianaEq.ZmianaEq()
- import uiWspomagacze
- self.wspomagacze = uiWspomagacze.Wspomagacze()
- import uiBs
- self.bs = uiBs.Bs()
- self.bs_minimal = uiBs.Zminimalizuj()
- self.bs_tab = uiBs.bs_tab
- import uiWikiDropu
- self.wiki = uiWikiDropu.WikiDropu()
- import uiWyciaganieKd
- self.wyciaganiekd = uiWyciaganieKd.WyciaganieKd()
- # MallButton
- if self.mallButton:
- self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))
- if self.DSSButton:
- self.DSSButton.SetEvent(ui.__mem_func__(self.ClickDSSButton))
- # Costume Button
- if self.costumeButton:
- self.costumeButton.SetEvent(ui.__mem_func__(self.ClickCostumeButton))
- self.costumeButton.ShowToolTip = lambda : self.__OverInCostumeButton()
- self.costumeButton.HideToolTip = lambda : self.__OverOutPanelButton()
- self.mallButton.ShowToolTip = lambda : self.__OverInMallButton()
- self.mallButton.HideToolTip = lambda : self.__OverOutPanelButton()
- self.wndCostume = None
- self.wndPet = None
- self.wndRuny = None
- #####
- ## Refresh
- self.SetInventoryPage(0)
- self.RefreshItemSlot()
- self.RefreshStatus()
- def Destroy(self):
- self.dozorca_is.Hide()
- #self.teleportacja.Hide()
- self.marmury.Hide()
- self.zmianaeq.Hide()
- self.wspomagacze.Hide()
- self.bs.Destroy()
- #self.bs_minimal.Hide()
- self.wiki.Hide()
- self.wyciaganiekd.Hide()
- #hide_gui
- self.ClearDictionary()
- self.dlgPickMoney.Destroy()
- self.dlgPickMoney = 0
- self.refineDialog.Destroy()
- self.refineDialog = 0
- self.attachMetinDialog.Destroy()
- self.attachMetinDialog = 0
- self.tooltipItem = None
- self.wndItem = 0
- self.wndEquip = 0
- self.dlgPickMoney = 0
- self.wndMoney = 0
- self.questionDialog = None
- self.mallButton = None
- self.DSSButton = None
- self.interface = None
- self.toolTip = None
- if self.wndCostume:
- self.wndCostume.Destroy()
- self.wndCostume = 0
- if self.wndPet:
- self.wndPet.Destroy()
- self.wndPet = 0
- if self.wndRuny:
- self.wndRuny.Destroy()
- self.wndRuny = 0
- self.inventoryTab = []
- def Hide(self):
- if None != self.tooltipItem:
- self.tooltipItem.HideToolTip()
- if self.wndCostume:
- self.isOpenedCostumeWindowWhenClosingInventory = self.wndCostume.IsShow()
- self.wndCostume.Close()
- if self.dlgPickMoney:
- self.dlgPickMoney.Close()
- self.OnCloseQuestionDialog()
- wndMgr.Hide(self.hWnd)
- def Close(self):
- self.Hide()
- def SetInventoryPage(self, page):
- self.inventoryTab[self.inventoryPageIndex].SetUp()
- self.inventoryPageIndex = page
- self.inventoryTab[self.inventoryPageIndex].Down()
- self.RefreshBagSlotWindow()
- def ClickMallButton(self):
- self.ShowBeltGui(self.dozorca_is)
- # DSSButton
- def ClickDSSButton(self):
- print "click_dss_button"
- self.interface.ToggleDragonSoulWindow()
- def ClickCostumeButton(self):
- print "Click Costume Button"
- if self.wndCostume:
- if self.wndCostume.IsShow():
- self.wndCostume.Hide()
- else:
- self.wndCostume.Show()
- self.wndCostume.SetTop()
- else:
- self.wndCostume = CostumeWindow(self)
- self.wndCostume.Show()
- self.wndCostume.SetTop()
- def OpenPetGui(self):
- print "Pet Gui"
- if self.wndPet:
- if self.wndPet.IsShow():
- self.wndPet.Hide()
- else:
- self.wndPet.Show()
- self.wndPet.SetTop()
- else:
- self.wndPet = Pety(self)
- self.wndPet.Show()
- self.wndPet.SetTop()
- def OpenRunyGui(self):
- print "Runy Gui"
- if self.wndRuny:
- if self.wndRuny.IsShow():
- self.wndRuny.Hide()
- else:
- self.wndRuny.Show()
- self.wndRuny.SetTop()
- else:
- self.wndRuny = Runy(self)
- self.wndRuny.Show()
- self.wndRuny.SetTop()
- def OpenRefineWiki(self, name):
- self.wiki.Show()
- self.wiki.RefineSearch(str(name))
- if not self.wiki.IsShow():
- self.wiki.Show()
- ###YangIp
- def MakeTextLine(self, text, id):
- textLine = ui.TextLine()
- textLine.SetParent(self)
- if id == 1:
- textLine.SetText("+%s" % localeInfo.NumberToMoneyString(text))
- textLine.SetPackedFontColor(0xffd7ab49)
- textLine.SetPosition(9, 530)
- elif id == 2:
- textLine.SetText("+%s" % localeInfo.NumberToSecondaryCoinString(text))
- textLine.SetPackedFontColor(0xffd7ab49)
- textLine.SetPosition(9, 560)
- textLine.SetOutline()
- textLine.Show()
- return textLine
- def UpdateMoneyBp(self, id):
- if id == 1:
- for i in xrange(len(self.yangTextLine)-1):
- text_size = str(self.yangTextLine[i].GetTextSize())
- textw1 = text_size.replace('(','')
- textw2 = textw1.replace(')','')
- text_n = textw2.split(",")
- if len(self.yangTextLine) > 1:
- self.yangTextLine[i].SetPosition(9-(int(text_n[0])-38), 530-15*int(len(self.yangTextLine)-(i+1)))
- wtext_size = str(self.yangTextLine[len(self.yangTextLine)-1].GetTextSize())
- wtextw1 = wtext_size.replace('(','')
- wtextw2 = wtextw1.replace(')','')
- wtext_n = wtextw2.split(",")
- self.yangTextLine[len(self.yangTextLine)-1].SetPosition(9-(int(wtext_n[0])-38), 530)
- elif id == 2:
- text_size = str(self.bpTextLine[0].GetTextSize())
- textw1 = text_size.replace('(','')
- textw2 = textw1.replace(')','')
- text_n = textw2.split(",")
- self.bpTextLine[0].SetPosition(9-(int(text_n[0])-38), 560)
- #YangInfo
- def YangInfo(self, money):
- if len(self.yangTextLine) > 8:
- self.yangTextLine.pop(0)
- self.yangTextLine.append(self.MakeTextLine(money,1))
- self.UpdateMoneyBp(1)
- self.yangcheck = app.GetTime()
- #BpInfo
- def BpInfo(self, ip):
- if len(self.bpTextLine) > 0:
- self.bpTextLine.pop(0)
- self.bpTextLine.append(self.MakeTextLine(ip,2))
- self.UpdateMoneyBp(2)
- self.bpcheck = app.GetTime()
- def update_bp(self, il):
- self.BP_points.SetText(localeInfo.NumberToSecondaryCoinString(il))
- def OnUpdate(self):
- if app.GetTime() <= 2:
- self.yangcheck=0
- if app.GetTime() <= 2:
- self.bpcheck=0
- if len(self.yangTextLine) <= 0:
- self.yang_add.Hide()
- else:
- self.yang_add.Show()
- if app.GetTime() < self.yangcheck + 10:
- pass
- else:
- self.yangTextLine = []
- self.ipyangcheck = app.GetTime()
- if len(self.bpTextLine) <= 0:
- self.bp_add.Hide()
- else:
- self.bp_add.Show()
- if app.GetTime() < self.bpcheck + 10:
- pass
- else:
- self.bpTextLine = []
- self.bpcheck = app.GetTime()
- ###YangIp
- def __OverInCostumeButton(self):
- self.toolTip.ClearToolTip()
- self.toolTip.SetTitle(localeInfo.btn_COSTUME)
- self.toolTip.Show()
- def __OverInMallButton(self):
- self.toolTip.ClearToolTip()
- self.toolTip.SetTitle(localeInfo.btn_DOZ_IS)
- self.toolTip.Show()
- def __OverOutPanelButton(self):
- self.toolTip.Hide()
- def ShowBeltGui(self, gui):
- if gui.IsShow():
- gui.Hide()
- else:
- gui.Show()
- gui.SetTop()
- def PotionId(self, arg):
- potions = {
- 8 : constInfo.Potred,
- 9 : constInfo.Potblue,
- 10 : constInfo.Potred_id,
- 11 : constInfo.Potblue_id,
- }
- return potions[arg]
- def save_pots(self, id, status):
- try:
- f = open("TwojeDane/autopoty/"+str(id)+".txt","wb")
- f.write(str(status))
- f.close()
- except:
- pass
- def function_belt_buttons(self, arg):
- if arg == 0:
- #self.ShowBeltGui(self.teleportacja)
- constInfo.Teleportacja_show=1
- elif arg == 1:
- net.SendChatPacket("/offline_shop")
- elif arg == 2:
- event.QuestButtonClick(constInfo.Kon)
- elif arg == 3:
- self.ShowBeltGui(self.marmury)
- elif arg == 4:
- constInfo.MarmuryIndex = 4
- event.QuestButtonClick(constInfo.Marmury)
- elif arg == 5:
- self.ShowBeltGui(self.zmianaeq)
- elif arg == 6:
- minimal = self.bs.Minimal()
- if self.bs.IsShow():
- if int(minimal) == 0:
- self.bs.Close()
- elif int(minimal) == 1 and self.bs.IsShow():
- self.bs.Hide()
- else:
- self.bs.Show()
- self.bs.SetTop()
- elif arg == 7:
- self.ShowBeltGui(self.wiki)
- elif arg == 8 or arg == 9:
- vnum = self.PotionId(arg+2)
- item.SelectItem(vnum)
- if player.GetItemCountByVnum(int(vnum)) <= 0:
- chat.AppendChat(chat.CHAT_TYPE_INFO, "[Autopot] - Nie posiadasz: %s" % item.GetItemName())
- else:
- if arg == 8:
- if constInfo.Potred==0:
- constInfo.Potred=1
- self.save_pots(1,1)
- else:
- constInfo.Potred=0
- self.save_pots(1,0)
- elif arg == 9:
- if constInfo.Potblue==0:
- constInfo.Potblue=1
- self.save_pots(2,1)
- else:
- constInfo.Potblue=0
- self.save_pots(2,0)
- self.show_tooltip(arg)
- elif arg == 10:
- self.ShowBeltGui(self.wspomagacze)
- def show_tooltip(self, arg):
- buttons_tooltip = [
- [localeInfo.btn_TP],
- [localeInfo.btn_SHOP],
- [localeInfo.btn_HORSE],
- [localeInfo.btn_BYTPOLLY],
- [localeInfo.btn_REMOVEPOLLY],
- [localeInfo.btn_CHANGEEQ],
- [localeInfo.btn_BS],
- [localeInfo.btn_INFODROP],
- [localeInfo.btn_AUTOPOT1],
- [localeInfo.btn_AUTOPOT2],
- [localeInfo.btn_AUTOITEMS]
- ]
- self.toolTip.ClearToolTip()
- if arg != 40:
- name_tooltip_1 = buttons_tooltip[arg][0]
- self.toolTip.SetTitle(name_tooltip_1)
- if arg == 8 or arg == 9:
- potion=self.PotionId(arg)
- self.toolTip.AppendSpace(5)
- if potion == 1:
- self.toolTip.AppendTextLine(uiScriptLocale.potions_on)
- else:
- self.toolTip.AppendTextLine(uiScriptLocale.potions_off)
- elif arg == 10:
- self.toolTip.AppendSpace(5)
- self.toolTip.AppendTextLine(uiScriptLocale.TIP_INVE1)
- self.toolTip.SetTextGift(uiScriptLocale.TIP_INVE2)
- elif arg == 40:
- self.toolTip.SetTitle(uiScriptLocale.TIP_INVE3)
- self.toolTip.AppendSpace(5)
- self.toolTip.AppendTextLine(uiScriptLocale.TIP_INVE4)
- self.toolTip.SetTextGift(uiScriptLocale.TIP_INVE5)
- self.toolTip.SetTextGift(uiScriptLocale.TIP_INVE6)
- self.toolTip.AppendTextLine(uiScriptLocale.TIP_INVE9,0xffffe3ad)
- self.toolTip.AppendSpace(2)
- self.toolTip.SetTextGift(uiScriptLocale.TIP_INVE7)
- self.toolTip.SetTextGift(uiScriptLocale.TIP_INVE8)
- self.toolTip.Show()
- def hide_tooltip(self):
- self.toolTip.Hide()
- def OnPickMoney(self, money):
- mouseModule.mouseController.AttachMoney(self, player.SLOT_TYPE_INVENTORY, money)
- def OnPickItem(self, count):
- itemSlotIndex = self.dlgPickMoney.itemGlobalSlotIndex
- selectedItemVNum = player.GetItemIndex(itemSlotIndex)
- mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, count)
- def __InventoryLocalSlotPosToGlobalSlotPos(self, local):
- if player.IsEquipmentSlot(local) or player.IsCostumeSlot(local):
- return local
- return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE + local
- 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)
- if 0 == itemCount:
- self.wndItem.ClearSlot(i)
- continue
- elif 1 == itemCount:
- itemCount = 0
- itemVnum = getItemVNum(slotNumber)
- setItemVNum(i, itemVnum, itemCount)
- if constInfo.IS_AUTO_POTION(itemVnum):
- metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
- if slotNumber >= player.INVENTORY_PAGE_SIZE:
- slotNumber -= player.INVENTORY_PAGE_SIZE
- isActivated = 0 != metinSocket[0]
- if isActivated:
- self.wndItem.ActivateSlot(slotNumber)
- 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(slotNumber)
- elif itemVnum >= 54001 and itemVnum < 54012:
- metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
- isActivated = 0 != metinSocket[1]
- if isActivated:
- self.wndItem.ActivateSlot(i, (181.00 / 255.0), (113.00 / 255.0), (21.00 / 255.0), 1.0)
- else:
- self.wndItem.DeactivateSlot(i)
- self.wndItem.RefreshSlot()
- def RefreshEquipSlotWindow(self):
- getItemVNum=player.GetItemIndex
- getItemCount=player.GetItemCount
- setItemVNum=self.wndEquip.SetItemSlot
- for i in xrange(player.EQUIPMENT_PAGE_COUNT):
- slotNumber = player.EQUIPMENT_SLOT_START + i
- itemCount = getItemCount(slotNumber)
- if itemCount <= 1:
- itemCount = 0
- setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)
- if app.ENABLE_NEW_EQUIPMENT_SYSTEM:
- for i in xrange(player.NEW_EQUIPMENT_SLOT_COUNT):
- slotNumber = player.NEW_EQUIPMENT_SLOT_START + i
- itemCount = getItemCount(slotNumber)
- if itemCount <= 1:
- itemCount = 0
- setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)
- print "ENABLE_NEW_EQUIPMENT_SYSTEM", slotNumber, itemCount, getItemVNum(slotNumber)
- self.wndEquip.RefreshSlot()
- if self.wndCostume:
- self.wndCostume.RefreshCostumeSlot()
- if self.wndPet:
- self.wndPet.SetSlots()
- def RefreshItemSlot(self):
- self.RefreshBagSlotWindow()
- self.RefreshEquipSlotWindow()
- def RefreshStatus(self):
- money = player.GetElk()
- self.wndMoney.SetText(localeInfo.NumberToMoneyString(money))
- def SetItemToolTip(self, tooltipItem):
- self.tooltipItem = tooltipItem
- def SellItem(self):
- net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count)
- snd.PlaySound("sound/ui/money.wav")
- self.OnCloseQuestionDialog()
- def OnDetachMetinFromItem(self):
- if None == self.questionDialog:
- return
- #net.SendItemUseToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)
- self.__SendUseItemToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)
- self.OnCloseQuestionDialog()
- def OnCloseQuestionDialog(self):
- if self.questionDialog:
- self.questionDialog.Close()
- self.questionDialog = None
- ## Slot Event
- def SelectEmptySlot(self, selectedSlotPos):
- selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(selectedSlotPos)
- if self.CheckBs(selectedSlotPos) == True:
- chat.AppendChat(chat.CHAT_TYPE_INFO, uiScriptLocale.bs33)
- mouseModule.mouseController.DeattachObject()
- return
- if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
- return
- 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_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 SelectItemSlot(self, itemSlotIndex):
- if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
- return
- itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(itemSlotIndex)
- if self.CheckBs(itemSlotIndex) == True:
- chat.AppendChat(chat.CHAT_TYPE_INFO, uiScriptLocale.bs33)
- mouseModule.mouseController.DeattachObject()
- return
- if mouseModule.mouseController.isAttached():
- attachedSlotType = mouseModule.mouseController.GetAttachedType()
- attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
- attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex()
- if player.SLOT_TYPE_INVENTORY == attachedSlotType:
- self.__DropSrcItemToDestItemInInventory(attachedItemVID, attachedSlotPos, itemSlotIndex)
- mouseModule.mouseController.DeattachObject()
- else:
- curCursorNum = app.GetCursor()
- if app.SELL == curCursorNum:
- self.__SellItem(itemSlotIndex)
- elif app.BUY == curCursorNum:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)
- elif app.IsPressed(app.DIK_LALT):
- link = player.GetItemLink(itemSlotIndex)
- ime.PasteString(link)
- elif app.IsPressed(app.DIK_LSHIFT):
- itemCount = player.GetItemCount(itemSlotIndex)
- if itemCount > 1:
- self.dlgPickMoney.SetTitleName(localeInfo.PICK_ITEM_TITLE)
- self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickItem))
- self.dlgPickMoney.Open(itemCount)
- self.dlgPickMoney.itemGlobalSlotIndex = itemSlotIndex
- #else:
- #selectedItemVNum = player.GetItemIndex(itemSlotIndex)
- #mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum)
- elif app.IsPressed(app.DIK_LCONTROL):
- itemIndex = player.GetItemIndex(itemSlotIndex)
- if True == item.CanAddToQuickSlotItem(itemIndex):
- player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_INVENTORY, itemSlotIndex)
- else:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.QUICKSLOT_REGISTER_DISABLE_ITEM)
- else:
- selectedItemVNum = player.GetItemIndex(itemSlotIndex)
- itemCount = player.GetItemCount(itemSlotIndex)
- mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)
- if self.__IsUsableItemToItem(selectedItemVNum, itemSlotIndex):
- self.wndItem.SetUseMode(True)
- else:
- self.wndItem.SetUseMode(False)
- snd.PlaySound("sound/ui/pick.wav")
- def __DropSrcItemToDestItemInInventory(self, srcItemVID, srcItemSlotPos, dstItemSlotPos):
- if srcItemSlotPos == dstItemSlotPos:
- return
- if item.IsRefineScroll(srcItemVID):
- self.RefineItem(srcItemSlotPos, dstItemSlotPos)
- self.wndItem.SetUseMode(False)
- elif item.IsMetin(srcItemVID):
- self.AttachMetinToItem(srcItemSlotPos, dstItemSlotPos)
- elif item.IsDetachScroll(srcItemVID):
- self.DetachMetinFromItem(srcItemSlotPos, dstItemSlotPos)
- elif item.IsKey(srcItemVID):
- self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
- elif (player.GetItemFlags(srcItemSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
- self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
- elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE:
- self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
- else:
- #snd.PlaySound("sound/ui/drop.wav")
- ##
- if player.IsEquipmentSlot(dstItemSlotPos):
- ##
- if item.IsEquipmentVID(srcItemVID):
- self.__UseItem(srcItemSlotPos)
- else:
- self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
- #net.SendItemMovePacket(srcItemSlotPos, dstItemSlotPos, 0)
- def __SellItem(self, itemSlotPos):
- if not player.IsEquipmentSlot(itemSlotPos):
- self.sellingSlotNumber = itemSlotPos
- itemIndex = player.GetItemIndex(itemSlotPos)
- itemCount = player.GetItemCount(itemSlotPos)
- item.SelectItem(itemIndex)
- itemPrice = item.GetISellItemPrice()
- if item.Is1GoldItem():
- itemPrice = itemCount / itemPrice / 5
- else:
- itemPrice = itemPrice * itemCount / 5
- item.GetItemName(itemIndex)
- itemName = item.GetItemName()
- self.questionDialog = uiCommon.QuestionDialog()
- self.questionDialog.SetText(localeInfo.DO_YOU_SELL_ITEM(itemName, itemCount, itemPrice))
- self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.SellItem))
- self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
- self.questionDialog.Open()
- self.questionDialog.count = itemCount
- def RefineItem(self, scrollSlotPos, targetSlotPos):
- scrollIndex = player.GetItemIndex(scrollSlotPos)
- targetIndex = player.GetItemIndex(targetSlotPos)
- if player.REFINE_OK != player.CanRefine(scrollIndex, targetSlotPos):
- return
- ###########################################################
- self.__SendUseItemToItemPacket(scrollSlotPos, targetSlotPos)
- #net.SendItemUseToItemPacket(scrollSlotPos, targetSlotPos)
- return
- ###########################################################
- ###########################################################
- #net.SendRequestRefineInfoPacket(targetSlotPos)
- #return
- ###########################################################
- result = player.CanRefine(scrollIndex, targetSlotPos)
- if player.REFINE_ALREADY_MAX_SOCKET_COUNT == result:
- #snd.PlaySound("sound/ui/jaeryun_fail.wav")
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_MORE_SOCKET)
- elif player.REFINE_NEED_MORE_GOOD_SCROLL == result:
- #snd.PlaySound("sound/ui/jaeryun_fail.wav")
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NEED_BETTER_SCROLL)
- elif player.REFINE_CANT_MAKE_SOCKET_ITEM == result:
- #snd.PlaySound("sound/ui/jaeryun_fail.wav")
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_SOCKET_DISABLE_ITEM)
- elif player.REFINE_NOT_NEXT_GRADE_ITEM == result:
- #snd.PlaySound("sound/ui/jaeryun_fail.wav")
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_UPGRADE_DISABLE_ITEM)
- elif player.REFINE_CANT_REFINE_METIN_TO_EQUIPMENT == result:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM)
- if player.REFINE_OK != result:
- return
- self.refineDialog.Open(scrollSlotPos, targetSlotPos)
- def DetachMetinFromItem(self, scrollSlotPos, targetSlotPos):
- scrollIndex = player.GetItemIndex(scrollSlotPos)
- targetIndex = player.GetItemIndex(targetSlotPos)
- if not (targetSlotPos >= 0 and targetSlotPos <= 224):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM_EQ)
- return
- if not player.CanDetach(scrollIndex, targetSlotPos):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
- return
- constInfo.WyciaganieKdSlotEq=targetSlotPos
- itemVnum = player.GetItemIndex(constInfo.WyciaganieKdSlotEq)
- constInfo.WyciaganieKdVnum=itemVnum
- if self.wyciaganiekd.IsShow():
- pass
- else:
- self.wyciaganiekd.Show()
- def AttachMetinToItem(self, metinSlotPos, targetSlotPos):
- metinIndex = player.GetItemIndex(metinSlotPos)
- targetIndex = player.GetItemIndex(targetSlotPos)
- item.SelectItem(metinIndex)
- itemName = item.GetItemName()
- result = player.CanAttachMetin(metinIndex, targetSlotPos)
- if player.ATTACH_METIN_NOT_MATCHABLE_ITEM == result:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_CAN_NOT_ATTACH(itemName))
- if player.ATTACH_METIN_NO_MATCHABLE_SOCKET == result:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_SOCKET(itemName))
- elif player.ATTACH_METIN_NOT_EXIST_GOLD_SOCKET == result:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_GOLD_SOCKET(itemName))
- elif player.ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT == result:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM)
- if player.ATTACH_METIN_OK != result:
- return
- self.attachMetinDialog.Open(metinSlotPos, targetSlotPos)
- def OverOutItem(self):
- self.wndItem.SetUsableItem(False)
- if None != self.tooltipItem:
- self.tooltipItem.HideToolTip()
- def OverInItem(self, overSlotPos):
- overSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(overSlotPos)
- self.wndItem.SetUsableItem(False)
- if mouseModule.mouseController.isAttached():
- attachedItemType = mouseModule.mouseController.GetAttachedType()
- if player.SLOT_TYPE_INVENTORY == attachedItemType:
- attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
- attachedItemVNum = mouseModule.mouseController.GetAttachedItemIndex()
- if self.__CanUseSrcItemToDstItem(attachedItemVNum, attachedSlotPos, overSlotPos):
- self.wndItem.SetUsableItem(True)
- self.ShowToolTip(overSlotPos)
- return
- self.ShowToolTip(overSlotPos)
- def __IsUsableItemToItem(self, srcItemVNum, srcSlotPos):
- if item.IsRefineScroll(srcItemVNum):
- return True
- elif item.IsMetin(srcItemVNum):
- return True
- elif item.IsDetachScroll(srcItemVNum):
- return True
- elif item.IsKey(srcItemVNum):
- return True
- elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
- return True
- else:
- if item.GetUseType(srcItemVNum) in self.USE_TYPE_TUPLE:
- return True
- return False
- def __CanUseSrcItemToDstItem(self, srcItemVNum, srcSlotPos, dstSlotPos):
- if srcSlotPos == dstSlotPos:
- return False
- if item.IsMetin(player.GetItemIndex(srcSlotPos)):
- return False
- if item.IsRefineScroll(srcItemVNum):
- if player.REFINE_OK == player.CanRefine(srcItemVNum, dstSlotPos):
- return True
- elif item.IsMetin(srcItemVNum):
- if player.ATTACH_METIN_OK == player.CanAttachMetin(srcItemVNum, dstSlotPos):
- return True
- elif item.IsDetachScroll(srcItemVNum):
- if player.DETACH_METIN_OK == player.CanDetach(srcItemVNum, dstSlotPos):
- return True
- elif item.IsKey(srcItemVNum):
- if player.CanUnlock(srcItemVNum, dstSlotPos):
- return True
- elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
- return True
- else:
- useType=item.GetUseType(srcItemVNum)
- if "USE_CLEAN_SOCKET" == useType:
- if self.__CanCleanBrokenMetinStone(dstSlotPos):
- return True
- elif "USE_CHANGE_ATTRIBUTE" == useType:
- if self.__CanChangeItemAttrList(dstSlotPos):
- return True
- elif "USE_ADD_ATTRIBUTE" == useType:
- i_vnum = player.GetItemIndex(srcSlotPos)
- if i_vnum == 98001 or i_vnum == 98002:
- if self.__CanAddItemAttrIs(dstSlotPos):
- return True
- else:
- if self.__CanAddItemAttr(dstSlotPos):
- return True
- elif "USE_ADD_ATTRIBUTE2" == useType:
- if self.__CanAddItemAttr(dstSlotPos):
- return True
- elif "USE_ADD_ACCESSORY_SOCKET" == useType:
- if self.__CanAddAccessorySocket(dstSlotPos):
- return True
- elif "USE_PUT_INTO_ACCESSORY_SOCKET" == useType:
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- if self.__CanPutAccessorySocket(dstSlotPos, srcItemVNum):
- return True;
- item.SelectItem(dstItemVNum)
- return False
- def __CanCleanBrokenMetinStone(self, dstSlotPos):
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- if dstItemVNum == 0:
- return False
- item.SelectItem(dstItemVNum)
- if item.ITEM_TYPE_WEAPON != item.GetItemType():
- return False
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- if player.GetItemMetinSocket(dstSlotPos, i) == constInfo.ERROR_METIN_STONE:
- return True
- return False
- def __CanChangeItemAttrList(self, dstSlotPos):
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- if dstItemVNum == 0:
- return False
- item.SelectItem(dstItemVNum)
- if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR):
- return False
- attrCount = 0
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- id, value = player.GetItemAttribute(dstSlotPos, i)
- if id != 0:
- attrCount += 1
- if attrCount!=0:
- return True
- return False
- def __CanPutAccessorySocket(self, dstSlotPos, mtrlVnum):
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- if dstItemVNum == 0:
- return False
- item.SelectItem(dstItemVNum)
- if item.GetItemType() != item.ITEM_TYPE_ARMOR:
- return False
- if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):
- return False
- curCount = player.GetItemMetinSocket(dstSlotPos, 0)
- maxCount = player.GetItemMetinSocket(dstSlotPos, 1)
- if mtrlVnum != constInfo.GET_ACCESSORY_MATERIAL_VNUM(dstItemVNum, item.GetItemSubType()):
- return False
- if curCount>=maxCount:
- return False
- return True
- def __CanAddAccessorySocket(self, dstSlotPos):
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- if dstItemVNum == 0:
- return False
- item.SelectItem(dstItemVNum)
- if item.GetItemType() != item.ITEM_TYPE_ARMOR:
- return False
- if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):
- return False
- curCount = player.GetItemMetinSocket(dstSlotPos, 0)
- maxCount = player.GetItemMetinSocket(dstSlotPos, 1)
- ACCESSORY_SOCKET_MAX_SIZE = 3
- if maxCount >= ACCESSORY_SOCKET_MAX_SIZE:
- return False
- return True
- #sielu
- def __CanAddItemAttr(self, dstSlotPos):
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- if dstItemVNum == 0:
- return False
- item.SelectItem(dstItemVNum)
- if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR):
- return False
- attrCount = 0
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- id, value = player.GetItemAttribute(dstSlotPos, i)
- if id != 0:
- attrCount += 1
- if attrCount<5:
- return True
- return False
- def __CanAddItemAttrIs(self, dstSlotPos):
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- if dstItemVNum == 0:
- return False
- item.SelectItem(dstItemVNum)
- if not item.GetItemType() == item.ITEM_TYPE_COSTUME:
- return False
- attrCount = 0
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- id, value = player.GetItemAttribute(dstSlotPos, i)
- if id != 0:
- attrCount += 1
- if attrCount==0:
- return True
- return False
- def ShowToolTip(self, slotIndex):
- if None != self.tooltipItem:
- self.tooltipItem.SetInventoryItem(slotIndex)
- def OnTop(self):
- if None != self.tooltipItem:
- self.tooltipItem.SetTop()
- def OnPressEscapeKey(self):
- self.Close()
- return True
- def UseItemSlot(self, slotIndex):
- if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS():
- return
- slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(slotIndex)
- self.__UseItem(slotIndex)
- mouseModule.mouseController.DeattachObject()
- self.OverOutItem()
- def __UseItem(self, slotIndex):
- ItemVNum = player.GetItemIndex(slotIndex)
- item.SelectItem(ItemVNum)
- if item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE):
- self.questionDialog = uiCommon.QuestionDialog()
- self.questionDialog.SetText(localeInfo.INVENTORY_REALLY_USE_ITEM)
- self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept))
- self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel))
- self.questionDialog.Open()
- self.questionDialog.slotIndex = slotIndex
- else:
- self.__SendUseItemPacket(slotIndex)
- #net.SendItemUsePacket(slotIndex)
- def __UseItemQuestionDialog_OnCancel(self):
- self.OnCloseQuestionDialog()
- def __UseItemQuestionDialog_OnAccept(self):
- self.__SendUseItemPacket(self.questionDialog.slotIndex)
- if self.questionDialog:
- self.questionDialog.Close()
- self.questionDialog = None
- def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos):
- if uiPrivateShopBuilder.IsBuildingPrivateShop():
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
- return
- if self.CheckBs(srcSlotPos) == True:
- chat.AppendChat(chat.CHAT_TYPE_INFO, uiScriptLocale.bs33)
- return
- net.SendItemUseToItemPacket(srcSlotPos, dstSlotPos)
- def __SendUseItemPacket(self, slotPos):
- if uiPrivateShopBuilder.IsBuildingPrivateShop():
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
- return
- if self.CheckBs(slotPos) == True:
- chat.AppendChat(chat.CHAT_TYPE_INFO, uiScriptLocale.bs33)
- return
- net.SendItemUsePacket(slotPos)
- def __SendMoveItemPacket(self, srcSlotPos, dstSlotPos, srcItemCount):
- if uiPrivateShopBuilder.IsBuildingPrivateShop():
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
- return
- if self.CheckBs(srcSlotPos) == True:
- chat.AppendChat(chat.CHAT_TYPE_INFO, uiScriptLocale.bs33)
- return
- net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount)
- def CheckBs(self, srcSlotPos):
- for i in xrange(0,15):
- if int(self.bs_tab[i]['slot']) == srcSlotPos and int(self.bs_tab[i]['vnum']) != 0:
- return True
- return False
Advertisement
Add Comment
Please, Sign In to add comment