Jump to content
!-->
  • 0

inventory


seyonx66

Question

Hi, i got this https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/1846814-python-release-inventory-bonus-dialog.html. I added the ##BonusPageDialog into uiinventory.py and inventorywindow.py. But if i want to go to server, server drop after loading.

EDIT: if i teleport to another city, it automatically drop. Down is syserr again. How to fix this, now i didnt know.

 

Syserr:

Quote

0716 00:18:09139 :: GRANNY: r:/granny/rt/granny_file_info.cpp(145): File has run-time type tag of 0x80000015, which doesn't match this version of Granny (0x80000010).  Automatic conversion will be attempted.
0716 00:18:15365 :: GRANNY: r:/granny/rt/granny_file_info.cpp(145): File has run-time type tag of 0x8000000f, which doesn't match this version of Granny (0x80000010).  Automatic conversion will be attempted.
0716 00:19:55620 :: 
uiInventory.py(line:570) RefreshBonus
ui.py(line:2704) GetChild

InventoryWindow.RefreshBonus.BindObject - exceptions.KeyError:Schwert_vert_Value

0716 00:19:55621 :: ============================================================================================================
0716 00:19:55621 :: Abort!!!!


 

uiinventory.py:

Quote

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 # ���λ��� ������ ItemMove ����

import localeInfo

import constInfo

import ime

import wndMgr

 

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))

            

        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 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)

 

        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()

 

        if localeInfo.IsARABIC() == 0:

            self.AdjustPositionAndSize()

                

    def CloseInventory(self):

        self.wndBeltInventoryLayer.Hide()

        self.expandBtn.Show()

        

        if localeInfo.IsARABIC() == 0:

            self.AdjustPositionAndSize()

 

    ## ���� �κ��丮 ��ġ�� �������� BASE ��ġ�� ���, ����.. ���� �ϵ��ڵ��ϱ� ���� ������ ����� ����..

    def GetBasePosition(self):

        x, y = self.wndInventory.GetGlobalPosition()

        return x - 148, y + 241

        

    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 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")

 

    questionDialog = None

    tooltipItem = None

    wndCostume = None

    wndBelt = None

    dlgPickMoney = None

    

    sellingSlotNumber = -1

    isLoaded = 0

    isOpenedCostumeWindowWhenClosingInventory = 0       # �κ��丮 ���� �� �ڽ����� �����־����� ����-_-; ���̹� ����

    isOpenedBeltWindowWhenClosingInventory = 0      # �κ��丮 ���� �� ��Ʈ �κ��丮�� �����־����� ����-_-; ���̹� ����

 

    def __init__(self):

        ui.ScriptWindow.__init__(self)

 

        self.isOpenedBeltWindowWhenClosingInventory = 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() 

 

        # �κ��丮�� ���� �� ��Ʈ �κ��丮�� �����־��ٸ� ���� ������ ��.

        if self.wndBelt:

            self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory)

 

    def BindInterfaceClass(self, interface):

        self.interface = interface

        

    def __LoadWindow(self):

        if self.isLoaded == 1:

            return

 

        self.isLoaded = 1

 

        try:

            pyScrLoader = ui.PythonScriptLoader()

 

            if ITEM_MALL_BUTTON_ENABLE:

                pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "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")

##BonusPageDialog

            self.GetChild("Schwert_vert_Value").SetText(str(player.GetStatus(69)))

            self.GetChild("Zweih�nder_vert_Value").SetText(str(player.GetStatus(70)))

            self.GetChild("Dolche_vert_Value").SetText(str(player.GetStatus(71)))

            self.GetChild("Bogen_vert_Value").SetText(str(player.GetStatus(74)))

            self.GetChild("Glocke_vert_Value").SetText(str(player.GetStatus(72)))

            self.GetChild("F�cher_vert_Value").SetText(str(player.GetStatus(73)))

            self.GetChild("Magie_vert_Value").SetText(str(player.GetStatus(77)))

            self.GetChild("Gift_vert_Value").SetText(str(player.GetStatus(81)))

            self.GetChild("Krieger_vert_Value").SetText(str(player.GetStatus(59)))

            self.GetChild("Ninja_vert_Value").SetText(str(player.GetStatus(60)))

            self.GetChild("Sura_vert_Value").SetText(str(player.GetStatus(61)))

            self.GetChild("Schamane_vert_Value").SetText(str(player.GetStatus(62)))

            self.GetChild("Krit_Value").SetText(str(player.GetStatus(40)))

            self.GetChild("DurchBohrenden_Value").SetText(str(player.GetStatus(41)))

            self.GetChild("DSS_Value").SetText(str(player.GetStatus(122)))

            self.GetChild("FKS_Value").SetText(str(player.GetStatus(121)))

            self.GetChild("Halbmenschen_Value").SetText(str(player.GetStatus(43)))

            self.GetChild("Untote_Value").SetText(str(player.GetStatus(47)))

            self.GetChild("Teufel_Value").SetText(str(player.GetStatus(48)))

            self.GetChild("Krieger_str_Value").SetText(str(player.GetStatus(54)))

            self.GetChild("Ninja_str_Value").SetText(str(player.GetStatus(55)))

            self.GetChild("Sura_str_Value").SetText(str(player.GetStatus(56)))

            self.GetChild("Schamane_str_Value").SetText(str(player.GetStatus(57)))

