antiblock
Rodnia | Alpha & Omega
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
  • 0
Sign in to follow this  
uScared?

[Cliente] Como traduzir o nome do yang

Question

Boas pessoal, esotu com uma dúvida, realmente muito estúpida. Mas de facto não encontro como mudar o nome do yang. Podem ver na seguinte imagem como está:

 

1fea0581d345a93c1646cf6e32981f49.png

Edited by NewReboot (see edit history)

Share this post


Link to post
Share on other sites

5 answers to this question

  • 0
14 minutos atrás, NewReboot disse:

Boas pessoal, esotu com uma dúvida, realmente muito estúpida. Mas de facto não encontro como mudar o nome do yang. Podem ver na seguinte imagem como está:

 

1fea0581d345a93c1646cf6e32981f49.png

experimenta em locale>ui>inventory.py (acho que é esse o nome)

Share this post


Link to post
Share on other sites
antiblock
Cyphriun
  • 0

Vou deixar-te aqui em locale>ui>inventorywindow.py:

Spoiler

import uiScriptLocale
import item
EQUIPMENT_START_INDEX = 180
window = {
    "name" : "InventoryWindow",
    ## 600 - (width + 오른쪽으로 부터 띄우기 24 px)
    "x" : SCREEN_WIDTH - 220,
    "y" : SCREEN_HEIGHT - 37 - 610,
    "style" : ("movable", "float",),
    "width" : 220,
    "height" : 610,
    "children" :
    (
        ## Inventory, Equipment Slots
        {
            "name" : "board",
            "type" : "board",
            "style" : ("attach",),
            "x" : 0,
            "y" : 0,
            "width" : 220,
            "height" : 610,
            "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" },
                    ),
                },
                ## Offline Shop Button
                {
                    "name" : "OfflineShopButton",
                    "type" : "button",
                    "x" : 170,
                    "y" : 33, #+36
                    "tooltip_text" : uiScriptLocale.TASKBAR_OFFLINE_SHOP,
                    "default_image" : "locale/es/offlineshop/boton1.tga",
                    "over_image" : "locale/es/offlineshop/boton2.tga",
                    "down_image" : "locale/es/offlineshop/boton1.tga",
                },
                ## Afisare_bonusuri
                {
                    "name" : "Alaska_py",
                    "type" : "button",
                    "x" : 170,
                    "y" : 33 + 36,
                    "tooltip_text" : "V.Bonusuri",
                    "default_image" : "Jin_Han/1.tga",
                    "over_image" : "Jin_Han/2.tga",
                    "down_image" : "Jin_Han/1.tga",
                },
                ## depozit
                {
                    "name" : "depozit",
                    "type" : "button",
                    "x" : 170,
                    "y" : 33 + 36 + 36,
                    "tooltip_text" : "Depozit",
                    "default_image" : "Jin_Han/5.tga",
                    "over_image" : "Jin_Han/6.tga",
                    "down_image" : "Jin_Han/5.tga",
                },
                ## anti_exp
                {
                    "name" : "inelexp",
                    "type" : "button",
                    "x" : 170,
                    "y" : 33 + 36 + 36 + 36,
                    "tooltip_text" : "AntiExp",
                    "default_image" : "Jin_Han/7.tga",
                    "over_image" : "Jin_Han/8.tga",
                    "down_image" : "Jin_Han/7.tga",
                },
                ## Teleport
                {
                    "name" : "Telep",
                    "type" : "button",
                    "x" : 170,
                    "y" : 33 + 36 + 36 + 36 + 36,
                    "tooltip_text" : "Teleport",
                    "default_image" : "Jin_Han/9.tga",
                    "over_image" : "Jin_Han/10.tga",
                    "down_image" : "Jin_Han/9.tga",
                },                
                ## Depozit
                {
                    "name" : "VegaS_Switch_Dinos_Perfect_Work",
                    "type" : "button",
                    "x" : 170,
                    "y" : 33 + 36 + 36 + 36 + 36 + 36,
                    "tooltip_text" : "Switchbot",
                    "default_image" : "Jin_Han/s1.tga",
                    "over_image" : "Jin_Han/s1.tga",
                    "down_image" : "Jin_Han/s2.tga",
                },
                ## Schimba Echipamentul
                {
                    "name" : "fastbutton",
                    "type" : "button",
                    "x" : 170,
                    "y" : 33 + 36 + 36 + 36 + 36 + 36 + 36,
                    "tooltip_text" : "Schimba Echipamentul",
                    "default_image" : "Jin_Han/fast.tga",
                    "over_image" : "Jin_Han/fast.tga",
                    "down_image" : "Jin_Han/fast1.tga",
                },                
    
                ## Equipment Slot
                {
                    "name" : "Equipment_Base",
                    "type" : "image",
                    "x" : 10,
                    "y" : 33,
                    "image" : "d:/ymir work/ui/equipment_bg_with_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},
                                        {"index":item.EQUIPMENT_RING1, "x":2, "y":106, "width":32, "height":32},
                                        {"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/ishop.tga",
                            "over_image" : "d:/ymir work/ui/game/TaskBar/ishop1.tga",
                            "down_image" : "d:/ymir work/ui/game/TaskBar/ishop2.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",
                                },
                            ),
                        },
                    ),
                },
                {
                    "name" : "Inventory_Tab_01",
                    "type" : "radio_button",
  
                    "x" : 11,
                    "y" : 33 + 191,
  
                    "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",
                    "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" : 13 + 37,
                    "y" : 33 + 191,
  
                    "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",
                    "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" : 13 + 77,
                    "y" : 33 + 191,
  
                    "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",
                    "tooltip_text" : "3.Inventar",
  
                    "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" : 14 + 116,
                    "y" : 33 + 191,
  
                    "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",
                    "tooltip_text" : "4.Inventar",
  
                    "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" : 246,
                    "start_index" : 0,
                    "x_count" : 5,
                    "y_count" : 9,
                    "x_step" : 32,
                    "y_step" : 32,
                    "image" : "d:/ymir work/ui/public/Slot_Base.sub"
                },
                
                ## Sterge Item Din Inventar
                {
                    "name" : "Sil_Slot",
                    "type" : "image",
                    "x" : 13,
                    "y" : 538,
                    "image" : "locale/es/ui/inventar/brain_sterge_inventar.tga",
                    "children" :
                    (
                        {
                            "name" : "Sil_Slot",
                            "type" : "slot",
                            "x" : 0,
                            "y" : 0,
                            "width" : 32,
                            "height" : 32,
                            "slot" : (
                                        {"index":0, "x":0, "y":0, "width":32, "height":32},
                                    ),
                        },
                    ),
                },                
                ## Print
                {
                    "name":"Money_Slot",
                    "type":"button",
                    "x":50,
                    "y":50,
                    #"horizontal_align":"center",
                    "vertical_align":"bottom",
                    "default_image" : "d:/ymir work/ui/public/parameter_slot_04.sub",
                    "over_image" : "d:/ymir work/ui/public/parameter_slot_04.sub",
                    "down_image" : "d:/ymir work/ui/public/parameter_slot_04.sub",
                    "children" :
                    (
                        {
                            "name" : "Money",
                            "type" : "text",
                            "x" : 3,
                            "y" : 3,
                            "horizontal_align" : "right",
                            "text_horizontal_align" : "right",
                            "text" : "123456789",
                        },
                    ),
                },
                {
                    "name":"Premium_Slot",
                    "type":"button",
 
                    "x":50,
                    "y":30,
 
                    #"horizontal_align":"center",
                    "vertical_align":"bottom",
 
                    "default_image" : "d:/ymir work/ui/public/parameter_slot_04.sub",
                    "over_image" : "d:/ymir work/ui/public/parameter_slot_04.sub",
                    "down_image" : "d:/ymir work/ui/public/parameter_slot_04.sub",
 
                    "children" :
                        (
                            {
                                "name" : "Premium",
                                "type" : "text",
 
                                "x" : 3,
                                "y" : 3,
 
                                "horizontal_align" : "right",
                                "text_horizontal_align" : "right",
 
                                "text" : "AlphaMt2",
                            },
                        ),
                    },
                
                {
                    "name":"Mds_Slot",
                    "type":"button",
                    "x":50,
                    "y":70,
                    #"horizontal_align":"center",
                    "vertical_align":"bottom",
                    "default_image" : "d:/ymir work/ui/public/parameter_slot_04.sub",
                    "over_image" : "d:/ymir work/ui/public/parameter_slot_04.sub",
                    "down_image" : "d:/ymir work/ui/public/parameter_slot_04.sub",
                    "children" :
                    (
                        {
                            "name" : "Mds",
                            "type" : "text",
                            "x" : 3,
                            "y" : 3,
                            "horizontal_align" : "right",
                            "text_horizontal_align" : "right",
                            "text" : "123456789 Mds",
                        },
                    ),
                },
            ),
        },
    ),
}

 

 

