Advertisement
SergiuAndreiM

uiinventory

Mar 24th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 60.71 KB | None | 0 0
  1. import ui
  2. import player
  3. import mouseModule
  4. import net
  5. import app
  6. import snd
  7. import item
  8. import player
  9. import chat
  10. import grp
  11. import uiScriptLocale
  12. import uiRefine
  13. import uiAttachMetin
  14. import uiPickMoney
  15. import uiCommon
  16. import uiPrivateShopBuilder # 개인상점 열동안 ItemMove 방지
  17. import localeInfo
  18. import constInfo
  19. import ime
  20. import wndMgr
  21.  
  22. ITEM_MALL_BUTTON_ENABLE = True
  23.  
  24.  
  25.  
  26. ITEM_FLAG_APPLICABLE = 1 << 14
  27.  
  28. class CostumeWindow(ui.ScriptWindow):
  29.  
  30.     def __init__(self, wndInventory):
  31.         import exception
  32.        
  33.         if not app.ENABLE_COSTUME_SYSTEM:          
  34.             exception.Abort("What do you do?")
  35.             return
  36.  
  37.         if not wndInventory:
  38.             exception.Abort("wndInventory parameter must be set to InventoryWindow")
  39.             return                     
  40.                  
  41.         ui.ScriptWindow.__init__(self)
  42.  
  43.         self.isLoaded = 0
  44.         self.wndInventory = wndInventory;
  45.  
  46.         self.__LoadWindow()
  47.  
  48.     def __del__(self):
  49.         ui.ScriptWindow.__del__(self)
  50.  
  51.     def Show(self):
  52.         self.__LoadWindow()
  53.         self.RefreshCostumeSlot()
  54.  
  55.         ui.ScriptWindow.Show(self)
  56.  
  57.     def Close(self):
  58.         self.Hide()
  59.  
  60.     def __LoadWindow(self):
  61.         if self.isLoaded == 1:
  62.             return
  63.  
  64.         self.isLoaded = 1
  65.  
  66.         try:
  67.             pyScrLoader = ui.PythonScriptLoader()
  68.             pyScrLoader.LoadScriptFile(self, "UIScript/CostumeWindow.py")
  69.         except:
  70.             import exception
  71.             exception.Abort("CostumeWindow.LoadWindow.LoadObject")
  72.  
  73.         try:
  74.             wndEquip = self.GetChild("CostumeSlot")
  75.             self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))
  76.            
  77.         except:
  78.             import exception
  79.             exception.Abort("CostumeWindow.LoadWindow.BindObject")
  80.  
  81.         ## Equipment
  82.         wndEquip.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))
  83.         wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))
  84.         wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
  85.         wndEquip.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))                       
  86.         wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))
  87.         wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))
  88.  
  89.         self.wndEquip = wndEquip
  90.  
  91.     def RefreshCostumeSlot(self):
  92.         getItemVNum=player.GetItemIndex
  93.        
  94.         for i in xrange(item.COSTUME_SLOT_COUNT):
  95.             slotNumber = item.COSTUME_SLOT_START + i
  96.             self.wndEquip.SetItemSlot(slotNumber, getItemVNum(slotNumber), 0)
  97.  
  98.         self.wndEquip.RefreshSlot()
  99.        
  100. class BeltInventoryWindow(ui.ScriptWindow):
  101.  
  102.     def __init__(self, wndInventory):
  103.         import exception
  104.        
  105.         if not app.ENABLE_NEW_EQUIPMENT_SYSTEM:        
  106.             exception.Abort("What do you do?")
  107.             return
  108.  
  109.         if not wndInventory:
  110.             exception.Abort("wndInventory parameter must be set to InventoryWindow")
  111.             return                     
  112.                  
  113.         ui.ScriptWindow.__init__(self)
  114.  
  115.         self.isLoaded = 0
  116.         self.wndInventory = wndInventory;
  117.        
  118.         self.wndBeltInventoryLayer = None
  119.         self.wndBeltInventorySlot = None
  120.         self.expandBtn = None
  121.         self.minBtn = None
  122.  
  123.         self.__LoadWindow()
  124.  
  125.     def __del__(self):
  126.         ui.ScriptWindow.__del__(self)
  127.  
  128.     def Show(self, openBeltSlot = False):
  129.         self.__LoadWindow()
  130.         self.RefreshSlot()
  131.  
  132.         ui.ScriptWindow.Show(self)
  133.        
  134.         if openBeltSlot:
  135.             self.OpenInventory()
  136.         else:
  137.             self.CloseInventory()
  138.  
  139.     def Close(self):
  140.         self.Hide()
  141.  
  142.     def IsOpeningInventory(self):
  143.         return self.wndBeltInventoryLayer.IsShow()
  144.        
  145.     def OpenInventory(self):
  146.         self.wndBeltInventoryLayer.Show()
  147.         self.expandBtn.Hide()
  148.  
  149.         self.AdjustPositionAndSize()
  150.                
  151.     def CloseInventory(self):
  152.         self.wndBeltInventoryLayer.Hide()
  153.         self.expandBtn.Show()
  154.        
  155.         self.AdjustPositionAndSize()
  156.  
  157.     ## 현재 인벤토리 위치를 기준으로 BASE 위치를 계산, 리턴.. 숫자 하드코딩하기 정말 싫지만 방법이 없다..
  158.     def GetBasePosition(self):
  159.         x, y = self.wndInventory.GetGlobalPosition()
  160.         return x - 148, y + 241
  161.        
  162.     def AdjustPositionAndSize(self):
  163.         bx, by = self.GetBasePosition()
  164.        
  165.         if self.IsOpeningInventory():          
  166.             self.SetPosition(bx, by)
  167.             self.SetSize(self.ORIGINAL_WIDTH, self.GetHeight())
  168.            
  169.         else:
  170.             self.SetPosition(bx + 138, by);
  171.             self.SetSize(10, self.GetHeight())
  172.  
  173.     def __LoadWindow(self):
  174.         if self.isLoaded == 1:
  175.             return
  176.  
  177.         self.isLoaded = 1
  178.  
  179.         try:
  180.             pyScrLoader = ui.PythonScriptLoader()
  181.             pyScrLoader.LoadScriptFile(self, "UIScript/BeltInventoryWindow.py")
  182.         except:
  183.             import exception
  184.             exception.Abort("CostumeWindow.LoadWindow.LoadObject")
  185.  
  186.         try:
  187.             self.ORIGINAL_WIDTH = self.GetWidth()
  188.             wndBeltInventorySlot = self.GetChild("BeltInventorySlot")
  189.             self.wndBeltInventoryLayer = self.GetChild("BeltInventoryLayer")
  190.             self.expandBtn = self.GetChild("ExpandBtn")
  191.             self.minBtn = self.GetChild("MinimizeBtn")
  192.            
  193.             self.expandBtn.SetEvent(ui.__mem_func__(self.OpenInventory))
  194.             self.minBtn.SetEvent(ui.__mem_func__(self.CloseInventory))
  195.            
  196.             for i in xrange(item.BELT_INVENTORY_SLOT_COUNT):
  197.                 slotNumber = item.BELT_INVENTORY_SLOT_START + i                        
  198.                 wndBeltInventorySlot.SetCoverButton(slotNumber, "d:/ymir work/ui/game/quest/slot_button_01.sub",\
  199.                                                 "d:/ymir work/ui/game/quest/slot_button_01.sub",\
  200.                                                 "d:/ymir work/ui/game/quest/slot_button_01.sub",\
  201.                                                 "d:/ymir work/ui/game/belt_inventory/slot_disabled.tga", False, False)                                 
  202.            
  203.         except:
  204.             import exception
  205.             exception.Abort("CostumeWindow.LoadWindow.BindObject")
  206.  
  207.         ## Equipment
  208.         wndBeltInventorySlot.SetOverInItemEvent(ui.__mem_func__(self.wndInventory.OverInItem))
  209.         wndBeltInventorySlot.SetOverOutItemEvent(ui.__mem_func__(self.wndInventory.OverOutItem))
  210.         wndBeltInventorySlot.SetUnselectItemSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))
  211.         wndBeltInventorySlot.SetUseSlotEvent(ui.__mem_func__(self.wndInventory.UseItemSlot))                       
  212.         wndBeltInventorySlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.wndInventory.SelectEmptySlot))
  213.         wndBeltInventorySlot.SetSelectItemSlotEvent(ui.__mem_func__(self.wndInventory.SelectItemSlot))
  214.  
  215.         self.wndBeltInventorySlot = wndBeltInventorySlot
  216.  
  217.     def RefreshSlot(self):
  218.         getItemVNum=player.GetItemIndex
  219.        
  220.         for i in xrange(item.BELT_INVENTORY_SLOT_COUNT):
  221.             slotNumber = item.BELT_INVENTORY_SLOT_START + i
  222.             self.wndBeltInventorySlot.SetItemSlot(slotNumber, getItemVNum(slotNumber), player.GetItemCount(slotNumber))
  223.             self.wndBeltInventorySlot.SetAlwaysRenderCoverButton(slotNumber, True)
  224.            
  225.             avail = "0"
  226.            
  227.             if player.IsAvailableBeltInventoryCell(slotNumber):
  228.                 self.wndBeltInventorySlot.EnableCoverButton(slotNumber)            
  229.             else:
  230.                 self.wndBeltInventorySlot.DisableCoverButton(slotNumber)               
  231.  
  232.         self.wndBeltInventorySlot.RefreshSlot()
  233.  
  234.        
  235. class InventoryWindow(ui.ScriptWindow):
  236.  
  237.     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")
  238.  
  239.     questionDialog = None
  240.     tooltipItem = None
  241.     wndCostume = None
  242.     wndBelt = None
  243.     dlgPickMoney = None
  244.    
  245.     sellingSlotNumber = -1
  246.     isLoaded = 0
  247.     isOpenedCostumeWindowWhenClosingInventory = 0       # 인벤토리 닫을 때 코스츔이 열려있었는지 여부-_-; 네이밍 ㅈㅅ
  248.     isOpenedBeltWindowWhenClosingInventory = 0      # 인벤토리 닫을 때 벨트 인벤토리가 열려있었는지 여부-_-; 네이밍 ㅈㅅ
  249.  
  250.     def __init__(self):
  251.         ui.ScriptWindow.__init__(self)
  252.         self.OpenBoniSwitcherEvent = lambda : None
  253.         self.__LoadWindow()
  254.  
  255.     def __del__(self):
  256.         ui.ScriptWindow.__del__(self)
  257.  
  258.     def Show(self):
  259.         self.__LoadWindow()
  260.  
  261.         ui.ScriptWindow.Show(self)
  262.  
  263.         # 인벤토리를 닫을 때 코스츔이 열려있었다면 인벤토리를 열 때 코스츔도 같이 열도록 함.
  264.         if self.isOpenedCostumeWindowWhenClosingInventory and self.wndCostume:
  265.             self.wndCostume.Show()
  266.  
  267.         # 인벤토리를 닫을 때 벨트 인벤토리가 열려있었다면 같이 열도록 함.
  268.         if self.wndBelt:
  269.             self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory)
  270.  
  271.     def BindInterfaceClass(self, interface):
  272.         self.interface = interface
  273.        
  274.     def __LoadWindow(self):
  275.         if self.isLoaded == 1:
  276.             return
  277.  
  278.         self.isLoaded = 1
  279.  
  280.         try:
  281.             pyScrLoader = ui.PythonScriptLoader()
  282.  
  283.             if ITEM_MALL_BUTTON_ENABLE:
  284.                 pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "InventoryWindow.py")
  285.             else:
  286.                 pyScrLoader.LoadScriptFile(self, "UIScript/InventoryWindow.py")
  287.         except:
  288.             import exception
  289.             exception.Abort("InventoryWindow.LoadWindow.LoadObject")
  290.  
  291.         try:
  292.             wndItem = self.GetChild("ItemSlot")
  293.             wndEquip = self.GetChild("EquipmentSlot")
  294.             self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))
  295.             self.wndMoney = self.GetChild("Money")
  296.             self.wndMoneySlot = self.GetChild("Money_Slot")
  297.             if app.ADD_INVENTORY:
  298.                 self.engelblack = self.GetChild("engel_01_open")
  299.                 self.engelblackcl = self.GetChild("engel_01_close")
  300.                 self.engelblack2 = self.GetChild("engel_02_open")
  301.                 self.engelblack2cl = self.GetChild("engel_02_close")
  302.                 self.engelblack3 = self.GetChild("engel_03_open")
  303.                 self.engelblack3cl = self.GetChild("engel_03_close")
  304.                 self.engelblack4 = self.GetChild("engel_04_open")
  305.                 self.engelblack4cl = self.GetChild("engel_04_close")
  306.                 self.engelblack5 = self.GetChild("engel_05_open")
  307.                 self.engelblack5cl = self.GetChild("engel_05_close")
  308.                 self.engelblack6 = self.GetChild("engel_06_open")
  309.                 self.engelblack6cl = self.GetChild("engel_06_close")
  310.                 self.engelblack7 = self.GetChild("engel_07_open")
  311.                 self.engelblack7cl = self.GetChild("engel_07_close")
  312.                 self.engelblack8 = self.GetChild("engel_08_open")
  313.                 self.engelblack8cl = self.GetChild("engel_08_close")
  314.                 self.engelblack9 = self.GetChild("engel_09_open")
  315.                 self.engelblack9cl = self.GetChild("engel_09_close")           
  316.             self.mallButton = self.GetChild2("MallButton")
  317.  
  318.             self.DSSButton = self.GetChild2("DSSButton")
  319.             self.costumeButton = self.GetChild2("CostumeButton")
  320.            
  321.             self.inventoryTab = []
  322.             self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))
  323.             self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))
  324.             self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))
  325.             self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))
  326.             #self.inventoryTab.append(self.GetChild("Inventory_Tab_05"))
  327.            
  328.             self.equipmentTab = []
  329.             self.equipmentTab.append(self.GetChild("Equipment_Tab_01"))
  330.             self.equipmentTab.append(self.GetChild("Equipment_Tab_02"))
  331.             self.equipmentTab.append(self.GetChild("Equipment_Tab_03"))
  332.             self.equipmentTab.append(self.GetChild("Equipment_Tab_04"))
  333.             #self.equipmentTab.append(self.GetChild("Equipment_Tab_05"))
  334.  
  335.             if self.costumeButton and not app.ENABLE_COSTUME_SYSTEM:
  336.                 self.costumeButton.Hide()
  337.                 self.costumeButton.Destroy()
  338.                 self.costumeButton = 0
  339.                
  340.             if app.ADD_INVENTORY:
  341.                 self.engelblack.Hide()
  342.                 self.engelblackcl.Hide()
  343.                 self.engelblack2.Hide()
  344.                 self.engelblack2cl.Hide()
  345.                 self.engelblack3.Hide()
  346.                 self.engelblack3cl.Hide()
  347.                 self.engelblack4.Hide()
  348.                 self.engelblack4cl.Hide()
  349.                 self.engelblack5.Hide()
  350.                 self.engelblack5cl.Hide()
  351.                 self.engelblack6.Hide()
  352.                 self.engelblack6cl.Hide()
  353.                 self.engelblack7.Hide()
  354.                 self.engelblack7cl.Hide()
  355.                 self.engelblack8.Hide()
  356.                 self.engelblack8cl.Hide()
  357.                 self.engelblack9.Hide()
  358.                 self.engelblack9cl.Hide()              
  359.  
  360.             # Belt Inventory Window
  361.             self.wndBelt = None
  362.            
  363.             if app.ENABLE_NEW_EQUIPMENT_SYSTEM:
  364.                 self.wndBelt = BeltInventoryWindow(self)
  365.            
  366.         except:
  367.             import exception
  368.             exception.Abort("InventoryWindow.LoadWindow.BindObject")
  369.            
  370.         ## Item
  371.         wndItem.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
  372.         wndItem.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
  373.         wndItem.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
  374.         wndItem.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
  375.         wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  376.         wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  377.  
  378.         ## Equipment
  379.         wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
  380.         wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
  381.         wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
  382.         wndEquip.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
  383.         wndEquip.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  384.         wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  385.  
  386.         ## PickMoneyDialog
  387.         dlgPickMoney = uiPickMoney.PickMoneyDialog()
  388.         dlgPickMoney.LoadDialog()
  389.         dlgPickMoney.Hide()
  390.  
  391.         ## RefineDialog
  392.         self.refineDialog = uiRefine.RefineDialog()
  393.         self.refineDialog.Hide()
  394.  
  395.         ## AttachMetinDialog
  396.         self.attachMetinDialog = uiAttachMetin.AttachMetinDialog()
  397.         self.attachMetinDialog.Hide()
  398.  
  399.         ## MoneySlot
  400.         self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))
  401.  
  402.         self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
  403.         self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
  404.         self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg))
  405.         self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))
  406.         self.inventoryTab[0].Down()
  407.  
  408.         self.equipmentTab[0].SetEvent(lambda arg=0: self.SetEquipmentPage(arg))
  409.         self.equipmentTab[1].SetEvent(lambda arg=1: self.SetEquipmentPage(arg))
  410.         self.equipmentTab[2].SetEvent(lambda arg=2: self.SetEquipmentPage(arg))
  411.         self.equipmentTab[3].SetEvent(lambda arg=3: self.SetEquipmentPage(arg))
  412.         self.equipmentTab[0].Down()
  413.         self.equipmentTab[0].Hide()
  414.         self.equipmentTab[1].Hide()
  415.         self.equipmentTab[2].Hide()
  416.         self.equipmentTab[3].Hide()
  417.  
  418.         self.wndItem = wndItem
  419.         self.wndEquip = wndEquip
  420.         self.dlgPickMoney = dlgPickMoney
  421.         if app.ADD_INVENTORY:
  422.             if self.engelblack:
  423.                 self.engelblack.SetEvent(ui.__mem_func__(self.en_ac))
  424.             if self.engelblack2:
  425.                 self.engelblack2.SetEvent(ui.__mem_func__(self.en_ac))
  426.             if self.engelblack3:
  427.                 self.engelblack3.SetEvent(ui.__mem_func__(self.en_ac))
  428.             if self.engelblack4:
  429.                 self.engelblack4.SetEvent(ui.__mem_func__(self.en_ac))
  430.             if self.engelblack5:
  431.                 self.engelblack5.SetEvent(ui.__mem_func__(self.en_ac))
  432.             if self.engelblack6:
  433.                 self.engelblack6.SetEvent(ui.__mem_func__(self.en_ac))
  434.             if self.engelblack7:
  435.                 self.engelblack7.SetEvent(ui.__mem_func__(self.en_ac))
  436.             if self.engelblack8:
  437.                 self.engelblack8.SetEvent(ui.__mem_func__(self.en_ac))
  438.             if self.engelblack9:
  439.                 self.engelblack9.SetEvent(ui.__mem_func__(self.en_ac))
  440.  
  441.         # MallButton
  442.         if self.mallButton:
  443.             self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))
  444.  
  445.         if self.DSSButton:
  446.             self.DSSButton.SetEvent(ui.__mem_func__(self.ClickDSSButton))
  447.        
  448.         # Costume Button
  449.         if self.costumeButton:
  450.             self.costumeButton.SetEvent(ui.__mem_func__(self.ClickCostumeButton))
  451.  
  452.         self.wndCostume = None
  453.        
  454.         #####
  455.  
  456.         ## Refresh
  457.         self.SetInventoryPage(0)
  458.         self.SetEquipmentPage(0)
  459.         self.RefreshItemSlot()
  460.         self.RefreshStatus()
  461.  
  462.     def Destroy(self):
  463.         self.ClearDictionary()
  464.  
  465.         self.dlgPickMoney.Destroy()
  466.         self.dlgPickMoney = 0
  467.  
  468.         self.refineDialog.Destroy()
  469.         self.refineDialog = 0
  470.  
  471.         self.attachMetinDialog.Destroy()
  472.         self.attachMetinDialog = 0
  473.  
  474.         self.tooltipItem = None
  475.         self.wndItem = 0
  476.         self.wndEquip = 0
  477.         self.dlgPickMoney = 0
  478.         self.wndMoney = 0
  479.         self.wndMoneySlot = 0
  480.         self.wndPremium = 0
  481.         self.questionDialog = None
  482.         self.mallButton = None
  483.         if app.ADD_INVENTORY:
  484.             self.engelblack = None
  485.             self.engelblackcl = None
  486.             self.engelblack2 = None
  487.             self.engelblack2cl = None
  488.             self.engelblack3 = None
  489.             self.engelblack3cl = None
  490.             self.engelblack4 = None
  491.             self.engelblack4cl = None
  492.             self.engelblack5 = None
  493.             self.engelblack5cl = None
  494.             self.engelblack6 = None
  495.             self.engelblack6cl = None
  496.             self.engelblack7 = None
  497.             self.engelblack7cl = None
  498.             self.engelblack8 = None
  499.             self.engelblack8cl = None
  500.             self.engelblack9 = None
  501.             self.engelblack9cl = None      
  502.         self.DSSButton = None
  503.         self.interface = None
  504.  
  505.         if self.wndCostume:
  506.             self.wndCostume.Destroy()
  507.             self.wndCostume = 0
  508.            
  509.         if self.wndBelt:
  510.             self.wndBelt.Destroy()
  511.             self.wndBelt = None
  512.            
  513.         self.inventoryTab = []
  514.         self.equipmentTab = []
  515.  
  516.     def Hide(self):
  517.         if None != self.tooltipItem:
  518.             self.tooltipItem.HideToolTip()
  519.  
  520.         if self.wndCostume:
  521.             self.isOpenedCostumeWindowWhenClosingInventory = self.wndCostume.IsShow()           # 인벤토리 창이 닫힐 때 코스츔이 열려 있었는가?
  522.             self.wndCostume.Close()
  523.  
  524.         if self.wndBelt:
  525.             self.isOpenedBeltWindowWhenClosingInventory = self.wndBelt.IsOpeningInventory()     # 인벤토리 창이 닫힐 때 벨트 인벤토리도 열려 있었는가?
  526.             print "Is Opening Belt Inven?? ", self.isOpenedBeltWindowWhenClosingInventory
  527.             self.wndBelt.Close()
  528.  
  529.         if self.dlgPickMoney:
  530.             self.dlgPickMoney.Close()
  531.  
  532.         self.OnCloseQuestionDialog()
  533.        
  534.         wndMgr.Hide(self.hWnd)
  535.        
  536.    
  537.     def Close(self):
  538.         self.Hide()
  539.  
  540.  
  541.     def SetInventoryPage(self, page):
  542.         if app.ADD_INVENTORY:
  543.             constInfo.envanter = page
  544.             if page == 3:#3 envanter
  545.                 if player.GetEnvanter() == 0:#Hepsi kapali
  546.                     self.engelblack.Show()#open
  547.                     self.engelblackcl.Hide()
  548.                     self.engelblack2.Hide()
  549.                     self.engelblack2cl.Show()#close
  550.                     self.engelblack3.Hide()
  551.                     self.engelblack3cl.Show()
  552.                     self.engelblack4.Hide()
  553.                     self.engelblack4cl.Show()
  554.                     self.engelblack5.Hide()
  555.                     self.engelblack5cl.Show()
  556.                     self.engelblack6.Hide()
  557.                     self.engelblack6cl.Show()
  558.                     self.engelblack7.Hide()
  559.                     self.engelblack7cl.Show()
  560.                     self.engelblack8.Hide()
  561.                     self.engelblack8cl.Show()
  562.                     self.engelblack9.Hide()
  563.                     self.engelblack9cl.Show()
  564.                 elif player.GetEnvanter() == 1:# 1 tane acyk
  565.                     self.engelblack.Hide()#open
  566.                     self.engelblackcl.Hide()
  567.                     self.engelblack2.Show()
  568.                     self.engelblack2cl.Hide()#close
  569.                     self.engelblack3.Hide()
  570.                     self.engelblack3cl.Show()
  571.                     self.engelblack4.Hide()
  572.                     self.engelblack4cl.Show()
  573.                     self.engelblack5.Hide()
  574.                     self.engelblack5cl.Show()
  575.                     self.engelblack6.Hide()
  576.                     self.engelblack6cl.Show()
  577.                     self.engelblack7.Hide()
  578.                     self.engelblack7cl.Show()
  579.                     self.engelblack8.Hide()
  580.                     self.engelblack8cl.Show()
  581.                     self.engelblack9.Hide()
  582.                     self.engelblack9cl.Show()
  583.                 elif player.GetEnvanter() == 2:# 2 tane acyk
  584.                     self.engelblack.Hide()#open
  585.                     self.engelblackcl.Hide()#open
  586.                     self.engelblack2.Hide()
  587.                     self.engelblack2cl.Hide()#close
  588.                     self.engelblack3.Show()
  589.                     self.engelblack3cl.Hide()
  590.                     self.engelblack4.Hide()
  591.                     self.engelblack4cl.Show()
  592.                     self.engelblack5.Hide()
  593.                     self.engelblack5cl.Show()
  594.                     self.engelblack6.Hide()
  595.                     self.engelblack6cl.Show()
  596.                     self.engelblack7.Hide()
  597.                     self.engelblack7cl.Show()
  598.                     self.engelblack8.Hide()
  599.                     self.engelblack8cl.Show()
  600.                     self.engelblack9.Hide()
  601.                     self.engelblack9cl.Show()
  602.                 elif player.GetEnvanter() == 3:
  603.                     self.engelblack.Hide()#open
  604.                     self.engelblackcl.Hide()#open
  605.                     self.engelblack2.Hide()
  606.                     self.engelblack2cl.Hide()#close
  607.                     self.engelblack3.Hide()
  608.                     self.engelblack3cl.Hide()
  609.                     self.engelblack4.Show()###
  610.                     self.engelblack4cl.Hide()
  611.                     self.engelblack5.Hide()
  612.                     self.engelblack5cl.Show()
  613.                     self.engelblack6.Hide()
  614.                     self.engelblack6cl.Show()
  615.                     self.engelblack7.Hide()
  616.                     self.engelblack7cl.Show()
  617.                     self.engelblack8.Hide()
  618.                     self.engelblack8cl.Show()
  619.                     self.engelblack9.Hide()
  620.                     self.engelblack9cl.Show()
  621.                 elif player.GetEnvanter() == 4:
  622.                     self.engelblack.Hide()#open
  623.                     self.engelblackcl.Hide()#open
  624.                     self.engelblack2.Hide()
  625.                     self.engelblack2cl.Hide()#close
  626.                     self.engelblack3.Hide()
  627.                     self.engelblack3cl.Hide()
  628.                     self.engelblack4.Hide()###
  629.                     self.engelblack4cl.Hide()
  630.                     self.engelblack5.Show()
  631.                     self.engelblack5cl.Hide()
  632.                     self.engelblack6.Hide()
  633.                     self.engelblack6cl.Show()
  634.                     self.engelblack7.Hide()
  635.                     self.engelblack7cl.Show()
  636.                     self.engelblack8.Hide()
  637.                     self.engelblack8cl.Show()
  638.                     self.engelblack9.Hide()
  639.                     self.engelblack9cl.Show()
  640.                 elif player.GetEnvanter() == 5:
  641.                     self.engelblack.Hide()#open
  642.                     self.engelblackcl.Hide()#open
  643.                     self.engelblack2.Hide()
  644.                     self.engelblack2cl.Hide()#close
  645.                     self.engelblack3.Hide()
  646.                     self.engelblack3cl.Hide()
  647.                     self.engelblack4.Hide()###
  648.                     self.engelblack4cl.Hide()
  649.                     self.engelblack5.Hide()
  650.                     self.engelblack5cl.Hide()
  651.                     self.engelblack6.Show()#open
  652.                     self.engelblack6cl.Hide()
  653.                     self.engelblack7.Hide()
  654.                     self.engelblack7cl.Show()
  655.                     self.engelblack8.Hide()
  656.                     self.engelblack8cl.Show()
  657.                     self.engelblack9.Hide()
  658.                     self.engelblack9cl.Show()
  659.                 elif player.GetEnvanter() == 6:
  660.                     self.engelblack.Hide()#open
  661.                     self.engelblackcl.Hide()#open
  662.                     self.engelblack2.Hide()
  663.                     self.engelblack2cl.Hide()#close
  664.                     self.engelblack3.Hide()
  665.                     self.engelblack3cl.Hide()
  666.                     self.engelblack4.Hide()###
  667.                     self.engelblack4cl.Hide()
  668.                     self.engelblack5.Hide()
  669.                     self.engelblack5cl.Hide()
  670.                     self.engelblack6.Hide()#open
  671.                     self.engelblack6cl.Hide()
  672.                     self.engelblack7.Show()
  673.                     self.engelblack7cl.Hide()
  674.                     self.engelblack8.Hide()
  675.                     self.engelblack8cl.Show()
  676.                     self.engelblack9.Hide()
  677.                     self.engelblack9cl.Show()
  678.                 elif player.GetEnvanter() == 7:
  679.                     self.engelblack.Hide()#open
  680.                     self.engelblackcl.Hide()#open
  681.                     self.engelblack2.Hide()
  682.                     self.engelblack2cl.Hide()#close
  683.                     self.engelblack3.Hide()
  684.                     self.engelblack3cl.Hide()
  685.                     self.engelblack4.Hide()###
  686.                     self.engelblack4cl.Hide()
  687.                     self.engelblack5.Hide()
  688.                     self.engelblack5cl.Hide()
  689.                     self.engelblack6.Hide()#open
  690.                     self.engelblack6cl.Hide()
  691.                     self.engelblack7.Hide()
  692.                     self.engelblack7cl.Hide()
  693.                     self.engelblack8.Show()
  694.                     self.engelblack8cl.Hide()
  695.                     self.engelblack9.Hide()
  696.                     self.engelblack9cl.Show()
  697.                 elif player.GetEnvanter() == 8:
  698.                     self.engelblack.Hide()#open
  699.                     self.engelblackcl.Hide()#open
  700.                     self.engelblack2.Hide()
  701.                     self.engelblack2cl.Hide()#close
  702.                     self.engelblack3.Hide()
  703.                     self.engelblack3cl.Hide()
  704.                     self.engelblack4.Hide()###
  705.                     self.engelblack4cl.Hide()
  706.                     self.engelblack5.Hide()
  707.                     self.engelblack5cl.Hide()
  708.                     self.engelblack6.Hide()#open
  709.                     self.engelblack6cl.Hide()
  710.                     self.engelblack7.Hide()
  711.                     self.engelblack7cl.Hide()
  712.                     self.engelblack8.Hide()
  713.                     self.engelblack8cl.Hide()
  714.                     self.engelblack9.Show()
  715.                     self.engelblack9cl.Hide()
  716.                 elif player.GetEnvanter() == 9:
  717.                     self.engelblack.Hide()#open
  718.                     self.engelblackcl.Hide()#open
  719.                     self.engelblack2.Hide()
  720.                     self.engelblack2cl.Hide()#close
  721.                     self.engelblack3.Hide()
  722.                     self.engelblack3cl.Hide()
  723.                     self.engelblack4.Hide()###
  724.                     self.engelblack4cl.Hide()
  725.                     self.engelblack5.Hide()
  726.                     self.engelblack5cl.Hide()
  727.                     self.engelblack6.Hide()#open
  728.                     self.engelblack6cl.Hide()
  729.                     self.engelblack7.Hide()
  730.                     self.engelblack7cl.Hide()
  731.                     self.engelblack8.Hide()
  732.                     self.engelblack8cl.Hide()
  733.                     self.engelblack9.Hide()
  734.                     self.engelblack9cl.Hide()
  735.                 elif player.GetEnvanter() >= 10:
  736.                     self.engelblack.Hide()#open
  737.                     self.engelblackcl.Hide()#open
  738.                     self.engelblack2.Hide()
  739.                     self.engelblack2cl.Hide()#close
  740.                     self.engelblack3.Hide()
  741.                     self.engelblack3cl.Hide()
  742.                     self.engelblack4.Hide()###
  743.                     self.engelblack4cl.Hide()
  744.                     self.engelblack5.Hide()
  745.                     self.engelblack5cl.Hide()
  746.                     self.engelblack6.Hide()#open
  747.                     self.engelblack6cl.Hide()
  748.                     self.engelblack7.Hide()
  749.                     self.engelblack7cl.Hide()
  750.                     self.engelblack8.Hide()
  751.                     self.engelblack8cl.Hide()
  752.                     self.engelblack9.Hide()
  753.                     self.engelblack9cl.Hide()
  754.             elif page == 4:
  755.                 if player.GetEnvanter() >= 0 and player.GetEnvanter() <= 8:
  756.                     self.engelblack.Hide()#open
  757.                     self.engelblackcl.Show()
  758.                     self.engelblack2.Hide()
  759.                     self.engelblack2cl.Show()#close
  760.                     self.engelblack3.Hide()
  761.                     self.engelblack3cl.Show()
  762.                     self.engelblack4.Hide()
  763.                     self.engelblack4cl.Show()
  764.                     self.engelblack5.Hide()
  765.                     self.engelblack5cl.Show()
  766.                     self.engelblack6.Hide()
  767.                     self.engelblack6cl.Show()
  768.                     self.engelblack7.Hide()
  769.                     self.engelblack7cl.Show()
  770.                     self.engelblack8.Hide()
  771.                     self.engelblack8cl.Show()
  772.                     self.engelblack9.Hide()
  773.                     self.engelblack9cl.Show()
  774.                 elif player.GetEnvanter() == 9:#Hepsi kapali
  775.                     self.engelblack.Show()#open
  776.                     self.engelblackcl.Hide()
  777.                     self.engelblack2.Hide()
  778.                     self.engelblack2cl.Show()#close
  779.                     self.engelblack3.Hide()
  780.                     self.engelblack3cl.Show()
  781.                     self.engelblack4.Hide()
  782.                     self.engelblack4cl.Show()
  783.                     self.engelblack5.Hide()
  784.                     self.engelblack5cl.Show()
  785.                     self.engelblack6.Hide()
  786.                     self.engelblack6cl.Show()
  787.                     self.engelblack7.Hide()
  788.                     self.engelblack7cl.Show()
  789.                     self.engelblack8.Hide()
  790.                     self.engelblack8cl.Show()
  791.                     self.engelblack9.Hide()
  792.                     self.engelblack9cl.Show()
  793.                 elif player.GetEnvanter() == 10:# 1 tane acyk
  794.                     self.engelblack.Hide()#open
  795.                     self.engelblackcl.Hide()
  796.                     self.engelblack2.Show()
  797.                     self.engelblack2cl.Hide()#close
  798.                     self.engelblack3.Hide()
  799.                     self.engelblack3cl.Show()
  800.                     self.engelblack4.Hide()
  801.                     self.engelblack4cl.Show()
  802.                     self.engelblack5.Hide()
  803.                     self.engelblack5cl.Show()
  804.                     self.engelblack6.Hide()
  805.                     self.engelblack6cl.Show()
  806.                     self.engelblack7.Hide()
  807.                     self.engelblack7cl.Show()
  808.                     self.engelblack8.Hide()
  809.                     self.engelblack8cl.Show()
  810.                     self.engelblack9.Hide()
  811.                     self.engelblack9cl.Show()
  812.                 elif player.GetEnvanter() == 11:# 2 tane acyk
  813.                     self.engelblack.Hide()#open
  814.                     self.engelblackcl.Hide()#open
  815.                     self.engelblack2.Hide()
  816.                     self.engelblack2cl.Hide()#close
  817.                     self.engelblack3.Show()
  818.                     self.engelblack3cl.Hide()
  819.                     self.engelblack4.Hide()
  820.                     self.engelblack4cl.Show()
  821.                     self.engelblack5.Hide()
  822.                     self.engelblack5cl.Show()
  823.                     self.engelblack6.Hide()
  824.                     self.engelblack6cl.Show()
  825.                     self.engelblack7.Hide()
  826.                     self.engelblack7cl.Show()
  827.                     self.engelblack8.Hide()
  828.                     self.engelblack8cl.Show()
  829.                     self.engelblack9.Hide()
  830.                     self.engelblack9cl.Show()
  831.                 elif player.GetEnvanter() == 12:
  832.                     self.engelblack.Hide()#open
  833.                     self.engelblackcl.Hide()#open
  834.                     self.engelblack2.Hide()
  835.                     self.engelblack2cl.Hide()#close
  836.                     self.engelblack3.Hide()
  837.                     self.engelblack3cl.Hide()
  838.                     self.engelblack4.Show()###
  839.                     self.engelblack4cl.Hide()
  840.                     self.engelblack5.Hide()
  841.                     self.engelblack5cl.Show()
  842.                     self.engelblack6.Hide()
  843.                     self.engelblack6cl.Show()
  844.                     self.engelblack7.Hide()
  845.                     self.engelblack7cl.Show()
  846.                     self.engelblack8.Hide()
  847.                     self.engelblack8cl.Show()
  848.                     self.engelblack9.Hide()
  849.                     self.engelblack9cl.Show()
  850.                 elif player.GetEnvanter() == 13:
  851.                     self.engelblack.Hide()#open
  852.                     self.engelblackcl.Hide()#open
  853.                     self.engelblack2.Hide()
  854.                     self.engelblack2cl.Hide()#close
  855.                     self.engelblack3.Hide()
  856.                     self.engelblack3cl.Hide()
  857.                     self.engelblack4.Hide()###
  858.                     self.engelblack4cl.Hide()
  859.                     self.engelblack5.Show()
  860.                     self.engelblack5cl.Hide()
  861.                     self.engelblack6.Hide()
  862.                     self.engelblack6cl.Show()
  863.                     self.engelblack7.Hide()
  864.                     self.engelblack7cl.Show()
  865.                     self.engelblack8.Hide()
  866.                     self.engelblack8cl.Show()
  867.                     self.engelblack9.Hide()
  868.                     self.engelblack9cl.Show()
  869.                 elif player.GetEnvanter() == 14:
  870.                     self.engelblack.Hide()#open
  871.                     self.engelblackcl.Hide()#open
  872.                     self.engelblack2.Hide()
  873.                     self.engelblack2cl.Hide()#close
  874.                     self.engelblack3.Hide()
  875.                     self.engelblack3cl.Hide()
  876.                     self.engelblack4.Hide()###
  877.                     self.engelblack4cl.Hide()
  878.                     self.engelblack5.Hide()
  879.                     self.engelblack5cl.Hide()
  880.                     self.engelblack6.Show()#open
  881.                     self.engelblack6cl.Hide()
  882.                     self.engelblack7.Hide()
  883.                     self.engelblack7cl.Show()
  884.                     self.engelblack8.Hide()
  885.                     self.engelblack8cl.Show()
  886.                     self.engelblack9.Hide()
  887.                     self.engelblack9cl.Show()
  888.                 elif player.GetEnvanter() == 15:
  889.                     self.engelblack.Hide()#open
  890.                     self.engelblackcl.Hide()#open
  891.                     self.engelblack2.Hide()
  892.                     self.engelblack2cl.Hide()#close
  893.                     self.engelblack3.Hide()
  894.                     self.engelblack3cl.Hide()
  895.                     self.engelblack4.Hide()###
  896.                     self.engelblack4cl.Hide()
  897.                     self.engelblack5.Hide()
  898.                     self.engelblack5cl.Hide()
  899.                     self.engelblack6.Hide()#open
  900.                     self.engelblack6cl.Hide()
  901.                     self.engelblack7.Show()
  902.                     self.engelblack7cl.Hide()
  903.                     self.engelblack8.Hide()
  904.                     self.engelblack8cl.Show()
  905.                     self.engelblack9.Hide()
  906.                     self.engelblack9cl.Show()
  907.                 elif player.GetEnvanter() == 16:
  908.                     self.engelblack.Hide()#open
  909.                     self.engelblackcl.Hide()#open
  910.                     self.engelblack2.Hide()
  911.                     self.engelblack2cl.Hide()#close
  912.                     self.engelblack3.Hide()
  913.                     self.engelblack3cl.Hide()
  914.                     self.engelblack4.Hide()###
  915.                     self.engelblack4cl.Hide()
  916.                     self.engelblack5.Hide()
  917.                     self.engelblack5cl.Hide()
  918.                     self.engelblack6.Hide()#open
  919.                     self.engelblack6cl.Hide()
  920.                     self.engelblack7.Hide()
  921.                     self.engelblack7cl.Hide()
  922.                     self.engelblack8.Show()
  923.                     self.engelblack8cl.Hide()
  924.                     self.engelblack9.Hide()
  925.                     self.engelblack9cl.Show()
  926.                 elif player.GetEnvanter() == 17:
  927.                     self.engelblack.Hide()#open
  928.                     self.engelblackcl.Hide()#open
  929.                     self.engelblack2.Hide()
  930.                     self.engelblack2cl.Hide()#close
  931.                     self.engelblack3.Hide()
  932.                     self.engelblack3cl.Hide()
  933.                     self.engelblack4.Hide()###
  934.                     self.engelblack4cl.Hide()
  935.                     self.engelblack5.Hide()
  936.                     self.engelblack5cl.Hide()
  937.                     self.engelblack6.Hide()#open
  938.                     self.engelblack6cl.Hide()
  939.                     self.engelblack7.Hide()
  940.                     self.engelblack7cl.Hide()
  941.                     self.engelblack8.Hide()
  942.                     self.engelblack8cl.Hide()
  943.                     self.engelblack9.Show()
  944.                     self.engelblack9cl.Hide()
  945.                 elif player.GetEnvanter() == 18:
  946.                     self.engelblack.Hide()#open
  947.                     self.engelblackcl.Hide()#open
  948.                     self.engelblack2.Hide()
  949.                     self.engelblack2cl.Hide()#close
  950.                     self.engelblack3.Hide()
  951.                     self.engelblack3cl.Hide()
  952.                     self.engelblack4.Hide()###
  953.                     self.engelblack4cl.Hide()
  954.                     self.engelblack5.Hide()
  955.                     self.engelblack5cl.Hide()
  956.                     self.engelblack6.Hide()#open
  957.                     self.engelblack6cl.Hide()
  958.                     self.engelblack7.Hide()
  959.                     self.engelblack7cl.Hide()
  960.                     self.engelblack8.Hide()
  961.                     self.engelblack8cl.Hide()
  962.                     self.engelblack9.Hide()
  963.                     self.engelblack9cl.Hide()
  964.             else:
  965.                 self.engelblack.Hide()
  966.                 self.engelblackcl.Hide()
  967.                 self.engelblack2.Hide()
  968.                 self.engelblack2cl.Hide()
  969.                 self.engelblack3.Hide()
  970.                 self.engelblack3cl.Hide()
  971.                 self.engelblack4.Hide()
  972.                 self.engelblack4cl.Hide()
  973.                 self.engelblack5.Hide()
  974.                 self.engelblack5cl.Hide()
  975.                 self.engelblack6.Hide()
  976.                 self.engelblack6cl.Hide()
  977.                 self.engelblack7.Hide()
  978.                 self.engelblack7cl.Hide()
  979.                 self.engelblack8.Hide()
  980.                 self.engelblack8cl.Hide()
  981.                 self.engelblack9.Hide()
  982.                 self.engelblack9cl.Hide()
  983.         self.inventoryPageIndex = page
  984.         self.inventoryTab[(page+1)%4].SetUp()
  985.         self.inventoryTab[(page+2)%4].SetUp()
  986.         self.inventoryTab[(page+3)%4].SetUp()
  987.         self.RefreshBagSlotWindow()
  988.  
  989.     def SetEquipmentPage(self, page):
  990.         self.equipmentPageIndex = page
  991.         self.equipmentTab[0].SetUp()
  992.         self.equipmentTab[1].SetUp()
  993.         self.equipmentTab[2].SetUp()
  994.         self.equipmentTab[3].SetUp()
  995.         if len(self.equipmentTab) >=page:
  996.             self.equipmentTab[page].Down()
  997.         self.RefreshEquipSlotWindow()
  998.        
  999. if app.ADD_INVENTORY:
  1000.     def en_ac(self):
  1001.         if player.GetEnvanter() < 4:
  1002.             envanter = 2
  1003.             self.questionDialog = uiCommon.QuestionDialog()
  1004.             self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1005.             self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1006.             self.questionDialog.Open()
  1007.             # self.questionDialog.slotIndex = slotIndex
  1008.         elif player.GetEnvanter() == 4 or player.GetEnvanter() == 5:
  1009.             envanter = 3
  1010.             self.questionDialog = uiCommon.QuestionDialog()
  1011.             self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1012.             self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1013.             self.questionDialog.Open()
  1014.             # self.questionDialog.slotIndex = slotIndex
  1015.         elif player.GetEnvanter() == 6 or player.GetEnvanter() == 7 or player.GetEnvanter() == 8:
  1016.             envanter = 4
  1017.             self.questionDialog = uiCommon.QuestionDialog()
  1018.             self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1019.             self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1020.             self.questionDialog.Open()
  1021.             # self.questionDialog.slotIndex = slotIndex
  1022.         elif player.GetEnvanter() == 9 or player.GetEnvanter() == 10 or player.GetEnvanter() == 11:
  1023.             envanter = 5
  1024.             self.questionDialog = uiCommon.QuestionDialog()
  1025.             self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1026.             self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1027.             self.questionDialog.Open()
  1028.             # self.questionDialog.slotIndex = slotIndex
  1029.         elif player.GetEnvanter() == 12 or player.GetEnvanter() == 13 or player.GetEnvanter() == 14:
  1030.             envanter = 6
  1031.             self.questionDialog = uiCommon.QuestionDialog()
  1032.             self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1033.             self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1034.             self.questionDialog.Open()
  1035.             # self.questionDialog.slotIndex = slotIndex
  1036.         elif player.GetEnvanter() == 15 or player.GetEnvanter() == 16 or player.GetEnvanter() == 17:
  1037.             envanter = 7
  1038.             self.questionDialog = uiCommon.QuestionDialog()
  1039.             self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1040.             self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1041.             self.questionDialog.Open()
  1042.             # self.questionDialog.slotIndex = slotIndex
  1043.         else:
  1044.             self.wndPopupDialog = uiCommon.PopupDialog()
  1045.             self.wndPopupDialog.SetText(localeInfo.ENVANTER_ZATEN_GENIS_3)
  1046.             self.wndPopupDialog.Open()     
  1047.  
  1048.     def ClickMallButton(self):
  1049.         print "click_mall_button"
  1050.         net.SendChatPacket("/click_mall")
  1051.  
  1052.     # DSSButton
  1053.     def ClickDSSButton(self):
  1054.         print "click_dss_button"
  1055.         self.interface.ToggleDragonSoulWindow()
  1056.  
  1057.     def ClickCostumeButton(self):
  1058.         print "Click Costume Button"
  1059.         if self.wndCostume:
  1060.             if self.wndCostume.IsShow():
  1061.                 self.wndCostume.Hide()
  1062.             else:
  1063.                 self.wndCostume.Show()
  1064.         else:
  1065.             self.wndCostume = CostumeWindow(self)
  1066.             self.wndCostume.Show()
  1067.  
  1068.     def OpenPickMoneyDialog(self):
  1069.  
  1070.         if mouseModule.mouseController.isAttached():
  1071.  
  1072.             attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1073.             if player.SLOT_TYPE_SAFEBOX == mouseModule.mouseController.GetAttachedType():
  1074.  
  1075.                 if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex():
  1076.                     net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
  1077.                     snd.PlaySound("sound/ui/money.wav")
  1078.  
  1079.             mouseModule.mouseController.DeattachObject()
  1080.  
  1081.         else:
  1082.             curMoney = player.GetElk()
  1083.  
  1084.             if curMoney <= 0:
  1085.                 return
  1086.  
  1087.             self.dlgPickMoney.SetTitleName(localeInfo.PICK_MONEY_TITLE)
  1088.             self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))
  1089.             self.dlgPickMoney.Open(curMoney)
  1090.             self.dlgPickMoney.SetMax(7) # 인벤토리 990000 제한 버그 수정
  1091.  
  1092.     def OnPickMoney(self, money):
  1093.         mouseModule.mouseController.AttachMoney(self, player.SLOT_TYPE_INVENTORY, money)
  1094.  
  1095.     def OnPickItem(self, count):
  1096.         itemSlotIndex = self.dlgPickMoney.itemGlobalSlotIndex
  1097.         selectedItemVNum = player.GetItemIndex(itemSlotIndex)
  1098.         mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, count)
  1099.  
  1100.     def __InventoryLocalSlotPosToGlobalSlotPos(self, local):
  1101.  
  1102.         if player.IsEquipmentSlot(local) or player.IsCostumeSlot(local) or player.IsBeltInventorySlot(local):
  1103.             return local
  1104.  
  1105.         return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE + local
  1106.  
  1107.  
  1108.     def RefreshBagSlotWindow(self):
  1109.         getItemVNum=player.GetItemIndex
  1110.         getItemCount=player.GetItemCount
  1111.         setItemVNum=self.wndItem.SetItemSlot
  1112.        
  1113.         for i in xrange(player.INVENTORY_PAGE_SIZE):
  1114.             slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
  1115.            
  1116.             itemCount = getItemCount(slotNumber)
  1117.             # itemCount == 0이면 소켓을 비운다.
  1118.             if 0 == itemCount:
  1119.                 self.wndItem.ClearSlot(i)
  1120.                 continue
  1121.             elif 1 == itemCount:
  1122.                 itemCount = 0
  1123.                
  1124.             itemVnum = getItemVNum(slotNumber)
  1125.             setItemVNum(i, itemVnum, itemCount)
  1126.            
  1127.             ## 자동물약 (HP: #72723 ~ #72726, SP: #72727 ~ #72730) 특수처리 - 아이템인데도 슬롯에 활성화/비활성화 표시를 위한 작업임 - [hyo]
  1128.             if constInfo.IS_AUTO_POTION(itemVnum):
  1129.                 # metinSocket - [0] : 활성화 여부, [1] : 사용한 양, [2] : 최대 용량
  1130.                 metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]  
  1131.                
  1132.                 if slotNumber >= player.INVENTORY_PAGE_SIZE:
  1133.                     slotNumber -= player.INVENTORY_PAGE_SIZE
  1134.                    
  1135.                 isActivated = 0 != metinSocket[0]
  1136.                
  1137.                 if isActivated:
  1138.                     self.wndItem.ActivateSlot(slotNumber)
  1139.                     potionType = 0;
  1140.                     if constInfo.IS_AUTO_POTION_HP(itemVnum):
  1141.                         potionType = player.AUTO_POTION_TYPE_HP
  1142.                     elif constInfo.IS_AUTO_POTION_SP(itemVnum):
  1143.                         potionType = player.AUTO_POTION_TYPE_SP                    
  1144.                    
  1145.                     usedAmount = int(metinSocket[1])
  1146.                     totalAmount = int(metinSocket[2])                  
  1147.                     player.SetAutoPotionInfo(potionType, isActivated, (totalAmount - usedAmount), totalAmount, self.__InventoryLocalSlotPosToGlobalSlotPos(i))
  1148.                    
  1149.                 else:
  1150.                     self.wndItem.DeactivateSlot(slotNumber)        
  1151.                    
  1152.         self.wndItem.RefreshSlot()
  1153.  
  1154.         if self.wndBelt:
  1155.             self.wndBelt.RefreshSlot()
  1156.  
  1157.     def RefreshEquipSlotWindow(self):
  1158.         getItemVNum=player.GetItemIndex
  1159.         getItemCount=player.GetItemCount
  1160.         setItemVNum=self.wndEquip.SetItemSlot
  1161.         for i in xrange(player.EQUIPMENT_PAGE_COUNT):
  1162.             slotNumber = player.EQUIPMENT_SLOT_START + i
  1163.             itemCount = getItemCount(slotNumber)
  1164.             if itemCount <= 1:
  1165.                 itemCount = 0
  1166.             setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)
  1167.  
  1168.         if app.ENABLE_NEW_EQUIPMENT_SYSTEM:
  1169.             for i in xrange(player.NEW_EQUIPMENT_SLOT_COUNT):
  1170.                 slotNumber = player.NEW_EQUIPMENT_SLOT_START + i
  1171.                 itemCount = getItemCount(slotNumber)
  1172.                 if itemCount <= 1:
  1173.                     itemCount = 0
  1174.                 setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount)
  1175.                 print "ENABLE_NEW_EQUIPMENT_SYSTEM", slotNumber, itemCount, getItemVNum(slotNumber)
  1176.                
  1177.  
  1178.  
  1179.         self.wndEquip.RefreshSlot()
  1180.        
  1181.         if self.wndCostume:
  1182.             self.wndCostume.RefreshCostumeSlot()
  1183.  
  1184.     def RefreshItemSlot(self):
  1185.         self.RefreshBagSlotWindow()
  1186.         self.RefreshEquipSlotWindow()
  1187.  
  1188.     def RefreshStatus(self):
  1189.         money = player . GetElk ()
  1190.         if money <=  100000000 :
  1191.             self . wndMoney . SetFontColor ( 1.0 ,  0.2 ,  0.2 )
  1192.         elif money >=  100000001  and money <=  1000000000 :
  1193.             self . wndMoney . SetFontColor ( 1.0 ,  0.6 ,  0.2 )
  1194.         elif money >=  1000000001  and money <=  1500000000 :
  1195.             self . wndMoney . SetFontColor ( 1.0 ,  1.0 ,  0.2 )
  1196.         elif money >=  1500000001 :
  1197.             self . wndMoney . SetFontColor ( 0.6 ,  1.0 ,  0.2 )
  1198.         self . wndMoney . SetText ( localeInfo . NumberToMoneyString ( money ))
  1199.  
  1200.  
  1201.     def SetItemToolTip(self, tooltipItem):
  1202.         self.tooltipItem = tooltipItem
  1203.  
  1204.     def SellItem(self):    
  1205.         if self.sellingSlotitemIndex == player.GetItemIndex(self.sellingSlotNumber):
  1206.             if self.sellingSlotitemCount == player.GetItemCount(self.sellingSlotNumber):
  1207.                 net.SendShopSellPacketNew(self.sellingSlotNumber, self.questionDialog.count)
  1208.                 snd.PlaySound("sound/ui/money.wav")
  1209.         self.OnCloseQuestionDialog()
  1210.        
  1211.     def OnDetachMetinFromItem(self):
  1212.         if None == self.questionDialog:
  1213.             return
  1214.            
  1215.         #net.SendItemUseToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)     
  1216.         self.__SendUseItemToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)
  1217.         self.OnCloseQuestionDialog()
  1218.  
  1219.     def OnCloseQuestionDialog(self):
  1220.         if self.questionDialog:
  1221.             self.questionDialog.Close()
  1222.  
  1223.         self.questionDialog = None
  1224.  
  1225.     ## Slot Event
  1226.     def SelectEmptySlot(self, selectedSlotPos):
  1227.         if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
  1228.             return
  1229.  
  1230.         selectedSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(selectedSlotPos)
  1231.  
  1232.         if mouseModule.mouseController.isAttached():
  1233.  
  1234.             attachedSlotType = mouseModule.mouseController.GetAttachedType()
  1235.             attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1236.             attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
  1237.             attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
  1238.  
  1239.             if player.SLOT_TYPE_INVENTORY == attachedSlotType:
  1240.                 itemCount = player.GetItemCount(attachedSlotPos)
  1241.                 attachedCount = mouseModule.mouseController.GetAttachedItemCount()
  1242.                 self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount)
  1243.  
  1244.                 if item.IsRefineScroll(attachedItemIndex):
  1245.                     self.wndItem.SetUseMode(False)
  1246.  
  1247.             elif player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType:
  1248.                 mouseModule.mouseController.RunCallBack("INVENTORY")
  1249.  
  1250.             elif player.SLOT_TYPE_SHOP == attachedSlotType:
  1251.                 if constInfo.IsItemShop == 0:
  1252.                     net.SendShopBuyPacket(attachedSlotPos)
  1253.                 else:
  1254.                     import uiShop
  1255.                     self.wndShop = uiShop.ShopDialog()
  1256.                     self.wndShop.BuyFromIS(attachedSlotPos)
  1257.  
  1258.             elif player.SLOT_TYPE_SAFEBOX == attachedSlotType:
  1259.  
  1260.                 if player.ITEM_MONEY == attachedItemIndex:
  1261.                     net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
  1262.                     snd.PlaySound("sound/ui/money.wav")
  1263.  
  1264.                 else:
  1265.                     net.SendSafeboxCheckoutPacket(attachedSlotPos, selectedSlotPos)
  1266.  
  1267.             elif player.SLOT_TYPE_MALL == attachedSlotType:
  1268.                 net.SendMallCheckoutPacket(attachedSlotPos, selectedSlotPos)
  1269.  
  1270.             mouseModule.mouseController.DeattachObject()
  1271.  
  1272.     def SelectItemSlot(self, itemSlotIndex):
  1273.         if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
  1274.             return
  1275.  
  1276.         itemSlotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(itemSlotIndex)
  1277.  
  1278.         if mouseModule.mouseController.isAttached():
  1279.             attachedSlotType = mouseModule.mouseController.GetAttachedType()
  1280.             attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1281.             attachedItemVID = mouseModule.mouseController.GetAttachedItemIndex()
  1282.  
  1283.             if player.SLOT_TYPE_INVENTORY == attachedSlotType:
  1284.                 self.__DropSrcItemToDestItemInInventory(attachedItemVID, attachedSlotPos, itemSlotIndex)
  1285.  
  1286.             mouseModule.mouseController.DeattachObject()
  1287.  
  1288.         else:
  1289.  
  1290.             curCursorNum = app.GetCursor()
  1291.             if app.SELL == curCursorNum:
  1292.                 self.__SellItem(itemSlotIndex)
  1293.                
  1294.             elif app.BUY == curCursorNum:
  1295.                 chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)
  1296.  
  1297.             elif app.IsPressed(app.DIK_LALT):
  1298.                 link = player.GetItemLink(itemSlotIndex)
  1299.                 ime.PasteString(link)
  1300.  
  1301.             elif app.IsPressed(app.DIK_LSHIFT):
  1302.                 itemCount = player.GetItemCount(itemSlotIndex)
  1303.                
  1304.                 if itemCount > 1:
  1305.                     self.dlgPickMoney.SetTitleName(localeInfo.PICK_ITEM_TITLE)
  1306.                     self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickItem))
  1307.                     self.dlgPickMoney.Open(itemCount)
  1308.                     self.dlgPickMoney.itemGlobalSlotIndex = itemSlotIndex
  1309.                 #else:
  1310.                     #selectedItemVNum = player.GetItemIndex(itemSlotIndex)
  1311.                     #mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum)
  1312.  
  1313.             elif app.IsPressed(app.DIK_LCONTROL):
  1314.                 itemIndex = player.GetItemIndex(itemSlotIndex)
  1315.  
  1316.                 if True == item.CanAddToQuickSlotItem(itemIndex):
  1317.                     player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_INVENTORY, itemSlotIndex)
  1318.                 else:
  1319.                     chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.QUICKSLOT_REGISTER_DISABLE_ITEM)
  1320.  
  1321.             else:
  1322.                 selectedItemVNum = player.GetItemIndex(itemSlotIndex)
  1323.                 itemCount = player.GetItemCount(itemSlotIndex)
  1324.                 mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum, itemCount)
  1325.                
  1326.                 if self.__IsUsableItemToItem(selectedItemVNum, itemSlotIndex):             
  1327.                     self.wndItem.SetUseMode(True)
  1328.                 else:                  
  1329.                     self.wndItem.SetUseMode(False)
  1330.  
  1331.                 snd.PlaySound("sound/ui/pick.wav")
  1332.  
  1333.     def __DropSrcItemToDestItemInInventory(self, srcItemVID, srcItemSlotPos, dstItemSlotPos):
  1334.         if srcItemSlotPos == dstItemSlotPos:
  1335.             return
  1336.                    
  1337.         if item.IsRefineScroll(srcItemVID):
  1338.             self.RefineItem(srcItemSlotPos, dstItemSlotPos)
  1339.             self.wndItem.SetUseMode(False)
  1340.  
  1341.         elif item.IsMetin(srcItemVID):
  1342.             self.AttachMetinToItem(srcItemSlotPos, dstItemSlotPos)
  1343.  
  1344.         elif item.IsDetachScroll(srcItemVID):
  1345.             self.DetachMetinFromItem(srcItemSlotPos, dstItemSlotPos)
  1346.  
  1347.         elif item.IsKey(srcItemVID):
  1348.             self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)         
  1349.  
  1350.         elif (player.GetItemFlags(srcItemSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
  1351.             self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
  1352.  
  1353.         elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE:
  1354.             self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)         
  1355.  
  1356.         else:
  1357.             #snd.PlaySound("sound/ui/drop.wav")
  1358.  
  1359.             ## 이동시킨 곳이 장착 슬롯일 경우 아이템을 사용해서 장착 시킨다 - [levites]
  1360.             if player.IsEquipmentSlot(dstItemSlotPos):
  1361.  
  1362.                 ## 들고 있는 아이템이 장비일때만
  1363.                 if item.IsEquipmentVID(srcItemVID):
  1364.                     self.__UseItem(srcItemSlotPos)
  1365.  
  1366.             else:
  1367.                 self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
  1368.                 #net.SendItemMovePacket(srcItemSlotPos, dstItemSlotPos, 0)
  1369.  
  1370.     def __SellItem(self, itemSlotPos):
  1371.         if not player.IsEquipmentSlot(itemSlotPos):
  1372.             self.sellingSlotNumber = itemSlotPos
  1373.             itemIndex = player.GetItemIndex(itemSlotPos)
  1374.             itemCount = player.GetItemCount(itemSlotPos)
  1375.            
  1376.            
  1377.             self.sellingSlotitemIndex = itemIndex
  1378.             self.sellingSlotitemCount = itemCount
  1379.  
  1380.             item.SelectItem(itemIndex)
  1381.             itemPrice = item.GetISellItemPrice()
  1382.  
  1383.             if item.Is1GoldItem():
  1384.                 itemPrice = itemCount / itemPrice / 5
  1385.             else:
  1386.                 itemPrice = itemPrice * itemCount / 5
  1387.  
  1388.             item.GetItemName(itemIndex)
  1389.             itemName = item.GetItemName()
  1390.  
  1391.             self.questionDialog = uiCommon.QuestionDialog()
  1392.             self.questionDialog.SetText(localeInfo.DO_YOU_SELL_ITEM(itemName, itemCount, itemPrice))
  1393.             self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.SellItem))
  1394.             self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1395.             self.questionDialog.Open()
  1396.             self.questionDialog.count = itemCount
  1397.  
  1398.     def RefineItem(self, scrollSlotPos, targetSlotPos):
  1399.  
  1400.         scrollIndex = player.GetItemIndex(scrollSlotPos)
  1401.         targetIndex = player.GetItemIndex(targetSlotPos)
  1402.  
  1403.         if player.REFINE_OK != player.CanRefine(scrollIndex, targetSlotPos):
  1404.             return
  1405.  
  1406.         ###########################################################
  1407.         self.__SendUseItemToItemPacket(scrollSlotPos, targetSlotPos)
  1408.         #net.SendItemUseToItemPacket(scrollSlotPos, targetSlotPos)
  1409.         return
  1410.         ###########################################################
  1411.  
  1412.         ###########################################################
  1413.         #net.SendRequestRefineInfoPacket(targetSlotPos)
  1414.         #return
  1415.         ###########################################################
  1416.  
  1417.         result = player.CanRefine(scrollIndex, targetSlotPos)
  1418.  
  1419.         if player.REFINE_ALREADY_MAX_SOCKET_COUNT == result:
  1420.             #snd.PlaySound("sound/ui/jaeryun_fail.wav")
  1421.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_MORE_SOCKET)
  1422.  
  1423.         elif player.REFINE_NEED_MORE_GOOD_SCROLL == result:
  1424.             #snd.PlaySound("sound/ui/jaeryun_fail.wav")
  1425.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NEED_BETTER_SCROLL)
  1426.  
  1427.         elif player.REFINE_CANT_MAKE_SOCKET_ITEM == result:
  1428.             #snd.PlaySound("sound/ui/jaeryun_fail.wav")
  1429.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_SOCKET_DISABLE_ITEM)
  1430.  
  1431.         elif player.REFINE_NOT_NEXT_GRADE_ITEM == result:
  1432.             #snd.PlaySound("sound/ui/jaeryun_fail.wav")
  1433.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_UPGRADE_DISABLE_ITEM)
  1434.  
  1435.         elif player.REFINE_CANT_REFINE_METIN_TO_EQUIPMENT == result:
  1436.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM)
  1437.  
  1438.         if player.REFINE_OK != result:
  1439.             return
  1440.  
  1441.         self.refineDialog.Open(scrollSlotPos, targetSlotPos)
  1442.  
  1443.     def DetachMetinFromItem(self, scrollSlotPos, targetSlotPos):
  1444.         scrollIndex = player.GetItemIndex(scrollSlotPos)
  1445.         targetIndex = player.GetItemIndex(targetSlotPos)
  1446.  
  1447.         if not player.CanDetach(scrollIndex, targetSlotPos):
  1448.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
  1449.             return
  1450.  
  1451.         self.questionDialog = uiCommon.QuestionDialog()
  1452.         self.questionDialog.SetText(localeInfo.REFINE_DO_YOU_SEPARATE_METIN)
  1453.         self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDetachMetinFromItem))
  1454.         self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  1455.         self.questionDialog.Open()
  1456.         self.questionDialog.sourcePos = scrollSlotPos
  1457.         self.questionDialog.targetPos = targetSlotPos
  1458.  
  1459.     def AttachMetinToItem(self, metinSlotPos, targetSlotPos):
  1460.         metinIndex = player.GetItemIndex(metinSlotPos)
  1461.         targetIndex = player.GetItemIndex(targetSlotPos)
  1462.  
  1463.         item.SelectItem(metinIndex)
  1464.         itemName = item.GetItemName()
  1465.  
  1466.         result = player.CanAttachMetin(metinIndex, targetSlotPos)
  1467.  
  1468.         if player.ATTACH_METIN_NOT_MATCHABLE_ITEM == result:
  1469.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_CAN_NOT_ATTACH(itemName))
  1470.  
  1471.         if player.ATTACH_METIN_NO_MATCHABLE_SOCKET == result:
  1472.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_SOCKET(itemName))
  1473.  
  1474.         elif player.ATTACH_METIN_NOT_EXIST_GOLD_SOCKET == result:
  1475.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_NO_GOLD_SOCKET(itemName))
  1476.  
  1477.         elif player.ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT == result:
  1478.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_FAILURE_EQUIP_ITEM)
  1479.  
  1480.         if player.ATTACH_METIN_OK != result:
  1481.             return
  1482.  
  1483.         self.attachMetinDialog.Open(metinSlotPos, targetSlotPos)
  1484.  
  1485.  
  1486.        
  1487.     def OverOutItem(self):
  1488.         self.wndItem.SetUsableItem(False)
  1489.         if None != self.tooltipItem:
  1490.             self.tooltipItem.HideToolTip()
  1491.  
  1492.     def OverInItem(self, overSlotPos):
  1493.         overSlotPos = self.__InventoryLocalSlotPosToGlobalSlotPos(overSlotPos)
  1494.         self.wndItem.SetUsableItem(False)
  1495.  
  1496.         if mouseModule.mouseController.isAttached():
  1497.             attachedItemType = mouseModule.mouseController.GetAttachedType()
  1498.             if player.SLOT_TYPE_INVENTORY == attachedItemType:
  1499.  
  1500.                 attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1501.                 attachedItemVNum = mouseModule.mouseController.GetAttachedItemIndex()
  1502.                
  1503.                 if self.__CanUseSrcItemToDstItem(attachedItemVNum, attachedSlotPos, overSlotPos):
  1504.                     self.wndItem.SetUsableItem(True)
  1505.                     self.ShowToolTip(overSlotPos)
  1506.                     return
  1507.                
  1508.         self.ShowToolTip(overSlotPos)
  1509.  
  1510.  
  1511.     def __IsUsableItemToItem(self, srcItemVNum, srcSlotPos):
  1512.         "다른 아이템에 사용할 수 있는 아이템인가?"
  1513.  
  1514.         if item.IsRefineScroll(srcItemVNum):
  1515.             return True
  1516.         elif item.IsMetin(srcItemVNum):
  1517.             return True
  1518.         elif item.IsDetachScroll(srcItemVNum):
  1519.             return True
  1520.         elif item.IsKey(srcItemVNum):
  1521.             return True
  1522.         elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
  1523.             return True
  1524.         else:
  1525.             if item.GetUseType(srcItemVNum) in self.USE_TYPE_TUPLE:
  1526.                 return True
  1527.            
  1528.         return False
  1529.  
  1530.     def __CanUseSrcItemToDstItem(self, srcItemVNum, srcSlotPos, dstSlotPos):
  1531.         "대상 아이템에 사용할 수 있는가?"
  1532.  
  1533.         if srcSlotPos == dstSlotPos:
  1534.             return False
  1535.  
  1536.         if item.IsRefineScroll(srcItemVNum):
  1537.             if player.REFINE_OK == player.CanRefine(srcItemVNum, dstSlotPos):
  1538.                 return True
  1539.         elif item.IsMetin(srcItemVNum):
  1540.             if player.ATTACH_METIN_OK == player.CanAttachMetin(srcItemVNum, dstSlotPos):
  1541.                 return True
  1542.         elif item.IsDetachScroll(srcItemVNum):
  1543.             if player.DETACH_METIN_OK == player.CanDetach(srcItemVNum, dstSlotPos):
  1544.                 return True
  1545.         elif item.IsKey(srcItemVNum):
  1546.             if player.CanUnlock(srcItemVNum, dstSlotPos):
  1547.                 return True
  1548.  
  1549.         elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
  1550.             return True
  1551.  
  1552.         else:
  1553.             useType=item.GetUseType(srcItemVNum)
  1554.  
  1555.             if "USE_CLEAN_SOCKET" == useType:
  1556.                 if self.__CanCleanBrokenMetinStone(dstSlotPos):
  1557.                     return True
  1558.             elif "USE_CHANGE_ATTRIBUTE" == useType:
  1559.                 if self.__CanChangeItemAttrList(dstSlotPos):
  1560.                     return True
  1561.             elif "USE_ADD_ATTRIBUTE" == useType:
  1562.                 if self.__CanAddItemAttr(dstSlotPos):
  1563.                     return True
  1564.             elif "USE_ADD_ATTRIBUTE2" == useType:
  1565.                 if self.__CanAddItemAttr(dstSlotPos):
  1566.                     return True
  1567.             elif "USE_ADD_ACCESSORY_SOCKET" == useType:
  1568.                 if self.__CanAddAccessorySocket(dstSlotPos):
  1569.                     return True
  1570.             elif "USE_PUT_INTO_ACCESSORY_SOCKET" == useType:                               
  1571.                 if self.__CanPutAccessorySocket(dstSlotPos, srcItemVNum):
  1572.                     return True;
  1573.             elif "USE_PUT_INTO_BELT_SOCKET" == useType:                            
  1574.                 dstItemVNum = player.GetItemIndex(dstSlotPos)
  1575.                 print "USE_PUT_INTO_BELT_SOCKET", srcItemVNum, dstItemVNum
  1576.  
  1577.                 item.SelectItem(dstItemVNum)
  1578.        
  1579.                 if item.ITEM_TYPE_BELT == item.GetItemType():
  1580.                     return True
  1581.  
  1582.         return False
  1583.  
  1584.     def __CanCleanBrokenMetinStone(self, dstSlotPos):
  1585.         dstItemVNum = player.GetItemIndex(dstSlotPos)
  1586.         if dstItemVNum == 0:
  1587.             return False
  1588.  
  1589.         item.SelectItem(dstItemVNum)
  1590.        
  1591.         if item.ITEM_TYPE_WEAPON != item.GetItemType():
  1592.             return False
  1593.  
  1594.         for i in xrange(player.METIN_SOCKET_MAX_NUM):
  1595.             if player.GetItemMetinSocket(dstSlotPos, i) == constInfo.ERROR_METIN_STONE:
  1596.                 return True
  1597.  
  1598.         return False
  1599.  
  1600.     def __CanChangeItemAttrList(self, dstSlotPos):
  1601.         dstItemVNum = player.GetItemIndex(dstSlotPos)
  1602.         if dstItemVNum == 0:
  1603.             return False
  1604.  
  1605.         item.SelectItem(dstItemVNum)
  1606.        
  1607.         if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR):  
  1608.             return False
  1609.  
  1610.         for i in xrange(player.METIN_SOCKET_MAX_NUM):
  1611.             if player.GetItemAttribute(dstSlotPos, i) != 0:
  1612.                 return True
  1613.  
  1614.         return False
  1615.  
  1616.     def __CanPutAccessorySocket(self, dstSlotPos, mtrlVnum):
  1617.         dstItemVNum = player.GetItemIndex(dstSlotPos)
  1618.         if dstItemVNum == 0:
  1619.             return False
  1620.  
  1621.         item.SelectItem(dstItemVNum)
  1622.  
  1623.         if item.GetItemType() != item.ITEM_TYPE_ARMOR:
  1624.             return False
  1625.  
  1626.         if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):
  1627.             return False
  1628.  
  1629.         curCount = player.GetItemMetinSocket(dstSlotPos, 0)
  1630.         maxCount = player.GetItemMetinSocket(dstSlotPos, 1)
  1631.  
  1632.         if mtrlVnum != constInfo.GET_ACCESSORY_MATERIAL_VNUM(dstItemVNum, item.GetItemSubType()):
  1633.             return False
  1634.        
  1635.         if curCount>=maxCount:
  1636.             return False
  1637.  
  1638.         return True
  1639.  
  1640.     def __CanAddAccessorySocket(self, dstSlotPos):
  1641.         dstItemVNum = player.GetItemIndex(dstSlotPos)
  1642.         if dstItemVNum == 0:
  1643.             return False
  1644.  
  1645.         item.SelectItem(dstItemVNum)
  1646.  
  1647.         if item.GetItemType() != item.ITEM_TYPE_ARMOR:
  1648.             return False
  1649.  
  1650.         if not item.GetItemSubType() in (item.ARMOR_WRIST, item.ARMOR_NECK, item.ARMOR_EAR):
  1651.             return False
  1652.  
  1653.         curCount = player.GetItemMetinSocket(dstSlotPos, 0)
  1654.         maxCount = player.GetItemMetinSocket(dstSlotPos, 1)
  1655.        
  1656.         ACCESSORY_SOCKET_MAX_SIZE = 3
  1657.         if maxCount >= ACCESSORY_SOCKET_MAX_SIZE:
  1658.             return False
  1659.  
  1660.         return True
  1661.  
  1662.     def __CanAddItemAttr(self, dstSlotPos):
  1663.         dstItemVNum = player.GetItemIndex(dstSlotPos)
  1664.         if dstItemVNum == 0:
  1665.             return False
  1666.  
  1667.         item.SelectItem(dstItemVNum)
  1668.        
  1669.         if not item.GetItemType() in (item.ITEM_TYPE_WEAPON, item.ITEM_TYPE_ARMOR):  
  1670.             return False
  1671.            
  1672.         attrCount = 0
  1673.         for i in xrange(player.METIN_SOCKET_MAX_NUM):
  1674.             if player.GetItemAttribute(dstSlotPos, i) != 0:
  1675.                 attrCount += 1
  1676.  
  1677.         if attrCount<4:
  1678.             return True
  1679.                                
  1680.         return False
  1681.  
  1682.     def ShowToolTip(self, slotIndex):
  1683.         if None != self.tooltipItem:
  1684.             self.tooltipItem.SetInventoryItem(slotIndex)
  1685.  
  1686.     def OnTop(self):
  1687.         if None != self.tooltipItem:
  1688.             self.tooltipItem.SetTop()
  1689.  
  1690.     def OnPressEscapeKey(self):
  1691.         self.Close()
  1692.         return True
  1693.        
  1694. if app.ADD_INVENTORY:
  1695.     def genislet(self):
  1696.         if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1697.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.ENVANTER_UYARI)
  1698.             return
  1699.         net.Envanter_genislet()
  1700.         self.OnCloseQuestionDialog()
  1701.        
  1702.     def UseItemSlot(self, slotIndex):
  1703.    
  1704.         curCursorNum = app.GetCursor()
  1705.         if app.SELL == curCursorNum:
  1706.             return
  1707.  
  1708.         if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS():
  1709.             return
  1710.  
  1711.         slotIndex = self.__InventoryLocalSlotPosToGlobalSlotPos(slotIndex)
  1712.  
  1713.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1714.             if self.wndDragonSoulRefine.IsShow():
  1715.                 self.wndDragonSoulRefine.AutoSetItem((player.INVENTORY, slotIndex), 1)
  1716.                 return
  1717.  
  1718.         self.__UseItem(slotIndex)
  1719.         mouseModule.mouseController.DeattachObject()
  1720.         self.OverOutItem()
  1721.  
  1722.     def SetOpenBoniSwitcherEvent(self, event):
  1723.         self.OpenBoniSwitcherEvent = ui.__mem_func__(event)
  1724.  
  1725.     def __UseItem(self, slotIndex):
  1726.         ItemVNum = player.GetItemIndex(slotIndex)
  1727.         item.SelectItem(ItemVNum)
  1728.         if item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE):
  1729.             self.questionDialog = uiCommon.QuestionDialog()
  1730.             self.questionDialog.SetText(localeInfo.INVENTORY_REALLY_USE_ITEM)
  1731.             self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept))
  1732.             self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel))
  1733.             self.questionDialog.Open()
  1734.             self.questionDialog.slotIndex = slotIndex
  1735.            
  1736.         else:
  1737.             self.__SendUseItemPacket(slotIndex)
  1738.            
  1739.         if app.ADD_INVENTORY:
  1740.             if ItemVNum == 72320:
  1741.                 if player.GetEnvanter() < 4:
  1742.                     envanter = 2
  1743.                     self.questionDialog = uiCommon.QuestionDialog()
  1744.                     self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1745.                     self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1746.                     self.questionDialog.Open()
  1747.                     self.questionDialog.slotIndex = slotIndex
  1748.                 elif player.GetEnvanter() == 4 or player.GetEnvanter() == 5:
  1749.                     envanter = 3
  1750.                     self.questionDialog = uiCommon.QuestionDialog()
  1751.                     self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1752.                     self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1753.                     self.questionDialog.Open()
  1754.                     self.questionDialog.slotIndex = slotIndex
  1755.                 elif player.GetEnvanter() == 6 or player.GetEnvanter() == 7 or player.GetEnvanter() == 8:
  1756.                     envanter = 4
  1757.                     self.questionDialog = uiCommon.QuestionDialog()
  1758.                     self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1759.                     self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1760.                     self.questionDialog.Open()
  1761.                     self.questionDialog.slotIndex = slotIndex
  1762.                 elif player.GetEnvanter() == 9 or player.GetEnvanter() == 10 or player.GetEnvanter() == 11:
  1763.                     envanter = 5
  1764.                     self.questionDialog = uiCommon.QuestionDialog()
  1765.                     self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1766.                     self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1767.                     self.questionDialog.Open()
  1768.                     self.questionDialog.slotIndex = slotIndex
  1769.                 elif player.GetEnvanter() == 12 or player.GetEnvanter() == 13 or player.GetEnvanter() == 14:
  1770.                     envanter = 6
  1771.                     self.questionDialog = uiCommon.QuestionDialog()
  1772.                     self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1773.                     self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1774.                     self.questionDialog.Open()
  1775.                     self.questionDialog.slotIndex = slotIndex
  1776.                 elif player.GetEnvanter() == 15 or player.GetEnvanter() == 16 or player.GetEnvanter() == 17:
  1777.                     envanter = 7
  1778.                     self.questionDialog = uiCommon.QuestionDialog()
  1779.                     self.questionDialog.SetText(localeInfo.ENVANTER_GENIS_1 % envanter)
  1780.                     self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.genislet))
  1781.                     self.questionDialog.Open()
  1782.                     self.questionDialog.slotIndex = slotIndex
  1783.                 else:
  1784.                     self.wndPopupDialog = uiCommon.PopupDialog()
  1785.                     self.wndPopupDialog.SetText(localeInfo.ENVANTER_ZATEN_GENIS_3)
  1786.                     self.wndPopupDialog.Open()         
  1787.  
  1788.     def __UseItemQuestionDialog_OnCancel(self):
  1789.         self.OnCloseQuestionDialog()
  1790.  
  1791.     def __UseItemQuestionDialog_OnAccept(self):
  1792.         self.__SendUseItemPacket(self.questionDialog.slotIndex)
  1793.  
  1794.         if self.questionDialog:
  1795.             self.questionDialog.Close()
  1796.         self.questionDialog = None
  1797.  
  1798.     def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos):
  1799.         # 개인상점 열고 있는 동안 아이템 사용 방지
  1800.         if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1801.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
  1802.             return
  1803.  
  1804.         net.SendItemUseToItemPacket(srcSlotPos, dstSlotPos)
  1805.  
  1806.     def __SendUseItemPacket(self, slotPos):
  1807.         # 개인상점 열고 있는 동안 아이템 사용 방지
  1808.         if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1809.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP)
  1810.             return
  1811.  
  1812.         net.SendItemUsePacket(slotPos)
  1813.    
  1814.     def __SendMoveItemPacket(self, srcSlotPos, dstSlotPos, srcItemCount):
  1815.         # 개인상점 열고 있는 동안 아이템 사용 방지
  1816.         if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1817.             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
  1818.             return
  1819.  
  1820.         net.SendItemMovePacket(srcSlotPos, dstSlotPos, srcItemCount)
  1821.    
  1822.     def SetDragonSoulRefineWindow(self, wndDragonSoulRefine):
  1823.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1824.             self.wndDragonSoulRefine = wndDragonSoulRefine
  1825.            
  1826.     def OnMoveWindow(self, x, y):
  1827. #       print "Inventory Global Pos : ", self.GetGlobalPosition()
  1828.         if self.wndBelt:
  1829. #           print "Belt Global Pos : ", self.wndBelt.GetGlobalPosition()
  1830.             self.wndBelt.AdjustPositionAndSize()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement