Jump to content

capsator10

Inactive Member
  • Posts

    15
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by capsator10

  1. I haven't modified anything here:

     

    Spoiler

    void CHARACTER::MainCharacterPacket()
    {
        const unsigned mapIndex = GetMapIndex();
        const BGMInfo& bgmInfo = CHARACTER_GetBGMInfo(mapIndex);

        // SUPPORT_BGM
        if (!bgmInfo.name.empty())
        {
            if (CHARACTER_IsBGMVolumeEnable())
            {
                sys_log(1, "bgm_info.play_bgm_vol(%d, name='%s', vol=%f)", mapIndex, bgmInfo.name.c_str(), bgmInfo.vol);
                TPacketGCMainCharacter4_BGM_VOL mainChrPacket;
                mainChrPacket.header = HEADER_GC_MAIN_CHARACTER4_BGM_VOL;
                mainChrPacket.dwVID = m_vid;
                mainChrPacket.wRaceNum = GetRaceNum();
                mainChrPacket.lx = GetX();
                mainChrPacket.ly = GetY();
                mainChrPacket.lz = GetZ();
                mainChrPacket.empire = GetDesc()->GetEmpire();  ------------------------------> 1583
                mainChrPacket.skill_group = GetSkillGroup();
                strlcpy(mainChrPacket.szChrName, GetName(), sizeof(mainChrPacket.szChrName)); -----------------------> 1585

                mainChrPacket.fBGMVol = bgmInfo.vol;
                strlcpy(mainChrPacket.szBGMName, bgmInfo.name.c_str(), sizeof(mainChrPacket.szBGMName));
                GetDesc()->Packet(&mainChrPacket, sizeof(TPacketGCMainCharacter4_BGM_VOL));
            }
            else
            {
                sys_log(1, "bgm_info.play(%d, '%s')", mapIndex, bgmInfo.name.c_str());
                TPacketGCMainCharacter3_BGM mainChrPacket;
                mainChrPacket.header = HEADER_GC_MAIN_CHARACTER3_BGM;
                mainChrPacket.dwVID = m_vid;
                mainChrPacket.wRaceNum = GetRaceNum();
                mainChrPacket.lx = GetX();
                mainChrPacket.ly = GetY();
                mainChrPacket.lz = GetZ();
                mainChrPacket.empire = GetDesc()->GetEmpire();
                mainChrPacket.skill_group = GetSkillGroup();
                strlcpy(mainChrPacket.szChrName, GetName(), sizeof(mainChrPacket.szChrName));
                strlcpy(mainChrPacket.szBGMName, bgmInfo.name.c_str(), sizeof(mainChrPacket.szBGMName));
                GetDesc()->Packet(&mainChrPacket, sizeof(TPacketGCMainCharacter3_BGM));
            }
            //if (m_stMobile.length())
            //        ChatPacket(CHAT_TYPE_COMMAND, "sms");
        }
        // END_OF_SUPPORT_BGM
        else
        {
            sys_log(0, "bgm_info.play(%d, DEFAULT_BGM_NAME)", mapIndex);

            TPacketGCMainCharacter pack;
            pack.header = HEADER_GC_MAIN_CHARACTER;
            pack.dwVID = m_vid;
            pack.wRaceNum = GetRaceNum();
            pack.lx = GetX();
            pack.ly = GetY();
            pack.lz = GetZ();
            pack.empire = GetDesc()->GetEmpire();
            pack.skill_group = GetSkillGroup();
            strlcpy(pack.szName, GetName(), sizeof(pack.szName));
            GetDesc()->Packet(&pack, sizeof(TPacketGCMainCharacter));

            if (m_stMobile.length())
                ChatPacket(CHAT_TYPE_COMMAND, "sms");
        }
    }

    This system i tried to add.

    This is the hidden content, please

     

    This is the hidden content, please

  2. Hello.

    After i updated granny to 2.9 i get these in my syserr, i converted every .gr2 from my client.

    Spoiler

    0221 18:46:28270 :: GRANNY: Unable to find matching track_group for Model: "weapon_choegogeup01_03" in Animation: "C:\Documents and Settings\sun.SUN\바탕 화면\애니메이션수정\shaman\fan\wait.max"

    0221 18:46:31343 :: GRANNY: Unable to find matching track_group for Model: "weapon_choegogeup01_03" in Animation: "C:\Documents and Settings\sun.SUN\바탕 화면\애니메이션수정\shaman\fan\wait.max"

    0221 18:46:34015 :: GRANNY: Unable to find matching track_group for Model: "weapon_choegogeup01_03" in Animation: "C:\Documents and Settings\sun.SUN\바탕 화면\애니메이션수정\shaman\fan\wait.max"

    0221 18:46:36688 :: GRANNY: Unable to find matching track_group for Model: "weapon_choegogeup01_03" in Animation: "C:\Documents and Settings\sun.SUN\바탕 화면\애니메이션수정\shaman\fan\wait.max"

    0221 18:46:39361 :: GRANNY: Unable to find matching track_group for Model: "weapon_choegogeup01_03" in Animation: "C:\Documents and Settings\sun.SUN\바탕 화면\애니메이션수정\shaman\fan\wait.max"

    0221 18:46:42034 :: GRANNY: Unable to find matching track_group for Model: "weapon_choegogeup01_03" in Animation: "C:\Documents and Settings\sun.SUN\바탕 화면\애니메이션수정\shaman\fan\wait.max"

    0221 18:46:44707 :: GRANNY: Unable to find matching track_group for Model: "weapon_choegogeup01_03" in Animation: "C:\Documents and Settings\sun.SUN\바탕 화면\애니메이션수정\shaman\fan\wait.max"

    0221 18:46:47380 :: GRANNY: Unable to find matching track_group for Model: "weapon_choegogeup01_03" in Animation: "C:\Documents and Settings\sun.SUN\바탕 화면\애니메이션수정\shaman\fan\wait.max"
     

    C:\Documents and Settings\sun.SUN\ doesnt exist in my computer.

  3. Hello, metin2dev

    I came here with 2 problems that i have with my inventory.

    1.I'm trying to delete de sidebar but i can't find the files, inventorywindow looks normal, i have some lines in uiinventory but if i delete them my client doesnt start.

    2. I have 4 inventory pages but in game i have only 2.

    inventorywindow.py

    Spoiler

    import uiScriptLocale
    import item
     
    EQUIPMENT_START_INDEX = 180
     
    window = {
        "name" : "InventoryWindow",
     
        ## 600 - (width + ????? ?? ??? 24 px)
        "x" : SCREEN_WIDTH - 176,
        "y" : SCREEN_HEIGHT - 37 - 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},
                                        ),
                            },
                            ## Switchbot
                            {
                                "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/is1.tga",
                                "over_image" : "d:/ymir work/ui/is2.tga",
                                "down_image" : "d:/ymir work/ui/is3.tga",
                            },
                            ## CostumeButton
                            {
                                "name" : "CostumeButton",
                                "type" : "button",
     
                                "x" : 78,
                                "y" : 5,
     
                                "tooltip_text" : uiScriptLocale.COSTUME_TITLE,
     
                                "default_image" : "d:/ymir work/ui/cost1.tga",
                                "over_image" : "d:/ymir work/ui/cost2.tga",
                                "down_image" : "d:/ymir work/ui/cost3.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" : 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",
                            },
                        ),
                    },
     
                ),
            },
        ),
    }

    uiinventory.py 

    Spoiler

    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
    import background

    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 __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")
                self.DSSButton = self.GetChild2("DSSButton")
                self.costumeButton = self.GetChild2("CostumeButton")
                self.Alaska_py = self.GetChild2("Alaska_py")
                self.Frucht = self.GetChild2("Frucht")
                self.Telep = self.GetChild2("Telep")
                self.dinos_echipament = self.GetChild2("echipament")
                self.dinos_noaptezi = self.GetChild2("noaptezi")
                self.just4metin_iesire = self.GetChild2("iesire")
                
                self.inventoryTab = []
                self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))
                self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))

                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.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))
                
            #Bonusuri
            if self.Alaska_py:
                self.Alaska_py.SetEvent(ui.__mem_func__(self.ClickAlaska_py))

            #Frucht
            if self.Frucht:
                self.Frucht.SetEvent(ui.__mem_func__(self.ClickFrucht))

            #Telep
            if self.Telep:
                self.Telep.SetEvent(ui.__mem_func__(self.ClickTelep))

            #Fast Equip
            if self.dinos_echipament:
                self.dinos_echipament.SetEvent(ui.__mem_func__(self.ClickEchipament))

            #Noapte Zi
            if self.dinos_noaptezi:
                self.dinos_noaptezi.SetEvent(ui.__mem_func__(self.ClickNoaptezi))

            #Iesire
            if self.just4metin_iesire:
                self.just4metin_iesire.SetEvent(ui.__mem_func__(self.ClickIesire))    

            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 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()
            if constInfo.swibo.bot_shown == 1:
                constInfo.swibo.Hide()
            else:
                constInfo.swibo.Show()


        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 ClickAlaska_py(self):
                import uibonuspage
                uibonuspage.BonusBoardDialog().Show()

        #Frucht
        def ClickFrucht(self):
            import event
            qid = constInfo.Fruchtqin
            event.QuestButtonClick(qid)

        #Telep
        def ClickTelep(self):
            import event
            qid = constInfo.Telepqin
            event.QuestButtonClick(qid)

        #Fast Equip
        def ClickEchipament(self):
            import uiVectorsHzl 
            self.VectorsHzl = uiVectorsHzl.VectorsKSK()
            self.VectorsHzl.Show()
            snd.PlaySound('sound/ui/pick.wav')

        #Noapte Zi
        def ClickNoaptezi(self):
            if constInfo.Night == 0:
                background.RegisterEnvironmentData(1, constInfo.ENVIRONMENT_NIGHT)
                background.SetEnvironmentData(1)
                constInfo.Night = 1
            else:
                background.SetEnvironmentData(0)
                constInfo.Night = 0
            snd.PlaySound('sound/ui/pick.wav')

        #Iesire
        def ClickIesire(self):
            import app
            app.Exit()

        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):
            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):
                    net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count)
                    snd.PlaySound("sound/ui/money.wav")
            self.OnCloseQuestionDialog()
            
        def OnDetachMetinFromItem(self):
            if None == self.questionDialog:
                return
                
            #net.SendItemUseToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)        
            self.__SendUseItemToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)
            self.OnCloseQuestionDialog()

        def OnCloseQuestionDialog(self):
            if self.questionDialog:
                self.questionDialog.Close()

            self.questionDialog = None

        ## Slot Event
        def SelectEmptySlot(self, selectedSlotPos):
            if constInfo.GET_ITEM_DROP_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_DROP_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.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)
                itemPrice = item.GetISellItemPrice()

                if item.Is1GoldItem():
                    itemPrice = itemCount / itemPrice / 5
                else:
                    itemPrice = itemPrice * itemCount / 5

                item.GetItemName(itemIndex)
                itemName = item.GetItemName()

                self.questionDialog = uiCommon.QuestionDialog()
                self.questionDialog.SetText(localeInfo.DO_YOU_SELL_ITEM(itemName, itemCount, itemPrice))
                self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.SellItem))
                self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
                self.questionDialog.Open()
                self.questionDialog.count = itemCount

        def RefineItem(self, scrollSlotPos, targetSlotPos):

            scrollIndex = player.GetItemIndex(scrollSlotPos)
            targetIndex = player.GetItemIndex(targetSlotPos)

            if player.REFINE_OK != player.CanRefine(scrollIndex, targetSlotPos):
                return

            ###########################################################
            self.__SendUseItemToItemPacket(scrollSlotPos, targetSlotPos)
            #net.SendItemUseToItemPacket(scrollSlotPos, targetSlotPos)
            return
            ###########################################################

            ###########################################################
            #net.SendRequestRefineInfoPacket(targetSlotPos)
            #return
            ###########################################################

            result = player.CanRefine(scrollIndex, targetSlotPos)

            if player.REFINE_ALREADY_MAX_SOCKET_COUNT == result:
                #snd.PlaySound("sound/ui/jaeryun_fail.wav")
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_MORE_SOCKET)

            elif player.REFINE_NEED_MORE_GOOD_SCROLL == result:
                #snd.PlaySound("sound/ui/jaeryun_fail.wav")
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NEED_BETTER_SCROLL)

            elif player.REFINE_CANT_MAKE_SOCKET_ITEM == result:
                #snd.PlaySound("sound/ui/jaeryun_fail.wav")
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_SOCKET_DISABLE_ITEM)

            elif player.REFINE_NOT_NEXT_GRADE_ITEM == result:
                #snd.PlaySound("sound/ui/jaeryun_fail.wav")
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_UPGRADE_DISABLE_ITEM)

            elif player.REFINE_CANT_REFINE_METIN_TO_EQUIPMENT == result:
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM)

            if player.REFINE_OK != result:
                return

            self.refineDialog.Open(scrollSlotPos, targetSlotPos)

        def DetachMetinFromItem(self, scrollSlotPos, targetSlotPos):
            scrollIndex = player.GetItemIndex(scrollSlotPos)
            targetIndex = player.GetItemIndex(targetSlotPos)

            if not 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_DROP_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
                
            else:
                self.__SendUseItemPacket(slotIndex)

        def __UseItemQuestionDialog_OnCancel(self):
            self.OnCloseQuestionDialog()

        def __UseItemQuestionDialog_OnAccept(self):
            self.__SendUseItemPacket(self.questionDialog.slotIndex)

            if self.questionDialog:
                self.questionDialog.Close()
            self.questionDialog = None

        def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos):
            # 개인상점 열고 있는 동안 아이템 사용 방지
            if uiPrivateShopBuilder.IsBuildingPrivateShop():
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
                return

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

     

     

    Untitled.jpg

  4. Hi devs, 

    i need some help with this.. 

    Spoiler

    1. 0312 21:33:14458 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_spark.mse) Error

    2. 0312 21:33:14458 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_sword.mse) Error

    3. 0312 21:33:14550 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_2_spark.mse) Error

    4. 0312 21:33:14550 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_2_sword.mse) Error

    5. 0312 21:33:14584 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_2.mse) Error

    6. 0312 21:33:14594 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc/warrior/skill/noegeom_2.msa) ERROR

    7. 0312 21:33:14614 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_3_spark.mse) Error

    8. 0312 21:33:14614 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_3_sword.mse) Error

    9. 0312 21:33:14614 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_3.mse) Error

    10. 0312 21:33:14625 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc/warrior/skill/noegeom_3.msa) ERROR

    11. 0312 21:33:14638 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_4_spark.mse) Error

    12. 0312 21:33:14638 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_4_sword.mse) Error

    13. 0312 21:33:14638 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_4.mse) Error

    14. 0312 21:33:14655 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc/warrior/skill/noegeom_4.msa) ERROR

    15. 0312 21:33:15107 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_spark.mse) Error

    16. 0312 21:33:15107 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_sword.mse) Error

    17. 0312 21:33:15181 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_2_spark.mse) Error

    18. 0312 21:33:15181 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_2_sword.mse) Error

    19. 0312 21:33:15181 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_2.mse) Error

    20. 0312 21:33:15183 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/noegeomdorae_2.mse) Error

    21. 0312 21:33:15183 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/noegeomdorae_loop_2.mse) Error

    22. 0312 21:33:15186 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_3_spark.mse) Error

    23. 0312 21:33:15186 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_3_sword.mse) Error

    24. 0312 21:33:15186 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_3.mse) Error

    25. 0312 21:33:15188 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/noegeomdorae_3.mse) Error

    26. 0312 21:33:15188 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/noegeomdorae_loop_3.mse) Error

    27. 0312 21:33:15190 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_4_spark.mse) Error

    28. 0312 21:33:15190 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_4_sword.mse) Error

    29. 0312 21:33:15191 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/warrior/effect/gihyeol_4.mse) Error

    30. 0312 21:33:15193 :: CEffectManager::RegisterEffect - LoadScript(d:/metin2data/season1/effect/pc/warrior/effect/noegeomdorae_4.mse) Error

    31. 0312 21:33:15193 :: CEffectManager::RegisterEffect - LoadScript(d:/metin2data/season1/effect/pc/warrior/effect/noegeomdorae_loop_4.mse) Error

    32. 0312 21:33:15699 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_start.mse) Error

    33. 0312 21:33:15699 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_end.mse) Error

    34. 0312 21:33:15699 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_blow.mse) Error

    35. 0312 21:33:15699 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_hand.mse) Error

    36. 0312 21:33:15750 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_start_2.mse) Error

    37. 0312 21:33:15750 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_end_2.mse) Error

    38. 0312 21:33:15750 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_blow_2.mse) Error

    39. 0312 21:33:15750 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_hand_2.mse) Error

    40. 0312 21:33:15777 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_start_3.mse) Error

    41. 0312 21:33:15777 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_end_3.mse) Error

    42. 0312 21:33:15777 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_blow_3.mse) Error

    43. 0312 21:33:15777 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_hand_3.mse) Error

    44. 0312 21:33:15808 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_start_4.mse) Error

    45. 0312 21:33:15808 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_end_4.mse) Error

    46. 0312 21:33:15808 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_blow_4.mse) Error

    47. 0312 21:33:15808 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_hand_4.mse) Error

    48. 0312 21:33:15824 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/taeyang_blow_4.mse) Error

    49. 0312 21:33:16290 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_start.mse) Error

    50. 0312 21:33:16290 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_end.mse) Error

    51. 0312 21:33:16290 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_blow.mse) Error

    52. 0312 21:33:16290 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_hand.mse) Error

    53. 0312 21:33:16333 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_start_2.mse) Error

    54. 0312 21:33:16333 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_end_2.mse) Error

    55. 0312 21:33:16333 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_blow_2.mse) Error

    56. 0312 21:33:16333 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_hand_2.mse) Error

    57. 0312 21:33:16336 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_start_3.mse) Error

    58. 0312 21:33:16336 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_end_3.mse) Error

    59. 0312 21:33:16337 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_blow_3.mse) Error

    60. 0312 21:33:16337 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_hand_3.mse) Error

    61. 0312 21:33:16340 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_start_4.mse) Error

    62. 0312 21:33:16340 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_end_4.mse) Error

    63. 0312 21:33:16340 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_blow_4.mse) Error

    64. 0312 21:33:16340 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/seomjeom_hand_4.mse) Error

    65. 0312 21:33:16341 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/pc/assassin/effect/taeyang_blow_4.mse) Error
    66. 0312 21:33:18482 :: game.py: inconsistent use of tabs and spaces in indentation

     

    hf and thx.

  5. CH1

    Spoiler

    SYSERR: Mar 11 02:12:56 :: pid_init: 
    Start of pid: 885

    SYSERR: Mar 11 02:13:06 :: regen_load: No mob data by vnum 9020
    SYSERR: Mar 11 02:13:06 :: SpawnMob: SpawnMob: no mob data for vnum 9020
    SYSERR: Mar 11 02:13:11 :: ForAttrRegionFreeAngle: SECTREE_MANAGER::ForAttrRegion - Unhandled exception. MapIndex: 1
    SYSERR: Mar 11 02:13:58 :: SpawnMob: SpawnMob: no mob data for vnum 9020
    SYSERR: Mar 11 02:14:11 :: Process: SEQUENCE 327ce000 mismatch 0x1 != 0x0 header 55
    SYSERR: Mar 11 02:14:11 :: Process: SEQUENCE_LOG [Carlos]-------------
        [109 : 0xaf]
        [006 : 0xca]
        [241 : 0x8a]
        [010 : 0xcf]
        [061 : 0x48]
        [026 : 0xa7]
        [007 : 0x54]
        [029 : 0xc7]
        [003 : 0xd7]
        [011 : 0xdf]
        [055 : 0x1]

    SYSERR: Mar 11 02:14:58 :: SpawnMob: SpawnMob: no mob data for vnum 9020
    SYSERR: Mar 11 02:15:58 :: SpawnMob: SpawnMob: no mob data for vnum 9020

     

×
×
  • 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.