##BonusPageDialog

            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.equipmentTab = []

            self.equipmentTab.append(self.GetChild("Equipment_Tab_01"))

            self.equipmentTab.append(self.GetChild("Equipment_Tab_02"))

 

            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()

 

        ## RefineDialog

        self.refineDialog = uiRefine.RefineDialog()

        self.refineDialog.Hide()

 

        ## AttachMetinDialog

        self.attachMetinDialog = uiAttachMetin.AttachMetinDialog()

        self.attachMetinDialog.Hide()

 

        ## MoneySlot

        self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))

 

        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[0].Down()

        self.inventoryPageIndex = 0

 

        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

 

        # MallButton

        if self.mallButton:

            self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))

 

        if self.DSSButton:

            #self.DSSButton.Hide()

            self.DSSButton.SetEvent(ui.__mem_func__(self.ClickDSSButton)) 

        

        # Costume Button

        if self.costumeButton:

            self.costumeButton.SetEvent(ui.__mem_func__(self.ClickCostumeButton))

 

        self.wndCostume = None

        

        #####

 

        ## Refresh

        self.SetInventoryPage(0)

        self.SetEquipmentPage(0)

        self.RefreshItemSlot()

        self.RefreshStatus()

 

    def Destroy(self):

        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.wndMoneySlot = 0

        self.questionDialog = None

        self.mallButton = None

        self.DSSButton = None

        self.interface = None

 

        if self.wndCostume:

            self.wndCostume.Destroy()

            self.wndCostume = 0

            

        if self.wndBelt:

            self.wndBelt.Destroy()

            self.wndBelt = None

            

        self.inventoryTab = []

        self.equipmentTab = []

 

    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()           # �κ��丮 â�� ���� �� �ڽ����� ���� �־��°�?

            self.wndCostume.Close()

 

        if self.wndBelt:

            self.isOpenedBeltWindowWhenClosingInventory = self.wndBelt.IsOpeningInventory()     # �κ��丮 â�� ���� �� ��Ʈ �κ��丮�� ���� �־��°�?

            print "Is Opening Belt Inven?? ", self.isOpenedBeltWindowWhenClosingInventory

            self.wndBelt.Close()

  

        if self.dlgPickMoney:

            self.dlgPickMoney.Close()

        

        wndMgr.Hide(self.hWnd)

        

    

    def Close(self):

        self.Hide()

 

#   def SetInventoryPage(self, page):

#       self.inventoryTab[self.inventoryPageIndex].SetUp()

#       self.inventoryPageIndex = page

#       self.RefreshBagSlotWindow()

 

    def SetInventoryPage(self, page):

        self.inventoryTab[self.inventoryPageIndex].SetUp()

        self.inventoryPageIndex = page

        self.inventoryTab[self.inventoryPageIndex].Down()

        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()

 

    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()

 

    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(7) # �κ��丮 990000 ���� ���� ����

 

    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) or (app.ENABLE_NEW_EQUIPMENT_SYSTEM and player.IsBeltInventorySlot(local)):

            return local

 

        return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE + local

 

##BonusPageDialog

    def __LoadRefreshBonus(self):

        self.RefreshBonus()

 

    def RefreshBonus(self):

        try:

            self.GetChild("Schwert_vert_Value").SetText(str(player.GetStatus(69)))

            self.GetChild("Zweih�nder_vert_Value").SetText(str(player.GetStatus(70)))

            self.GetChild("Dolche_vert_Value").SetText(str(player.GetStatus(71)))

            self.GetChild("Bogen_vert_Value").SetText(str(player.GetStatus(74)))

            self.GetChild("Glocke_vert_Value").SetText(str(player.GetStatus(72)))

            self.GetChild("F�cher_vert_Value").SetText(str(player.GetStatus(73)))

            self.GetChild("Magie_vert_Value").SetText(str(player.GetStatus(77)))

            self.GetChild("Gift_vert_Value").SetText(str(player.GetStatus(81)))

            self.GetChild("Krieger_vert_Value").SetText(str(player.GetStatus(59)))

            self.GetChild("Ninja_vert_Value").SetText(str(player.GetStatus(60)))

            self.GetChild("Sura_vert_Value").SetText(str(player.GetStatus(61)))

            self.GetChild("Schamane_vert_Value").SetText(str(player.GetStatus(62)))

            self.GetChild("Krit_Value").SetText(str(player.GetStatus(40)))

            self.GetChild("DurchBohrenden_Value").SetText(str(player.GetStatus(41)))

            self.GetChild("DSS_Value").SetText(str(player.GetStatus(122)))

            self.GetChild("FKS_Value").SetText(str(player.GetStatus(121)))

            self.GetChild("Halbmenschen_Value").SetText(str(player.GetStatus(43)))

            self.GetChild("Untote_Value").SetText(str(player.GetStatus(47)))

            self.GetChild("Teufel_Value").SetText(str(player.GetStatus(48)))

            self.GetChild("Krieger_str_Value").SetText(str(player.GetStatus(54)))

            self.GetChild("Ninja_str_Value").SetText(str(player.GetStatus(55)))

            self.GetChild("Sura_str_Value").SetText(str(player.GetStatus(56)))

            self.GetChild("Schamane_str_Value").SetText(str(player.GetStatus(57)))

        except:

            import exception

            exception.Abort("InventoryWindow.RefreshBonus.BindObject")

##BonusPageDialog

 

    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)

            # itemCount == 0�̸� ������ ����.

            if 0 == itemCount:

                self.wndItem.ClearSlot(i)

                continue

            elif 1 == itemCount:

                itemCount = 0

                

            itemVnum = getItemVNum(slotNumber)

            setItemVNum(i, itemVnum, itemCount)

            

            ## �ڵ����� (HP: #72723 ~ #72726, SP: #72727 ~ #72730) Ư��ó�� - �������ε��� ���Կ� Ȱ��ȭ/��Ȱ��ȭ ǥ�ø� ���� �۾��� - [hyo]

            if constInfo.IS_AUTO_POTION(itemVnum):

                # metinSocket - [0] : Ȱ��ȭ ����, [1] : ����� ��, [2] : �ִ� �뷮

                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)         

                    

        self.wndItem.RefreshSlot()

 

        if self.wndBelt:

            self.wndBelt.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()

 

    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):

        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

 

        selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(selectedSlotPos)

 

        if mouseModule.mouseController.isAttached():

 

            attachedSlotType = mouseModule.mouseController.GetAttachedType()

            attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()

            attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()

            attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()

 

            if player.SLOT_TYPE_INVENTORY == attachedSlotType:

                itemCount = player.GetItemCount(attachedSlotPos)

                attachedCount = mouseModule.mouseController.GetAttachedItemCount()

                self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount)

 

                if item.IsRefineScroll(attachedItemIndex):

                    self.wndItem.SetUseMode(FALSE)

 

            elif player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType:

                mouseModule.mouseController.RunCallBack("INVENTORY")

 

            elif player.SLOT_TYPE_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_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:

                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

                

        elif 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")

 

            ## �̵���Ų ���� ���� ������ ��� �������� ����ؼ� ���� ��Ų�� - [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):

            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)

        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):

        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.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:

                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

 

        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:

                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:

                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()

 

    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

 

        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

        

            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

            

    def OnMoveWindow(self, x, y):

#       print "Inventory Global Pos : ", self.GetGlobalPosition()

        if self.wndBelt:

#           print "Belt Global Pos : ", self.wndBelt.GetGlobalPosition()

            self.wndBelt.AdjustPositionAndSize()

 

##BonusPageDialog

    def OnUpdate(self):

        if self.isLoaded == 1:

            self.__LoadRefreshBonus()

##BonusPageDialog

 

                        

 

inventorywindow.py:

Quote

import uiScriptLocale

import item

 

EQUIPMENT_START_INDEX = 180

 

window = {

    "name" : "InventoryWindow",

 

    ## 600 - (width + ????? ?? ??? 24 px)

    "x" : SCREEN_WIDTH - 176,

    "y" : SCREEN_HEIGHT - 55 - 565,

 

    "style" : ("movable", "float",),

 

    "width" : 176,

    "height" : 585,

 

    "children" :

    (

        ## Inventory, Equipment Slots

        {

            "name" : "board",

            "type" : "board",

            "style" : ("attach",),

 

            "x" : 0,

            "y" : 0,

 

            "width" : 176,

            "height" : 585,

 

            "children" :

            (

                ## Title

                {

                    "name" : "TitleBar",

                    "type" : "titlebar",

                    "style" : ("attach",),

 

                    "x" : 8,

                    "y" : 7,

 

                    "width" : 161,

                    "color" : "yellow",

 

                    "children" :

                    (

                        { "name":"TitleName", "type":"text", "x":77, "y":3, "text":uiScriptLocale.INVENTORY_TITLE, "text_horizontal_align":"center" },

                    ),

                },

 

                ## Equipment Slot

                {

                    "name" : "Equipment_Base",

                    "type" : "image",

 

                    "x" : 10,

                    "y" : 33,

 

                    "image" : "d:/ymir work/ui/equipment_bg_without_ring.tga",

 

                    "children" :

                    (

 

                        {

                            "name" : "EquipmentSlot",

                            "type" : "slot",

 

                            "x" : 3,

                            "y" : 3,

 

                            "width" : 150,

                            "height" : 182,

 

                            "slot" : (

                                        {"index":EQUIPMENT_START_INDEX+0, "x":39, "y":37, "width":32, "height":64},

                                        {"index":EQUIPMENT_START_INDEX+1, "x":39, "y":2, "width":32, "height":32},

                                        {"index":EQUIPMENT_START_INDEX+2, "x":39, "y":145, "width":32, "height":32},

                                        {"index":EQUIPMENT_START_INDEX+3, "x":75, "y":67, "width":32, "height":32},

                                        {"index":EQUIPMENT_START_INDEX+4, "x":3, "y":3, "width":32, "height":96},

                                        {"index":EQUIPMENT_START_INDEX+5, "x":114, "y":67, "width":32, "height":32},

                                        {"index":EQUIPMENT_START_INDEX+6, "x":114, "y":35, "width":32, "height":32},

                                        {"index":EQUIPMENT_START_INDEX+7, "x":2, "y":145, "width":32, "height":32},

                                        {"index":EQUIPMENT_START_INDEX+8, "x":75, "y":145, "width":32, "height":32},

                                        {"index":EQUIPMENT_START_INDEX+9, "x":114, "y":2, "width":32, "height":32},

                                        {"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32},

                                        ## ? ??1

                                        ##{"index":item.EQUIPMENT_RING1, "x":2, "y":106, "width":32, "height":32},

                                        ## ? ??2

                                        ##{"index":item.EQUIPMENT_RING2, "x":75, "y":106, "width":32, "height":32},

                                        ## ? ??

                                        {"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32},

                                    ),

                        },

                        ## Dragon Soul Button

                        {

                            "name" : "DSSButton",

                            "type" : "button",

 

                            "x" : 114,

                            "y" : 107,

 

                            "tooltip_text" : uiScriptLocale.TASKBAR_DRAGON_SOUL,

 

                            "default_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_01.tga",

                            "over_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_02.tga",

                            "down_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_03.tga",

                        },

                        ## MallButton

                        {

                            "name" : "MallButton",

                            "type" : "button",

 

                            "x" : 118,

                            "y" : 148,

 

                            "tooltip_text" : uiScriptLocale.MALL_TITLE,

 

                            "default_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_01.tga",

                            "over_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_02.tga",

                            "down_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_03.tga",

                        },

                        ## CostumeButton

                        {

                            "name" : "CostumeButton",

                            "type" : "button",

 

                            "x" : 78,

                            "y" : 5,

 

                            "tooltip_text" : uiScriptLocale.COSTUME_TITLE,

 

                            "default_image" : "d:/ymir work/ui/game/taskbar/costume_Button_01.tga",

                            "over_image" : "d:/ymir work/ui/game/taskbar/costume_Button_02.tga",

                            "down_image" : "d:/ymir work/ui/game/taskbar/costume_Button_03.tga",

                        },                     

                        {

                            "name" : "Equipment_Tab_01",

                            "type" : "radio_button",

 

                            "x" : 86,

                            "y" : 161,

 

                            "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                            "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                            "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

 

                            "children" :

                            (

                                {

                                    "name" : "Equipment_Tab_01_Print",

                                    "type" : "text",

 

                                    "x" : 0,

                                    "y" : 0,

 

                                    "all_align" : "center",

 

                                    "text" : "I",

                                },

                            ),

                        },

                        {

                            "name" : "Equipment_Tab_02",

                            "type" : "radio_button",

 

                            "x" : 86 + 32,

                            "y" : 161,

 

                            "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",

                            "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",

                            "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",

 

                            "children" :

                            (

                                {

                                    "name" : "Equipment_Tab_02_Print",

                                    "type" : "text",

 

                                    "x" : 0,

                                    "y" : 0,

 

                                    "all_align" : "center",

 

                                    "text" : "II",

                                },

                            ),

                        },

 

                    ),

                },

                ##BonusPageDialog

                {

                    "name" : "Bonus_Page",

                    "type" : "window",

                    "x" : 166,

                    "y" : 34,

                    "width" : 124,

                    "height" : 565-24,

                    "children" :

                    (

                        {

                            "name" : "BonusBase1",

                            "type" : "horizontalbar",

                            "x" : 4,

                            "y" : 0,

                            "width" : 120,

                            "children" :

                            (

                                {

                                    "name" : "bonus_text_1",

                                    "type" : "text",

                                    "x" : 0,

                                    "y" : 0,

                                    "all_align" : "center",

                                    "text" : "Defensive", 

                                },

                            ),

                        },

                        {

                            "name" : "Schwert_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 1*18,

                            "text" : "Schwert:"

                        },

                        {

                            "name" : "Schwert_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 1*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Schwert_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Schwert_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Zweih�nder_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 2*18,

                            "text" : "Zweih�nder:"

                        },

                        {

                            "name" : "Zweih�nder_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 2*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Zweih�nder_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Zweih�nder_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Dolche_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 3*18,

                            "text" : "Dolche:"

                        },

                        {

                            "name" : "Dolche_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 3*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Dolche_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Dolche_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Bogen_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 4*18,

                            "text" : "Bogen:"

                        },

                        {

                            "name" : "Bogen_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 4*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Bogen_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Bogen_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Glocke_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 5*18,

                            "text" : "Glocke:"

                        },

                        {

                            "name" : "Glocke_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 5*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Glocke_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Glocke_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "F�cher_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 6*18,

                            "text" : "F�cher:"

                        },

                        {

                            "name" : "F�cher_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 6*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "F�cher_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "F�cher_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Magie_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 7*18,

                            "text" : "Magie:"

                        },

                        {

                            "name" : "Magie_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 7*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Magie_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Magie_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Gift_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 8*18,

                            "text" : "Pioson:"

                        },

                        {

                            "name" : "Gift_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 8*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Gift_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Gift_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Krieger_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 9*18,

                            "text" : "Krieger:"

                        },

                        {

                            "name" : "Krieger_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 9*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Krieger_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Krieger_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Ninja_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 10*18,

                            "text" : "Ninja:"

                        },

                        {

                            "name" : "Ninja_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 10*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Ninja_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Ninja_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Sura_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 11*18,

                            "text" : "Sura:"

                        },

                        {

                            "name" : "Sura_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 11*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Sura_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Sura_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Schamane_verteidigung",

                            "type" : "text",

                            "x" : 5,

                            "y" : 12*18,

                            "text" : "Schamane:"

                        },

                        {

                            "name" : "Schamane_vert",

                            "type" : "window",

                            "x" : 72,

                            "y" : 12*18,

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Schamane_vert_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Schamane_vert_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "BonusBase2",

                            "type" : "horizontalbar",

                            "x" : 4,

                            "y" : 235,

                            "width" : 120,

                            "children" :

                            (

                                {

                                    "name" : "bonus_text_1",

                                    "type" : "text",

                                    "x" : 0,

                                    "y" : 0,

                                    "all_align" : "center",

                                    "text" : "Attacker",

                                },

                            ),

                        },

                        {

                            "name" : "Critical_treffer",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(1*18),

                            "text" : "Kritical:"

                        },

                        {

                            "name" : "Krit",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(1*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Krit_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Krit_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "DurchBohrenden_treffer",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(2*18),

                            "text" : "DB:"

                        },

                        {

                            "name" : "DurchBohrenden",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(2*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "DurchBohrenden_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "DurchBohrenden_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "DSS_",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(3*18),

                            "text" : "DSS:"

                        },

                        {

                            "name" : "DSS",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(3*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "DSS_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "DSS_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "FKS_",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(4*18),

                            "text" : "FKS:"

                        },

                        {

                            "name" : "FKS",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(4*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "FKS_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "FKS_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Halbmenschen_gegen",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(5*18),

                            "text" : "Halbmenschen:"

                        },

                        {

                            "name" : "Halbmenschen",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(5*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Halbmenschen_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Halbmenschen_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Untote_gegen",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(6*18),

                            "text" : "Untote:"

                        },

                        {

                            "name" : "Untote",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(6*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Untote_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Untote_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Teufel_gegen",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(7*18),

                            "text" : "Devil:"

                        },

                        {

                            "name" : "Teufel",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(7*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Teufel_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Teufel_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Krieger_gegen",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(8*18),

                            "text" : "Krieger:"

                        },

                        {

                            "name" : "Krieger_str",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(8*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Krieger_str_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Krieger_str_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Ninja_gegen",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(9*18),

                            "text" : "Ninja:"

                        },

                        {

                            "name" : "Ninja_str",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(9*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Ninja_str_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Ninja_str_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Sura_gegen",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(10*18),

                            "text" : "Sura:"

                        },

                        {

                            "name" : "Ninja_str",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(10*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Sura_str_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Sura_str_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "Schamane_gegen",

                            "type" : "text",

                            "x" : 5,

                            "y" : 235+(11*18),

                            "text" : "Schamane:"

                        },

                        {

                            "name" : "Schamane_str",

                            "type" : "window",

                            "x" : 72,

                            "y" : 235+(11*18),

                            "width" : 53,

                            "height" : 19,

                            "children" :

                            (

                                {

                                    "name" : "Schamane_str_Slot",

                                    "type" : "image",

                                    "x" : 0,

                                    "y" : 0,

                                    "image" : MIDDLE_VALUE_FILE

                                },

                                {

                                    "name" : "Schamane_str_Value",

                                    "type" : "text",

                                    "x" : 26,

                                    "y" : 3,

                                    "text" : "999",

                                    "r" : 1.0,

                                    "g" : 1.0,

                                    "b" : 1.0,

                                    "a" : 1.0,

                                    "text_horizontal_align":"center"

                                },

                            ),

                        },

                        {

                            "name" : "CopyRight",

                            "type" : "horizontalbar",

                            "x" : 4,

                            "y" : 470,

                            "width" : 120,

                            "children" :

                            (

                                {

                                    "name" : "(C)",

                                    "type" : "text",

                                    "x" : 0,

                                    "y" : 0,

                                    "all_align" : "center",

                                    "text" : "� P3NG3R",

                                    "r" : 1.0,

                                    "g" : 0.0,

                                    "b" : 0.0,

                                    "a" : 1.0,

                                },

                            ),

                        },

                    ),

                },

 

                ##InventoryTabs

                {

                    "name" : "Inventory_Tab_01",

                    "type" : "radio_button",

 

                    "x" : 10,

                    "y" : 33 + 189,

 

                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",

                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",

                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",

                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1,

 

                    "children" :

                    (

                        {

                            "name" : "Inventory_Tab_01_Print",

                            "type" : "text",

 

                            "x" : 0,

                            "y" : 0,

 

                            "all_align" : "center",

 

                            "text" : "I",

                        },

                    ),

                },

                {

                    "name" : "Inventory_Tab_02",

                    "type" : "radio_button",

 

                    "x" : 10 + 78,

                    "y" : 33 + 189,

 

                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",

                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",

                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",

                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2,

 

                    "children" :

                    (

                        {

                            "name" : "Inventory_Tab_02_Print",

                            "type" : "text",

 

                            "x" : 0,

                            "y" : 0,

 

                            "all_align" : "center",

 

                            "text" : "II",

                        },

                    ),

                },

                {

                    "name" : "Inventory_Tab_03",

                    "type" : "radio_button",

 

                    "x" : 10,

                    "y" : 33 + 210,

 

                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",

                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",

                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",

                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_3,

 

                    "children" :

                    (

                        {

                            "name" : "Inventory_Tab_03_Print",

                            "type" : "text",

 

                            "x" : 0,

                            "y" : 0,

 

                            "all_align" : "center",

 

                            "text" : "III",

                        },

                    ),

                },

                {

                    "name" : "Inventory_Tab_04",

                    "type" : "radio_button",

 

                    "x" : 10 + 78,

                    "y" : 33 + 210,

 

                    "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",

                    "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",

                    "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",

                    "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_4,

 

                    "children" :

                    (

                        {

                            "name" : "Inventory_Tab_04_Print",

                            "type" : "text",

 

                            "x" : 0,

                            "y" : 0,

 

                            "all_align" : "center",

 

                            "text" : "IV",

                        },

                    ),

                },             

 

                ## Item Slot

                {

                    "name" : "ItemSlot",

                    "type" : "grid_table",

 

                    "x" : 8,

                    "y" : 264,

 

                    "start_index" : 0,

                    "x_count" : 5,

                    "y_count" : 9,

                    "x_step" : 32,

                    "y_step" : 32,

 

                    "image" : "d:/ymir work/ui/public/Slot_Base.sub"

                },

 

                ## Print

                {

                    "name":"Money_Slot",

                    "type":"button",

 

                    "x":8,

                    "y":28,

 

                    "horizontal_align":"center",

                    "vertical_align":"bottom",

 

                    "default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

                    "over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

                    "down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",

 

                    "children" :

                    (

                        {

                            "name":"Money_Icon",

                            "type":"image",

 

                            "x":-18,

                            "y":2,

 

                            "image":"d:/ymir work/ui/game/windows/money_icon.sub",

                        },

 

                        {

                            "name" : "Money",

                            "type" : "text",

 

                            "x" : 3,

                            "y" : 3,

 

                            "horizontal_align" : "right",

                            "text_horizontal_align" : "right",

 

                            "text" : "123456789",

                        },

                    ),

                },

 

            ),

        },

    ),

}

Thanks for every advice, which i got from you.

oh, so nothing, i got it.

Edited by seyonx66
Link to comment
Share on other sites

  • Answers 12
  • Created
  • Last Reply

Top Posters For This Question

12 answers to this question

Recommended Posts

  • 0
6 minutes ago, TMP4 said:

155124IMG-20210715-234928.jpg

yeah, i got it, i just didnt saw it, but now it is ready. But i have question about diacritic. Im from czechia, and i have some shits in the name and not diacritics. Do u know how can i fix it?

Link to comment
Share on other sites

  • 0
  • Distinguished Member

Try it with the correct encoding on the file. I'm hungarian and I usually use Ansi encoding because of the Áúűóő...

You can use Notepad++ to change encoding.

Link to comment
Share on other sites

  • 0
  • Distinguished Member
15 minutes ago, seyonx66 said:

#up

 

Change both uiinventory.py and inventorywindow.py to the correct character encoding, or upload them and i'll do it.

Link to comment
Share on other sites

  • 0
15 minutes ago, TMP4 said:

This is the hidden content, please
 Tell me if it works.

Quote

uiInventory.py(line:566) RefreshBonus
ui.py(line:2704) GetChild

InventoryWindow.RefreshBonus.BindObject - exceptions.KeyError:Sword_def_Value

0721 19:04:47445 :: ============================================================================================================
0721 19:04:47445 :: Abort!!!!

Here is syserr. Still not working.

Link to comment
Share on other sites

  • 0
1 minute ago, TMP4 said:

Didn't you say your problem was czech diacritic?

Or did it worked before?

Diacritics u fixed right now, but now i gotta this error 😄

Maybe the error was always, but now i need to teleport, and i got this error

 

Link to comment
Share on other sites

  • 0
  • Distinguished Member

 

3 minutes ago, seyonx66 said:

Diacritics u fixed right now, but now i gotta this error 😄

Maybe the error was always, but now i need to teleport, and i got this error

 

Look for: self.RefreshStatus()

and add below: self.RefreshBonus()

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.