E aqui está o uiinventory.py

Spoiler
Citar


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 uiOfflineShopBuilder
import uiOfflineShop
import localeInfo
import constInfo
import ime
import wndMgr
import event
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()
        self.AdjustPositionAndSize()
                
    def CloseInventory(self):
        self.wndBeltInventoryLayer.Hide()
        self.expandBtn.Show()
        
        self.AdjustPositionAndSize()
    ## 현재 인벤토리 위치를 기준으로 BASE 위치를 계산, 리턴.. 숫자 하드코딩하기 정말 싫지만 방법이 없다..
    def GetBasePosition(self):
        x, y = self.wndInventory.GetGlobalPosition()
        return x - 148, y + 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))
            
            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.OpenBoniSwitcherEvent = lambda : None
        self.__LoadWindow()
        
    def Alaska_py(self):
        import uifastequip    
        self.fastequip = uifastequip.changeequip()
        self.fastequip.Show()
    def __del__(self):
        ui.ScriptWindow.__del__(self)
        
    def ParolaInventarWnd(self):
        self.ParolaInventar = ui.BoardWithTitleBar()
        self.ParolaInventar.SetSize(180, 100)
        self.ParolaInventar.SetCenterPosition()
        self.ParolaInventar.AddFlag('movable')
        self.ParolaInventar.AddFlag('float')
        self.ParolaInventar.SetTitleName('Inventar')
        self.ParolaInventar.SetCloseEvent(self.InchidereParolaInventar)
        self.ParolaInventar.Show()
                    
        self.TextParola = ui.TextLine()
        self.TextParola.SetParent(self.ParolaInventar)
        self.TextParola.SetDefaultFontName()
        self.TextParola.SetPosition(15, 35)
        self.TextParola.SetFeather()
        self.TextParola.SetText("Parola inventar:")
        self.TextParola.SetOutline()
        self.TextParola.Show()
        
        self.SlotParola = ui.SlotBar()
        self.SlotParola.SetParent(self.ParolaInventar)
        self.SlotParola.SetSize(60, 15)
        self.SlotParola.SetPosition(30, 35)
        self.SlotParola.SetWindowHorizontalAlignCenter()
        self.SlotParola.Show()
        self.CampParola = ui.EditLine()
        self.CampParola.SetParent(self.SlotParola)
        self.CampParola.SetSize(60, 15)
        self.CampParola.SetPosition(4, 1)
        self.CampParola.SetMax(4)
        self.CampParola.SetNumberMode()
        self.CampParola.SetFocus()        
        self.CampParola.Show()
        
        self.ButonParolaOK = ui.Button()
        self.ButonParolaOK.SetParent(self.ParolaInventar)
        self.ButonParolaOK.SetEvent(self.VerificareParola)
        self.ButonParolaOK.SetPosition(46, 67)
        self.ButonParolaOK.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
        self.ButonParolaOK.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
        self.ButonParolaOK.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
        self.ButonParolaOK.SetText("Deblocare")
        self.ButonParolaOK.Show()
        
        self.CampParola.SetReturnEvent(ui.__mem_func__(self.VerificareParola))
        
    def VerificareParola(self):
        self.ParolaInventar.Hide()
        activare_skill2 = constInfo.SECURIATE_QUESTINDEX
        constInfo.NegotFereastraNume = self.CampParola.GetText()
        event.QuestButtonClick(activare_skill2)
        
    def InchidereParolaInventar(self):
        self.ParolaInventar.Hide()
        
    def Show(self):
        if constInfo.SECURIATE_CONT == 0:
            self.__LoadWindow()
            ui.ScriptWindow.Show(self)
            
            if self.isOpenedCostumeWindowWhenClosingInventory and self.wndCostume:
                self.wndCostume.Show() 
            if self.wndBelt:
                self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory)
        else:
            self.ParolaInventarWnd()
    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.wndMds = self.GetChild("Mds")
            self.wndMdsSlot = self.GetChild("Mds_Slot")
            self.mallButton = self.GetChild2("MallButton")
            self.DSSButton = self.GetChild2("DSSButton")
            self.costumeButton = self.GetChild2("CostumeButton")
            
            Alaska_py_button = self.GetChild("fastbutton")
            Alaska_py_button.SetEvent(ui.__mem_func__(self.Alaska_py))
            Alaska_py_button.SetToolTipText("Schimba")
            
            self.VegaS_Switch_Dinos_Perfect_Work = self.GetChild2("VegaS_Switch_Dinos_Perfect_Work")            
            self.Telep = self.GetChild2("Telep")
            self.depozit = self.GetChild2("depozit")
            self.Alaska_py = self.GetChild2("Alaska_py")
            self.inelexp = self.GetChild2("inelexp")
            self.offlineShopButton = self.GetChild2("OfflineShopButton")
            
            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))
        self.GetChild("Sil_Slot").SetSelectEmptySlotEvent(ui.__mem_func__(self.SilEmptySlot))        
        ## 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.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.SetEvent(ui.__mem_func__(self.ClickDSSButton))             
        
        # Costume Button
        if self.costumeButton:
            self.costumeButton.SetEvent(ui.__mem_func__(self.ClickCostumeButton))
        if self.VegaS_Switch_Dinos_Perfect_Work:
            self.VegaS_Switch_Dinos_Perfect_Work.SetEvent(ui.__mem_func__(self.Functie_VegaS_Switch_Perfect_Work))
            
        #Telep
        if self.Telep:
            self.Telep.SetEvent(ui.__mem_func__(self.ClickTelep))
        #Depozit
        if self.depozit:
            self.depozit.SetEvent(ui.__mem_func__(self.Clickdepozit))
        #Bonusuri
        if self.Alaska_py:
            self.Alaska_py.SetEvent(ui.__mem_func__(self.ClickAlaska_py))
        #Inel_AntiExp
        if self.inelexp:
            self.inelexp.SetEvent(ui.__mem_func__(self.Clickinelexp))            
            
        # Offline Shop Button
        if (self.offlineShopButton):
            self.offlineShopButton.SetEvent(ui.__mem_func__(self.ClickOfflineShopButton))
        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.wndMds = 0
        self.wndMdsSlot = 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 SilEmptySlot(self):
        if mouseModule.mouseController.isAttached():
            attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
            itemIndex = player.GetItemIndex(attachedSlotPos)
            if player.SLOT_TYPE_INVENTORY == mouseModule.mouseController.GetAttachedType():
                item.SelectItem(itemIndex)
                itemDropQuestionDialog = uiCommon.QuestionDialog()
                miktar_pls = player.GetItemCount(attachedSlotPos)
                if miktar_pls != 1:
                    itemDropQuestionDialog.SetText(("%dx %s Doriti sa stergeti itemul respectiv?" % (miktar_pls, item.GetItemName())))
                else:
                    itemDropQuestionDialog.SetText(("%s Se va sterge sunteti de acord?" % (item.GetItemName())))
                itemDropQuestionDialog.SetAcceptEvent(lambda arg = TRUE: self.SilItem(arg, attachedSlotPos))
                itemDropQuestionDialog.SetCancelEvent(lambda arg = FALSE: self.SilItem(arg, attachedSlotPos))
                itemDropQuestionDialog.Open()
                self.itemDropQuestionDialog = itemDropQuestionDialog
                mouseModule.mouseController.DeattachObject()
        else:
            warn = uiCommon.PopupDialog()
            warn.SetText("Ai sters:")
            warn.Open()
    def SilItem(self, answer, attachedSlotPos):
        if not self.itemDropQuestionDialog:
            return 
        if answer:
            constInfo.ItemSil_Slot = attachedSlotPos
            event.QuestButtonClick(constInfo.ItemSil_Index)
            snd.PlaySound('sound/ui/drop.wav')
        self.itemDropQuestionDialog.Close()
        self.itemDropQuestionDialog = None        
        
    def Hide(self):
        if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS():
            self.OnCloseQuestionDialog()
            return
        if None != self.tooltipItem:
            self.tooltipItem.HideToolTip()
        if self.wndCostume:
            self.isOpenedCostumeWindowWhenClosingInventory = self.wndCostume.IsShow()            # 인벤토리 창이 닫힐 때 코스츔이 열려 있었는가?
            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()
        self.OnCloseQuestionDialog()
        
        wndMgr.Hide(self.hWnd)
        
    
    def Close(self):
        self.Hide()
    def SetInventoryPage(self, page):
        self.inventoryTab[self.inventoryPageIndex].SetUp()
        self.inventoryPageIndex = page
        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()
        
    # Offline Shop Button
    def ClickOfflineShopButton(self):
        print "click_offline_shop_button"
        self.interface.ToggleOfflineShopAdminPanelWindow()
    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 Functie_VegaS_Switch_Perfect_Work(self):
        constInfo.SWITCHBOT = 1            
            
    #Telep
    def ClickTelep(self):
        import event
        qid = constInfo.Telepqin
        event.QuestButtonClick(qid)            
    #Depozit
    def Clickdepozit(self):
        import event
        qid = constInfo.depozitqin
        event.QuestButtonClick(qid)
    #Bonusuri
    def ClickAlaska_py(self):
        import uibonuspage
        uibonuspage.BonusBoardDialog().Show()
    #inelexp
    def Clickinelexp(self):
        import event
        qid = constInfo.inelexpqin
        event.QuestButtonClick(qid)            
            
    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 player.IsBeltInventorySlot(local):
            return local
        return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE + local
    def RefreshBagSlotWindow(self):
        is_activated = 0
        getItemVNum=player.GetItemIndex
        getItemCount=player.GetItemCount
        setItemVNum=self.wndItem.SetItemSlot
        for i in xrange(player.INVENTORY_PAGE_SIZE*2):
            slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
            itemCount = getItemCount(slotNumber)
            if 0 == itemCount:
                self.wndItem.ClearSlot(i)
                continue
            elif 1 == itemCount:
                itemCount = 0
            
            itemVnum = getItemVNum(slotNumber)
            setItemVNum(i, itemVnum, itemCount)
            if constInfo.IS_AUTO_POTION(itemVnum):
                metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
                if slotNumber >= player.INVENTORY_PAGE_SIZE:
                    slotNumber -= player.INVENTORY_PAGE_SIZE
                
                isActivated = 0 != metinSocket[0]
                if isActivated:
                    self.wndItem.ActivateSlot(i)
                    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(i)
            elif constInfo.IS_ACCE_ITEM(itemVnum, 1) == True:
                metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]
                isActivated = metinSocket[0]
                if isActivated == 1:
                    player.SetAcceInfo(isActivated, i)
                    self.wndItem.ActivateAcceSlot(i)
                else:
                    self.wndItem.DeactivateAcceSlot(i)
        
        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 ()
        if money <= 100000000 :
            self . wndMoney . SetFontColor ( 1.0 , 0.2 , 0.2 )
        elif money >= 100000001 and money <= 1000000000 :
            self . wndMoney . SetFontColor ( 1.0 , 0.6 , 0.2 )
        elif money >= 1000000001 and money <= 1500000000 :
            self . wndMoney . SetFontColor ( 1.0 , 1.0 , 0.2 )
        elif money >= 1500000001 :
            self . wndMoney . SetFontColor ( 0.6 , 1.0 , 0.2 )
        self . wndMoney . SetText ( localeInfo . NumberToMoneyString ( money ))
        
    def OnUpdate(self):
        import constInfo
        self.wndMds.SetText(str(constInfo.mds) + " PTC")
    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_OFFLINE_SHOP == attachedSlotType:
                mouseModule.mouseController.RunCallBack("INVENTORY")
            elif player.SLOT_TYPE_SHOP == attachedSlotType:
                net.SendShopBuyPacket(attachedSlotPos)
            elif player.SLOT_TYPE_SAFEBOX == attachedSlotType:
                if player.ITEM_MONEY == attachedItemIndex:
                    net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
                    snd.PlaySound("sound/ui/money.wav")
                else:
                    net.SendSafeboxCheckoutPacket(attachedSlotPos, selectedSlotPos)
            elif player.SLOT_TYPE_MALL == attachedSlotType:
                net.SendMallCheckoutPacket(attachedSlotPos, selectedSlotPos)
            mouseModule.mouseController.DeattachObject()
    def 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
                    
        if item.IsRefineScroll(srcItemVID):
            self.RefineItem(srcItemSlotPos, dstItemSlotPos)
            self.wndItem.SetUseMode(False)
        elif item.IsMetin(srcItemVID):
            self.AttachMetinToItem(srcItemSlotPos, dstItemSlotPos)
            
        elif item.IsCostumeScroll(srcItemVID):
            self.CostumeMetinFromItem(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 CostumeMetinFromItem(self, scrollSlotPos, targetSlotPos):
        scrollIndex = player.GetItemIndex(scrollSlotPos)
        targetIndex = player.GetItemIndex(targetSlotPos)
        self.__SendUseItemToItemPacket(scrollSlotPos, targetSlotPos)        
        
    def DetachMetinFromItem(self, scrollSlotPos, targetSlotPos):
        scrollIndex = player.GetItemIndex(scrollSlotPos)
        targetIndex = player.GetItemIndex(targetSlotPos)
        if constInfo.IS_ACCE_ITEM_DETACH(scrollIndex) == True:
            item.SelectItem(targetIndex)
            if item.GetItemSubType() == item.COSTUME_TYPE_ACCE:
                if self.GetAcceAttribute(targetSlotPos) == 0:
                    return
                
                self.questionDialog = uiCommon.QuestionDialog()
                self.questionDialog.SetText(localeInfo.ACCE_DO_YOU_REMOVE_ATTR)
                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
            else:
                return
        else:
            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.IsCostumeScroll(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.IsCostumeScroll(srcItemVNum):
            if player.DETACH_METIN_OK == player.CanDetach(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 SetOpenBoniSwitcherEvent(self, event):
        self.OpenBoniSwitcherEvent = ui.__mem_func__(event)
    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)
    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
            
        if (uiOfflineShopBuilder.IsBuildingOfflineShop()):
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_OFFLINE_SHOP)
            return
            
        if (uiOfflineShop.IsEditingOfflineShop()):
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_OFFLINE_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
            
        if (uiOfflineShopBuilder.IsBuildingOfflineShop()):
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_OFFLINE_SHOP)
            return
            
        if (uiOfflineShop.IsEditingOfflineShop()):
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_OFFLINE_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
            
        if (uiOfflineShopBuilder.IsBuildingOfflineShop()):
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_OFFLINE_SHOP)
            return
            
        if (uiOfflineShop.IsEditingOfflineShop()):
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_OFFLINE_SHOP)
            return
        net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount)
    
    def SetDragonSoulRefineWindow(self, wndDragonSoulRefine):
        if app.ENABLE_DRAGON_SOUL_SYSTEM:
            self.wndDragonSoulRefine = wndDragonSoulRefine
    def GetAcceAttribute(self, srcSlotPos):
        result = 0
        attrSlot = []
        for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
            attrSlot.append(player.GetItemAttribute(srcSlotPos, i))
            
        if 0 != attrSlot:
            for c in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
                type = attrSlot[c][0]
                if type != 0:
                    result = result + 1
        
        return result
            
    def OnMoveWindow(self, x, y):
#        print "Inventory Global Pos : ", self.GetGlobalPosition()
        if self.wndBelt:
#            print "Belt Global Pos : ", self.wndBelt.GetGlobalPosition()
            self.wndBelt.AdjustPositionAndSize()            

 


 

Portanto como vês, não há ai nenhum Lovele ou PTC..

Edited by NewReboot (see edit history)

Share this post


Link to post
Share on other sites
  • 0

locale_game.txt

MONETARY_UNIT0	Yang

 

Share this post


Link to post
Share on other sites
  • 0

Hmmm. Excelente. Obrigado. Não mudei porque não associei o nome. 

MONETARY_UNIT1    Zece mii
MONETARY_UNIT2    O sutã de milioane 

entao isto o que será ?

Share this post


Link to post
Share on other sites
  • 0
MONETARY_UNIT0	Yang
MONETARY_UNIT1	Dez Mil
MONETARY_UNIT2	Cem Mil Milhões

 

Share this post


Link to post
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
Sign in to follow this