Advertisement
Guest User

Untitled

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