Advertisement
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 player
- 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 background
- import exchange
- import constInfo2
- if app.ENABLE_CHEQUE_SYSTEM:
- import uiToolTip
- import uiPickETC
- import event
- if app.ENABLE_ACCE_SYSTEM:
- import acce
- ITEM_MALL_BUTTON_ENABLE = True
- ITEM_FLAG_APPLICABLE = 1 << 14
- if app.ENABLE_EXTEND_INVEN_SYSTEM:
- EX_INVEN_COVER_IMG_OPEN = "d:/ymir work/ui/game/windows/ex_inven_cover_button_open.sub"
- EX_INVEN_COVER_IMG_CLOSE = "d:/ymir work/ui/game/windows/ex_inven_cover_button_close.sub"
- if app.__RENEWAL_BRAVE_CAPE__:
- import os
- class BraveCapeWindow(ui.Board):
- __children={}
- class SliderBarNew(ui.Window):
- def __init__(self):
- ui.Window.__init__(self)
- self.curPos = 1.0
- self.pageSize = 1.0
- self.eventChange = None
- self.__Load()
- def __Load(self):
- IMG_DIR = "d:/ymir work/ui/game/bravery_cape/"
- img = ui.ImageBox()
- img.SetParent(self)
- img.LoadImage(IMG_DIR+"slider_bg.tga")
- img.Show()
- self.backGroundImage = img
- self.SetSize(self.backGroundImage.GetWidth(), self.backGroundImage.GetHeight())
- cursor = ui.DragButton()
- cursor.AddFlag("movable")
- cursor.AddFlag("restrict_y")
- cursor.SetParent(self)
- cursor.SetMoveEvent(ui.__mem_func__(self.__OnMove))
- cursor.SetUpVisual(IMG_DIR+"drag.tga")
- cursor.SetOverVisual(IMG_DIR+"drag.tga")
- cursor.SetDownVisual(IMG_DIR+"drag.tga")
- cursor.Show()
- self.cursor = cursor
- ##
- self.cursor.SetRestrictMovementArea(0, 0, self.backGroundImage.GetWidth(), 0)
- self.pageSize = self.backGroundImage.GetWidth() - self.cursor.GetWidth()
- def __OnMove(self):
- (xLocal, yLocal) = self.cursor.GetLocalPosition()
- self.curPos = float(xLocal) / float(self.pageSize)
- if self.eventChange:
- self.eventChange()
- def SetSliderPos(self, pos):
- self.curPos = pos
- self.cursor.SetPosition(int(self.pageSize * pos), 0)
- def GetSliderPos(self):
- return self.curPos
- def SetEvent(self, event):
- self.eventChange = event
- def Enable(self):
- self.cursor.Show()
- def Disable(self):
- self.cursor.Hide()
- def Destroy(self):
- self.SaveData()
- self.__children={}
- def CreateWindow(self, classPtr, parent, pos):
- window = classPtr
- window.SetParent(parent)
- window.SetPosition(*pos)
- window.Show()
- return window
- def __OverOutItem(self):
- interface = constInfo.GetInterfaceInstance()
- if interface:
- if interface.tooltipItem:
- interface.tooltipItem.HideToolTip()
- def __OverInItem(self, itemIdx):
- interface = constInfo.GetInterfaceInstance()
- if interface:
- if interface.tooltipItem:
- interface.tooltipItem.SetItemToolTip(itemIdx)
- def __init__(self):
- ui.Board.__init__(self)
- self.SetSize(140, 130 + 44)
- self.AddFlag("attach")
- self.AddFlag("float")
- self.__children["firstOpened"] = app.GetGlobalTimeStamp() + 5
- IMG_DIR = "d:/ymir work/ui/game/bravery_cape/"
- BUTTONS_DIR = "d:/ymir work/ui/game/belt_inventory/"
- BRAVE_CAPE_ITEM_IDX = 20575
- item.SelectItem(BRAVE_CAPE_ITEM_IDX)
- bgImg = self.CreateWindow(ui.ImageBox(), self, (5, 6))
- bgImg.LoadImage(IMG_DIR+"bg.tga")
- self.__children["bgImg"] = bgImg
- timeTextVisual = self.CreateWindow(ui.TextLine(), bgImg, (13, 60))
- timeTextVisual.SetText("Second")
- self.__children["timeTextVisual"] = timeTextVisual
- timeSlider = self.CreateWindow(self.SliderBarNew(), bgImg, (13, 73 + 5))
- timeSlider.SetEvent(ui.__mem_func__(self.OnChangeTimeSlider))
- self.__children["timeSlider"] = timeSlider
- timeBg = self.CreateWindow(ui.ImageBox(), bgImg, (77, 64))
- timeBg.LoadImage(IMG_DIR+"input_output.tga")
- self.__children["timeBg"] = timeBg
- timeText = self.CreateWindow(ui.TextLine(), timeBg, (0, 0))
- timeText.SetAllAlign()
- timeText.SetText("0")
- self.__children["timeText"] = timeText
- rangeTextVisual = self.CreateWindow(ui.TextLine(), bgImg, (13, 73 + 22 + 17 + 5 - 18))
- rangeTextVisual.SetText("Range")
- self.__children["rangeTextVisual"] = rangeTextVisual
- rangeSlider = self.CreateWindow(self.SliderBarNew(), bgImg, (13, 73 + 22 + 17 + 5))
- rangeSlider.SetEvent(ui.__mem_func__(self.OnChangeRangeSlider))
- self.__children["rangeSlider"] = rangeSlider
- rangeBg = self.CreateWindow(ui.ImageBox(), bgImg, (77, 95 + 8))
- rangeBg.LoadImage(IMG_DIR+"input_output.tga")
- self.__children["rangeBg"] = rangeBg
- rangeText = self.CreateWindow(ui.TextLine(), rangeBg, (0, 0))
- rangeText.SetAllAlign()
- rangeText.SetText("0")
- self.__children["rangeText"] = rangeText
- itemIcon = self.CreateWindow(ui.ImageBox(), bgImg, (50, 13))
- itemIcon.LoadImage(item.GetIconImageFileName())
- itemIcon.SAFE_SetStringEvent("MOUSE_OVER_OUT",self.__OverOutItem)
- itemIcon.SAFE_SetStringEvent("MOUSE_OVER_IN",self.__OverInItem, BRAVE_CAPE_ITEM_IDX)
- self.__children["itemIcon"] = itemIcon
- startBtn = self.CreateWindow(ui.Button(), bgImg, (6, 95 + 39))
- startBtn.SetUpVisual(IMG_DIR+"start_btn_0.tga")
- startBtn.SetOverVisual(IMG_DIR+"start_btn_1.tga")
- startBtn.SetDownVisual(IMG_DIR+"start_btn_2.tga")
- startBtn.SetDisableVisual(IMG_DIR+"start_btn_2.tga")
- startBtn.SAFE_SetEvent(self.__ClickStatusBtn, "ACTIVE")
- startBtn.SetText("Start")
- self.__children["startBtn"] = startBtn
- stopBtn = self.CreateWindow(ui.Button(), bgImg, (66, 95 + 39))
- stopBtn.SetUpVisual(IMG_DIR+"start_btn_0.tga")
- stopBtn.SetOverVisual(IMG_DIR+"start_btn_1.tga")
- stopBtn.SetDownVisual(IMG_DIR+"start_btn_2.tga")
- stopBtn.SetDisableVisual(IMG_DIR+"start_btn_2.tga")
- stopBtn.SAFE_SetEvent(self.__ClickStatusBtn, "DEACTIVE")
- stopBtn.SetText("Stop")
- self.__children["stopBtn"] = stopBtn
- expandBtn = self.CreateWindow(ui.Button(), self, (0, 10))
- expandBtn.SetUpVisual(BUTTONS_DIR+"btn_minimize_normal.tga")
- expandBtn.SetOverVisual(BUTTONS_DIR+"btn_minimize_over.tga")
- expandBtn.SetDownVisual(BUTTONS_DIR+"btn_minimize_down.tga")
- expandBtn.SAFE_SetEvent(self.Close)
- self.__children["expandBtn"] = expandBtn
- self.__children["second"] = 0
- self.__children["range"] = 0
- self.__children["status"] = False
- self.Refresh()
- def Refresh(self):
- (second, range, posTime, posSlider) = (self.__children["second"], self.__children["range"], 0.0, 0.0)
- if second > 5800:
- second = 5800
- if range > 14000:
- range = 14000
- self.__children["timeText"].SetText(str((second/100)+2))
- self.__children["rangeText"].SetText(str(range+1000))
- self.__children["timeSlider"].SetSliderPos((1.0/5800.0)*second)
- self.__children["rangeSlider"].SetSliderPos((1.0/14000.0)*range)
- self.__children["second"] = second
- self.__children["range"] = range
- def Open(self):
- interface = constInfo.GetInterfaceInstance()
- if interface:
- if interface.wndInventory:
- interface.wndInventory.disbandBtn.Hide()
- self.Show()
- def Close(self):
- interface = constInfo.GetInterfaceInstance()
- if interface:
- if interface.wndInventory:
- interface.wndInventory.disbandBtn.Show()
- self.Hide()
- def __ClickStatusBtn(self, type):
- if type == "ACTIVE":
- net.SendChatPacket("/brave_cape active {} {}".format((self.__children["second"]/100)+2, self.__children["range"] + 1000))
- elif type == "DEACTIVE":
- net.SendChatPacket("/brave_cape deactive")
- def AdjustPosition(self, x, y):
- self.SetPosition(x + 10 - self.GetWidth(), y + 220)
- def OnChangeRangeSlider(self):
- val = int(((1.0/14000.0)*(self.__children["rangeSlider"].GetSliderPos()*14000))*14000)
- self.__children["range"] = val
- self.Refresh()
- def OnChangeTimeSlider(self):
- val = int(((1.0/5800.0)*(self.__children["timeSlider"].GetSliderPos()*5800))*5800)
- self.__children["second"] = val
- self.Refresh()
- def SetStatus(self, status):
- self.__children["status"] = True if int(status) == 1 else False
- if self.__children["status"]:
- self.__children["startBtn"].Disable()
- self.__children["stopBtn"].Enable()
- else:
- self.__children["stopBtn"].Disable()
- self.__children["startBtn"].Enable()
- self.Refresh()
- def SaveData(self):
- try:
- file = open("lib/{}_brave_cape".format(player.GetName()), "w+")
- file.write("{}#{}#{}\n".format(1 if (self.__children["status"] if self.__children.has_key("status") else False) == True else 0, self.__children["second"], self.__children["range"]))
- file.close()
- except:
- pass
- def LoadData(self):
- try:
- splitList = open("lib/{}_brave_cape".format(player.GetName()), "r").readlines()[0].split("#")
- self.__children["status"] = True if int(splitList[0]) == 1 else False
- self.__children["second"] = int(splitList[1])
- self.__children["range"] = int(splitList[2])
- self.Refresh()
- if self.__children["status"]:
- self.__ClickStatusBtn("ACTIVE")
- os.remove("lib/{}_brave_cape".format(player.GetName()))
- except:
- pass
- 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;
- if app.ENABLE_HIDE_COSTUME_SYSTEM:
- self.visibleButtonList = []
- 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 GetBasePosition(self):
- x, y = self.wndInventory.GetGlobalPosition()
- return x - 147, y
- def AdjustPositionAndSize(self):
- bx, by = self.GetBasePosition()
- self.SetPosition(bx, by)
- self.SetSize(self.GetWidth(), self.GetHeight())
- 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))
- if app.ENABLE_HIDE_COSTUME_SYSTEM:
- self.visibleButtonList.append(self.GetChild("BodyToolTipButton"))
- self.visibleButtonList.append(self.GetChild("HairToolTipButton"))
- if app.ENABLE_ACCE_SYSTEM:
- self.visibleButtonList.append(self.GetChild("AcceToolTipButton"))
- if app.ENABLE_WEAPON_COSTUME_SYSTEM:
- self.visibleButtonList.append(self.GetChild("WeaponToolTipButton"))
- # self.costume = self.GetChild("costume") # Fixed by Exygo, self. was missing before GetChild
- 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.costume.SetEvent(ui.__mem_func__(self.__costume))
- self.wndEquip = wndEquip
- if app.ENABLE_HIDE_COSTUME_SYSTEM:
- self.visibleButtonList[0].SetToggleUpEvent(ui.__mem_func__(self.VisibleCostume), 1, 0)
- self.visibleButtonList[1].SetToggleUpEvent(ui.__mem_func__(self.VisibleCostume), 2, 0)
- if app.ENABLE_ACCE_SYSTEM:
- self.visibleButtonList[2].SetToggleUpEvent(ui.__mem_func__(self.VisibleCostume), 3, 0)
- if app.ENABLE_WEAPON_COSTUME_SYSTEM:
- self.visibleButtonList[3].SetToggleUpEvent(ui.__mem_func__(self.VisibleCostume), 4, 0)
- self.visibleButtonList[0].SetToggleDownEvent(ui.__mem_func__(self.VisibleCostume), 1, 1)
- self.visibleButtonList[1].SetToggleDownEvent(ui.__mem_func__(self.VisibleCostume), 2, 1)
- if app.ENABLE_ACCE_SYSTEM:
- self.visibleButtonList[2].SetToggleDownEvent(ui.__mem_func__(self.VisibleCostume), 3, 1)
- if app.ENABLE_WEAPON_COSTUME_SYSTEM:
- self.visibleButtonList[3].SetToggleDownEvent(ui.__mem_func__(self.VisibleCostume), 4, 1)
- 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)
- if app.BL_TRANSMUTATION_SYSTEM:
- if not player.GetChangeLookVnum(player.EQUIPMENT, slotNumber) == 0:
- self.wndEquip.SetSlotCoverImage(slotNumber,"icon/item/ingame_convert_Mark.tga")
- else:
- self.wndEquip.EnableSlotCoverImage(slotNumber,False)
- if app.ENABLE_WEAPON_COSTUME_SYSTEM:
- self.wndEquip.SetItemSlot(item.COSTUME_SLOT_WEAPON, getItemVNum(item.COSTUME_SLOT_WEAPON), 0)
- self.wndEquip.RefreshSlot()
- # def __costume(self):
- # constInfo.costume = 1
- # event.QuestButtonClick(int(constInfo.QUEST_INDEX_06))
- # net.SendQuestInputStringPacket(str(constInfo.costume))
- if app.ENABLE_HIDE_COSTUME_SYSTEM:
- def RefreshVisibleCostume(self):
- body = constInfo.HIDDEN_BODY_COSTUME
- hair = constInfo.HIDDEN_HAIR_COSTUME
- if app.ENABLE_ACCE_SYSTEM:
- acce = constInfo.HIDDEN_ACCE_COSTUME
- if app.ENABLE_WEAPON_COSTUME_SYSTEM:
- weapon = constInfo.HIDDEN_WEAPON_COSTUME
- if body == 1:
- self.visibleButtonList[0].SetToolTipText(localeInfo.SHOW_COSTUME)
- self.visibleButtonList[0].Down()
- else:
- self.visibleButtonList[0].SetToolTipText(localeInfo.HIDE_COSTUME)
- self.visibleButtonList[0].SetUp()
- if hair == 1:
- self.visibleButtonList[1].SetToolTipText(localeInfo.SHOW_COSTUME)
- self.visibleButtonList[1].Down()
- else:
- self.visibleButtonList[1].SetToolTipText(localeInfo.HIDE_COSTUME)
- self.visibleButtonList[1].SetUp()
- if app.ENABLE_ACCE_SYSTEM:
- if acce == 1:
- self.visibleButtonList[2].SetToolTipText(localeInfo.SHOW_COSTUME)
- self.visibleButtonList[2].Down()
- else:
- self.visibleButtonList[2].SetToolTipText(localeInfo.HIDE_COSTUME)
- self.visibleButtonList[2].SetUp()
- if app.ENABLE_WEAPON_COSTUME_SYSTEM:
- if weapon == 1:
- self.visibleButtonList[3].SetToolTipText(localeInfo.SHOW_COSTUME)
- self.visibleButtonList[3].Down()
- else:
- self.visibleButtonList[3].SetToolTipText(localeInfo.HIDE_COSTUME)
- self.visibleButtonList[3].SetUp()
- def VisibleCostume(self, part, hidden):
- net.SendChatPacket("/hide_costume %d %d" % (part, hidden))
- 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_BELT_SOCKET", "USE_PUT_INTO_RING_SOCKET", "USE_CHANGE_COSTUME_ATTR", "USE_RESET_COSTUME_ATTR")
- questionDialog = None
- tooltipItem = None
- wndCostume = None
- wndBelt = None
- dlgPickMoney = None
- interface = None
- if app.WJ_ENABLE_TRADABLE_ICON:
- bindWnds = []
- if app.ENABLE_CHEQUE_SYSTEM:
- dlgPickETC = None
- sellingSlotNumber = -1
- isLoaded = 0
- isOpenedCostumeWindowWhenClosingInventory = 0
- IsOpenedDisbandButton = 0
- def __init__(self):
- if app.ENABLE_CHEQUE_SYSTEM:
- self.wndExpandedMoneyBar = None
- if app.__RENEWAL_BRAVE_CAPE__:
- self.wndBraveCape = None
- ui.ScriptWindow.__init__(self)
- self.inventoryPageIndex = 0
- self.__LoadWindow()
- def __del__(self):
- if app.ENABLE_CHEQUE_SYSTEM:
- self.wndExpandedMoneyBar = None
- if app.__RENEWAL_BRAVE_CAPE__:
- self.wndBraveCape = None
- ui.ScriptWindow.__del__(self)
- def Show(self):
- self.__LoadWindow()
- ui.ScriptWindow.Show(self)
- self.RefreshItemSlot()
- self.RefreshStatus()
- # If the costume was open when the inventory was closed, the costume will also be opened when the inventory is opened.
- if self.isOpenedCostumeWindowWhenClosingInventory and self.wndCostume:
- self.wndCostume.Show()
- if app.ENABLE_CHEQUE_SYSTEM:
- if self.wndExpandedMoneyBar:
- self.wndExpandedMoneyBar.Show()
- def BindInterfaceClass(self, interface):
- from _weakref import proxy
- self.interface = proxy(interface)
- if app.WJ_ENABLE_TRADABLE_ICON:
- def BindWindow(self, wnd):
- self.bindWnds.append(wnd)
- def __LoadWindow(self):
- if self.isLoaded == 1:
- return
- self.isLoaded = 1
- try:
- pyScrLoader = ui.PythonScriptLoader()
- if ITEM_MALL_BUTTON_ENABLE:
- if app.ENABLE_EXTEND_INVEN_SYSTEM:
- pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "New_InventoryWindow.py")
- else:
- pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "InventoryWindow.py")
- else:
- if app.ENABLE_EXTEND_INVEN_SYSTEM:
- pyScrLoader.LoadScriptFile(self, "UIScript/New_InventoryWindow.py")
- else:
- 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.wndMoneySlot = self.GetChild("Money_Slot")
- self.mallButton = self.GetChild2("MallButton")
- self.DSSButton = self.GetChild2("DSSButton")
- self.costumeButton = self.GetChild2("CostumeButton")
- if app.ENABLE_CHEQUE_SYSTEM:
- self.wndCheque = self.GetChild("Cheque")
- self.wndChequeSlot = self.GetChild("Cheque_Slot")
- if app.ENABLE_CHEQUE_SYSTEM:
- self.wndMoneyIcon = self.GetChild("Money_Icon")
- self.wndChequeIcon = self.GetChild("Cheque_Icon")
- self.wndMoneyIcon.Hide()
- self.wndMoneySlot.Hide()
- self.wndChequeIcon.Hide()
- self.wndChequeSlot.Hide()
- ## height adjustment
- height = self.GetHeight()
- width = self.GetWidth()
- self.SetSize(width, height - 22)
- self.GetChild("board").SetSize(width, height - 22)
- else:
- self.wndMoneyIcon = self.GetChild("Money_Icon")
- self.wndChequeIcon = self.GetChild("Cheque_Icon")
- self.wndMoneyIcon.SetEvent(ui.__mem_func__(self.EventProgress), "mouse_over_in", 0)
- self.wndChequeIcon.SetEvent(ui.__mem_func__(self.EventProgress), "mouse_over_in", 1)
- self.wndMoneyIcon.SetEvent(ui.__mem_func__(self.EventProgress), "mouse_over_out", 0)
- self.wndChequeIcon.SetEvent(ui.__mem_func__(self.EventProgress), "mouse_over_out", 1)
- self.toolTip = uiToolTip.ToolTip()
- self.toolTip.ClearToolTip()
- self.inventoryTab = []
- self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))
- self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))
- if app.ENABLE_EXTEND_INVEN_SYSTEM:
- self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))
- self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))
- self.equipmentTab = []
- self.equipmentTab.append(self.GetChild("Equipment_Tab_01"))
- self.equipmentTab.append(self.GetChild("Equipment_Tab_02"))
- # if app.ENABLE_SORT_INVEN:
- # self.yenilebutton = self.GetChild2("YenileButton")
- # self.yenilebutton.SetEvent(ui.__mem_func__(self.ClickYenileButton))
- # self.tooltipI = uiToolTip.ToolTip()
- # self.tooltipI.Hide()
- # self.tooltipInfo = [self.tooltipI]*4
- # self.InformationText = [localeInfo.YENILE_BUTTON_TITLE,
- # localeInfo.YENILE_BUTTON,
- # localeInfo.YENILE_BUTTON2,
- # localeInfo.YENILE_BUTTON3
- # ]
- # for i in xrange(len(self.tooltipInfo)):
- # self.tooltipInfo[i].SetFollow(True)
- # self.tooltipInfo[i].AlignHorizonalCenter()
- # if i == 0:
- # self.tooltipInfo[i].AppendTextLine(self.InformationText[i], 0xffffff00)
- # else:
- # self.tooltipInfo[i].AppendTextLine(self.InformationText[i])
- # self.tooltipInfo[i].Hide()
- if app.BL_TRANSMUTATION_SYSTEM:
- self.dlgQuestion = uiCommon.QuestionDialog2()
- self.dlgQuestion.Close()
- self.listHighlightedChangeLookSlot = []
- if app.BL_ENABLE_PICKUP_ITEM_EFFECT:
- self.listHighlightedSlot = []
- if self.costumeButton and not app.ENABLE_COSTUME_SYSTEM:
- self.costumeButton.Hide()
- self.costumeButton.Destroy()
- self.costumeButton = 0
- # Belt Inventory Window
- # self.wndBelt = None
- # if app.ENABLE_NEW_EQUIPMENT_SYSTEM:
- # self.wndBelt = BeltInventoryWindow(self)
- except:
- import exception
- exception.Abort("InventoryWindow.LoadWindow.BindObject")
- ## 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()
- ## PickETCDialog
- if app.ENABLE_CHEQUE_SYSTEM:
- dlgPickETC = uiPickETC.PickETCDialog()
- dlgPickETC.LoadDialog()
- dlgPickETC.Hide()
- ## RefineDialog
- self.refineDialog = uiRefine.RefineDialog()
- self.refineDialog.Hide()
- ## AttachMetinDialog
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.attachMetinDialog = uiAttachMetin.AttachMetinDialog(self)
- self.BindWindow(self.attachMetinDialog)
- else:
- self.attachMetinDialog = uiAttachMetin.AttachMetinDialog()
- self.attachMetinDialog.Hide()
- ## MoneySlot
- if app.ENABLE_CHEQUE_SYSTEM:
- self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog), 0)
- self.wndChequeSlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog), 1)
- else:
- self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))
- if app.ENABLE_EXTEND_INVEN_SYSTEM:
- for inven_index in range(player.INVENTORY_PAGE_COUNT): ## 0, 1, 2, 3
- self.inventoryTab[inven_index].SetEvent(lambda arg=inven_index: self.SetInventoryPage(arg))
- else:
- self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
- self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
- self.inventoryTab[0].Down()
- self.equipmentTab[0].SetEvent(lambda arg=0: self.SetEquipmentPage(arg))
- self.equipmentTab[1].SetEvent(lambda arg=1: self.SetEquipmentPage(arg))
- self.equipmentTab[0].Down()
- self.equipmentTab[0].Hide()
- self.equipmentTab[1].Hide()
- self.wndItem = wndItem
- self.wndEquip = wndEquip
- self.dlgPickMoney = dlgPickMoney
- if app.ENABLE_CHEQUE_SYSTEM:
- self.dlgPickETC = dlgPickETC
- # 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.wndCostume = None
- if app.__RENEWAL_BRAVE_CAPE__:
- self.wndBraveCape = None
- #####
- if app.ENABLE_ACCE_SYSTEM:
- self.listAttachedAcces = []
- if app.__RENEWAL_BRAVE_CAPE__:
- disbandBtn = ui.Button()
- disbandBtn.SetParent(self)
- disbandBtn.SetPosition(0, 220)
- disbandBtn.SetUpVisual("d:/ymir work/ui/game/belt_inventory/btn_expand_normal.tga")
- disbandBtn.SetOverVisual("d:/ymir work/ui/game/belt_inventory/btn_expand_over.tga")
- disbandBtn.SetDownVisual("d:/ymir work/ui/game/belt_inventory/btn_expand_down.tga")
- disbandBtn.SAFE_SetEvent(self.ClickBraveCape)
- disbandBtn.Show()
- self.disbandBtn = disbandBtn
- self.wndBraveCape = BraveCapeWindow()
- self.OnMoveWindow(*self.GetGlobalPosition())
- ## Refresh
- self.SetInventoryPage(0)
- self.SetEquipmentPage(0)
- self.RefreshItemSlot()
- self.RefreshStatus()
- def Destroy(self):
- self.ClearDictionary()
- self.dlgPickMoney.Destroy()
- self.dlgPickMoney = 0
- if app.ENABLE_CHEQUE_SYSTEM:
- self.dlgPickETC.Destroy()
- self.dlgPickETC = 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.wndMoneySlot = 0
- if app.ENABLE_CHEQUE_SYSTEM:
- self.wndCheque = 0
- self.wndChequeSlot = 0
- self.dlgPickETC = 0
- self.questionDialog = None
- self.mallButton = None
- self.DSSButton = None
- self.interface = None
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.bindWnds = []
- if self.wndCostume:
- self.wndCostume.Destroy()
- self.wndCostume = 0
- if app.__RENEWAL_BRAVE_CAPE__:
- if self.wndBraveCape:
- self.wndBraveCape.Destroy()
- self.wndBraveCape = None
- if self.wndBelt:
- self.wndBelt.Destroy()
- self.wndBelt = None
- if app.BL_TRANSMUTATION_SYSTEM:
- self.dlgQuestion = None
- self.inventoryTab = []
- self.equipmentTab = []
- if app.ENABLE_CHEQUE_SYSTEM:
- self.wndExpandedMoneyBar = None
- def Hide(self):
- if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
- self.OnCloseQuestionDialog()
- return
- if None != self.tooltipItem:
- self.tooltipItem.HideToolTip()
- if self.wndCostume:
- self.isOpenedCostumeWindowWhenClosingInventory = self.wndCostume.IsShow() # Was the costume open when the inventory window was closed?
- self.wndCostume.Close()
- if app.__RENEWAL_BRAVE_CAPE__:
- if self.wndBraveCape:
- self.IsOpenedDisbandButton = self.disbandBtn.Show
- self.wndBraveCape.Close()
- if self.dlgPickMoney:
- self.dlgPickMoney.Close()
- if app.ENABLE_CHEQUE_SYSTEM:
- if self.dlgPickETC:
- self.dlgPickETC.Close()
- wndMgr.Hide(self.hWnd)
- def Close(self):
- self.Hide()
- if app.ENABLE_CHEQUE_SYSTEM:
- def SetExpandedMoneyBar(self, wndBar):
- self.wndExpandedMoneyBar = wndBar
- if self.wndExpandedMoneyBar:
- self.wndMoneySlot = self.wndExpandedMoneyBar.GetMoneySlot()
- self.wndMoney = self.wndExpandedMoneyBar.GetMoney()
- if app.ENABLE_CHEQUE_SYSTEM:
- self.wndMoneyIcon = self.wndExpandedMoneyBar.GetMoneyIcon()
- if self.wndMoneyIcon:
- self.wndMoneyIcon.SetEvent(ui.__mem_func__(self.EventProgress), "mouse_over_in", 0)
- self.wndMoneyIcon.SetEvent(ui.__mem_func__(self.EventProgress), "mouse_over_out", 0)
- if self.wndMoneySlot:
- self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog), 0)
- self.wndChequeIcon = self.wndExpandedMoneyBar.GetChequeIcon()
- if self.wndChequeIcon:
- self.wndChequeIcon.SetEvent(ui.__mem_func__(self.EventProgress), "mouse_over_in", 1)
- self.wndChequeIcon.SetEvent(ui.__mem_func__(self.EventProgress), "mouse_over_out", 1)
- self.wndChequeSlot = self.wndExpandedMoneyBar.GetChequeSlot()
- if self.wndChequeSlot:
- self.wndChequeSlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog), 1)
- self.wndCheque = self.wndExpandedMoneyBar.GetCheque()
- self.toolTip = uiToolTip.ToolTip()
- self.toolTip.ClearToolTip()
- else:
- if self.wndMoneySlot:
- self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))
- # if app.ENABLE_SORT_INVEN:
- # def ClickYenileButton(self):
- # if app.IsPressed(app.DIK_LALT):
- # net.SortInven(2)
- # elif app.IsPressed(app.DIK_LCONTROL):
- # net.SortInven(3)
- # else:
- # net.SortInven(1)
- if app.ENABLE_EXTEND_INVEN_SYSTEM:
- def SetInventoryPage(self, page):
- self.inventoryPageIndex = page
- for index in range(len(self.inventoryTab)):
- if index == page:
- continue
- self.inventoryTab[index].SetUp()
- self.RefreshBagSlotWindow()
- else:
- def SetInventoryPage(self, page):
- self.inventoryPageIndex = page
- self.inventoryTab[1-page].SetUp()
- self.RefreshBagSlotWindow()
- def SetEquipmentPage(self, page):
- self.equipmentPageIndex = page
- self.equipmentTab[1-page].SetUp()
- self.RefreshEquipSlotWindow()
- def ClickMallButton(self):
- print "click_mall_button"
- net.SendChatPacket("/click_mall")
- # DSSButton
- def ClickDSSButton(self):
- print "click_dss_button"
- self.interface.ToggleDragonSoulWindow()
- if app.__RENEWAL_BRAVE_CAPE__:
- def ClickBraveCape(self):
- if self.wndBraveCape:
- if self.wndBraveCape.IsShow():
- self.wndBraveCape.Close()
- else:
- self.wndBraveCape.Open()
- def ClickCostumeButton(self):
- print "Click Costume Button"
- if self.wndCostume:
- if self.wndCostume.IsShow():
- self.wndCostume.Hide()
- else:
- self.wndCostume.Show()
- else:
- self.wndCostume = CostumeWindow(self)
- self.wndCostume.Show()
- if app.ENABLE_CHEQUE_SYSTEM:
- def OpenPickMoneyDialog(self, focus_idx = 0):
- if mouseModule.mouseController.isAttached():
- attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
- if player.SLOT_TYPE_SAFEBOX == mouseModule.mouseController.GetAttachedType():
- if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex():
- net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
- snd.PlaySound("sound/ui/money.wav")
- mouseModule.mouseController.DeattachObject()
- else:
- curMoney = player.GetElk()
- curCheque = player.GetCheque()
- if curMoney <= 0 and curCheque <= 0:
- return
- self.dlgPickMoney.SetTitleName(localeInfo.PICK_MONEY_TITLE)
- self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))
- self.dlgPickMoney.Open(curMoney, curCheque)
- self.dlgPickMoney.SetMax(9) # 인벤토리 990000 제한 버그 수정
- self.dlgPickMoney.SetMaxCheque(3)
- self.dlgPickMoney.SetFocus(focus_idx)
- else:
- def OpenPickMoneyDialog(self):
- if mouseModule.mouseController.isAttached():
- attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
- if player.SLOT_TYPE_SAFEBOX == mouseModule.mouseController.GetAttachedType():
- if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex():
- net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
- snd.PlaySound("sound/ui/money.wav")
- mouseModule.mouseController.DeattachObject()
- else:
- curMoney = player.GetElk()
- if curMoney <= 0:
- return
- self.dlgPickMoney.SetTitleName(localeInfo.PICK_MONEY_TITLE)
- self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))
- self.dlgPickMoney.Open(curMoney)
- self.dlgPickMoney.SetMax(9)
- if app.ENABLE_CHEQUE_SYSTEM:
- def OnPickMoney(self, money, cheque):
- if cheque > 0 and money > 0:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHEQUE_ONLY_VALUE)
- return
- if cheque > 0:
- mouseModule.mouseController.AttacCheque(self, player.SLOT_TYPE_INVENTORY, cheque)
- else:
- mouseModule.mouseController.AttachMoney(self, player.SLOT_TYPE_INVENTORY, money)
- else:
- def OnPickMoney(self, money):
- mouseModule.mouseController.AttachMoney(self, player.SLOT_TYPE_INVENTORY, money)
- def OnPickItem(self, count):
- if app.ENABLE_CHEQUE_SYSTEM:
- itemSlotIndex = self.dlgPickETC.itemGlobalSlotIndex
- else:
- 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) or (app.ENABLE_NEW_EQUIPMENT_SYSTEM and player.IsBeltInventorySlot(local)):
- return local
- return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE + local
- def GetInventoryPageIndex(self):
- return self.inventoryPageIndex
- if app.WJ_ENABLE_TRADABLE_ICON:
- def RefreshMarkSlots(self, localIndex=None):
- if not self.interface:
- return
- if not self.wndItem:
- return
- onTopWnd = self.interface.GetOnTopWindow()
- if localIndex:
- slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(localIndex)
- if onTopWnd == player.ON_TOP_WND_NONE:
- self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- elif onTopWnd == player.ON_TOP_WND_SHOP:
- if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SELL):
- self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- elif onTopWnd == player.ON_TOP_WND_EXCHANGE:
- if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_GIVE):
- self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- elif onTopWnd == player.ON_TOP_WND_PRIVATE_SHOP:
- if player.IsAntiFlagBySlot(slotNumber, item.ITEM_ANTIFLAG_MYSHOP):
- self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- elif onTopWnd == player.ON_TOP_WND_SAFEBOX:
- if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SAFEBOX):
- self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- elif app.BL_MAILBOX and onTopWnd == player.ON_TOP_WND_MAILBOX:
- if self.interface.MarkUnusableDSInvenSlotOnTopWnd(onTopWnd, slotNumber, player.INVENTORY):
- self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- # elif app.ENABLE_ACCE_SYSTEM and onTopWnd == player.ON_TOP_WND_ACCE_COMBINE:
- # if not (player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_COSTUME and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) == item.COSTUME_TYPE_ACCE):
- # if app.ENABLE_SEALBIND_SYSTEM and player.IsSealedItemBySlot(player.INVENTORY, slotNumber):
- # self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
- # else:
- # self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- # else:
- # self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- # elif app.ENABLE_ACCE_SYSTEM and onTopWnd == player.ON_TOP_WND_ACCE_ABSORB:
- # if not (player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_WEAPON and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) != item.WEAPON_ARROW or (app.ENABLE_QUIVER_SYSTEM and player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_WEAPON and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) == item.WEAPON_QUIVER) or (player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_COSTUME and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) == item.COSTUME_TYPE_ACCE) or (player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_ARMOR and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) == item.ARMOR_BODY)):
- # if app.ENABLE_SEALBIND_SYSTEM and player.IsSealedItemBySlot(player.INVENTORY, slotNumber):
- # self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
- # else:
- # self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- # else:
- # self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- #elif app.ENABLE_ACCE_SYSTEM and onTopWnd == player.ON_TOP_WND_ACCE_RESTORE:
- # if ():
- # self.wndItem.SetUnusableSlotOnTopWnd(localIndex)
- # else:
- # self.wndItem.SetUsableSlotOnTopWnd(localIndex)
- return
- for i in xrange(player.INVENTORY_PAGE_SIZE):
- slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
- if onTopWnd == player.ON_TOP_WND_NONE:
- self.wndItem.SetUsableSlotOnTopWnd(i)
- elif onTopWnd == player.ON_TOP_WND_SHOP:
- if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SELL):
- self.wndItem.SetUnusableSlotOnTopWnd(i)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(i)
- elif onTopWnd == player.ON_TOP_WND_EXCHANGE:
- if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_GIVE):
- self.wndItem.SetUnusableSlotOnTopWnd(i)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(i)
- elif onTopWnd == player.ON_TOP_WND_PRIVATE_SHOP:
- if player.IsAntiFlagBySlot(slotNumber, item.ITEM_ANTIFLAG_MYSHOP):
- self.wndItem.SetUnusableSlotOnTopWnd(i)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(i)
- elif onTopWnd == player.ON_TOP_WND_SAFEBOX:
- if player.IsAntiFlagBySlot(slotNumber, item.ANTIFLAG_SAFEBOX):
- self.wndItem.SetUnusableSlotOnTopWnd(i)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(i)
- elif app.BL_MAILBOX and onTopWnd == player.ON_TOP_WND_MAILBOX:
- if self.interface.MarkUnusableDSInvenSlotOnTopWnd(onTopWnd, slotNumber, player.INVENTORY):
- self.wndItem.SetUnusableSlotOnTopWnd(i)
- else:
- self.wndItem.SetUsableSlotOnTopWnd(i)
- # elif app.ENABLE_ACCE_SYSTEM and onTopWnd == player.ON_TOP_WND_ACCE_COMBINE:
- # if not (player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_COSTUME and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) == item.COSTUME_TYPE_ACCE):
- # if app.ENABLE_SEALBIND_SYSTEM and player.IsSealedItemBySlot(player.INVENTORY, slotNumber):
- # self.wndItem.SetUnusableSlotOnTopWnd(i)
- # else:
- # self.wndItem.SetUsableSlotOnTopWnd(i)
- # else:
- # self.wndItem.SetUsableSlotOnTopWnd(i)
- # elif app.ENABLE_ACCE_SYSTEM and onTopWnd == player.ON_TOP_WND_ACCE_ABSORB:
- # if not (player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_WEAPON and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) != item.WEAPON_ARROW or (app.ENABLE_QUIVER_SYSTEM and player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_WEAPON and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) == item.WEAPON_QUIVER) or (player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_COSTUME and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) == item.COSTUME_TYPE_ACCE) or (player.GetItemTypeBySlot(player.INVENTORY, slotNumber) == item.ITEM_TYPE_ARMOR and player.GetItemSubTypeBySlot(player.INVENTORY, slotNumber) == item.ARMOR_BODY)):
- # if app.ENABLE_SEALBIND_SYSTEM and player.IsSealedItemBySlot(player.INVENTORY, slotNumber):
- # self.wndItem.SetUnusableSlotOnTopWnd(i)
- # else:
- # self.wndItem.SetUsableSlotOnTopWnd(i)
- # else:
- # self.wndItem.SetUsableSlotOnTopWnd(i)
- def RefreshBagSlotWindow(self):
- if not self.wndItem:
- return
- getItemVNum=player.GetItemIndex
- getItemCount=player.GetItemCount
- setItemVNum=self.wndItem.SetItemSlot
- if app.BL_ENABLE_PICKUP_ITEM_EFFECT:
- for i in xrange(self.wndItem.GetSlotCount()):
- self.wndItem.DeactivateSlot(i)
- 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 app.ENABLE_AFFECT_ITEMS_PLUS:
- item.SelectItem(itemVnum)
- if item.USE_AFFECT == item.GetItemSubType() and not constInfo.IS_IGNORED_AFF_ITEM(itemVnum):
- if player.GetItemMetinSocket(slotNumber, 0) == 1:
- self.wndItem.ActivateSlot(i)
- else:
- self.wndItem.DeactivateSlot(i)
- ## Auto Potion (HP: #72723 ~ #72726, SP: #72727 ~ #72730) Special processing - This is to display activation/deactivation in the slot even though it is an item - [hyo]
- if constInfo.IS_AUTO_POTION(itemVnum):
- # metinSocket - [0]: Enabled or not, [1]: Amount used, [2]: Maximum capacity
- metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
- isActivated = 0 != metinSocket[0]
- if isActivated:
- self.wndItem.ActivateSlotOld(i)
- self.wndItem.SetSlotDiffuseColor(i, wndMgr.COLOR_TYPE_YELLOW)
- self.wndItem.SetSlotFlashEffect(i, True)
- 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.DeactivateSlotOld(i)
- if app.ENABLE_SOUL_SYSTEM:
- if item.IsSoulItem(itemVnum):
- metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
- tempSlotNum = slotNumber
- if tempSlotNum >= player.INVENTORY_PAGE_SIZE:
- tempSlotNum -= (self.inventoryPageIndex * player.INVENTORY_PAGE_SIZE)
- if 0 != metinSocket[1]:
- self.wndItem.ActivateSlot(tempSlotNum)
- else:
- self.wndItem.DeactivateSlot(tempSlotNum)
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.RefreshMarkSlots(i)
- if app.ENABLE_DEWS_PLUS:
- if constInfo.IS_DEW(itemVnum):
- if player.GetItemMetinSocket(slotNumber, 2) == 1:
- self.wndItem.ActivateSlot(i)
- else:
- self.wndItem.DeactivateSlot(i)
- if app.ENABLE_ACCE_SYSTEM:
- slotNumberChecked = 0
- # if not constInfo.IS_AUTO_POTION(itemVnum) and not (item.USE_AFFECT == item.GetItemSubType() and not constInfo.IS_IGNORED_AFF_ITEM(itemVnum)):
- if not constInfo.IS_AUTO_POTION(itemVnum) and not constInfo.IS_DEW(itemVnum) and not (item.USE_AFFECT == item.GetItemSubType() and not constInfo.IS_IGNORED_AFF_ITEM(itemVnum)):
- # if app.BL_ENABLE_PICKUP_ITEM_EFFECT:
- # if not slotNumber in self.liHighlightedItems:
- # self.wndItem.DeactivateSlot(i)
- # else:
- self.wndItem.DeactivateSlot(i)
- for j in xrange(acce.WINDOW_MAX_MATERIALS):
- (isHere, iCell) = acce.GetAttachedItem(j)
- if isHere:
- if iCell == slotNumber:
- self.wndItem.ActivateSlot(i, (36.00 / 255.0), (222.00 / 255.0), (3.00 / 255.0), 1.0)
- if not slotNumber in self.listAttachedAcces:
- self.listAttachedAcces.append(slotNumber)
- slotNumberChecked = 1
- else:
- if slotNumber in self.listAttachedAcces and not slotNumberChecked:
- self.wndItem.DeactivateSlot(i)
- self.listAttachedAcces.remove(slotNumber)
- if itemVnum >= 53001 and itemVnum <= 53030 or itemVnum == 55701 or itemVnum == 55702 or itemVnum == 55703 or itemVnum == 55704 or itemVnum == 55705:
- metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
- if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex:
- slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex
- isActivated = 0 != metinSocket[1]
- if isActivated:
- self.wndItem.ActivateSlotOld(slotNumber)
- self.wndItem.SetSlotDiffuseColor(slotNumber, wndMgr.COLOR_TYPE_BLUE)
- self.wndItem.SetSlotFlashEffect(slotNumber, True)
- # self.wndItem.ActivateSlot(slotNumber)
- else:
- # self.wndItem.DeactivateSlot(slotNumber)
- self.wndItem.DeactivateSlotOld(slotNumber)
- # elif app.BL_ENABLE_PICKUP_ITEM_EFFECT and not constInfo.IS_AUTO_POTION(itemVnum) and not constInfo.IS_DEW(itemVnum) and not (item.USE_AFFECT == item.GetItemSubType() and not constInfo.IS_IGNORED_AFF_ITEM(itemVnum)):
- # if not slotNumber in self.liHighlightedItems:
- # self.wndItem.DeactivateSlot(i)
- if app.BL_TRANSMUTATION_SYSTEM:
- if not player.GetChangeLookVnum(player.INVENTORY, slotNumber) == 0:
- self.wndItem.SetSlotCoverImage(i,"icon/item/ingame_convert_Mark.tga")
- else:
- self.wndItem.EnableSlotCoverImage(i,False)
- if app.BL_ENABLE_PICKUP_ITEM_EFFECT:
- self.__HighlightSlot_Refresh()
- self.wndItem.RefreshSlot()
- if self.wndBelt:
- self.wndBelt.RefreshSlot()
- if app.WJ_ENABLE_TRADABLE_ICON:
- map(lambda wnd:wnd.RefreshLockedSlot(), self.bindWnds)
- 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.BL_TRANSMUTATION_SYSTEM:
- if not player.GetChangeLookVnum(player.EQUIPMENT, slotNumber) == 0:
- self.wndEquip.SetSlotCoverImage(slotNumber,"icon/item/ingame_convert_Mark.tga")
- else:
- self.wndEquip.EnableSlotCoverImage(slotNumber,False)
- 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)
- self.wndEquip.RefreshSlot()
- if self.wndCostume:
- self.wndCostume.RefreshCostumeSlot()
- def RefreshItemSlot(self):
- self.RefreshBagSlotWindow()
- self.RefreshEquipSlotWindow()
- def RefreshStatus(self):
- money = player.GetElk()
- self.wndMoney.SetText(localeInfo.NumberToMoneyString(money))
- # self.wndMoney.SetText(str(money)+"Yang")
- # if app.ENABLE_CHEQUE_SYSTEM:
- # cheque = player.GetCheque()
- # self.wndCheque.SetText(localeInfo.NumberToGoldNotText(cheque))
- if app.ENABLE_CHEQUE_SYSTEM:
- cheque = player.GetCheque()
- self.wndCheque.SetText(str(cheque))
- def SetItemToolTip(self, tooltipItem):
- self.tooltipItem = tooltipItem
- def ExternQuestionDialog_Close(self):
- if self.attachMetinDialog.IsShow():
- self.attachMetinDialog.Close()
- self.dlgQuestion.Close()
- self.srcItemPos = (0, 0)
- self.dstItemPos = (0, 0)
- if app.BL_TRANSMUTATION_SYSTEM:
- def IsDlgQuestionShow(self):
- if self.dlgQuestion and self.dlgQuestion.IsShow() or self.attachMetinDialog.IsShow():
- return True
- return False
- def CancelDlgQuestion(self):
- self.__Cancel()
- def __OpenQuestionDialog(self, srcItemPos, dstItemPos):
- if self.interface.IsShowDlgQuestionWindow():
- self.interface.CloseDlgQuestionWindow()
- getItemVNum=player.GetItemIndex
- self.srcItemPos = srcItemPos
- self.dstItemPos = dstItemPos
- self.dlgQuestion.SetAcceptEvent(ui.__mem_func__(self.__Accept))
- self.dlgQuestion.SetCancelEvent(ui.__mem_func__(self.__Cancel))
- self.dlgQuestion.SetText1("%s" % item.GetItemName(getItemVNum(srcItemPos)) )
- self.dlgQuestion.SetText2(localeInfo.INVENTORY_REALLY_USE_ITEM)
- self.dlgQuestion.Open()
- def __Accept(self):
- self.dlgQuestion.Close()
- self.__SendUseItemToItemPacket(self.srcItemPos, self.dstItemPos)
- self.srcItemPos = (0, 0)
- self.dstItemPos = (0, 0)
- def __Cancel(self):
- self.srcItemPos = (0, 0)
- self.dstItemPos = (0, 0)
- self.dlgQuestion.Close()
- def SellItem(self):
- if self.sellingSlotitemIndex == player.GetItemIndex(self.sellingSlotNumber):
- if self.sellingSlotitemCount == player.GetItemCount(self.sellingSlotNumber):
- ## 용혼석도 팔리게 하는 기능 추가하면서 인자 type 추가
- net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count, player.INVENTORY)
- 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 not self.questionDialog:
- return
- self.questionDialog.Close()
- self.questionDialog = None
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
- ## Slot Event
- def SelectEmptySlot(self, selectedSlotPos):
- if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
- return
- if app.BL_TRANSMUTATION_SYSTEM:
- if player.GetChangeLookWindowOpen() == 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:
- #@fixme011 BEGIN (block ds equip)
- attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
- if player.IsDSEquipmentSlot(attachedInvenType, attachedSlotPos):
- mouseModule.mouseController.DeattachObject()
- return
- #@fixme011 END
- itemCount = player.GetItemCount(attachedSlotPos)
- attachedCount = mouseModule.mouseController.GetAttachedItemCount()
- self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount)
- if item.IsRefineScroll(attachedItemIndex):
- self.wndItem.SetUseMode(False)
- elif app.ENABLE_SWITCHBOT and player.SLOT_TYPE_SWITCHBOT == attachedSlotType:
- attachedCount = mouseModule.mouseController.GetAttachedItemCount()
- net.SendItemMovePacket(player.SWITCHBOT, attachedSlotPos, player.INVENTORY, selectedSlotPos, attachedCount)
- 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)
- # elif app.ENABLE_GUILDSTORAGE_SYSTEM and player.SLOT_TYPE_GUILDSTORAGE == attachedSlotType:
- # net.SendGuildstorageCheckoutPacket(attachedSlotPos, player.INVENTORY, selectedSlotPos)
- mouseModule.mouseController.DeattachObject()
- def SelectItemSlot(self, itemSlotIndex):
- if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
- return
- itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(itemSlotIndex)
- if mouseModule.mouseController.isAttached():
- attachedSlotType = mouseModule.mouseController.GetAttachedType()
- attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
- attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex()
- if player.SLOT_TYPE_INVENTORY == attachedSlotType:
- #@fixme011 BEGIN (block ds equip)
- attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
- if player.IsDSEquipmentSlot(attachedInvenType, attachedSlotPos):
- mouseModule.mouseController.DeattachObject()
- return
- #@fixme011 END
- 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 app.ENABLE_CHEQUE_SYSTEM:
- if itemCount > 1:
- self.dlgPickETC.SetTitleName(localeInfo.PICK_ITEM_TITLE)
- self.dlgPickETC.SetAcceptEvent(ui.__mem_func__(self.OnPickItem))
- self.dlgPickETC.Open(itemCount)
- self.dlgPickETC.itemGlobalSlotIndex = itemSlotIndex
- else:
- 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 app.BL_TRANSMUTATION_SYSTEM:
- if player.GetChangeLookWindowOpen() == 1:
- return
- if app.ENABLE_COSTUME_TIME_EXTENDER:
- dstItemVnum = player.GetItemIndex(dstItemSlotPos)
- if dstItemVnum != 0:
- item.SelectItem(srcItemVID)
- srcItemType = item.GetItemType()
- srcItemSubType = item.GetItemSubType()
- item.SelectItem(dstItemVnum)
- if srcItemType == item.ITEM_TYPE_USE and srcItemSubType == item.USE_EXTEND_TIME and item.GetItemType() == item.ITEM_TYPE_COSTUME and (item.GetItemSubType() == item.COSTUME_TYPE_BODY or item.GetItemSubType() == item.COSTUME_TYPE_HAIR or item.GetItemSubType() == item.COSTUME_TYPE_WEAPON):
- self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
- # cyh itemseal 2013 11 08
- if app.ENABLE_SOULBIND_SYSTEM and item.IsSealScroll(srcItemVID):
- self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
- elif item.IsRefineScroll(srcItemVID):
- self.RefineItem(srcItemSlotPos, dstItemSlotPos)
- self.wndItem.SetUseMode(False)
- elif item.IsMetin(srcItemVID) and not item.IsMetin(player.GetItemIndex(dstItemSlotPos)):
- 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 app.BL_TRANSMUTATION_SYSTEM:
- if item.IsChangeLookClearScroll(srcItemVID):
- if player.CanChangeLookClearItem(srcItemVID, player.INVENTORY, dstItemSlotPos):
- self.__OpenQuestionDialog(srcItemSlotPos, dstItemSlotPos)
- return
- ## 이동시킨 곳이 장착 슬롯일 경우 아이템을 사용해서 장착 시킨다 - [levites]
- 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)
- self.sellingSlotitemIndex = itemIndex
- self.sellingSlotitemCount = itemCount
- item.SelectItem(itemIndex)
- ## 안티 플레그 검사 빠져서 추가
- ## 20140220
- if item.IsAntiFlag(item.ANTIFLAG_SELL):
- popup = uiCommon.PopupDialog()
- popup.SetText(localeInfo.SHOP_CANNOT_SELL_ITEM)
- popup.SetAcceptEvent(self.__OnClosePopupDialog)
- popup.Open()
- self.popup = popup
- return
- 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
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
- def __OnClosePopupDialog(self):
- self.pop = None
- 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 player.CanDetach(scrollIndex, targetSlotPos):
- if app.ENABLE_ACCE_SYSTEM:
- item.SelectItem(scrollIndex)
- if item.GetValue(0) == acce.CLEAN_ATTR_VALUE0:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.ACCE_FAILURE_CLEAN)
- else:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
- else:
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
- return
- self.questionDialog = uiCommon.QuestionDialog()
- self.questionDialog.SetText(localeInfo.REFINE_DO_YOU_SEPARATE_METIN)
- if app.ENABLE_ACCE_SYSTEM:
- item.SelectItem(targetIndex)
- if item.GetItemType() == item.ITEM_TYPE_COSTUME and item.GetItemSubType() == item.COSTUME_TYPE_ACCE:
- item.SelectItem(scrollIndex)
- if item.GetValue(0) == acce.CLEAN_ATTR_VALUE0:
- self.questionDialog.SetText(localeInfo.ACCE_DO_YOU_CLEAN)
- self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDetachMetinFromItem))
- self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
- self.questionDialog.Open()
- self.questionDialog.sourcePos = scrollSlotPos
- self.questionDialog.targetPos = targetSlotPos
- 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):
- overSlotPosGlobal = self.__InventoryLocalSlotPosToGlobalSlotPos(overSlotPos)
- self.wndItem.SetUsableItem(False)
- if app.BL_ENABLE_PICKUP_ITEM_EFFECT:
- # self.DelHighlightSlot(overSlotPos)
- self.DelHighlightSlot(overSlotPosGlobal) #fix
- if mouseModule.mouseController.isAttached():
- attachedItemType = mouseModule.mouseController.GetAttachedType()
- if player.SLOT_TYPE_INVENTORY == attachedItemType:
- attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
- attachedItemVNum = mouseModule.mouseController.GetAttachedItemIndex()
- if attachedItemVNum==player.ITEM_MONEY: # @fixme005
- pass
- elif self.__CanUseSrcItemToDstItem(attachedItemVNum, attachedSlotPos, overSlotPosGlobal):
- self.wndItem.SetUsableItem(True)
- self.ShowToolTip(overSlotPosGlobal)
- return
- self.ShowToolTip(overSlotPosGlobal)
- def __IsUsableItemToItem(self, srcItemVNum, srcSlotPos):
- if srcItemVNum != 0 and app.ENABLE_COSTUME_TIME_EXTENDER:
- item.SelectItem(srcItemVNum)
- if item.GetItemType() == item.ITEM_TYPE_USE and item.GetItemSubType() == item.USE_EXTEND_TIME:
- return True
- 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 app.BL_TRANSMUTATION_SYSTEM:
- if item.IsChangeLookClearScroll(srcItemVNum):
- return True
- if item.GetUseType(srcItemVNum) in self.USE_TYPE_TUPLE:
- return True
- return False
- def __CanUseSrcItemToDstItem(self, srcItemVNum, srcSlotPos, dstSlotPos):
- if srcSlotPos == dstSlotPos:
- return False
- dstItemVnum = player.GetItemIndex(dstSlotPos)
- if dstItemVnum != 0 and app.ENABLE_COSTUME_TIME_EXTENDER:
- item.SelectItem(srcItemVNum)
- srcItemType = item.GetItemType()
- srcItemSubType = item.GetItemSubType()
- item.SelectItem(dstItemVnum)
- if srcItemType == item.ITEM_TYPE_USE and srcItemSubType == item.USE_EXTEND_TIME and item.GetItemType() == item.ITEM_TYPE_COSTUME and (item.GetItemSubType() == item.COSTUME_TYPE_BODY or item.GetItemSubType() == item.COSTUME_TYPE_HAIR or item.GetItemSubType() == item.COSTUME_TYPE_WEAPON):
- return True
- 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) or (item.IsMetin(player.GetItemIndex(dstSlotPos)) and player.GetItemIndex(dstSlotPos) == srcItemVNum):
- 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:
- if app.BL_TRANSMUTATION_SYSTEM:
- if player.CanChangeLookClearItem(srcItemVNum, player.INVENTORY, dstSlotPos):
- return True
- 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:
- 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:
- if self.__CanPutAccessorySocket(dstSlotPos, srcItemVNum):
- return True;
- elif "USE_PUT_INTO_BELT_SOCKET" == useType:
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- print "USE_PUT_INTO_BELT_SOCKET", srcItemVNum, dstItemVNum
- item.SelectItem(dstItemVNum)
- if item.ITEM_TYPE_BELT == item.GetItemType():
- return True
- elif "USE_CHANGE_COSTUME_ATTR" == useType:
- if self.__CanChangeCostumeAttrList(dstSlotPos):
- return True
- elif "USE_RESET_COSTUME_ATTR" == useType:
- if self.__CanResetCostumeAttr(dstSlotPos):
- return True
- 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
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- if player.GetItemAttribute(dstSlotPos, i)[0] != 0:
- return True
- return False
- def __CanChangeCostumeAttrList(self, dstSlotPos):
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- if dstItemVNum == 0:
- return False
- item.SelectItem(dstItemVNum)
- if item.GetItemType() != item.ITEM_TYPE_COSTUME:
- return False
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- if player.GetItemAttribute(dstSlotPos, i)[0] != 0:
- return True
- return False
- def __CanResetCostumeAttr(self, dstSlotPos):
- dstItemVNum = player.GetItemIndex(dstSlotPos)
- if dstItemVNum == 0:
- return False
- item.SelectItem(dstItemVNum)
- if item.GetItemType() != item.ITEM_TYPE_COSTUME:
- return False
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- if player.GetItemAttribute(dstSlotPos, i)[0] != 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
- 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):
- if player.GetItemAttribute(dstSlotPos, i)[0] != 0:
- attrCount += 1
- if attrCount<4:
- 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()
- if app.WJ_ENABLE_TRADABLE_ICON:
- map(lambda wnd:wnd.RefreshLockedSlot(), self.bindWnds)
- self.RefreshMarkSlots()
- def OnPressEscapeKey(self):
- self.Close()
- return True
- # def UseItemSlot(self, slotIndex):
- # curCursorNum = app.GetCursor()
- # if app.SELL == curCursorNum:
- # return
- # if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
- # return
- # slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(slotIndex)
- # if app.ENABLE_DRAGON_SOUL_SYSTEM:
- # if self.wndDragonSoulRefine.IsShow():
- # self.wndDragonSoulRefine.AutoSetItem((player.INVENTORY, slotIndex), 1)
- # return
- # if app.ENABLE_ACCE_SYSTEM:
- # if self.isShowAcceWindow():
- # acce.Add(player.INVENTORY, slotIndex, 255)
- # return
- # self.__UseItem(slotIndex)
- # mouseModule.mouseController.DeattachObject()
- # self.OverOutItem()
- def UseItemSlot(self, slotIndex):
- curCursorNum = app.GetCursor()
- if app.SELL == curCursorNum:
- return
- if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
- return
- slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(slotIndex)
- if app.ENABLE_DRAGON_SOUL_SYSTEM:
- if self.wndDragonSoulRefine.IsShow():
- self.wndDragonSoulRefine.AutoSetItem((player.INVENTORY, slotIndex), 1)
- return
- if self.interface.dlgExchange.IsShow() and (app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL)):
- item.SelectItem(player.GetItemIndex(slotIndex))
- emptyExchangeSlots = self.GetExchangeEmptyItemPos(item.GetItemSize()[1])
- if emptyExchangeSlots == -1:
- return
- if item.IsAntiFlag(item.ANTIFLAG_GIVE):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE)
- return
- net.SendExchangeItemAddPacket(player.SLOT_TYPE_INVENTORY, slotIndex, emptyExchangeSlots[0])
- elif self.interface.dlgShop.IsShow() and (app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL)):
- item.SelectItem(player.GetItemIndex(slotIndex))
- if item.IsAntiFlag(item.ANTIFLAG_SELL):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_CANNOT_SELL_ITEM)
- return
- net.SendShopSellPacketNew(slotIndex, 0, player.SLOT_TYPE_INVENTORY)
- else:
- self.__UseItem(slotIndex)
- mouseModule.mouseController.DeattachObject()
- self.OverOutItem()
- def GetExchangeEmptyItemPos(self, itemHeight):
- inventorySize = exchange.EXCHANGE_ITEM_MAX_NUM
- inventoryWidth = 4
- GetBlockedSlots = lambda slot, size: [slot+(round*inventoryWidth) for round in xrange(size)]
- blockedSlots = [element for sublist in [GetBlockedSlots(slot, item.GetItemSize(item.SelectItem(exchange.GetItemVnumFromSelf(slot)))[1]) for slot in xrange(inventorySize) if exchange.GetItemVnumFromSelf(slot) != 0] for element in sublist]
- freeSlots = [slot for slot in xrange(inventorySize) if not slot in blockedSlots and not True in [e in blockedSlots for e in [slot+(round*inventoryWidth) for round in xrange(itemHeight)]]]
- return [freeSlots, -1][len(freeSlots) == 0]
- def __UseItem(self, slotIndex):
- ItemVNum = player.GetItemIndex(slotIndex)
- item.SelectItem(ItemVNum)
- if app.__BL_CHEST_DROP_INFO__:
- if app.IsPressed(app.DIK_LCONTROL):
- isMain = not app.IsPressed(app.DIK_LSHIFT)
- if item.HasDropInfo(ItemVNum, isMain) and self.interface:
- self.interface.OpenChestDropWindow(ItemVNum, isMain)
- return
- if app.BL_TRANSMUTATION_SYSTEM:
- if player.GetChangeLookWindowOpen() == 1:
- return
- itemisbox = item.GetItemType(23)
- if (item.GetItemType() == itemisbox) and app.IsPressed(app.DIK_LCONTROL):
- itemUseCount = player.GetItemCount(slotIndex) if player.GetItemCount(slotIndex) <= 200 else 200
- net.SendOpenChestPacket(slotIndex, itemUseCount)
- return
- 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
- constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
- else:
- self.__SendUseItemPacket(slotIndex)
- #net.SendItemUsePacket(slotIndex)
- def __UseItemQuestionDialog_OnCancel(self):
- self.OnCloseQuestionDialog()
- def __UseItemQuestionDialog_OnAccept(self):
- self.__SendUseItemPacket(self.questionDialog.slotIndex)
- self.OnCloseQuestionDialog()
- def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos):
- if uiPrivateShopBuilder.IsBuildingPrivateShop():
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
- 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
- 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
- net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount)
- def SetDragonSoulRefineWindow(self, wndDragonSoulRefine):
- if app.ENABLE_DRAGON_SOUL_SYSTEM:
- self.wndDragonSoulRefine = wndDragonSoulRefine
- if app.BL_TRANSMUTATION_SYSTEM:
- def __AddHighlightSlotChangeLook(self, slotIndex):
- if not slotIndex in self.listHighlightedChangeLookSlot:
- self.listHighlightedChangeLookSlot.append(slotIndex)
- def __DelHighlightSlotChangeLook(self, slotIndex):
- if slotIndex in self.listHighlightedChangeLookSlot:
- if slotIndex >= player.INVENTORY_PAGE_SIZE:
- self.wndItem.DeactivateSlotOld(slotIndex - (self.inventoryPageIndex * player.INVENTORY_PAGE_SIZE) )
- else:
- self.wndItem.DeactivateSlotOld(slotIndex)
- self.listHighlightedChangeLookSlot.remove(slotIndex)
- if app.ENABLE_ACCE_SYSTEM:
- def SetAcceWindow(self, wndAcceCombine, wndAcceAbsorption):
- self.wndAcceCombine = wndAcceCombine
- self.wndAcceAbsorption = wndAcceAbsorption
- def isShowAcceWindow(self):
- if self.wndAcceCombine:
- if self.wndAcceCombine.IsShow():
- return 1
- if self.wndAcceAbsorption:
- if self.wndAcceAbsorption.IsShow():
- return 1
- return 0
- if app.ENABLE_CHEQUE_SYSTEM:
- def OverInToolTip(self, arg):
- arglen = len(str(arg))
- pos_x, pos_y = wndMgr.GetMousePosition()
- self.toolTip.ClearToolTip()
- self.toolTip.SetThinBoardSize(11 * arglen)
- self.toolTip.SetToolTipPosition(pos_x + 5, pos_y - 5)
- self.toolTip.AppendTextLine(arg, 0xffffff00)
- self.toolTip.Show()
- def OverOutToolTip(self):
- self.toolTip.Hide()
- def EventProgress(self, event_type, idx):
- if "mouse_over_in" == str(event_type):
- if idx == 0 :
- self.OverInToolTip(localeInfo.CHEQUE_SYSTEM_UNIT_YANG)
- elif idx == 1 :
- self.OverInToolTip(localeInfo.CHEQUE_SYSTEM_UNIT_WON)
- elif app.ENABLE_GEM_SYSTEM and idx == 2:
- self.OverInToolTip(localeInfo.GEM_SYSTEM_NAME)
- else:
- return
- elif "mouse_over_out" == str(event_type) :
- self.OverOutToolTip()
- else:
- return
- def OnMoveWindow(self, x, y):
- # print "Inventory Global Pos : ", self.GetGlobalPosition()
- if self.wndBelt:
- # print "Belt Global Pos : ", self.wndBelt.GetGlobalPosition()
- self.wndBelt.AdjustPositionAndSize()
- if self.wndCostume:
- self.wndCostume.AdjustPositionAndSize()
- if app.__RENEWAL_BRAVE_CAPE__:
- if self.wndBraveCape:
- self.wndBraveCape.AdjustPosition(x, y)
- if app.BL_ENABLE_PICKUP_ITEM_EFFECT:
- def ActivateSlot(self, slotindex, type):
- if type == wndMgr.HILIGHTSLOT_MAX:
- return
- if app.BL_TRANSMUTATION_SYSTEM:
- if type == wndMgr.HILIGHTSLOT_CHANGE_LOOK:
- self.__AddHighlightSlotChangeLook(slotindex)
- def DeactivateSlot(self, slotindex, type):
- if type == wndMgr.HILIGHTSLOT_MAX:
- return
- if app.BL_TRANSMUTATION_SYSTEM:
- if type == wndMgr.HILIGHTSLOT_CHANGE_LOOK:
- self.__DelHighlightSlotChangeLook(slotindex)
- def __HighlightSlot_Refresh(self):
- for i in xrange(self.wndItem.GetSlotCount()):
- slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
- if slotNumber in self.listHighlightedSlot:
- self.wndItem.ActivateSlotOld(slotNumber)
- self.wndItem.SetSlotDiffuseColor(slotNumber, wndMgr.COLOR_TYPE_SKY)
- self.wndItem.SetSlotFlashEffect(slotNumber, True)
- if app.BL_TRANSMUTATION_SYSTEM:
- if slotNumber in self.listHighlightedChangeLookSlot:
- self.wndItem.ActivateSlotOld(slotNumber)
- self.wndItem.SetSlotDiffuseColor(slotNumber, wndMgr.COLOR_TYPE_RED)
- self.wndItem.SetSlotFlashEffect(slotNumber, True)
- def __HighlightSlot_Clear(self):
- for i in xrange(self.wndItem.GetSlotCount()):
- slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
- if slotNumber in self.listHighlightedSlot:
- self.wndItem.DeactivateSlotOld(slotNumber)
- self.listHighlightedSlot.remove(slotNumber)
- if app.BL_TRANSMUTATION_SYSTEM:
- if slotNumber in self.listHighlightedChangeLookSlot:
- self.wndItem.DeactivateSlotOld(slotNumber)
- self.listHighlightedChangeLookSlot.remove(slotNumber)
- def HighlightSlot(self, slot):
- if slot>player.INVENTORY_PAGE_SIZE*player.INVENTORY_PAGE_COUNT:
- return
- if not slot in self.listHighlightedSlot:
- self.listHighlightedSlot.append(slot)
- def DelHighlightSlot(self, inventorylocalslot):
- if inventorylocalslot in self.listHighlightedSlot:
- if inventorylocalslot >= player.INVENTORY_PAGE_SIZE:
- self.wndItem.DeactivateSlotOld(inventorylocalslot - (self.inventoryPageIndex * player.INVENTORY_PAGE_SIZE) )
- else:
- self.wndItem.DeactivateSlotOld(inventorylocalslot)
- self.listHighlightedSlot.remove(inventorylocalslot)
- if app.ENABLE_HIDE_COSTUME_SYSTEM:
- def RefreshVisibleCostume(self):
- if self.wndCostume:
- self.wndCostume.RefreshVisibleCostume()
- else:
- self.wndCostume = CostumeWindow(self)
- self.wndCostume.RefreshVisibleCostume()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement