1. import ui
  2. import snd
  3. import systemSetting
  4. import net
  5. import chat
  6. import app
  7. import localeInfo
  8. import constInfo
  9. import chrmgr
  10. import player
  11. import uiPrivateShopBuilder
  12. import interfaceModule
  13. import background
  14. blockMode = 0
  15. viewChatMode = 0
  16. MOBILE = False
  17. if localeInfo.IsYMIR():
  18. MOBILE = True
  19. class OptionDialog(ui.ScriptWindow):
  20. def __init__(self):
  21. ui.ScriptWindow.__init__(self)
  22. self.__Initialize()
  23. self.__Load()
  24. self.RefreshViewChat()
  25. self.RefreshAlwaysShowName()
  26. self.RefreshShowDamage()
  27. self.RefreshShowSalesText()
  28. self.arayuzmod()
  29. def __del__(self):
  30. ui.ScriptWindow.__del__(self)
  31. print " -------------------------------------- DELETE GAME OPTION DIALOG"
  32. def __Initialize(self):
  33. self.kargordumabi = []
  34. self.titleBar = 0
  35. self.nameColorModeButtonList = []
  36. self.viewTargetBoardButtonList = []
  37. self.pvpModeButtonDict = {}
  38. self.blockButtonList = []
  39. self.viewChatButtonList = []
  40. self.alwaysShowNameButtonList = []
  41. self.showDamageButtonList = []
  42. self.showsalesTextButtonList = []
  43. self.arayuzButtonList = []
  44. def Destroy(self):
  45. self.ClearDictionary()
  46. self.__Initialize()
  47. print " -------------------------------------- DESTROY GAME OPTION DIALOG"
  48. def __Load_LoadScript(self, fileName):
  49. try:
  50. pyScriptLoader = ui.PythonScriptLoader()
  51. pyScriptLoader.LoadScriptFile(self, fileName)
  52. except:
  53. import exception
  54. exception.Abort("OptionDialog.__Load_LoadScript")
  55. def __Load_BindObject(self):
  56. try:
  57. GetObject = self.GetChild
  58. self.titleBar = GetObject("titlebar")
  59. self.nameColorModeButtonList.append(GetObject("name_color_normal"))
  60. self.nameColorModeButtonList.append(GetObject("name_color_empire"))
  61. self.viewTargetBoardButtonList.append(GetObject("target_board_no_view"))
  62. self.viewTargetBoardButtonList.append(GetObject("target_board_view"))
  63. self.pvpModeButtonDict[player.PK_MODE_PEACE] = GetObject("pvp_peace")
  64. self.pvpModeButtonDict[player.PK_MODE_REVENGE] = GetObject("pvp_revenge")
  65. self.pvpModeButtonDict[player.PK_MODE_GUILD] = GetObject("pvp_guild")
  66. self.pvpModeButtonDict[player.PK_MODE_FREE] = GetObject("pvp_free")
  67. self.blockButtonList.append(GetObject("block_exchange_button"))
  68. self.blockButtonList.append(GetObject("block_party_button"))
  69. self.blockButtonList.append(GetObject("block_guild_button"))
  70. self.blockButtonList.append(GetObject("block_whisper_button"))
  71. self.blockButtonList.append(GetObject("block_friend_button"))
  72. self.blockButtonList.append(GetObject("block_party_request_button"))
  73. self.viewChatButtonList.append(GetObject("view_chat_on_button"))
  74. self.viewChatButtonList.append(GetObject("view_chat_off_button"))
  75. self.alwaysShowNameButtonList.append(GetObject("always_show_name_on_button"))
  76. self.alwaysShowNameButtonList.append(GetObject("always_show_name_off_button"))
  77. self.showDamageButtonList.append(GetObject("show_damage_on_button"))
  78. self.showDamageButtonList.append(GetObject("show_damage_off_button"))
  79. self.arayuzButtonList.append(GetObject("arayuz_on_button"))
  80. self.arayuzButtonList.append(GetObject("arayuz_off_button"))
  81. self.showsalesTextButtonList.append(GetObject("salestext_on_button"))
  82. self.showsalesTextButtonList.append(GetObject("salestext_off_button"))
  83. self.kargordumabi.append(GetObject("snow_aktif"))
  84. self.kargordumabi.append(GetObject("snow_pasif"))
  85. self.ctrlShopNamesRange = GetObject("salestext_range_controller")
  86. global MOBILE
  87. if MOBILE:
  88. self.inputMobileButton = GetObject("input_mobile_button")
  89. self.deleteMobileButton = GetObject("delete_mobile_button")
  90. except:
  91. import exception
  92. exception.Abort("OptionDialog.__Load_BindObject")
  93. def __Load(self):
  94. global MOBILE
  95. if MOBILE:
  96. self.__Load_LoadScript("uiscript/gameoptiondialog_formobile.py")
  97. else:
  98. self.__Load_LoadScript("uiscript/gameoptiondialog.py")
  99. self.__Load_BindObject()
  100. self.SetCenterPosition()
  101. self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
  102. self.nameColorModeButtonList[0].SAFE_SetEvent(self.__OnClickNameColorModeNormalButton)
  103. self.nameColorModeButtonList[1].SAFE_SetEvent(self.__OnClickNameColorModeEmpireButton)
  104. self.viewTargetBoardButtonList[0].SAFE_SetEvent(self.__OnClickTargetBoardViewButton)
  105. self.viewTargetBoardButtonList[1].SAFE_SetEvent(self.__OnClickTargetBoardNoViewButton)
  106. self.pvpModeButtonDict[player.PK_MODE_PEACE].SAFE_SetEvent(self.__OnClickPvPModePeaceButton)
  107. self.pvpModeButtonDict[player.PK_MODE_REVENGE].SAFE_SetEvent(self.__OnClickPvPModeRevengeButton)
  108. self.pvpModeButtonDict[player.PK_MODE_GUILD].SAFE_SetEvent(self.__OnClickPvPModeGuildButton)
  109. self.pvpModeButtonDict[player.PK_MODE_FREE].SAFE_SetEvent(self.__OnClickPvPModeFreeButton)
  110. self.blockButtonList[0].SetToggleUpEvent(self.__OnClickBlockExchangeButton)
  111. self.blockButtonList[1].SetToggleUpEvent(self.__OnClickBlockPartyButton)
  112. self.blockButtonList[2].SetToggleUpEvent(self.__OnClickBlockGuildButton)
  113. self.blockButtonList[3].SetToggleUpEvent(self.__OnClickBlockWhisperButton)
  114. self.blockButtonList[4].SetToggleUpEvent(self.__OnClickBlockFriendButton)
  115. self.blockButtonList[5].SetToggleUpEvent(self.__OnClickBlockPartyRequest)
  116. self.blockButtonList[0].SetToggleDownEvent(self.__OnClickBlockExchangeButton)
  117. self.blockButtonList[1].SetToggleDownEvent(self.__OnClickBlockPartyButton)
  118. self.blockButtonList[2].SetToggleDownEvent(self.__OnClickBlockGuildButton)
  119. self.blockButtonList[3].SetToggleDownEvent(self.__OnClickBlockWhisperButton)
  120. self.blockButtonList[4].SetToggleDownEvent(self.__OnClickBlockFriendButton)
  121. self.blockButtonList[5].SetToggleDownEvent(self.__OnClickBlockPartyRequest)
  122. self.viewChatButtonList[0].SAFE_SetEvent(self.__OnClickViewChatOnButton)
  123. self.viewChatButtonList[1].SAFE_SetEvent(self.__OnClickViewChatOffButton)
  124. self.alwaysShowNameButtonList[0].SAFE_SetEvent(self.__OnClickAlwaysShowNameOnButton)
  125. self.alwaysShowNameButtonList[1].SAFE_SetEvent(self.__OnClickAlwaysShowNameOffButton)
  126. self.arayuzButtonList[0].SAFE_SetEvent(self.arayuzac)
  127. self.arayuzButtonList[1].SAFE_SetEvent(self.arayuzkapa)
  128. self.showDamageButtonList[0].SAFE_SetEvent(self.__OnClickShowDamageOnButton)
  129. self.showDamageButtonList[1].SAFE_SetEvent(self.__OnClickShowDamageOffButton)
  130. self.showsalesTextButtonList[0].SAFE_SetEvent(self.__OnClickSalesTextOnButton)
  131. self.showsalesTextButtonList[1].SAFE_SetEvent(self.__OnClickSalesTextOffButton)
  132. self.kargordumabi[0].SAFE_SetEvent(self.__SnowAktif)
  133. self.kargordumabi[1].SAFE_SetEvent(self.__SnowPasif)
  134. self.__ClickRadioButton(self.nameColorModeButtonList, constInfo.GET_CHRNAME_COLOR_INDEX())
  135. self.__ClickRadioButton(self.viewTargetBoardButtonList, constInfo.GET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD())
  136. self.__SetPeacePKMode()
  137. self.ctrlShopNamesRange.SetSliderPos(float(uiPrivateShopBuilder.GetShopNamesRange()))
  138. self.ctrlShopNamesRange.SetEvent(ui.__mem_func__(self.OnChangeShopNamesRange))
  139. #global MOBILE
  140. if MOBILE:
  141. self.inputMobileButton.SetEvent(ui.__mem_func__(self.__OnChangeMobilePhoneNumber))
  142. self.deleteMobileButton.SetEvent(ui.__mem_func__(self.__OnDeleteMobilePhoneNumber))
  143. def __SnowAktif(self):
  144. systemSetting.SetSnowTexturesMode(TRUE)
  145. self.Yenilebeni()
  146. if background.GetCurrentMapName():
  147. snow_maps = [
  148. "metin2_map_a1",
  149. "metin2_map_b1",
  150. "metin2_map_c1"
  151. ]
  152. snow_maps_textures = {
  153. "metin2_map_a1" : "textureset\metin2_a1_snow.txt",
  154. "metin2_map_b1" : "textureset\metin2_b1_snow.txt",
  155. "metin2_map_c1" : "textureset\metin2_c1_snow.txt", }
  156. if str(background.GetCurrentMapName()) in snow_maps:
  157. background.TextureChange(snow_maps_textures[str(background.GetCurrentMapName())])
  158. def __SnowPasif(self):
  159. systemSetting.SetSnowTexturesMode(FALSE)
  160. self.Yenilebeni()
  161. if background.GetCurrentMapName():
  162. snow_maps = [
  163. "metin2_map_a1",
  164. "metin2_map_b1",
  165. "metin2_map_c1"
  166. ]
  167. snow_maps_textures = {
  168. "metin2_map_a1" : "textureset\metin2_a1.txt",
  169. "metin2_map_b1" : "textureset\metin2_b1.txt",
  170. "metin2_map_c1" : "textureset\metin2_c1.txt", }
  171. if str(background.GetCurrentMapName()) in snow_maps:
  172. background.TextureChange(snow_maps_textures[str(background.GetCurrentMapName())])
  173. def Yenilebeni(self):
  174. if systemSetting.IsSnowTexturesMode():
  175. self.kargordumabi[0].Down()
  176. self.kargordumabi[1].SetUp()
  177. else:
  178. self.kargordumabi[0].SetUp()
  179. self.kargordumabi[1].Down()
  180. def OnChangeShopNamesRange(self):
  181. pos = self.ctrlShopNamesRange.GetSliderPos()
  182. uiPrivateShopBuilder.SetShopNamesRange(pos)
  183. if systemSetting.IsShowSalesText():
  184. uiPrivateShopBuilder.UpdateADBoard()
  185. def __ClickRadioButton(self, buttonList, buttonIndex):
  186. try:
  187. selButton=buttonList[buttonIndex]
  188. except IndexError:
  189. return
  190. for eachButton in buttonList:
  191. eachButton.SetUp()
  192. selButton.Down()
  193. def __SetNameColorMode(self, index):
  194. constInfo.SET_CHRNAME_COLOR_INDEX(index)
  195. self.__ClickRadioButton(self.nameColorModeButtonList, index)
  196. def __SetTargetBoardViewMode(self, flag):
  197. constInfo.SET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD(flag)
  198. self.__ClickRadioButton(self.viewTargetBoardButtonList, flag)
  199. def __OnClickNameColorModeNormalButton(self):
  200. self.__SetNameColorMode(0)
  201. def __OnClickNameColorModeEmpireButton(self):
  202. self.__SetNameColorMode(1)
  203. def __OnClickTargetBoardViewButton(self):
  204. self.__SetTargetBoardViewMode(0)
  205. def __OnClickTargetBoardNoViewButton(self):
  206. self.__SetTargetBoardViewMode(1)
  207. def __OnClickCameraModeShortButton(self):
  208. self.__SetCameraMode(0)
  209. def __OnClickCameraModeLongButton(self):
  210. self.__SetCameraMode(1)
  211. def __OnClickFogModeLevel0Button(self):
  212. self.__SetFogLevel(0)
  213. def __OnClickFogModeLevel1Button(self):
  214. self.__SetFogLevel(1)
  215. def __OnClickFogModeLevel2Button(self):
  216. self.__SetFogLevel(2)
  217. def __OnClickBlockExchangeButton(self):
  218. self.RefreshBlock()
  219. global blockMode
  220. net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_EXCHANGE))
  221. def __OnClickBlockPartyButton(self):
  222. self.RefreshBlock()
  223. global blockMode
  224. net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_PARTY))
  225. def __OnClickBlockGuildButton(self):
  226. self.RefreshBlock()
  227. global blockMode
  228. net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_GUILD))
  229. def __OnClickBlockWhisperButton(self):
  230. self.RefreshBlock()
  231. global blockMode
  232. net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_WHISPER))
  233. def __OnClickBlockFriendButton(self):
  234. self.RefreshBlock()
  235. global blockMode
  236. net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_FRIEND))
  237. def __OnClickBlockPartyRequest(self):
  238. self.RefreshBlock()
  239. global blockMode
  240. net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_PARTY_REQUEST))
  241. def __OnClickViewChatOnButton(self):
  242. global viewChatMode
  243. viewChatMode = 1
  244. systemSetting.SetViewChatFlag(viewChatMode)
  245. self.RefreshViewChat()
  246. def __OnClickViewChatOffButton(self):
  247. global viewChatMode
  248. viewChatMode = 0
  249. systemSetting.SetViewChatFlag(viewChatMode)
  250. self.RefreshViewChat()
  251. def __OnClickAlwaysShowNameOnButton(self):
  252. systemSetting.SetAlwaysShowNameFlag(True)
  253. self.RefreshAlwaysShowName()
  254. def __OnClickAlwaysShowNameOffButton(self):
  255. systemSetting.SetAlwaysShowNameFlag(False)
  256. self.RefreshAlwaysShowName()
  257. def __OnClickShowDamageOnButton(self):
  258. systemSetting.SetShowDamageFlag(True)
  259. self.RefreshShowDamage()
  260. def __OnClickShowDamageOffButton(self):
  261. systemSetting.SetShowDamageFlag(False)
  262. self.RefreshShowDamage()
  263. def __OnClickSalesTextOnButton(self):
  264. systemSetting.SetShowSalesTextFlag(True)
  265. self.RefreshShowSalesText()
  266. uiPrivateShopBuilder.UpdateADBoard()
  267. def __OnClickSalesTextOffButton(self):
  268. systemSetting.SetShowSalesTextFlag(False)
  269. self.RefreshShowSalesText()
  270. def __CheckPvPProtectedLevelPlayer(self):
  271. if player.GetStatus(player.LEVEL)<constInfo.PVPMODE_PROTECTED_LEVEL:
  272. self.__SetPeacePKMode()
  273. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_PVPMODE_PROTECT % (constInfo.PVPMODE_PROTECTED_LEVEL))
  274. return 1
  275. return 0
  276. def __SetPKMode(self, mode):
  277. for btn in self.pvpModeButtonDict.values():
  278. btn.SetUp()
  279. if self.pvpModeButtonDict.has_key(mode):
  280. self.pvpModeButtonDict[mode].Down()
  281. def __SetPeacePKMode(self):
  282. self.__SetPKMode(player.PK_MODE_PEACE)
  283. def __RefreshPVPButtonList(self):
  284. self.__SetPKMode(player.GetPKMode())
  285. def __OnClickPvPModePeaceButton(self):
  286. if self.__CheckPvPProtectedLevelPlayer():
  287. return
  288. self.__RefreshPVPButtonList()
  289. if constInfo.PVPMODE_ENABLE:
  290. net.SendChatPacket("/pkmode 0", chat.CHAT_TYPE_TALKING)
  291. else:
  292. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_PVPMODE_NOT_SUPPORT)
  293. def __OnClickPvPModeRevengeButton(self):
  294. if self.__CheckPvPProtectedLevelPlayer():
  295. return
  296. self.__RefreshPVPButtonList()
  297. if constInfo.PVPMODE_ENABLE:
  298. net.SendChatPacket("/pkmode 1", chat.CHAT_TYPE_TALKING)
  299. else:
  300. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_PVPMODE_NOT_SUPPORT)
  301. def __OnClickPvPModeFreeButton(self):
  302. if self.__CheckPvPProtectedLevelPlayer():
  303. return
  304. self.__RefreshPVPButtonList()
  305. if constInfo.PVPMODE_ENABLE:
  306. net.SendChatPacket("/pkmode 2", chat.CHAT_TYPE_TALKING)
  307. else:
  308. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_PVPMODE_NOT_SUPPORT)
  309. def __OnClickPvPModeGuildButton(self):
  310. if self.__CheckPvPProtectedLevelPlayer():
  311. return
  312. self.__RefreshPVPButtonList()
  313. if 0 == player.GetGuildID():
  314. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_PVPMODE_CANNOT_SET_GUILD_MODE)
  315. return
  316. if constInfo.PVPMODE_ENABLE:
  317. net.SendChatPacket("/pkmode 4", chat.CHAT_TYPE_TALKING)
  318. else:
  319. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_PVPMODE_NOT_SUPPORT)
  320. def OnChangePKMode(self):
  321. self.__RefreshPVPButtonList()
  322. def __OnChangeMobilePhoneNumber(self):
  323. global MOBILE
  324. if not MOBILE:
  325. return
  326. import uiCommon
  327. inputDialog = uiCommon.InputDialog()
  328. inputDialog.SetTitle(localeInfo.MESSENGER_INPUT_MOBILE_PHONE_NUMBER_TITLE)
  329. inputDialog.SetMaxLength(13)
  330. inputDialog.SetAcceptEvent(ui.__mem_func__(self.OnInputMobilePhoneNumber))
  331. inputDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseInputDialog))
  332. inputDialog.Open()
  333. self.inputDialog = inputDialog
  334. def __OnDeleteMobilePhoneNumber(self):
  335. global MOBILE
  336. if not MOBILE:
  337. return
  338. import uiCommon
  339. questionDialog = uiCommon.QuestionDialog()
  340. questionDialog.SetText(localeInfo.MESSENGER_DO_YOU_DELETE_PHONE_NUMBER)
  341. questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDeleteMobile))
  342. questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
  343. questionDialog.Open()
  344. self.questionDialog = questionDialog
  345. def OnInputMobilePhoneNumber(self):
  346. global MOBILE
  347. if not MOBILE:
  348. return
  349. text = self.inputDialog.GetText()
  350. if not text:
  351. return
  352. text.replace('-', '')
  353. net.SendChatPacket("/mobile " + text)
  354. self.OnCloseInputDialog()
  355. return True
  356. def OnInputMobileAuthorityCode(self):
  357. global MOBILE
  358. if not MOBILE:
  359. return
  360. text = self.inputDialog.GetText()
  361. net.SendChatPacket("/mobile_auth " + text)
  362. self.OnCloseInputDialog()
  363. return True
  364. def OnDeleteMobile(self):
  365. global MOBILE
  366. if not MOBILE:
  367. return
  368. net.SendChatPacket("/mobile")
  369. self.OnCloseQuestionDialog()
  370. return True
  371. def OnCloseInputDialog(self):
  372. self.inputDialog.Close()
  373. self.inputDialog = None
  374. return True
  375. def OnCloseQuestionDialog(self):
  376. self.questionDialog.Close()
  377. self.questionDialog = None
  378. return True
  379. def OnPressEscapeKey(self):
  380. self.Close()
  381. return True
  382. def RefreshMobile(self):
  383. global MOBILE
  384. if not MOBILE:
  385. return
  386. if player.HasMobilePhoneNumber():
  387. self.inputMobileButton.Hide()
  388. self.deleteMobileButton.Show()
  389. else:
  390. self.inputMobileButton.Show()
  391. self.deleteMobileButton.Hide()
  392. def OnMobileAuthority(self):
  393. global MOBILE
  394. if not MOBILE:
  395. return
  396. import uiCommon
  397. inputDialog = uiCommon.InputDialogWithDescription()
  398. inputDialog.SetTitle(localeInfo.MESSENGER_INPUT_MOBILE_AUTHORITY_TITLE)
  399. inputDialog.SetDescription(localeInfo.MESSENGER_INPUT_MOBILE_AUTHORITY_DESCRIPTION)
  400. inputDialog.SetAcceptEvent(ui.__mem_func__(self.OnInputMobileAuthorityCode))
  401. inputDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseInputDialog))
  402. inputDialog.SetMaxLength(4)
  403. inputDialog.SetBoardWidth(310)
  404. inputDialog.Open()
  405. self.inputDialog = inputDialog
  406. def RefreshBlock(self):
  407. global blockMode
  408. for i in xrange(len(self.blockButtonList)):
  409. if 0 != (blockMode & (1 << i)):
  410. self.blockButtonList[i].Down()
  411. else:
  412. self.blockButtonList[i].SetUp()
  413. def RefreshViewChat(self):
  414. if systemSetting.IsViewChat():
  415. self.viewChatButtonList[0].Down()
  416. self.viewChatButtonList[1].SetUp()
  417. else:
  418. self.viewChatButtonList[0].SetUp()
  419. self.viewChatButtonList[1].Down()
  420. def RefreshAlwaysShowName(self):
  421. if systemSetting.IsAlwaysShowName():
  422. self.alwaysShowNameButtonList[0].Down()
  423. self.alwaysShowNameButtonList[1].SetUp()
  424. else:
  425. self.alwaysShowNameButtonList[0].SetUp()
  426. self.alwaysShowNameButtonList[1].Down()
  427. def arayuzac(self):
  428. constInfo.arayuz_mod = 0
  429. self.arayuzmod()
  430. def arayuzkapa(self):
  431. constInfo.arayuz_mod = 1
  432. self.arayuzmod()
  433. def arayuzmod(self):
  434. if constInfo.arayuz_mod == 0:
  435. self.arayuzButtonList[0].Down()
  436. self.arayuzButtonList[1].SetUp()
  437. else:
  438. self.arayuzButtonList[0].SetUp()
  439. self.arayuzButtonList[1].Down()
  440. def RefreshShowDamage(self):
  441. if systemSetting.IsShowDamage():
  442. self.showDamageButtonList[0].Down()
  443. self.showDamageButtonList[1].SetUp()
  444. else:
  445. self.showDamageButtonList[0].SetUp()
  446. self.showDamageButtonList[1].Down()
  447. def RefreshShowSalesText(self):
  448. if systemSetting.IsShowSalesText():
  449. self.showsalesTextButtonList[0].Down()
  450. self.showsalesTextButtonList[1].SetUp()
  451. else:
  452. self.showsalesTextButtonList[0].SetUp()
  453. self.showsalesTextButtonList[1].Down()
  454. def OnBlockMode(self, mode):
  455. global blockMode
  456. blockMode = mode
  457. self.RefreshBlock()
  458. def Show(self):
  459. self.RefreshMobile()
  460. self.RefreshBlock()
  461. ui.ScriptWindow.Show(self)
  462. def Close(self):
  463. self.Hide()