ZorkeOfficial

interfacemodule.py

Jan 15th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 52.23 KB | None | 0 0
  1. import constInfo
  2. import systemSetting
  3. import wndMgr
  4. import chat
  5. import app
  6. import player
  7. import uiTaskBar
  8. import uiCharacter
  9. import uiInventory
  10. import uiDragonSoul
  11. import uiChat
  12. import uiMessenger
  13. import guild
  14. import ui
  15. import uiHelp
  16. import uiWhisper
  17. import uiPointReset
  18. import uiShop
  19. import uiExchange
  20. import uiSystem
  21. import uiRestart
  22. import uiToolTip
  23. import uiMiniMap
  24. import uiParty
  25. import uiSafebox
  26. import uiGuild
  27. import uiQuest
  28. import uiPrivateShopBuilder
  29. import uiCommon
  30. import uiRefine
  31. import uiEquipmentDialog
  32. import uiGameButton
  33. import uiTip
  34. import uiCube
  35. import uiOfflineShop
  36. import uiOfflineShopBuilder
  37. import miniMap
  38. import uiSelectItem
  39. import uiScriptLocale
  40. import event
  41. import time
  42. import localeInfo
  43. import uisash
  44.  
  45. IsQBHide = 0
  46. class Interface(object):
  47.     CHARACTER_STATUS_TAB = 1
  48.     CHARACTER_SKILL_TAB = 2
  49.    
  50.     def __init__(self):
  51.         systemSetting.SetInterfaceHandler(self)
  52.         self.windowOpenPosition = 0
  53.         self.dlgWhisperWithoutTarget = None
  54.         self.inputDialog = None
  55.         self.tipBoard = None
  56.         self.bigBoard = None
  57.         self.utilizareInventar = time.clock() + 4
  58.  
  59.         # ITEM_MALL
  60.         self.mallPageDlg = None
  61.         # END_OF_ITEM_MALL
  62.  
  63.         self.wndWeb = None
  64.         self.wndTaskBar = None
  65.         self.wndCharacter = None
  66.         self.wndInventory = None
  67.         self.wndExpandedTaskBar = None
  68.         self.wndDragonSoul = None
  69.         self.wndDragonSoulRefine = None
  70.         self.wndChat = None
  71.         self.wndMessenger = None
  72.         self.wndMiniMap = None
  73.         self.wndGuild = None
  74.         self.wndGuildBuilding = None
  75.  
  76.         self.wndOfflineShopAdminPanel = None
  77.  
  78.         self.listGMName = {}
  79.         self.wndQuestWindow = []
  80.         self.privateShopAdvertisementBoardDict = {}
  81.         self.guildScoreBoardDict = {}
  82.         self.equipmentDialogDict = {}
  83.         self.offlineShopAdvertisementBoardDict = {}
  84.         event.SetInterfaceWindow(self)
  85.  
  86.     def __del__(self):
  87.         systemSetting.DestroyInterfaceHandler()
  88.         event.SetInterfaceWindow(None)
  89.  
  90.     ################################
  91.     ## Make Windows & Dialogs
  92.     def __MakeUICurtain(self):
  93.         wndUICurtain = ui.Bar("TOP_MOST")
  94.         wndUICurtain.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
  95.         wndUICurtain.SetColor(0x77000000)
  96.         wndUICurtain.Hide()
  97.         self.wndUICurtain = wndUICurtain
  98.  
  99.     def __MakeMessengerWindow(self):
  100.         self.wndMessenger = uiMessenger.MessengerWindow()
  101.  
  102.         from _weakref import proxy
  103.         self.wndMessenger.SetWhisperButtonEvent(lambda n,i=proxy(self):i.OpenWhisperDialog(n))
  104.         self.wndMessenger.SetGuildButtonEvent(ui.__mem_func__(self.ToggleGuildWindow))
  105.  
  106.     def __MakeGuildWindow(self):
  107.         self.wndGuild = uiGuild.GuildWindow()
  108.  
  109.     def __MakeChatWindow(self):
  110.        
  111.         wndChat = uiChat.ChatWindow()
  112.        
  113.         wndChat.SetSize(wndChat.CHAT_WINDOW_WIDTH, 0)
  114.         wndChat.SetPosition(wndMgr.GetScreenWidth()/2 - wndChat.CHAT_WINDOW_WIDTH/2, wndMgr.GetScreenHeight() - wndChat.EDIT_LINE_HEIGHT - 37)
  115.         wndChat.SetHeight(200)
  116.         wndChat.Refresh()
  117.         wndChat.Show()
  118.  
  119.         self.wndChat = wndChat
  120.         self.wndChat.BindInterface(self)
  121.         self.wndChat.SetSendWhisperEvent(ui.__mem_func__(self.OpenWhisperDialogWithoutTarget))
  122.         self.wndChat.SetOpenChatLogEvent(ui.__mem_func__(self.ToggleChatLogWindow))
  123.  
  124.     def __MakeTaskBar(self):
  125.         wndTaskBar = uiTaskBar.TaskBar()
  126.         wndTaskBar.LoadWindow()
  127.         self.wndTaskBar = wndTaskBar
  128.         self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_CHARACTER, ui.__mem_func__(self.ToggleCharacterWindowStatusPage))
  129.         self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_INVENTORY, ui.__mem_func__(self.ToggleInventoryWindow))
  130.         self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_MESSENGER, ui.__mem_func__(self.ToggleMessenger))
  131.         self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_SYSTEM, ui.__mem_func__(self.ToggleSystemDialog))
  132.         if uiTaskBar.TaskBar.IS_EXPANDED:
  133.             self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_EXPAND, ui.__mem_func__(self.ToggleExpandedButton))
  134.             self.wndExpandedTaskBar = uiTaskBar.ExpandedTaskBar()
  135.             self.wndExpandedTaskBar.LoadWindow()
  136.         else:
  137.             self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_CHAT, ui.__mem_func__(self.ToggleChat))
  138.        
  139.         self.wndEnergyBar = None
  140.         import app
  141.         if app.ENABLE_ENERGY_SYSTEM:
  142.             wndEnergyBar = uiTaskBar.EnergyBar()
  143.             wndEnergyBar.LoadWindow()
  144.             self.wndEnergyBar = wndEnergyBar   
  145.  
  146.     def __MakeParty(self):
  147.         wndParty = uiParty.PartyWindow()
  148.         wndParty.Hide()
  149.         self.wndParty = wndParty
  150.  
  151.     def __MakeGameButtonWindow(self):
  152.         wndGameButton = uiGameButton.GameButtonWindow()
  153.         wndGameButton.SetTop()
  154.         wndGameButton.Show()
  155.         wndGameButton.SetButtonEvent("STATUS", ui.__mem_func__(self.__OnClickStatusPlusButton))
  156.         wndGameButton.SetButtonEvent("SKILL", ui.__mem_func__(self.__OnClickSkillPlusButton))
  157.         wndGameButton.SetButtonEvent("QUEST", ui.__mem_func__(self.__OnClickQuestButton))
  158.         wndGameButton.SetButtonEvent("HELP", ui.__mem_func__(self.__OnClickHelpButton))
  159.         wndGameButton.SetButtonEvent("BUILD", ui.__mem_func__(self.__OnClickBuildButton))
  160.  
  161.         self.wndGameButton = wndGameButton
  162.  
  163.     def __IsChatOpen(self):
  164.         return TRUE
  165.        
  166.     def __MakeWindows(self):
  167.         wndCharacter = uiCharacter.CharacterWindow()
  168.         wndInventory = uiInventory.InventoryWindow()
  169.         wndInventory.BindInterfaceClass(self)
  170.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  171.             wndDragonSoul = uiDragonSoul.DragonSoulWindow()
  172.             wndDragonSoulRefine = uiDragonSoul.DragonSoulRefineWindow()
  173.         else:
  174.             wndDragonSoul = None
  175.             wndDragonSoulRefine = None
  176.  
  177.         wndMiniMap = uiMiniMap.MiniMap()
  178.         wndSafebox = uiSafebox.SafeboxWindow()
  179.        
  180.         # ITEM_MALL
  181.         wndMall = uiSafebox.MallWindow()
  182.         self.wndMall = wndMall
  183.         # END_OF_ITEM_MALL
  184.  
  185.         wndChatLog = uiChat.ChatLogWindow()
  186.         wndChatLog.BindInterface(self)
  187.  
  188.         # OFFLINE_SHOP_ADMIN_PANEL
  189.         wndOfflineShopAdminPanel = uiOfflineShop.OfflineShopAdminPanelWindow()
  190.         wndOfflineShopAdminPanel.BindInterfaceClass(self)
  191.         self.wndOfflineShopAdminPanel = wndOfflineShopAdminPanel
  192.         # END_OF_OFFLINE_SHOP_ADMIN_PANEL
  193.        
  194.         self.wndCharacter = wndCharacter
  195.         self.wndInventory = wndInventory
  196.         self.wndDragonSoul = wndDragonSoul
  197.         self.wndDragonSoulRefine = wndDragonSoulRefine
  198.         self.wndMiniMap = wndMiniMap
  199.         self.wndSafebox = wndSafebox
  200.         self.wndChatLog = wndChatLog
  201.        
  202.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  203.             self.wndDragonSoul.SetDragonSoulRefineWindow(self.wndDragonSoulRefine)
  204.             self.wndDragonSoulRefine.SetInventoryWindows(self.wndInventory, self.wndDragonSoul)
  205.             self.wndInventory.SetDragonSoulRefineWindow(self.wndDragonSoulRefine)
  206.  
  207.     def __MakeDialogs(self):
  208.         self.dlgExchange = uiExchange.ExchangeDialog()
  209.         self.dlgExchange.LoadDialog()
  210.         self.dlgExchange.SetCenterPosition()
  211.         self.dlgExchange.Hide()
  212.  
  213.         self.dlgPointReset = uiPointReset.PointResetDialog()
  214.         self.dlgPointReset.LoadDialog()
  215.         self.dlgPointReset.Hide()
  216.  
  217.         self.dlgShop = uiShop.ShopDialog()
  218.         self.dlgShop.LoadDialog()
  219.         self.dlgShop.Hide()
  220.  
  221.         self.dlgOfflineShop = uiOfflineShop.OfflineShopDialog()
  222.         self.dlgOfflineShop.LoadDialog()
  223.         self.dlgOfflineShop.Hide()
  224.  
  225.         self.dlgRestart = uiRestart.RestartDialog()
  226.         self.dlgRestart.LoadDialog()
  227.         self.dlgRestart.Hide()
  228.  
  229.         self.dlgSystem = uiSystem.SystemDialog()
  230.         self.dlgSystem.LoadDialog()
  231.         self.dlgSystem.SetOpenHelpWindowEvent(ui.__mem_func__(self.OpenHelpWindow))
  232.  
  233.         self.dlgSystem.Hide()
  234.  
  235.         self.dlgPassword = uiSafebox.PasswordDialog()
  236.         self.dlgPassword.Hide()
  237.  
  238.         self.hyperlinkItemTooltip = uiToolTip.HyperlinkItemToolTip()
  239.         self.hyperlinkItemTooltip.Hide()
  240.  
  241.         self.tooltipItem = uiToolTip.ItemToolTip()
  242.         self.tooltipItem.Hide()
  243.  
  244.         self.tooltipSkill = uiToolTip.SkillToolTip()
  245.         self.tooltipSkill.Hide()
  246.  
  247.         self.privateShopBuilder = uiPrivateShopBuilder.PrivateShopBuilder()
  248.         self.privateShopBuilder.Hide()
  249.  
  250.         self.offlineShopBuilder = uiOfflineShopBuilder.OfflineShopBuilder()
  251.         self.offlineShopBuilder.Hide()
  252.  
  253.         self.dlgRefineNew = uiRefine.RefineDialogNew()
  254.         self.dlgRefineNew.Hide()
  255.  
  256.     def __MakeHelpWindow(self):
  257.         self.wndHelp = uiHelp.HelpWindow()
  258.         self.wndHelp.LoadDialog()
  259.         self.wndHelp.SetCloseEvent(ui.__mem_func__(self.CloseHelpWindow))
  260.         self.wndHelp.Hide()
  261.  
  262.     def __MakeTipBoard(self):
  263.         self.tipBoard = uiTip.TipBoard()
  264.         self.tipBoard.Hide()
  265.  
  266.         self.bigBoard = uiTip.BigBoard()
  267.         self.bigBoard.Hide()
  268.  
  269.     def __MakeWebWindow(self):
  270.         if constInfo.IN_GAME_SHOP_ENABLE:
  271.             import uiWeb
  272.             self.wndWeb = uiWeb.WebWindow()
  273.             self.wndWeb.LoadWindow()
  274.             self.wndWeb.Hide()
  275.  
  276.     if app.ENABLE_SASH_SYSTEM:
  277.         def __MakeSashWindow(self):
  278.             self.wndSashCombine = uisash.CombineWindow()
  279.             self.wndSashCombine.LoadWindow()
  280.             self.wndSashCombine.Hide()
  281.            
  282.             self.wndSashAbsorption = uisash.AbsorbWindow()
  283.             self.wndSashAbsorption.LoadWindow()
  284.             self.wndSashAbsorption.Hide()
  285.            
  286.             if self.wndInventory:
  287.                 self.wndInventory.SetSashWindow(self.wndSashCombine, self.wndSashAbsorption)
  288.            
  289.     def __MakeCubeWindow(self):
  290.         self.wndCube = uiCube.CubeWindow()
  291.         self.wndCube.LoadWindow()
  292.         self.wndCube.Hide()
  293.  
  294.     def __MakeCubeResultWindow(self):
  295.         self.wndCubeResult = uiCube.CubeResultWindow()
  296.         self.wndCubeResult.LoadWindow()
  297.         self.wndCubeResult.Hide()
  298.  
  299.     # ACCESSORY_REFINE_ADD_METIN_STONE
  300.     def __MakeItemSelectWindow(self):
  301.         self.wndItemSelect = uiSelectItem.SelectItemWindow()
  302.         self.wndItemSelect.Hide()
  303.     # END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
  304.                
  305.     def MakeInterface(self):
  306.         self.__MakeMessengerWindow()
  307.         self.__MakeGuildWindow()
  308.         self.__MakeChatWindow()
  309.         self.__MakeParty()
  310.         self.__MakeWindows()
  311.         self.__MakeDialogs()
  312.  
  313.         self.__MakeUICurtain()
  314.         self.__MakeTaskBar()
  315.         self.__MakeGameButtonWindow()
  316.         self.__MakeHelpWindow()
  317.         self.__MakeTipBoard()
  318.         self.__MakeWebWindow()
  319.         if app.ENABLE_SASH_SYSTEM:
  320.             self.__MakeSashWindow()
  321.         self.__MakeCubeWindow()
  322.         self.__MakeCubeResultWindow()
  323.        
  324.        
  325.         # ACCESSORY_REFINE_ADD_METIN_STONE
  326.         self.__MakeItemSelectWindow()
  327.         # END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
  328.  
  329.         self.questButtonList = []
  330.         self.whisperButtonList = []
  331.         self.whisperDialogDict = {}
  332.         self.privateShopAdvertisementBoardDict = {}
  333.  
  334.         self.wndInventory.SetItemToolTip(self.tooltipItem)
  335.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  336.             self.wndDragonSoul.SetItemToolTip(self.tooltipItem)
  337.             self.wndDragonSoulRefine.SetItemToolTip(self.tooltipItem)
  338.         self.wndSafebox.SetItemToolTip(self.tooltipItem)
  339.         if app.ENABLE_SASH_SYSTEM:
  340.             self.wndSashCombine.SetItemToolTip(self.tooltipItem)
  341.             self.wndSashAbsorption.SetItemToolTip(self.tooltipItem)
  342.         self.wndCube.SetItemToolTip(self.tooltipItem)
  343.         self.wndCubeResult.SetItemToolTip(self.tooltipItem)
  344.  
  345.         # ITEM_MALL
  346.         self.wndMall.SetItemToolTip(self.tooltipItem)
  347.         # END_OF_ITEM_MALL
  348.  
  349.         self.wndCharacter.SetSkillToolTip(self.tooltipSkill)
  350.         self.wndTaskBar.SetItemToolTip(self.tooltipItem)
  351.         self.wndTaskBar.SetSkillToolTip(self.tooltipSkill)
  352.         self.wndGuild.SetSkillToolTip(self.tooltipSkill)
  353.  
  354.         # ACCESSORY_REFINE_ADD_METIN_STONE
  355.         self.wndItemSelect.SetItemToolTip(self.tooltipItem)
  356.         # END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
  357.  
  358.         self.dlgShop.SetItemToolTip(self.tooltipItem)
  359.         self.dlgExchange.SetItemToolTip(self.tooltipItem)
  360.         self.privateShopBuilder.SetItemToolTip(self.tooltipItem)
  361.         self.dlgOfflineShop.SetItemToolTip(self.tooltipItem)
  362.         self.offlineShopBuilder.SetItemToolTip(self.tooltipItem)
  363.  
  364.         self.__InitWhisper()
  365.         self.DRAGON_SOUL_IS_QUALIFIED = TRUE
  366.  
  367.     def MakeHyperlinkTooltip(self, hyperlink):
  368.         tokens = hyperlink.split(":")
  369.         if tokens and len(tokens):
  370.             type = tokens[0]
  371.             if "item" == type:
  372.                 self.hyperlinkItemTooltip.SetHyperlinkItem(tokens)
  373.  
  374.     ## Make Windows & Dialogs
  375.     ################################
  376.  
  377.     def Close(self):
  378.  
  379.         if self.dlgWhisperWithoutTarget:
  380.             self.dlgWhisperWithoutTarget.Destroy()
  381.             del self.dlgWhisperWithoutTarget
  382.  
  383.         if uiQuest.QuestDialog.__dict__.has_key("QuestCurtain"):
  384.             uiQuest.QuestDialog.QuestCurtain.Close()
  385.  
  386.         if self.wndQuestWindow:
  387.             for eachQuestWindow in self.wndQuestWindow:
  388.                 eachQuestWindow.nextCurtainMode = -1
  389.                 eachQuestWindow.CloseSelf()
  390.                 eachQuestWindow = None
  391.  
  392.         if self.wndChat:
  393.             self.wndChat.Destroy()
  394.  
  395.         if self.wndTaskBar:
  396.             self.wndTaskBar.Destroy()
  397.        
  398.         if self.wndExpandedTaskBar:
  399.             self.wndExpandedTaskBar.Destroy()
  400.            
  401.         if self.wndEnergyBar:
  402.             self.wndEnergyBar.Destroy()
  403.  
  404.         if self.wndCharacter:
  405.             self.wndCharacter.Destroy()
  406.  
  407.         if self.wndInventory:
  408.             self.wndInventory.Destroy()
  409.            
  410.         if self.wndDragonSoul:
  411.             self.wndDragonSoul.Destroy()
  412.  
  413.         if self.wndDragonSoulRefine:
  414.             self.wndDragonSoulRefine.Destroy()
  415.  
  416.         if self.dlgExchange:
  417.             self.dlgExchange.Destroy()
  418.  
  419.         if self.dlgPointReset:
  420.             self.dlgPointReset.Destroy()
  421.  
  422.         if self.dlgShop:
  423.             self.dlgShop.Destroy()
  424.  
  425.         if self.dlgRestart:
  426.             self.dlgRestart.Destroy()
  427.  
  428.         if self.dlgSystem:
  429.             self.dlgSystem.Destroy()
  430.  
  431.         if self.dlgPassword:
  432.             self.dlgPassword.Destroy()
  433.  
  434.         if self.wndMiniMap:
  435.             self.wndMiniMap.Destroy()
  436.  
  437.         if self.wndSafebox:
  438.             self.wndSafebox.Destroy()
  439.  
  440.         if self.wndWeb:
  441.             self.wndWeb.Destroy()
  442.             self.wndWeb = None
  443.  
  444.         if self.wndMall:
  445.             self.wndMall.Destroy()
  446.  
  447.         if self.wndParty:
  448.             self.wndParty.Destroy()
  449.  
  450.         if self.wndHelp:
  451.             self.wndHelp.Destroy()
  452.  
  453.         if app.ENABLE_SASH_SYSTEM:
  454.             if self.wndSashCombine:
  455.                 self.wndSashCombine.Destroy()
  456.            
  457.             if self.wndSashAbsorption:
  458.                 self.wndSashAbsorption.Destroy()
  459.            
  460.         if self.wndCube:
  461.             self.wndCube.Destroy()
  462.            
  463.         if self.wndCubeResult:
  464.             self.wndCubeResult.Destroy()
  465.  
  466.         if self.wndMessenger:
  467.             self.wndMessenger.Destroy()
  468.  
  469.         if self.wndGuild:
  470.             self.wndGuild.Destroy()
  471.  
  472.         if self.privateShopBuilder:
  473.             self.privateShopBuilder.Destroy()
  474.  
  475.         if self.dlgRefineNew:
  476.             self.dlgRefineNew.Destroy()
  477.  
  478.         if self.wndGuildBuilding:
  479.             self.wndGuildBuilding.Destroy()
  480.  
  481.         if self.wndGameButton:
  482.             self.wndGameButton.Destroy()
  483.  
  484.         # ITEM_MALL
  485.         if self.mallPageDlg:
  486.             self.mallPageDlg.Destroy()
  487.         # END_OF_ITEM_MALL
  488.  
  489.         # ACCESSORY_REFINE_ADD_METIN_STONE
  490.         if self.wndItemSelect:
  491.             self.wndItemSelect.Destroy()
  492.         # END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
  493.  
  494.         if (self.dlgOfflineShop):
  495.             self.dlgOfflineShop.Destroy()
  496.            
  497.         if (self.offlineShopBuilder):
  498.             self.offlineShopBuilder.Destroy()
  499.            
  500.         # OFFLINE_SHOP_ADMIN_PANEL
  501.         if (self.wndOfflineShopAdminPanel):
  502.             self.wndOfflineShopAdminPanel.Destroy()
  503.         # END_OF_OFFLINE_SHOP_ADMIN_PANEL
  504.  
  505.         self.wndChatLog.Destroy()
  506.         for btn in self.questButtonList:
  507.             btn.SetEvent(0)
  508.         for btn in self.whisperButtonList:
  509.             btn.SetEvent(0)
  510.         for dlg in self.whisperDialogDict.itervalues():
  511.             dlg.Destroy()
  512.         for brd in self.guildScoreBoardDict.itervalues():
  513.             brd.Destroy()
  514.         for dlg in self.equipmentDialogDict.itervalues():
  515.             dlg.Destroy()
  516.  
  517.         # ITEM_MALL
  518.         del self.mallPageDlg
  519.         # END_OF_ITEM_MALL
  520.  
  521.         del self.wndGuild
  522.         del self.wndMessenger
  523.         del self.wndUICurtain
  524.         del self.wndChat
  525.         del self.wndTaskBar
  526.         if self.wndExpandedTaskBar:
  527.             del self.wndExpandedTaskBar
  528.         del self.wndEnergyBar
  529.         del self.wndCharacter
  530.         del self.wndInventory
  531.         if self.wndDragonSoul:
  532.             del self.wndDragonSoul
  533.         if self.wndDragonSoulRefine:
  534.             del self.wndDragonSoulRefine
  535.         del self.dlgExchange
  536.         del self.dlgPointReset
  537.         del self.dlgShop
  538.         del self.dlgRestart
  539.         del self.dlgSystem
  540.         del self.dlgPassword
  541.         del self.hyperlinkItemTooltip
  542.         del self.tooltipItem
  543.         del self.tooltipSkill
  544.         del self.wndMiniMap
  545.         del self.wndSafebox
  546.         del self.wndMall
  547.         del self.wndParty
  548.         del self.wndHelp
  549.         if app.ENABLE_SASH_SYSTEM:
  550.             del self.wndSashCombine
  551.             del self.wndSashAbsorption
  552.         del self.wndCube
  553.         del self.wndCubeResult
  554.         del self.privateShopBuilder
  555.         del self.inputDialog
  556.         del self.wndChatLog
  557.         del self.dlgRefineNew
  558.         del self.wndGuildBuilding
  559.         del self.wndGameButton
  560.         del self.tipBoard
  561.         del self.bigBoard
  562.         del self.wndItemSelect
  563.         del self.dlgOfflineShop
  564.         del self.wndOfflineShopAdminPanel
  565.  
  566.         self.questButtonList = []
  567.         self.whisperButtonList = []
  568.         self.whisperDialogDict = {}
  569.         self.privateShopAdvertisementBoardDict = {}
  570.         self.guildScoreBoardDict = {}
  571.         self.equipmentDialogDict = {}
  572.         self.offlineShopAdvertisementBoardDict = {}
  573.  
  574.         uiChat.DestroyChatInputSetWindow()
  575.  
  576.     ## Self
  577.     def SetOpenBoniSwitcherEvent(self, event):
  578.         self.wndInventory.SetOpenBoniSwitcherEvent(event)
  579.  
  580.     ## Skill
  581.     def OnUseSkill(self, slotIndex, coolTime):
  582.         self.wndCharacter.OnUseSkill(slotIndex, coolTime)
  583.         self.wndTaskBar.OnUseSkill(slotIndex, coolTime)
  584.         self.wndGuild.OnUseSkill(slotIndex, coolTime)
  585.  
  586.     def OnActivateSkill(self, slotIndex):
  587.         self.wndCharacter.OnActivateSkill(slotIndex)
  588.         self.wndTaskBar.OnActivateSkill(slotIndex)
  589.  
  590.     def OnDeactivateSkill(self, slotIndex):
  591.         self.wndCharacter.OnDeactivateSkill(slotIndex)
  592.         self.wndTaskBar.OnDeactivateSkill(slotIndex)
  593.  
  594.     def OnChangeCurrentSkill(self, skillSlotNumber):
  595.         self.wndTaskBar.OnChangeCurrentSkill(skillSlotNumber)
  596.  
  597.     def SelectMouseButtonEvent(self, dir, event):
  598.         self.wndTaskBar.SelectMouseButtonEvent(dir, event)
  599.  
  600.     ## Refresh
  601.     def RefreshAlignment(self):
  602.         self.wndCharacter.RefreshAlignment()
  603.  
  604.     def RefreshStatus(self):
  605.         self.wndTaskBar.RefreshStatus()
  606.         self.wndCharacter.RefreshStatus()
  607.         self.wndInventory.RefreshStatus()
  608.         if self.wndEnergyBar:
  609.             self.wndEnergyBar.RefreshStatus()
  610.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  611.             self.wndDragonSoul.RefreshStatus()
  612.  
  613.     def RefreshStamina(self):
  614.         self.wndTaskBar.RefreshStamina()
  615.  
  616.     def RefreshSkill(self):
  617.         self.wndCharacter.RefreshSkill()
  618.         self.wndTaskBar.RefreshSkill()
  619.  
  620.     def RefreshInventory(self):
  621.         self.wndTaskBar.RefreshQuickSlot()
  622.         self.wndInventory.RefreshItemSlot()
  623.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  624.             self.wndDragonSoul.RefreshItemSlot()
  625.  
  626.     def RefreshCharacter(self): ## Character ÆäÀÌÁöÀÇ ¾ó±¼, Inventory ÆäÀÌÁöÀÇ Àü½Å ±×¸² µîÀÇ Refresh
  627.         self.wndCharacter.RefreshCharacter()
  628.         self.wndTaskBar.RefreshQuickSlot()
  629.  
  630.     def RefreshQuest(self):
  631.         self.wndCharacter.RefreshQuest()
  632.  
  633.     def RefreshSafebox(self):
  634.         self.wndSafebox.RefreshSafebox()
  635.  
  636.     # ITEM_MALL
  637.     def RefreshMall(self):
  638.         self.wndMall.RefreshMall()
  639.  
  640.     def OpenItemMall(self):
  641.         if not self.mallPageDlg:
  642.             self.mallPageDlg = uiShop.MallPageDialog()
  643.  
  644.         self.mallPageDlg.Open()
  645.     # END_OF_ITEM_MALL
  646.  
  647.     def RefreshMessenger(self):
  648.         self.wndMessenger.RefreshMessenger()
  649.  
  650.     def RefreshGuildInfoPage(self):
  651.         self.wndGuild.RefreshGuildInfoPage()
  652.  
  653.     def RefreshGuildBoardPage(self):
  654.         self.wndGuild.RefreshGuildBoardPage()
  655.  
  656.     def RefreshGuildMemberPage(self):
  657.         self.wndGuild.RefreshGuildMemberPage()
  658.  
  659.     def RefreshGuildMemberPageGradeComboBox(self):
  660.         self.wndGuild.RefreshGuildMemberPageGradeComboBox()
  661.  
  662.     def RefreshGuildSkillPage(self):
  663.         self.wndGuild.RefreshGuildSkillPage()
  664.  
  665.     def RefreshGuildGradePage(self):
  666.         self.wndGuild.RefreshGuildGradePage()
  667.  
  668.     def DeleteGuild(self):
  669.         self.wndMessenger.ClearGuildMember()
  670.         self.wndGuild.DeleteGuild()
  671.  
  672.     def RefreshMobile(self):
  673.         self.dlgSystem.RefreshMobile()
  674.  
  675.     def OnMobileAuthority(self):
  676.         self.dlgSystem.OnMobileAuthority()
  677.  
  678.     def OnBlockMode(self, mode):
  679.         self.dlgSystem.OnBlockMode(mode)
  680.  
  681.     ## Calling Functions
  682.     # PointReset
  683.     def OpenPointResetDialog(self):
  684.         self.dlgPointReset.Show()
  685.         self.dlgPointReset.SetTop()
  686.  
  687.     def ClosePointResetDialog(self):
  688.         self.dlgPointReset.Close()
  689.  
  690.     # Shop
  691.     def OpenShopDialog(self, vid):
  692.         self.wndInventory.Show()
  693.         self.wndInventory.SetTop()
  694.         self.dlgShop.Open(vid)
  695.         self.dlgShop.SetTop()
  696.  
  697.     def CloseShopDialog(self):
  698.         self.dlgShop.Close()
  699.  
  700.     def RefreshShopDialog(self):
  701.         self.dlgShop.Refresh()
  702.  
  703.     # OfflineShop
  704.     def OpenOfflineShopDialog(self, vid):
  705.         self.wndInventory.Show()
  706.         self.wndInventory.SetTop()
  707.         self.dlgOfflineShop.Open(vid)
  708.         self.dlgOfflineShop.SetTop()
  709.        
  710.     def CloseOfflineShopDialog(self):  
  711.         self.dlgOfflineShop.Close()
  712.        
  713.     def RefreshOfflineShopDialog(self):
  714.         self.dlgOfflineShop.Refresh()
  715.  
  716.     ## Quest
  717.     def OpenCharacterWindowQuestPage(self):
  718.         self.wndCharacter.Show()
  719.         self.wndCharacter.SetState("QUEST")
  720.  
  721.     def OpenQuestWindow(self, skin, idx):
  722.  
  723.         wnds = ()
  724.  
  725.         q = uiQuest.QuestDialog(skin, idx)
  726.         q.SetWindowName("QuestWindow" + str(idx))
  727.         q.Show()
  728.         if skin:
  729.             q.Lock()
  730.             wnds = self.__HideWindows()
  731.  
  732.             # UNKNOWN_UPDATE
  733.             q.AddOnDoneEvent(lambda tmp_self, args=wnds: self.__ShowWindows(args))
  734.             # END_OF_UNKNOWN_UPDATE
  735.  
  736.         if skin:
  737.             q.AddOnCloseEvent(q.Unlock)
  738.        
  739.         q.AddOnCloseEvent(lambda s = self, qw = q: s.__dict__.__getitem__("wndQuestWindow").remove(qw))
  740.  
  741.         # UNKNOWN_UPDATE
  742.         self.wndQuestWindow.append(q)
  743.         # END_OF_UNKNOWN_UPDATE
  744.  
  745.     ## Exchange
  746.     def StartExchange(self):
  747.         self.dlgExchange.OpenDialog()
  748.         self.dlgExchange.Refresh()
  749.  
  750.     def EndExchange(self):
  751.         self.dlgExchange.CloseDialog()
  752.  
  753.     def RefreshExchange(self):
  754.         self.dlgExchange.Refresh()
  755.  
  756.     ## Party
  757.     def AddPartyMember(self, pid, name):
  758.         self.wndParty.AddPartyMember(pid, name)
  759.  
  760.         self.__ArrangeQuestButton()
  761.  
  762.     def UpdatePartyMemberInfo(self, pid):
  763.         self.wndParty.UpdatePartyMemberInfo(pid)
  764.  
  765.     def RemovePartyMember(self, pid):
  766.         self.wndParty.RemovePartyMember(pid)
  767.  
  768.         ##!! 20061026.levites.Äù½ºÆ®_À§Ä¡_º¸Á¤
  769.         self.__ArrangeQuestButton()
  770.  
  771.     def LinkPartyMember(self, pid, vid):
  772.         self.wndParty.LinkPartyMember(pid, vid)
  773.  
  774.     def UnlinkPartyMember(self, pid):
  775.         self.wndParty.UnlinkPartyMember(pid)
  776.  
  777.     def UnlinkAllPartyMember(self):
  778.         self.wndParty.UnlinkAllPartyMember()
  779.  
  780.     def ExitParty(self):
  781.         self.wndParty.ExitParty()
  782.  
  783.         ##!! 20061026.levites.Äù½ºÆ®_À§Ä¡_º¸Á¤
  784.         self.__ArrangeQuestButton()
  785.  
  786.     def PartyHealReady(self):
  787.         self.wndParty.PartyHealReady()
  788.  
  789.     def ChangePartyParameter(self, distributionMode):
  790.         self.wndParty.ChangePartyParameter(distributionMode)
  791.  
  792.     ## Safebox
  793.     def AskSafeboxPassword(self):
  794.         if self.wndSafebox.IsShow():
  795.             return
  796.  
  797.         # SAFEBOX_PASSWORD
  798.         self.dlgPassword.SetTitle(localeInfo.PASSWORD_TITLE)
  799.         self.dlgPassword.SetSendMessage("/safebox_password ")
  800.         # END_OF_SAFEBOX_PASSWORD
  801.  
  802.         self.dlgPassword.ShowDialog()
  803.  
  804.     def OpenSafeboxWindow(self, size):
  805.         self.dlgPassword.CloseDialog()
  806.         self.wndSafebox.ShowWindow(size)
  807.  
  808.     def RefreshSafeboxMoney(self):
  809.         self.wndSafebox.RefreshSafeboxMoney()
  810.  
  811.     def CommandCloseSafebox(self):
  812.         self.wndSafebox.CommandCloseSafebox()
  813.  
  814.     # ITEM_MALL
  815.     def AskMallPassword(self):
  816.         if self.wndMall.IsShow():
  817.             return
  818.         self.dlgPassword.SetTitle(localeInfo.MALL_PASSWORD_TITLE)
  819.         self.dlgPassword.SetSendMessage("/mall_password ")
  820.         self.dlgPassword.ShowDialog()
  821.  
  822.     def OpenMallWindow(self, size):
  823.         self.dlgPassword.CloseDialog()
  824.         self.wndMall.ShowWindow(size)
  825.  
  826.     def CommandCloseMall(self):
  827.         self.wndMall.CommandCloseMall()
  828.     # END_OF_ITEM_MALL
  829.  
  830.     ## Guild
  831.     def OnStartGuildWar(self, guildSelf, guildOpp):
  832.         self.wndGuild.OnStartGuildWar(guildSelf, guildOpp)
  833.  
  834.         guildWarScoreBoard = uiGuild.GuildWarScoreBoard()
  835.         guildWarScoreBoard.Open(guildSelf, guildOpp)
  836.         guildWarScoreBoard.Show()
  837.         self.guildScoreBoardDict[uiGuild.GetGVGKey(guildSelf, guildOpp)] = guildWarScoreBoard
  838.  
  839.     def OnEndGuildWar(self, guildSelf, guildOpp):
  840.         self.wndGuild.OnEndGuildWar(guildSelf, guildOpp)
  841.  
  842.         key = uiGuild.GetGVGKey(guildSelf, guildOpp)
  843.  
  844.         if not self.guildScoreBoardDict.has_key(key):
  845.             return
  846.  
  847.         self.guildScoreBoardDict[key].Destroy()
  848.         del self.guildScoreBoardDict[key]
  849.  
  850.     # GUILDWAR_MEMBER_COUNT
  851.     def UpdateMemberCount(self, gulidID1, memberCount1, guildID2, memberCount2):
  852.         key = uiGuild.GetGVGKey(gulidID1, guildID2)
  853.  
  854.         if not self.guildScoreBoardDict.has_key(key):
  855.             return
  856.  
  857.         self.guildScoreBoardDict[key].UpdateMemberCount(gulidID1, memberCount1, guildID2, memberCount2)
  858.     # END_OF_GUILDWAR_MEMBER_COUNT
  859.  
  860.     def OnRecvGuildWarPoint(self, gainGuildID, opponentGuildID, point):
  861.         key = uiGuild.GetGVGKey(gainGuildID, opponentGuildID)
  862.         if not self.guildScoreBoardDict.has_key(key):
  863.             return
  864.  
  865.         guildBoard = self.guildScoreBoardDict[key]
  866.         guildBoard.SetScore(gainGuildID, opponentGuildID, point)
  867.  
  868.     ## PK Mode
  869.     def OnChangePKMode(self):
  870.         self.wndCharacter.RefreshAlignment()
  871.         self.dlgSystem.OnChangePKMode()
  872.  
  873.     ## Refine
  874.     def OpenRefineDialog(self, targetItemPos, nextGradeItemVnum, cost, prob, type):
  875.         self.dlgRefineNew.Open(targetItemPos, nextGradeItemVnum, cost, prob, type)
  876.  
  877.     def AppendMaterialToRefineDialog(self, vnum, count):
  878.         self.dlgRefineNew.AppendMaterial(vnum, count)
  879.  
  880.     ## Show & Hide
  881.     def ShowDefaultWindows(self):
  882.         self.wndTaskBar.Show()
  883.         self.wndMiniMap.Show()
  884.         self.wndMiniMap.ShowMiniMap()
  885.         if self.wndEnergyBar:
  886.             self.wndEnergyBar.Show()
  887.  
  888.     def ShowAllWindows(self):
  889.         self.wndTaskBar.Show()
  890.         self.wndCharacter.Show()
  891.         self.wndInventory.Show()
  892.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  893.             self.wndDragonSoul.Show()
  894.             self.wndDragonSoulRefine.Show()
  895.         self.wndChat.Show()
  896.         self.wndMiniMap.Show()
  897.         if self.wndEnergyBar:
  898.             self.wndEnergyBar.Show()
  899.         if self.wndExpandedTaskBar:
  900.             self.wndExpandedTaskBar.Show()
  901.             self.wndExpandedTaskBar.SetTop()
  902.  
  903.     def HideAllWindows(self):
  904.         if self.wndTaskBar:
  905.             self.wndTaskBar.Hide()
  906.        
  907.         if self.wndEnergyBar:
  908.             self.wndEnergyBar.Hide()
  909.  
  910.         if self.wndCharacter:
  911.             self.wndCharacter.Hide()
  912.  
  913.         if self.wndInventory:
  914.             self.wndInventory.Hide()
  915.            
  916.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  917.             self.wndDragonSoul.Hide()
  918.             self.wndDragonSoulRefine.Hide()
  919.  
  920.         if self.wndChat:
  921.             self.wndChat.Hide()
  922.  
  923.         if self.wndMiniMap:
  924.             self.wndMiniMap.Hide()
  925.  
  926.         if self.wndMessenger:
  927.             self.wndMessenger.Hide()
  928.  
  929.         if self.wndGuild:
  930.             self.wndGuild.Hide()
  931.            
  932.         if self.wndExpandedTaskBar:
  933.             self.wndExpandedTaskBar.Hide()
  934.  
  935.  
  936.     def ShowMouseImage(self):
  937.         self.wndTaskBar.ShowMouseImage()
  938.  
  939.     def HideMouseImage(self):
  940.         self.wndTaskBar.HideMouseImage()
  941.  
  942.     def ToggleChat(self):
  943.         if TRUE == self.wndChat.IsEditMode():
  944.             self.wndChat.CloseChat()
  945.         else:
  946.             # À¥ÆäÀÌÁö°¡ ¿­·ÈÀ»¶§´Â äÆÃ ÀÔ·ÂÀÌ ¾ÈµÊ
  947.             if self.wndWeb and self.wndWeb.IsShow():
  948.                 pass
  949.             else:
  950.                 self.wndChat.OpenChat()
  951.  
  952.     def IsOpenChat(self):
  953.         return self.wndChat.IsEditMode()
  954.  
  955.     def SetChatFocus(self):
  956.         self.wndChat.SetChatFocus()
  957.  
  958.     def OpenRestartDialog(self):
  959.         self.dlgRestart.OpenDialog()
  960.         self.dlgRestart.SetTop()
  961.  
  962.     def CloseRestartDialog(self):
  963.         self.dlgRestart.Close()
  964.  
  965.     def ToggleSystemDialog(self):
  966.         if FALSE == self.dlgSystem.IsShow():
  967.             self.dlgSystem.OpenDialog()
  968.             self.dlgSystem.SetTop()
  969.         else:
  970.             self.dlgSystem.Close()
  971.  
  972.     def OpenSystemDialog(self):
  973.         self.dlgSystem.OpenDialog()
  974.         self.dlgSystem.SetTop()
  975.  
  976.     def ToggleMessenger(self):
  977.         if self.wndMessenger.IsShow():
  978.             self.wndMessenger.Hide()
  979.         else:
  980.             self.wndMessenger.SetTop()
  981.             self.wndMessenger.Show()
  982.  
  983.     def ToggleMiniMap(self):
  984.         if app.IsPressed(app.DIK_LSHIFT) or app.IsPressed(app.DIK_RSHIFT):
  985.             if FALSE == self.wndMiniMap.isShowMiniMap():
  986.                 self.wndMiniMap.ShowMiniMap()
  987.                 self.wndMiniMap.SetTop()
  988.             else:
  989.                 self.wndMiniMap.HideMiniMap()
  990.  
  991.         else:
  992.             self.wndMiniMap.ToggleAtlasWindow()
  993.  
  994.     def PressMKey(self):
  995.         if app.IsPressed(app.DIK_LALT) or app.IsPressed(app.DIK_RALT):
  996.             self.ToggleMessenger()
  997.  
  998.         else:
  999.             self.ToggleMiniMap()
  1000.  
  1001.     def SetMapName(self, mapName):
  1002.         self.wndMiniMap.SetMapName(mapName)
  1003.  
  1004.     def MiniMapScaleUp(self):
  1005.         self.wndMiniMap.ScaleUp()
  1006.  
  1007.     def MiniMapScaleDown(self):
  1008.         self.wndMiniMap.ScaleDown()
  1009.  
  1010.     def ToggleCharacterWindow(self, state):
  1011.         if FALSE == player.IsObserverMode():
  1012.             if FALSE == self.wndCharacter.IsShow():
  1013.                 self.OpenCharacterWindowWithState(state)
  1014.             else:
  1015.                 if state == self.wndCharacter.GetState():
  1016.                     self.wndCharacter.OverOutItem()
  1017.                     self.wndCharacter.Hide()
  1018.                 else:
  1019.                     self.wndCharacter.SetState(state)
  1020.  
  1021.     def OpenCharacterWindowWithState(self, state):
  1022.         if FALSE == player.IsObserverMode():
  1023.             self.wndCharacter.SetState(state)
  1024.             self.wndCharacter.Show()
  1025.             self.wndCharacter.SetTop()
  1026.  
  1027.     def ToggleCharacterWindowStatusPage(self):
  1028.         self.ToggleCharacterWindow("STATUS")
  1029.  
  1030.     def ToggleInventoryWindow(self):
  1031.         if time.clock() >= self.utilizareInventar:
  1032.             if FALSE == player.IsObserverMode():
  1033.                 if FALSE == self.wndInventory.IsShow():
  1034.                     self.wndInventory.Show()
  1035.                     self.wndInventory.SetTop()
  1036.                 else:
  1037.                     self.wndInventory.OverOutItem()
  1038.                     self.wndInventory.Close()
  1039.         else:
  1040.             chat.AppendChat(chat.CHAT_TYPE_INFO, "Mai asteapta cateva secunde pentru a putea folosi inventarul.")
  1041.  
  1042.    
  1043.     def ToggleExpandedButton(self):
  1044.         if FALSE == player.IsObserverMode():
  1045.             if FALSE == self.wndExpandedTaskBar.IsShow():
  1046.                 self.wndExpandedTaskBar.Show()
  1047.                 self.wndExpandedTaskBar.SetTop()
  1048.             else:
  1049.                 self.wndExpandedTaskBar.Close()
  1050.    
  1051.     # ¿ëÈ¥¼®
  1052.     def DragonSoulActivate(self, deck):
  1053.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1054.             self.wndDragonSoul.ActivateDragonSoulByExtern(deck)
  1055.  
  1056.     def DragonSoulDeactivate(self):
  1057.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1058.             self.wndDragonSoul.DeactivateDragonSoul()
  1059.        
  1060.     def Highligt_Item(self, inven_type, inven_pos):
  1061.         if player.DRAGON_SOUL_INVENTORY == inven_type:
  1062.             if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1063.                 self.wndDragonSoul.HighlightSlot(inven_pos)
  1064.  
  1065.     def ToggleDragonSoulWindow(self):
  1066.         if FALSE == player.IsObserverMode():
  1067.             if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1068.                 if FALSE == self.wndDragonSoul.IsShow():
  1069.                     if self.DRAGON_SOUL_IS_QUALIFIED:
  1070.                         self.wndDragonSoul.Show()
  1071.                     else:
  1072.                         try:
  1073.                             self.wndPopupDialog.SetText(localeInfo.DRAGON_SOUL_UNQUALIFIED)
  1074.                             self.wndPopupDialog.Open()
  1075.                         except:
  1076.                             self.wndPopupDialog = uiCommon.PopupDialog()
  1077.                             self.wndPopupDialog.SetText(localeInfo.DRAGON_SOUL_UNQUALIFIED)
  1078.                             self.wndPopupDialog.Open()
  1079.                 else:
  1080.                     self.wndDragonSoul.Close()
  1081.        
  1082.     def ToggleDragonSoulWindowWithNoInfo(self):
  1083.         if FALSE == player.IsObserverMode():
  1084.             if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1085.                 if FALSE == self.wndDragonSoul.IsShow():
  1086.                     if self.DRAGON_SOUL_IS_QUALIFIED:
  1087.                         self.wndDragonSoul.Show()
  1088.                 else:
  1089.                     self.wndDragonSoul.Close()
  1090.                
  1091.     def FailDragonSoulRefine(self, reason, inven_type, inven_pos):
  1092.         if FALSE == player.IsObserverMode():
  1093.             if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1094.                 if TRUE == self.wndDragonSoulRefine.IsShow():
  1095.                     self.wndDragonSoulRefine.RefineFail(reason, inven_type, inven_pos)
  1096.  
  1097.     def SucceedDragonSoulRefine(self, inven_type, inven_pos):
  1098.         if FALSE == player.IsObserverMode():
  1099.             if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1100.                 if TRUE == self.wndDragonSoulRefine.IsShow():
  1101.                     self.wndDragonSoulRefine.RefineSucceed(inven_type, inven_pos)
  1102.  
  1103.     def OpenDragonSoulRefineWindow(self):
  1104.         if FALSE == player.IsObserverMode():
  1105.             if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1106.                 if FALSE == self.wndDragonSoulRefine.IsShow():
  1107.                     self.wndDragonSoulRefine.Show()
  1108.                     if None != self.wndDragonSoul:
  1109.                         if FALSE == self.wndDragonSoul.IsShow():
  1110.                             self.wndDragonSoul.Show()
  1111.  
  1112.     def CloseDragonSoulRefineWindow(self):
  1113.         if FALSE == player.IsObserverMode():
  1114.             if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1115.                 if TRUE == self.wndDragonSoulRefine.IsShow():
  1116.                     self.wndDragonSoulRefine.Close()
  1117.    
  1118.     # Offline Shop Admin Panel
  1119.     def ToggleOfflineShopAdminPanelWindow(self):
  1120.         if (self.wndOfflineShopAdminPanel.IsShow() == True):
  1121.             self.wndOfflineShopAdminPanel.Close()
  1122.         else:
  1123.             self.wndOfflineShopAdminPanel.Show()
  1124.  
  1125.     def ToggleGuildWindow(self):
  1126.         if not self.wndGuild.IsShow():
  1127.             if self.wndGuild.CanOpen():
  1128.                 self.wndGuild.Open()
  1129.             else:
  1130.                 chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GUILD_YOU_DO_NOT_JOIN)
  1131.         else:
  1132.             self.wndGuild.OverOutItem()
  1133.             self.wndGuild.Hide()
  1134.  
  1135.     def ToggleChatLogWindow(self):
  1136.         if self.wndChatLog.IsShow():
  1137.             self.wndChatLog.Hide()
  1138.         else:
  1139.             self.wndChatLog.Show()
  1140.  
  1141.     def CheckGameButton(self):
  1142.         if self.wndGameButton:
  1143.             self.wndGameButton.CheckGameButton()
  1144.  
  1145.     def __OnClickStatusPlusButton(self):
  1146.         self.ToggleCharacterWindow("STATUS")
  1147.  
  1148.     def __OnClickSkillPlusButton(self):
  1149.         self.ToggleCharacterWindow("SKILL")
  1150.  
  1151.     def __OnClickQuestButton(self):
  1152.         self.ToggleCharacterWindow("QUEST")
  1153.  
  1154.     def __OnClickHelpButton(self):
  1155.         player.SetPlayTime(1)
  1156.         self.CheckGameButton()
  1157.         self.OpenHelpWindow()
  1158.  
  1159.     def __OnClickBuildButton(self):
  1160.         self.BUILD_OpenWindow()
  1161.  
  1162.     def OpenHelpWindow(self):
  1163.         self.wndUICurtain.Show()
  1164.         self.wndHelp.Open()
  1165.  
  1166.     def CloseHelpWindow(self):
  1167.         self.wndUICurtain.Hide()
  1168.         self.wndHelp.Close()
  1169.  
  1170.     def OpenWebWindow(self, url):
  1171.         self.wndWeb.Open(url)
  1172.  
  1173.         # À¥ÆäÀÌÁö¸¦ ¿­¸é äÆÃÀ» ´Ý´Â´Ù
  1174.         self.wndChat.CloseChat()
  1175.  
  1176.     # show GIFT
  1177.     def ShowGift(self):
  1178.         self.wndTaskBar.ShowGift()
  1179.            
  1180.     def CloseWbWindow(self):
  1181.         self.wndWeb.Close()
  1182.  
  1183.     if app.ENABLE_SASH_SYSTEM:
  1184.         def ActSash(self, iAct, bWindow):
  1185.             if iAct == 1:
  1186.                 if bWindow == True:
  1187.                     if not self.wndSashCombine.IsOpened():
  1188.                         self.wndSashCombine.Open()
  1189.                    
  1190.                     if not self.wndInventory.IsShow():
  1191.                         self.wndInventory.Show()
  1192.                 else:
  1193.                     if not self.wndSashAbsorption.IsOpened():
  1194.                         self.wndSashAbsorption.Open()
  1195.                    
  1196.                     if not self.wndInventory.IsShow():
  1197.                         self.wndInventory.Show()
  1198.                
  1199.                 self.wndInventory.RefreshBagSlotWindow()
  1200.             elif iAct == 2:
  1201.                 if bWindow == True:
  1202.                     if self.wndSashCombine.IsOpened():
  1203.                         self.wndSashCombine.Close()
  1204.                 else:
  1205.                     if self.wndSashAbsorption.IsOpened():
  1206.                         self.wndSashAbsorption.Close()
  1207.                
  1208.                 self.wndInventory.RefreshBagSlotWindow()
  1209.             elif iAct == 3 or iAct == 4:
  1210.                 if bWindow == True:
  1211.                     if self.wndSashCombine.IsOpened():
  1212.                         self.wndSashCombine.Refresh(iAct)
  1213.                 else:
  1214.                     if self.wndSashAbsorption.IsOpened():
  1215.                         self.wndSashAbsorption.Refresh(iAct)
  1216.                
  1217.                 self.wndInventory.RefreshBagSlotWindow()
  1218.        
  1219.     def OpenCubeWindow(self):
  1220.         self.wndCube.Open()
  1221.  
  1222.         if FALSE == self.wndInventory.IsShow():
  1223.             self.wndInventory.Show()
  1224.  
  1225.     def UpdateCubeInfo(self, gold, itemVnum, count):
  1226.         self.wndCube.UpdateInfo(gold, itemVnum, count)
  1227.  
  1228.     def CloseCubeWindow(self):
  1229.         self.wndCube.Close()
  1230.  
  1231.     def FailedCubeWork(self):
  1232.         self.wndCube.Refresh()
  1233.  
  1234.     def SucceedCubeWork(self, itemVnum, count):
  1235.         self.wndCube.Clear()
  1236.        
  1237.         print "Å¥ºê Á¦ÀÛ ¼º°ø! [%d:%d]" % (itemVnum, count)
  1238.  
  1239.         if 0: # °á°ú ¸Þ½ÃÁö Ãâ·ÂÀº »ý·« ÇÑ´Ù
  1240.             self.wndCubeResult.SetPosition(*self.wndCube.GetGlobalPosition())
  1241.             self.wndCubeResult.SetCubeResultItem(itemVnum, count)
  1242.             self.wndCubeResult.Open()
  1243.             self.wndCubeResult.SetTop()
  1244.  
  1245.     def __HideWindows(self):
  1246.         hideWindows = self.wndTaskBar,\
  1247.                         self.wndCharacter,\
  1248.                         self.wndInventory,\
  1249.                         self.wndMiniMap,\
  1250.                         self.wndGuild,\
  1251.                         self.wndMessenger,\
  1252.                         self.wndChat,\
  1253.                         self.wndParty,\
  1254.                         self.wndGameButton,
  1255.  
  1256.         if self.wndEnergyBar:
  1257.             hideWindows += self.wndEnergyBar,
  1258.            
  1259.         if self.wndExpandedTaskBar:
  1260.             hideWindows += self.wndExpandedTaskBar,
  1261.            
  1262.         if app.ENABLE_DRAGON_SOUL_SYSTEM:
  1263.             hideWindows += self.wndDragonSoul,\
  1264.                         self.wndDragonSoulRefine,
  1265.  
  1266.         hideWindows = filter(lambda x:x.IsShow(), hideWindows)
  1267.         map(lambda x:x.Hide(), hideWindows)
  1268.         import sys
  1269.  
  1270.         self.HideAllQuestButton()
  1271.         self.HideAllWhisperButton()
  1272.  
  1273.         if self.wndChat.IsEditMode():
  1274.             self.wndChat.CloseChat()
  1275.  
  1276.         return hideWindows
  1277.  
  1278.     def __ShowWindows(self, wnds):
  1279.         import sys
  1280.         map(lambda x:x.Show(), wnds)
  1281.         global IsQBHide
  1282.         if not IsQBHide:
  1283.             self.ShowAllQuestButton()
  1284.         else:
  1285.             self.HideAllQuestButton()
  1286.  
  1287.         self.ShowAllWhisperButton()
  1288.  
  1289.     def BINARY_OpenAtlasWindow(self):
  1290.         if self.wndMiniMap:
  1291.             self.wndMiniMap.ShowAtlas()
  1292.  
  1293.     def BINARY_SetObserverMode(self, flag):
  1294.         self.wndGameButton.SetObserverMode(flag)
  1295.  
  1296.     # ACCESSORY_REFINE_ADD_METIN_STONE
  1297.     def BINARY_OpenSelectItemWindow(self):
  1298.         self.wndItemSelect.Open()
  1299.     # END_OF_ACCESSORY_REFINE_ADD_METIN_STONE
  1300.  
  1301.     #####################################################################################
  1302.     ### Private Shop ###
  1303.  
  1304.     def OpenPrivateShopInputNameDialog(self):
  1305.         #if player.IsInSafeArea():
  1306.         #   chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CANNOT_OPEN_PRIVATE_SHOP_IN_SAFE_AREA)
  1307.         #   return
  1308.  
  1309.         inputDialog = uiCommon.InputDialog()
  1310.         inputDialog.SetTitle(localeInfo.PRIVATE_SHOP_INPUT_NAME_DIALOG_TITLE)
  1311.         inputDialog.SetMaxLength(32)
  1312.         inputDialog.SetAcceptEvent(ui.__mem_func__(self.OpenPrivateShopBuilder))
  1313.         inputDialog.SetCancelEvent(ui.__mem_func__(self.ClosePrivateShopInputNameDialog))
  1314.         inputDialog.Open()
  1315.         self.inputDialog = inputDialog
  1316.  
  1317.     def ClosePrivateShopInputNameDialog(self):
  1318.         self.inputDialog = None
  1319.         return TRUE
  1320.  
  1321.     def OpenPrivateShopBuilder(self):
  1322.  
  1323.         if not self.inputDialog:
  1324.             return TRUE
  1325.  
  1326.         if not len(self.inputDialog.GetText()):
  1327.             return TRUE
  1328.  
  1329.         self.privateShopBuilder.Open(self.inputDialog.GetText())
  1330.         self.ClosePrivateShopInputNameDialog()
  1331.         return TRUE
  1332.  
  1333.     def AppearPrivateShop(self, vid, text):
  1334.  
  1335.         board = uiPrivateShopBuilder.PrivateShopAdvertisementBoard()
  1336.         board.Open(vid, text)
  1337.  
  1338.         self.privateShopAdvertisementBoardDict[vid] = board
  1339.  
  1340.     def DisappearPrivateShop(self, vid):
  1341.  
  1342.         if not self.privateShopAdvertisementBoardDict.has_key(vid):
  1343.             return
  1344.  
  1345.         del self.privateShopAdvertisementBoardDict[vid]
  1346.         uiPrivateShopBuilder.DeleteADBoard(vid)
  1347.  
  1348.     #####################################################################################
  1349.     ### Offline Shop ###
  1350.    
  1351.     def OpenOfflineShopInputNameDialog(self):
  1352.         inputDialog = uiOfflineShop.OfflineShopInputDialog()
  1353.         inputDialog.SetAcceptEvent(ui.__mem_func__(self.OpenOfflineShopBuilder))
  1354.         inputDialog.SetCancelEvent(ui.__mem_func__(self.CloseOfflineShopInputNameDialog))
  1355.         inputDialog.Open()
  1356.         self.inputDialog = inputDialog
  1357.        
  1358.     def CloseOfflineShopInputNameDialog(self):
  1359.         self.inputDialog = None
  1360.         return True
  1361.    
  1362.     def OpenOfflineShopBuilder(self):
  1363.         if (not self.inputDialog):
  1364.             return True
  1365.            
  1366.         if (not len(self.inputDialog.GetTitle())):
  1367.             return True
  1368.            
  1369.         if (self.inputDialog.GetTime() < 0 or self.inputDialog.GetTime() == 0):
  1370.             return True
  1371.            
  1372.         self.offlineShopBuilder.Open(self.inputDialog.GetTitle(), self.inputDialog.GetTime())
  1373.         self.CloseOfflineShopInputNameDialog()
  1374.         return True
  1375.    
  1376.     def AppearOfflineShop(self, vid, text):
  1377.         board = uiOfflineShopBuilder.OfflineShopAdvertisementBoard()
  1378.         board.Open(vid, text)
  1379.        
  1380.         self.offlineShopAdvertisementBoardDict[vid] = board
  1381.        
  1382.     def DisappearOfflineShop(self, vid):
  1383.         if (not self.offlineShopAdvertisementBoardDict.has_key(vid)):
  1384.             return
  1385.            
  1386.         del self.offlineShopAdvertisementBoardDict[vid]
  1387.         uiOfflineShopBuilder.DeleteADBoard(vid)
  1388.  
  1389.     #####################################################################################
  1390.     ### Equipment ###
  1391.  
  1392.     def OpenEquipmentDialog(self, vid):
  1393.         dlg = uiEquipmentDialog.EquipmentDialog()
  1394.         dlg.SetItemToolTip(self.tooltipItem)
  1395.         dlg.SetCloseEvent(ui.__mem_func__(self.CloseEquipmentDialog))
  1396.         dlg.Open(vid)
  1397.  
  1398.         self.equipmentDialogDict[vid] = dlg
  1399.  
  1400.     def SetEquipmentDialogItem(self, vid, slotIndex, vnum, count):
  1401.         if not vid in self.equipmentDialogDict:
  1402.             return
  1403.         self.equipmentDialogDict[vid].SetEquipmentDialogItem(slotIndex, vnum, count)
  1404.  
  1405.     def SetEquipmentDialogSocket(self, vid, slotIndex, socketIndex, value):
  1406.         if not vid in self.equipmentDialogDict:
  1407.             return
  1408.         self.equipmentDialogDict[vid].SetEquipmentDialogSocket(slotIndex, socketIndex, value)
  1409.  
  1410.     def SetEquipmentDialogAttr(self, vid, slotIndex, attrIndex, type, value):
  1411.         if not vid in self.equipmentDialogDict:
  1412.             return
  1413.         self.equipmentDialogDict[vid].SetEquipmentDialogAttr(slotIndex, attrIndex, type, value)
  1414.  
  1415.     def CloseEquipmentDialog(self, vid):
  1416.         if not vid in self.equipmentDialogDict:
  1417.             return
  1418.         del self.equipmentDialogDict[vid]
  1419.  
  1420.     #####################################################################################
  1421.  
  1422.     #####################################################################################
  1423.     ### Quest ###  
  1424.     def BINARY_ClearQuest(self, index):
  1425.         btn = self.__FindQuestButton(index)
  1426.         if 0 != btn:
  1427.             self.__DestroyQuestButton(btn)     
  1428.    
  1429.     def RecvQuest(self, index, name):
  1430.         # QUEST_LETTER_IMAGE
  1431.         self.BINARY_RecvQuest(index, name, "file", localeInfo.GetLetterImageName())
  1432.         # END_OF_QUEST_LETTER_IMAGE
  1433.  
  1434.     def BINARY_RecvQuest(self, index, name, iconType, iconName):
  1435.  
  1436.         btn = self.__FindQuestButton(index)
  1437.         if 0 != btn:
  1438.             self.__DestroyQuestButton(btn)
  1439.  
  1440.         btn = uiWhisper.WhisperButton()
  1441.  
  1442.         # QUEST_LETTER_IMAGE
  1443.         ##!! 20061026.levites.Äù½ºÆ®_À̹ÌÁö_±³Ã¼
  1444.         import item
  1445.         if "item"==iconType:
  1446.             item.SelectItem(int(iconName))
  1447.             buttonImageFileName=item.GetIconImageFileName()
  1448.         else:
  1449.             buttonImageFileName=iconName
  1450.  
  1451.         if localeInfo.IsEUROPE():
  1452.             if "highlight" == iconType:
  1453.                 btn.SetUpVisual("locale/ymir_ui/highlighted_quest.tga")
  1454.                 btn.SetOverVisual("locale/ymir_ui/highlighted_quest_r.tga")
  1455.                 btn.SetDownVisual("locale/ymir_ui/highlighted_quest_r.tga")
  1456.             else:
  1457.                 btn.SetUpVisual(localeInfo.GetLetterCloseImageName())
  1458.                 btn.SetOverVisual(localeInfo.GetLetterOpenImageName())
  1459.                 btn.SetDownVisual(localeInfo.GetLetterOpenImageName())             
  1460.         else:
  1461.             btn.SetUpVisual(buttonImageFileName)
  1462.             btn.SetOverVisual(buttonImageFileName)
  1463.             btn.SetDownVisual(buttonImageFileName)
  1464.             btn.Flash()
  1465.         # END_OF_QUEST_LETTER_IMAGE
  1466.  
  1467.         if localeInfo.IsARABIC():
  1468.             btn.SetToolTipText(name, 0, 35)
  1469.             btn.ToolTipText.SetHorizontalAlignCenter()
  1470.         else:
  1471.             btn.SetToolTipText(name, -20, 35)
  1472.             btn.ToolTipText.SetHorizontalAlignLeft()
  1473.            
  1474.         btn.SetEvent(ui.__mem_func__(self.__StartQuest), btn)
  1475.         btn.Show()
  1476.  
  1477.         btn.index = index
  1478.         btn.name = name
  1479.  
  1480.         self.questButtonList.insert(0, btn)
  1481.         self.__ArrangeQuestButton()
  1482.  
  1483.         #chat.AppendChat(chat.CHAT_TYPE_NOTICE, localeInfo.QUEST_APPEND)
  1484.  
  1485.     def __ArrangeQuestButton(self):
  1486.  
  1487.         screenWidth = wndMgr.GetScreenWidth()
  1488.         screenHeight = wndMgr.GetScreenHeight()
  1489.  
  1490.         ##!! 20061026.levites.Äù½ºÆ®_À§Ä¡_º¸Á¤
  1491.         if self.wndParty.IsShow():
  1492.             xPos = 100 + 30
  1493.         else:
  1494.             xPos = 20
  1495.  
  1496.         if localeInfo.IsARABIC():
  1497.             xPos = xPos + 15
  1498.  
  1499.         yPos = 170 * screenHeight / 600
  1500.         yCount = (screenHeight - 330) / 63
  1501.  
  1502.         count = 0
  1503.         for btn in self.questButtonList:
  1504.  
  1505.             btn.SetPosition(xPos + (int(count/yCount) * 100), yPos + (count%yCount * 63))
  1506.             count += 1
  1507.             global IsQBHide
  1508.             if IsQBHide:
  1509.                 btn.Hide()
  1510.             else:
  1511.                 btn.Show()
  1512.  
  1513.     def __StartQuest(self, btn):
  1514.         event.QuestButtonClick(btn.index)
  1515.         self.__DestroyQuestButton(btn)
  1516.  
  1517.     def __FindQuestButton(self, index):
  1518.         for btn in self.questButtonList:
  1519.             if btn.index == index:
  1520.                 return btn
  1521.  
  1522.         return 0
  1523.  
  1524.     def __DestroyQuestButton(self, btn):
  1525.         btn.SetEvent(0)
  1526.         self.questButtonList.remove(btn)
  1527.         self.__ArrangeQuestButton()
  1528.  
  1529.     def HideAllQuestButton(self):
  1530.         for btn in self.questButtonList:
  1531.             btn.Hide()
  1532.  
  1533.     def ShowAllQuestButton(self):
  1534.         for btn in self.questButtonList:
  1535.             btn.Show()
  1536.     #####################################################################################
  1537.  
  1538.     #####################################################################################
  1539.     ### Whisper ###
  1540.  
  1541.     def __InitWhisper(self):
  1542.         chat.InitWhisper(self)
  1543.  
  1544.     ## äÆÃâÀÇ "¸Þ½ÃÁö º¸³»±â"¸¦ ´­·¶À»¶§ À̸§ ¾ø´Â ´ëȭâÀ» ¿©´Â ÇÔ¼ö
  1545.     ## À̸§ÀÌ ¾ø±â ¶§¹®¿¡ ±âÁ¸ÀÇ WhisperDialogDict ¿Í º°µµ·Î °ü¸®µÈ´Ù.
  1546.     def OpenWhisperDialogWithoutTarget(self):
  1547.         if not self.dlgWhisperWithoutTarget:
  1548.             dlgWhisper = uiWhisper.WhisperDialog(self.MinimizeWhisperDialog, self.CloseWhisperDialog)
  1549.             dlgWhisper.BindInterface(self)
  1550.             dlgWhisper.LoadDialog()
  1551.             dlgWhisper.OpenWithoutTarget(self.RegisterTemporaryWhisperDialog)
  1552.             dlgWhisper.SetPosition(self.windowOpenPosition*30,self.windowOpenPosition*30)
  1553.             dlgWhisper.Show()
  1554.             self.dlgWhisperWithoutTarget = dlgWhisper
  1555.  
  1556.             self.windowOpenPosition = (self.windowOpenPosition+1) % 5
  1557.  
  1558.         else:
  1559.             self.dlgWhisperWithoutTarget.SetTop()
  1560.             self.dlgWhisperWithoutTarget.OpenWithoutTarget(self.RegisterTemporaryWhisperDialog)
  1561.  
  1562.     ## À̸§ ¾ø´Â ´ëȭâ¿¡¼­ À̸§À» °áÁ¤ÇßÀ»¶§ WhisperDialogDict¿¡ âÀ» ³Ö¾îÁÖ´Â ÇÔ¼ö
  1563.     def RegisterTemporaryWhisperDialog(self, name):
  1564.         if not self.dlgWhisperWithoutTarget:
  1565.             return
  1566.  
  1567.         btn = self.__FindWhisperButton(name)
  1568.         if 0 != btn:
  1569.             self.__DestroyWhisperButton(btn)
  1570.  
  1571.         elif self.whisperDialogDict.has_key(name):
  1572.             oldDialog = self.whisperDialogDict[name]
  1573.             oldDialog.Destroy()
  1574.             del self.whisperDialogDict[name]
  1575.  
  1576.         self.whisperDialogDict[name] = self.dlgWhisperWithoutTarget
  1577.         self.dlgWhisperWithoutTarget.OpenWithTarget(name)
  1578.         self.dlgWhisperWithoutTarget = None
  1579.         self.__CheckGameMaster(name)
  1580.  
  1581.     ## ij¸¯ÅÍ ¸Þ´ºÀÇ 1:1 ´ëÈ­ Çϱ⸦ ´­·¶À»¶§ À̸§À» °¡Áö°í ¹Ù·Î âÀ» ¿©´Â ÇÔ¼ö
  1582.     def OpenWhisperDialog(self, name):
  1583.         if not self.whisperDialogDict.has_key(name):
  1584.             dlg = self.__MakeWhisperDialog(name)
  1585.             dlg.OpenWithTarget(name)
  1586.             dlg.chatLine.SetFocus()
  1587.             dlg.Show()
  1588.  
  1589.             self.__CheckGameMaster(name)
  1590.             btn = self.__FindWhisperButton(name)
  1591.             if 0 != btn:
  1592.                 self.__DestroyWhisperButton(btn)
  1593.  
  1594.     ## ´Ù¸¥ ij¸¯ÅͷκÎÅÍ ¸Þ¼¼Áö¸¦ ¹Þ¾ÒÀ»¶§ ÀÏ´Ü ¹öư¸¸ ¶ç¿ö µÎ´Â ÇÔ¼ö
  1595.     def RecvWhisper(self, name):
  1596.         if not self.whisperDialogDict.has_key(name):
  1597.             btn = self.__FindWhisperButton(name)
  1598.             if 0 == btn:
  1599.                 btn = self.__MakeWhisperButton(name)
  1600.                 btn.Flash()
  1601.  
  1602.                 chat.AppendChat(chat.CHAT_TYPE_NOTICE, localeInfo.RECEIVE_MESSAGE % (name))
  1603.  
  1604.             else:
  1605.                 btn.Flash()
  1606.         elif self.IsGameMasterName(name):
  1607.             dlg = self.whisperDialogDict[name]
  1608.             dlg.SetGameMasterLook()
  1609.  
  1610.     def MakeWhisperButton(self, name):
  1611.         self.__MakeWhisperButton(name)
  1612.  
  1613.     ## ¹öưÀ» ´­·¶À»¶§ âÀ» ¿©´Â ÇÔ¼ö
  1614.     def ShowWhisperDialog(self, btn):
  1615.         try:
  1616.             self.__MakeWhisperDialog(btn.name)
  1617.             dlgWhisper = self.whisperDialogDict[btn.name]
  1618.             dlgWhisper.OpenWithTarget(btn.name)
  1619.             dlgWhisper.Show()
  1620.             self.__CheckGameMaster(btn.name)
  1621.         except:
  1622.             import dbg
  1623.             dbg.TraceError("interface.ShowWhisperDialog - Failed to find key")
  1624.  
  1625.         ## ¹öư ÃʱâÈ­
  1626.         self.__DestroyWhisperButton(btn)
  1627.  
  1628.     ## WhisperDialog â¿¡¼­ ÃÖ¼ÒÈ­ ¸í·ÉÀ» ¼öÇàÇßÀ»¶§ È£ÃâµÇ´Â ÇÔ¼ö
  1629.     ## âÀ» ÃÖ¼ÒÈ­ ÇÕ´Ï´Ù.
  1630.     def MinimizeWhisperDialog(self, name):
  1631.  
  1632.         if 0 != name:
  1633.             self.__MakeWhisperButton(name)
  1634.  
  1635.         self.CloseWhisperDialog(name)
  1636.  
  1637.     ## WhisperDialog â¿¡¼­ ´Ý±â ¸í·ÉÀ» ¼öÇàÇßÀ»¶§ È£ÃâµÇ´Â ÇÔ¼ö
  1638.     ## âÀ» Áö¿ó´Ï´Ù.
  1639.     def CloseWhisperDialog(self, name):
  1640.  
  1641.         if 0 == name:
  1642.  
  1643.             if self.dlgWhisperWithoutTarget:
  1644.                 self.dlgWhisperWithoutTarget.Destroy()
  1645.                 self.dlgWhisperWithoutTarget = None
  1646.  
  1647.             return
  1648.  
  1649.         try:
  1650.             dlgWhisper = self.whisperDialogDict[name]
  1651.             dlgWhisper.Destroy()
  1652.             del self.whisperDialogDict[name]
  1653.         except:
  1654.             import dbg
  1655.             dbg.TraceError("interface.CloseWhisperDialog - Failed to find key")
  1656.  
  1657.     ## ¹öưÀÇ °³¼ö°¡ ¹Ù²î¾úÀ»¶§ ¹öưÀ» ÀçÁ¤·Ä ÇÏ´Â ÇÔ¼ö
  1658.     def __ArrangeWhisperButton(self):
  1659.  
  1660.         screenWidth = wndMgr.GetScreenWidth()
  1661.         screenHeight = wndMgr.GetScreenHeight()
  1662.  
  1663.         xPos = screenWidth - 70
  1664.         yPos = 170 * screenHeight / 600
  1665.         yCount = (screenHeight - 330) / 63
  1666.         #yCount = (screenHeight - 285) / 63
  1667.  
  1668.         count = 0
  1669.         for button in self.whisperButtonList:
  1670.  
  1671.             button.SetPosition(xPos + (int(count/yCount) * -50), yPos + (count%yCount * 63))
  1672.             count += 1
  1673.  
  1674.     ## À̸§À¸·Î Whisper ¹öưÀ» ã¾Æ ¸®ÅÏÇØ ÁÖ´Â ÇÔ¼ö
  1675.     ## ¹öưÀº µñ¼Å³Ê¸®·Î ÇÏÁö ¾Ê´Â °ÍÀº Á¤·Ä µÇ¾î ¹ö·Á ¼ø¼­°¡ À¯Áö µÇÁö ¾ÊÀ¸¸ç
  1676.     ## ÀÌ·Î ÀÎÇØ ToolTipµéÀÌ ´Ù¸¥ ¹öưµé¿¡ ÀÇÇØ °¡·ÁÁö±â ¶§¹®ÀÌ´Ù.
  1677.     def __FindWhisperButton(self, name):
  1678.         for button in self.whisperButtonList:
  1679.             if button.name == name:
  1680.                 return button
  1681.  
  1682.         return 0
  1683.  
  1684.     ## âÀ» ¸¸µì´Ï´Ù.
  1685.     def __MakeWhisperDialog(self, name):
  1686.         dlgWhisper = uiWhisper.WhisperDialog(self.MinimizeWhisperDialog, self.CloseWhisperDialog)
  1687.         dlgWhisper.BindInterface(self)
  1688.         dlgWhisper.LoadDialog()
  1689.         dlgWhisper.SetPosition(self.windowOpenPosition*30,self.windowOpenPosition*30)
  1690.         self.whisperDialogDict[name] = dlgWhisper
  1691.  
  1692.         self.windowOpenPosition = (self.windowOpenPosition+1) % 5
  1693.  
  1694.         return dlgWhisper
  1695.  
  1696.     ## ¹öưÀ» ¸¸µì´Ï´Ù.
  1697.     def __MakeWhisperButton(self, name):
  1698.         whisperButton = uiWhisper.WhisperButton()
  1699.         whisperButton.SetUpVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
  1700.         whisperButton.SetOverVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
  1701.         whisperButton.SetDownVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
  1702.         if self.IsGameMasterName(name):
  1703.             whisperButton.SetToolTipTextWithColor(name, 0xffffa200)
  1704.         else:
  1705.             whisperButton.SetToolTipText(name)
  1706.         whisperButton.ToolTipText.SetHorizontalAlignCenter()
  1707.         whisperButton.SetEvent(ui.__mem_func__(self.ShowWhisperDialog), whisperButton)
  1708.         whisperButton.Show()
  1709.         whisperButton.name = name
  1710.  
  1711.         self.whisperButtonList.insert(0, whisperButton)
  1712.         self.__ArrangeWhisperButton()
  1713.  
  1714.         return whisperButton
  1715.  
  1716.     def __DestroyWhisperButton(self, button):
  1717.         button.SetEvent(0)
  1718.         self.whisperButtonList.remove(button)
  1719.         self.__ArrangeWhisperButton()
  1720.  
  1721.     def HideAllWhisperButton(self):
  1722.         for btn in self.whisperButtonList:
  1723.             btn.Hide()
  1724.  
  1725.     def ShowAllWhisperButton(self):
  1726.         for btn in self.whisperButtonList:
  1727.             btn.Show()
  1728.  
  1729.     def __CheckGameMaster(self, name):
  1730.         if not self.listGMName.has_key(name):
  1731.             return
  1732.         if self.whisperDialogDict.has_key(name):
  1733.             dlg = self.whisperDialogDict[name]
  1734.             dlg.SetGameMasterLook()
  1735.  
  1736.     def RegisterGameMasterName(self, name):
  1737.         if self.listGMName.has_key(name):
  1738.             return
  1739.         self.listGMName[name] = "GM"
  1740.  
  1741.     def IsGameMasterName(self, name):
  1742.         if self.listGMName.has_key(name):
  1743.             return TRUE
  1744.         else:
  1745.             return FALSE
  1746.  
  1747.     #####################################################################################
  1748.  
  1749.     #####################################################################################
  1750.     ### Guild Building ###
  1751.  
  1752.     def BUILD_OpenWindow(self):
  1753.         self.wndGuildBuilding = uiGuild.BuildGuildBuildingWindow()
  1754.         self.wndGuildBuilding.Open()
  1755.         self.wndGuildBuilding.wnds = self.__HideWindows()
  1756.         self.wndGuildBuilding.SetCloseEvent(ui.__mem_func__(self.BUILD_CloseWindow))
  1757.  
  1758.     def BUILD_CloseWindow(self):
  1759.         self.__ShowWindows(self.wndGuildBuilding.wnds)
  1760.         self.wndGuildBuilding = None
  1761.  
  1762.     def BUILD_OnUpdate(self):
  1763.         if not self.wndGuildBuilding:
  1764.             return
  1765.  
  1766.         if self.wndGuildBuilding.IsPositioningMode():
  1767.             import background
  1768.             x, y, z = background.GetPickingPoint()
  1769.             self.wndGuildBuilding.SetBuildingPosition(x, y, z)
  1770.  
  1771.     def BUILD_OnMouseLeftButtonDown(self):
  1772.         if not self.wndGuildBuilding:
  1773.             return
  1774.  
  1775.         # GUILD_BUILDING
  1776.         if self.wndGuildBuilding.IsPositioningMode():
  1777.             self.wndGuildBuilding.SettleCurrentPosition()
  1778.             return TRUE
  1779.         elif self.wndGuildBuilding.IsPreviewMode():
  1780.             pass
  1781.         else:
  1782.             return TRUE
  1783.         # END_OF_GUILD_BUILDING
  1784.         return FALSE
  1785.  
  1786.     def BUILD_OnMouseLeftButtonUp(self):
  1787.         if not self.wndGuildBuilding:
  1788.             return
  1789.  
  1790.         if not self.wndGuildBuilding.IsPreviewMode():
  1791.             return TRUE
  1792.  
  1793.         return FALSE
  1794.  
  1795.     def BULID_EnterGuildArea(self, areaID):
  1796.         # GUILD_BUILDING
  1797.         mainCharacterName = player.GetMainCharacterName()
  1798.         masterName = guild.GetGuildMasterName()
  1799.  
  1800.         if mainCharacterName != masterName:
  1801.             return
  1802.  
  1803.         if areaID != player.GetGuildID():
  1804.             return
  1805.         # END_OF_GUILD_BUILDING
  1806.  
  1807.         self.wndGameButton.ShowBuildButton()
  1808.  
  1809.     def BULID_ExitGuildArea(self, areaID):
  1810.         self.wndGameButton.HideBuildButton()
  1811.  
  1812.     #####################################################################################
  1813.  
  1814.     def IsEditLineFocus(self):
  1815.         if self.ChatWindow.chatLine.IsFocus():
  1816.             return 1
  1817.  
  1818.         if self.ChatWindow.chatToLine.IsFocus():
  1819.             return 1
  1820.  
  1821.         return 0
  1822.  
  1823.     def EmptyFunction(self):
  1824.         pass
  1825.  
  1826. if __name__ == "__main__":
  1827.  
  1828.     import app
  1829.     import wndMgr
  1830.     import systemSetting
  1831.     import mouseModule
  1832.     import grp
  1833.     import ui
  1834.     import localeInfo
  1835.  
  1836.     app.SetMouseHandler(mouseModule.mouseController)
  1837.     app.SetHairColorEnable(TRUE)
  1838.     wndMgr.SetMouseHandler(mouseModule.mouseController)
  1839.     wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
  1840.     app.Create(localeInfo.APP_TITLE, systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
  1841.     mouseModule.mouseController.Create()
  1842.  
  1843.     class TestGame(ui.Window):
  1844.         def __init__(self):
  1845.             ui.Window.__init__(self)
  1846.  
  1847.             localeInfo.LoadLocaleData()
  1848.             player.SetItemData(0, 27001, 10)
  1849.             player.SetItemData(1, 27004, 10)
  1850.  
  1851.             self.interface = Interface()
  1852.             self.interface.MakeInterface()
  1853.             self.interface.ShowDefaultWindows()
  1854.             self.interface.RefreshInventory()
  1855.             #self.interface.OpenCubeWindow()
  1856.  
  1857.         def __del__(self):
  1858.             ui.Window.__del__(self)
  1859.  
  1860.         def OnUpdate(self):
  1861.             app.UpdateGame()
  1862.  
  1863.         def OnRender(self):
  1864.             app.RenderGame()
  1865.             grp.PopState()
  1866.             grp.SetInterfaceRenderState()
  1867.  
  1868.     game = TestGame()
  1869.     game.SetSize(systemSetting.GetWidth(), systemSetting.GetHeight())
  1870.     game.Show()
  1871.  
  1872.     app.Loop()
Advertisement
Add Comment
Please, Sign In to add comment