1. import os
  2. import app
  3. import dbg
  4. import grp
  5. import item
  6. import background
  7. import chr
  8. import chrmgr
  9. import player
  10. import snd
  11. import chat
  12. import textTail
  13. import snd
  14. import net
  15. import effect
  16. import wndMgr
  17. import fly
  18. import systemSetting
  19. import quest
  20. import guild
  21. import skill
  22. import messenger
  23. import localeInfo
  24. import constInfo
  25. import exchange
  26. import ime
  27. import translate
  28. import uiminimap
  29. import uiMiniGameFishEvent
  30. import uiMiniGame
  31. import uiminigameattendance
  32. import ui
  33. import uiCommon
  34. import uiPhaseCurtain
  35. import uiMapNameShower
  36. import uiAffectShower
  37. import uiPlayerGauge
  38. import uiCharacter
  39. import uiTarget
  40. import time
  41. import uiPrivateShopBuilder
  42. import mouseModule
  43. import consoleModule
  44. import localeInfo
  45. import playerSettingModule
  46. import interfaceModule
  47. import musicInfo
  48. import debugInfo
  49. import stringCommander
  50. import event
  51. import constInfo_new
  52. if app.ENABLE_LUCKY_BOX:
  53. import uiLuckyBox
  54. if app.ENABLE_SKILL_SELECT_SYSTEM:
  55. import uiskillselect
  56. if app.ENABLE_WORD_GAME_EVENT:
  57. import uiWordGameSystem
  58. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  59. import uiOfflineShopBuilder
  60. import uiOfflineShop
  61. if app.ENABLE_NEW_PET_SYSTEM:
  62. import uipetsystem
  63. if app.ENABLE_SOCCER_BALL_EVENT:
  64. import uifutboltopu
  65. if app.ENABLE_SKILL_BOOK_READING:
  66. import uibkoku
  67. if app.ENABLE_SPIRIT_STONE_READING:
  68. import uiruhtasi
  69. if app.WJ_COMBAT_ZONE:
  70. import uicombatzone
  71. if app.ENABLE_12ZI:
  72. import ui12zi
  73. if app.ENABLE_WHISPER_ADMIN_SYSTEM:
  74. import uiwhisperadmin
  75. if app.ENABLE_ADMIN_BAN_MANAGER:
  76. import uiadmintool
  77. if app.ENABLE_KEYBOARD_SETTINGS_SYSTEM:
  78. import uikeyboardsettings
  79. if app.ENABLE_MINI_GAME_CATCH_KING:
  80. import uiminigamecatchking
  81. if app.ENABLE_STONE_EVENT:
  82. import uistone_event
  83. if app.ENABLE_BOSS_TRACKING:
  84. import uibosstracking
  85. if app.ENABLE_RENEW_MESSENGER_WHISPER:
  86. import uicontact
  87. from _weakref import proxy
  88. # SCREENSHOT_CWDSAVE
  89. SCREENSHOT_CWDSAVE = FALSE
  90. SCREENSHOT_DIR = None
  91. if localeInfo.IsEUROPE():
  92. SCREENSHOT_CWDSAVE = TRUE
  93. if localeInfo.IsCIBN10():
  94. SCREENSHOT_CWDSAVE = FALSE
  95. SCREENSHOT_DIR = "YT2W"
  96. cameraDistance = 1550.0
  97. cameraPitch = 27.0
  98. cameraRotation = 0.0
  99. cameraHeight = 100.0
  100. testAlignment = 0
  101. BPisLodaded = 0
  102. class GameWindow(ui.ScriptWindow):
  103. if app.ENABLE_MAIL_BOX_SYSTEM:
  104. MailBoxOpenT = 0
  105. def __init__(self, stream):
  106. ui.ScriptWindow.__init__(self, "GAME")
  107. self.SetWindowName("game")
  108. net.SetPhaseWindow(net.PHASE_WINDOW_GAME, self)
  109. player.SetGameWindow(self)
  110. if app.ENABLE_WORD_GAME_EVENT:
  111. self.wordgame = uiWordGameSystem.WordGameWindow()
  112. self.wordgame.Close()
  113. if app.ENABLE_BOSS_TRACKING:
  114. self.bosstracking = uibosstracking.BossTrackingInfoWindow()
  115. self.bosstracking.Hide()
  116. if app.ENABLE_SOCCER_BALL_EVENT:
  117. self.topver = uifutboltopu.TopEventi()
  118. self.topver.Close()
  119. if app.ENABLE_STONE_EVENT:
  120. self.stone_event = uistone_event.StoneEventWindow()
  121. self.stone_event.Hide()
  122. if (app.WJ_COMBAT_ZONE):
  123. self.wndCombatZone = uicombatzone.CombatZoneWindow()
  124. self.quickSlotPageIndex = 0
  125. self.lastPKModeSendedTime = 0
  126. self.pressNumber = None
  127. self.guildWarQuestionDialog = None
  128. self.interface = None
  129. self.targetBoard = None
  130. self.console = None
  131. self.mapNameShower = None
  132. self.affectShower = None
  133. self.playerGauge = None
  134. if app.ENABLE_KEYBOARD_SETTINGS_SYSTEM:
  135. self.dlgKeyboardSettings = None
  136. self.stream=stream
  137. self.interface = interfaceModule.Interface()
  138. self.interface.SetStream(self.stream)
  139. self.interface.MakeInterface()
  140. self.interface.ShowDefaultWindows()
  141. self.stream.isAutoSelect = 0
  142. self.curtain = uiPhaseCurtain.PhaseCurtain()
  143. self.curtain.speed = 0.03
  144. self.curtain.Hide()
  145. self.targetBoard = uiTarget.TargetBoard()
  146. self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog))
  147. self.targetBoard.Hide()
  148. self.console = consoleModule.ConsoleWindow()
  149. self.console.BindGameClass(self)
  150. self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200)
  151. self.console.Hide()
  152. self.mapNameShower = uiMapNameShower.MapNameShower()
  153. self.affectShower = uiAffectShower.AffectShower()
  154. if app.ENABLE_NEW_PET_SYSTEM:
  155. self.petmain = uipetsystem.PetSystemMain()
  156. if (app.ENABLE_PET_ATTR_DETERMINE):
  157. self.petmain.SetItemToolTip(self.interface.tooltipItem)
  158. self.petmain.BindInterface(self.interface)
  159. self.petmini = uipetsystem.PetSystemMini()
  160. if app.ENABLE_KEYBOARD_SETTINGS_SYSTEM:
  161. self.dlgKeyboardSettings = uikeyboardsettings.KeyChangeWindow(self)
  162. if app.ENABLE_ADMIN_BAN_MANAGER:
  163. self.wndAdminTool = uiadmintool.AdminTool()
  164. if app.ENABLE_SPIRIT_STONE_READING:
  165. self.ruhtasi = uiruhtasi.RuhTasi()
  166. self.ruhtasi.Hide()
  167. if app.ENABLE_SKILL_BOOK_READING:
  168. self.bkoku = uibkoku.BKOku()
  169. self.bkoku.Hide()
  170. if app.ENABLE_WHISPER_ADMIN_SYSTEM:
  171. self.adminWhisperManager = uiwhisperadmin.WhisperManager()
  172. self.playerGauge = uiPlayerGauge.PlayerGauge(self)
  173. self.playerGauge.Hide()
  174. self.itemDropQuestionDialog = None
  175. self.__SetQuickSlotMode()
  176. self.__ServerCommand_Build()
  177. self.__ProcessPreservedServerCommand()
  178. def __del__(self):
  179. player.SetGameWindow(0)
  180. net.ClearPhaseWindow(net.PHASE_WINDOW_GAME, self)
  181. ui.ScriptWindow.__del__(self)
  182. def Open(self):
  183. app.SetFrameSkip(1)
  184. self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
  185. self.quickSlotPageIndex = 0
  186. self.PickingCharacterIndex = -1
  187. self.PickingItemIndex = -1
  188. self.consoleEnable = FALSE
  189. self.isShowDebugInfo = FALSE
  190. self.ShowNameFlag = FALSE
  191. self.enableXMasBoom = FALSE
  192. self.startTimeXMasBoom = 0.0
  193. self.indexXMasBoom = 0
  194. if app.ENABLE_SOUL_ROULETTE_SYSTEM:
  195. self.enableXMasSoul = FALSE
  196. self.startTimeXMasSoul = 0.0
  197. self.indexXMasSoul = 0
  198. global cameraDistance, cameraPitch, cameraRotation, cameraHeight
  199. app.SetCamera(cameraDistance, cameraPitch, cameraRotation, cameraHeight)
  200. constInfo.SET_DEFAULT_CAMERA_MAX_DISTANCE()
  201. constInfo.SET_DEFAULT_CHRNAME_COLOR()
  202. constInfo.SET_DEFAULT_FOG_LEVEL()
  203. constInfo.SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE()
  204. constInfo.SET_DEFAULT_USE_ITEM_WEAPON_TABLE_ATTACK_BONUS()
  205. constInfo.SET_DEFAULT_USE_SKILL_EFFECT_ENABLE()
  206. constInfo.SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE()
  207. import event
  208. event.SetLeftTimeString(localeInfo.UI_LEFT_TIME)
  209. textTail.EnablePKTitle(constInfo.PVPMODE_ENABLE)
  210. if constInfo.PVPMODE_TEST_ENABLE:
  211. self.testPKMode = ui.TextLine()
  212. self.testPKMode.SetFontName(localeInfo.UI_DEF_FONT)
  213. self.testPKMode.SetPosition(0, 15)
  214. self.testPKMode.SetWindowHorizontalAlignCenter()
  215. self.testPKMode.SetHorizontalAlignCenter()
  216. self.testPKMode.SetFeather()
  217. self.testPKMode.SetOutline()
  218. self.testPKMode.Show()
  219. self.testAlignment = ui.TextLine()
  220. self.testAlignment.SetFontName(localeInfo.UI_DEF_FONT)
  221. self.testAlignment.SetPosition(0, 35)
  222. self.testAlignment.SetWindowHorizontalAlignCenter()
  223. self.testAlignment.SetHorizontalAlignCenter()
  224. self.testAlignment.SetFeather()
  225. self.testAlignment.SetOutline()
  226. self.testAlignment.Show()
  227. self.__BuildKeyDict()
  228. self.__BuildDebugInfo()
  229. if app.ENABLE_KEYBOARD_SETTINGS_SYSTEM:
  230. self.dlgKeyboardSettings.BuildKeyDict()
  231. # PRIVATE_SHOP_PRICE_LIST
  232. uiPrivateShopBuilder.Clear()
  233. # END_OF_PRIVATE_SHOP_PRICE_LIST
  234. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  235. uiOfflineShopBuilder.Clear()
  236. # UNKNOWN_UPDATE
  237. exchange.InitTrading()
  238. # END_OF_UNKNOWN_UPDATE
  239. if debugInfo.IsDebugMode():
  240. self.ToggleDebugInfo()
  241. ## Sound
  242. snd.SetMusicVolume(systemSetting.GetMusicVolume()*net.GetFieldMusicVolume())
  243. snd.SetSoundVolume(systemSetting.GetSoundVolume())
  244. netFieldMusicFileName = net.GetFieldMusicFileName()
  245. if netFieldMusicFileName:
  246. snd.FadeInMusic("BGM/" + netFieldMusicFileName)
  247. elif musicInfo.fieldMusic != "":
  248. snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
  249. self.__SetQuickSlotMode()
  250. self.__SelectQuickPage(self.quickSlotPageIndex)
  251. self.SetFocus()
  252. self.Show()
  253. app.ShowCursor()
  254. net.SendEnterGamePacket()
  255. if app.ENABLE_ENVIRONMENT_EFFECT_OPTION:
  256. if constInfo_new.night == 1:
  257. background.RegisterEnvironmentData(1, constInfo.ENVIRONMENT_NIGHT)
  258. background.SetEnvironmentData(1)
  259. # START_GAME_ERROR_EXIT
  260. try:
  261. self.StartGame()
  262. except:
  263. import exception
  264. exception.Abort("GameWindow.Open")
  265. # END_OF_START_GAME_ERROR_EXIT
  266. self.cubeInformation = {}
  267. self.currentCubeNPC = 0
  268. if app.ENABLE_FOG_FIX:
  269. if systemSetting.GetFogMode():
  270. background.SetFogMode(True)
  271. else:
  272. background.SetFogMode(False)
  273. def Close(self):
  274. self.Hide()
  275. global cameraDistance, cameraPitch, cameraRotation, cameraHeight
  276. (cameraDistance, cameraPitch, cameraRotation, cameraHeight) = app.GetCamera()
  277. if musicInfo.fieldMusic != "":
  278. snd.FadeOutMusic("BGM/"+ musicInfo.fieldMusic)
  279. self.onPressKeyDict = None
  280. self.onClickKeyDict = None
  281. chat.Close()
  282. snd.StopAllSound()
  283. grp.InitScreenEffect()
  284. chr.Destroy()
  285. textTail.Clear()
  286. quest.Clear()
  287. background.Destroy()
  288. guild.Destroy()
  289. messenger.Destroy()
  290. skill.ClearSkillData()
  291. wndMgr.Unlock()
  292. mouseModule.mouseController.DeattachObject()
  293. if self.guildWarQuestionDialog:
  294. self.guildWarQuestionDialog.Close()
  295. self.guildNameBoard = None
  296. self.partyRequestQuestionDialog = None
  297. self.partyInviteQuestionDialog = None
  298. self.guildInviteQuestionDialog = None
  299. self.guildWarQuestionDialog = None
  300. self.messengerAddFriendQuestion = None
  301. # UNKNOWN_UPDATE
  302. self.itemDropQuestionDialog = None
  303. # END_OF_UNKNOWN_UPDATE
  304. # QUEST_CONFIRM
  305. self.confirmDialog = None
  306. # END_OF_QUEST_CONFIRM
  307. self.PrintCoord = None
  308. self.FrameRate = None
  309. self.Pitch = None
  310. self.Splat = None
  311. self.TextureNum = None
  312. self.ObjectNum = None
  313. self.ViewDistance = None
  314. self.PrintMousePos = None
  315. self.ClearDictionary()
  316. self.playerGauge = None
  317. self.mapNameShower = None
  318. self.affectShower = None
  319. if self.console:
  320. self.console.BindGameClass(0)
  321. self.console.Close()
  322. self.console=None
  323. if self.targetBoard:
  324. self.targetBoard.Destroy()
  325. self.targetBoard = None
  326. if app.ENABLE_WORD_GAME_EVENT:
  327. if self.wordgame:
  328. self.wordgame.Close()
  329. self.wordgame = None
  330. if app.ENABLE_NEW_PET_SYSTEM:
  331. self.petmain.Close()
  332. self.petmini.Close()
  333. if app.ENABLE_SOCCER_BALL_EVENT:
  334. if self.topver:
  335. self.topver.Close()
  336. self.topver = None
  337. if app.ENABLE_BOSS_TRACKING:
  338. if self.bosstracking:
  339. self.bosstracking.Destroy()
  340. self.bosstracking = None
  341. if app.ENABLE_STONE_EVENT:
  342. if self.stone_event:
  343. self.stone_event.Destroy()
  344. self.stone_event = None
  345. if app.ENABLE_ADMIN_BAN_MANAGER:
  346. if self.adminWhisperManager:
  347. self.adminWhisperManager.Hide()
  348. if app.ENABLE_SPIRIT_STONE_READING:
  349. if self.ruhtasi:
  350. self.ruhtasi.Destroy()
  351. self.ruhtasi = None
  352. if app.ENABLE_WHISPER_ADMIN_SYSTEM:
  353. if self.adminWhisperManager:
  354. self.adminWhisperManager.Hide()
  355. if app.ENABLE_SKILL_BOOK_READING:
  356. if self.bkoku:
  357. self.bkoku.Destroy()
  358. self.bkoku = None
  359. if (app.WJ_COMBAT_ZONE):
  360. if self.wndCombatZone:
  361. self.wndCombatZone.Close()
  362. if self.interface:
  363. self.interface.HideAllWindows()
  364. self.interface.Close()
  365. self.interface=None
  366. player.ClearSkillDict()
  367. player.ResetCameraRotation()
  368. self.KillFocus()
  369. app.HideCursor()
  370. print "---------------------------------------------------------------------------- CLOSE GAME WINDOW"
  371. if app.ENABLE_STONE_EVENT:
  372. def StoneEvent(self, arg):
  373. if 1 == int(arg):
  374. self.stone_event.Show()
  375. else:
  376. self.stone_event.Hide()
  377. def BINARY_ReceiveChannel(self, channel):
  378. if self.interface:
  379. if self.interface.wndMiniMap:
  380. self.interface.wndMiniMap.UpdateChannelInfo(channel)
  381. constInfo.channel_idx = channel
  382. if app.ENABLE_SPIRIT_STONE_READING:
  383. def ruhcac(self):
  384. self.ruhtasi.Show()
  385. if app.ENABLE_SKILL_BOOK_READING:
  386. def bkac(self):
  387. self.bkoku.Show()
  388. if app.ENABLE_WORD_GAME_EVENT:
  389. def WordGameWindowShow(self):
  390. self.wordgame.Show()
  391. if app.ENABLE_SOCCER_BALL_EVENT:
  392. def FutbolTopuVer(self):
  393. self.topver.Show()
  394. def __BuildKeyDict(self):
  395. onPressKeyDict = {}
  396. onPressKeyDict[app.DIK_1] = lambda : self.__PressNumKey(1)
  397. onPressKeyDict[app.DIK_2] = lambda : self.__PressNumKey(2)
  398. onPressKeyDict[app.DIK_3] = lambda : self.__PressNumKey(3)
  399. onPressKeyDict[app.DIK_4] = lambda : self.__PressNumKey(4)
  400. onPressKeyDict[app.DIK_5] = lambda : self.__PressNumKey(5)
  401. onPressKeyDict[app.DIK_6] = lambda : self.__PressNumKey(6)
  402. onPressKeyDict[app.DIK_7] = lambda : self.__PressNumKey(7)
  403. onPressKeyDict[app.DIK_8] = lambda : self.__PressNumKey(8)
  404. onPressKeyDict[app.DIK_9] = lambda : self.__PressNumKey(9)
  405. onPressKeyDict[app.DIK_F1] = lambda : self.__PressQuickSlot(4)
  406. onPressKeyDict[app.DIK_F2] = lambda : self.__PressQuickSlot(5)
  407. onPressKeyDict[app.DIK_F3] = lambda : self.__PressQuickSlot(6)
  408. onPressKeyDict[app.DIK_F4] = lambda : self.__PressQuickSlot(7)
  409. onPressKeyDict[app.DIK_LALT] = lambda : self.ShowName()
  410. onPressKeyDict[app.DIK_LCONTROL] = lambda : self.ShowMouseImage()
  411. onPressKeyDict[app.DIK_SYSRQ] = lambda : self.SaveScreen()
  412. onPressKeyDict[app.DIK_SPACE] = lambda : self.StartAttack()
  413. onPressKeyDict[app.DIK_UP] = lambda : self.MoveUp()
  414. onPressKeyDict[app.DIK_DOWN] = lambda : self.MoveDown()
  415. onPressKeyDict[app.DIK_LEFT] = lambda : self.MoveLeft()
  416. onPressKeyDict[app.DIK_RIGHT] = lambda : self.MoveRight()
  417. onPressKeyDict[app.DIK_W] = lambda : self.MoveUp()
  418. onPressKeyDict[app.DIK_S] = lambda : self.MoveDown()
  419. onPressKeyDict[app.DIK_A] = lambda : self.MoveLeft()
  420. onPressKeyDict[app.DIK_D] = lambda : self.MoveRight()
  421. onPressKeyDict[app.DIK_E] = lambda: app.RotateCamera(app.CAMERA_TO_POSITIVE)
  422. onPressKeyDict[app.DIK_R] = lambda: app.ZoomCamera(app.CAMERA_TO_NEGATIVE)
  423. onPressKeyDict[app.DIK_T] = lambda: app.PitchCamera(app.CAMERA_TO_NEGATIVE)
  424. onPressKeyDict[app.DIK_G] = self.__PressGKey
  425. onPressKeyDict[app.DIK_Q] = self.__PressQKey
  426. onPressKeyDict[app.DIK_NUMPAD9] = lambda: app.MovieResetCamera()
  427. onPressKeyDict[app.DIK_NUMPAD4] = lambda: app.MovieRotateCamera(app.CAMERA_TO_NEGATIVE)
  428. onPressKeyDict[app.DIK_NUMPAD6] = lambda: app.MovieRotateCamera(app.CAMERA_TO_POSITIVE)
  429. onPressKeyDict[app.DIK_PGUP] = lambda: app.MovieZoomCamera(app.CAMERA_TO_NEGATIVE)
  430. onPressKeyDict[app.DIK_PGDN] = lambda: app.MovieZoomCamera(app.CAMERA_TO_POSITIVE)
  431. onPressKeyDict[app.DIK_NUMPAD8] = lambda: app.MoviePitchCamera(app.CAMERA_TO_NEGATIVE)
  432. onPressKeyDict[app.DIK_NUMPAD2] = lambda: app.MoviePitchCamera(app.CAMERA_TO_POSITIVE)
  433. onPressKeyDict[app.DIK_GRAVE] = lambda : self.PickUpItem()
  434. onPressKeyDict[app.DIK_Z] = lambda : self.PickUpItem()
  435. onPressKeyDict[app.DIK_C] = lambda state = "STATUS": self.interface.ToggleCharacterWindow(state)
  436. onPressKeyDict[app.DIK_V] = lambda state = "SKILL": self.interface.ToggleCharacterWindow(state)
  437. onPressKeyDict[app.DIK_B] = lambda state = "EMOTICON": self.interface.ToggleCharacterWindow(state)
  438. onPressKeyDict[app.DIK_N] = lambda state = "QUEST": self.interface.ToggleCharacterWindow(state)
  439. onPressKeyDict[app.DIK_I] = lambda : self.interface.ToggleInventoryWindow()
  440. onPressKeyDict[app.DIK_M] = lambda : self.interface.PressMKey()
  441. onPressKeyDict[app.DIK_H] = lambda : self.interface.OpenHelpWindow()
  442. onPressKeyDict[app.DIK_ADD] = lambda : self.interface.MiniMapScaleUp()
  443. onPressKeyDict[app.DIK_SUBTRACT] = lambda : self.interface.MiniMapScaleDown()
  444. onPressKeyDict[app.DIK_L] = lambda : self.interface.ToggleChatLogWindow()
  445. onPressKeyDict[app.DIK_COMMA] = lambda : self.ShowConsole()
  446. onPressKeyDict[app.DIK_LSHIFT] = lambda : self.__SetQuickPageMode()
  447. onPressKeyDict[app.DIK_J] = lambda : self.__PressJKey()
  448. onPressKeyDict[app.DIK_H] = lambda : self.__PressHKey()
  449. onPressKeyDict[app.DIK_B] = lambda : self.__PressBKey()
  450. onPressKeyDict[app.DIK_F] = lambda : self.__PressFKey()
  451. if app.ENABLE_DRAGON_SOUL_SYSTEM:
  452. onPressKeyDict[app.DIK_O] = lambda : self.interface.ToggleDragonSoulWindowWithNoInfo()
  453. if app.ENABLE_SPLIT_INVENTORY_SYSTEM:
  454. onPressKeyDict[app.DIK_K] = lambda : self.interface.ToggleSpecialInventoryWindow()
  455. self.onPressKeyDict = onPressKeyDict
  456. onClickKeyDict = {}
  457. onClickKeyDict[app.DIK_UP] = lambda : self.StopUp()
  458. onClickKeyDict[app.DIK_DOWN] = lambda : self.StopDown()
  459. onClickKeyDict[app.DIK_LEFT] = lambda : self.StopLeft()
  460. onClickKeyDict[app.DIK_RIGHT] = lambda : self.StopRight()
  461. onClickKeyDict[app.DIK_SPACE] = lambda : self.EndAttack()
  462. onClickKeyDict[app.DIK_W] = lambda : self.StopUp()
  463. onClickKeyDict[app.DIK_S] = lambda : self.StopDown()
  464. onClickKeyDict[app.DIK_A] = lambda : self.StopLeft()
  465. onClickKeyDict[app.DIK_D] = lambda : self.StopRight()
  466. onClickKeyDict[app.DIK_Q] = lambda: app.RotateCamera(app.CAMERA_STOP)
  467. onClickKeyDict[app.DIK_E] = lambda: app.RotateCamera(app.CAMERA_STOP)
  468. onClickKeyDict[app.DIK_R] = lambda: app.ZoomCamera(app.CAMERA_STOP)
  469. onClickKeyDict[app.DIK_F] = lambda: app.ZoomCamera(app.CAMERA_STOP)
  470. onClickKeyDict[app.DIK_T] = lambda: app.PitchCamera(app.CAMERA_STOP)
  471. onClickKeyDict[app.DIK_G] = lambda: self.__ReleaseGKey()
  472. onClickKeyDict[app.DIK_NUMPAD4] = lambda: app.MovieRotateCamera(app.CAMERA_STOP)
  473. onClickKeyDict[app.DIK_NUMPAD6] = lambda: app.MovieRotateCamera(app.CAMERA_STOP)
  474. onClickKeyDict[app.DIK_PGUP] = lambda: app.MovieZoomCamera(app.CAMERA_STOP)
  475. onClickKeyDict[app.DIK_PGDN] = lambda: app.MovieZoomCamera(app.CAMERA_STOP)
  476. onClickKeyDict[app.DIK_NUMPAD8] = lambda: app.MoviePitchCamera(app.CAMERA_STOP)
  477. onClickKeyDict[app.DIK_NUMPAD2] = lambda: app.MoviePitchCamera(app.CAMERA_STOP)
  478. onClickKeyDict[app.DIK_LALT] = lambda: self.HideName()
  479. onClickKeyDict[app.DIK_LCONTROL] = lambda: self.HideMouseImage()
  480. onClickKeyDict[app.DIK_LSHIFT] = lambda: self.__SetQuickSlotMode()
  481. if app.ENABLE_NEW_PET_SYSTEM:
  482. onClickKeyDict[app.DIK_P] = lambda: self.OpenPetMainGui()
  483. self.onClickKeyDict=onClickKeyDict
  484. def __PressNumKey(self,num):
  485. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  486. if num >= 1 and num <= 9:
  487. if(chrmgr.IsPossibleEmoticon(-1)):
  488. chrmgr.SetEmoticon(-1,int(num)-1)
  489. net.SendEmoticon(int(num)-1)
  490. else:
  491. if num >= 1 and num <= 4:
  492. self.pressNumber(num-1)
  493. def __ClickBKey(self):
  494. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  495. return
  496. else:
  497. if constInfo.PVPMODE_ACCELKEY_ENABLE:
  498. self.ChangePKMode()
  499. def __PressJKey(self):
  500. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  501. if player.IsMountingHorse():
  502. net.SendChatPacket("/unmount")
  503. else:
  504. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  505. if not uiPrivateShopBuilder.IsBuildingPrivateShop() and not uiOfflineShopBuilder.IsBuildingOfflineShop():
  506. for i in xrange(player.INVENTORY_PAGE_SIZE):
  507. if player.GetItemIndex(i) in (71114, 71116, 71118, 71120):
  508. net.SendItemUsePacket(i)
  509. break
  510. else:
  511. if not uiPrivateShopBuilder.IsBuildingPrivateShop():
  512. for i in xrange(player.INVENTORY_PAGE_SIZE):
  513. if player.GetItemIndex(i) in (71114, 71116, 71118, 71120):
  514. net.SendItemUsePacket(i)
  515. break
  516. def __PressHKey(self):
  517. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  518. net.SendChatPacket("/user_horse_ride")
  519. else:
  520. self.interface.OpenHelpWindow()
  521. def __PressBKey(self):
  522. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  523. net.SendChatPacket("/user_horse_back")
  524. else:
  525. state = "EMOTICON"
  526. self.interface.ToggleCharacterWindow(state)
  527. def __PressFKey(self):
  528. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  529. net.SendChatPacket("/user_horse_feed")
  530. else:
  531. app.ZoomCamera(app.CAMERA_TO_POSITIVE)
  532. def __PressGKey(self):
  533. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  534. net.SendChatPacket("/ride")
  535. else:
  536. if self.ShowNameFlag:
  537. self.interface.ToggleGuildWindow()
  538. else:
  539. app.PitchCamera(app.CAMERA_TO_POSITIVE)
  540. def __ReleaseGKey(self):
  541. app.PitchCamera(app.CAMERA_STOP)
  542. if app.ENABLE_ADMIN_BAN_MANAGER:
  543. def OpenAdminTool(self):
  544. if self.wndAdminTool.IsShow():
  545. self.wndAdminTool.Hide()
  546. else:
  547. self.wndAdminTool.Show()
  548. def __PressQKey(self):
  549. if (app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL)):
  550. if (interfaceModule.IsQBHide == 0):
  551. interfaceModule.IsQBHide = 1
  552. self.interface.HideAllQuestButton()
  553. else:
  554. interfaceModule.IsQBHide = 0
  555. self.interface.ShowAllQuestButton()
  556. else:
  557. app.RotateCamera(app.CAMERA_TO_NEGATIVE)
  558. def __PressPKey(self):
  559. if (app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL)):
  560. if (interfaceModule.IsWhisperHide == 0):
  561. interfaceModule.IsWhisperHide = 1
  562. self.interface.HideAllWhisperButton()
  563. else:
  564. interfaceModule.IsWhisperHide = 0
  565. self.interface.ShowAllWhisperButton()
  566. def __SetQuickSlotMode(self):
  567. self.pressNumber=ui.__mem_func__(self.__PressQuickSlot)
  568. def __SetQuickPageMode(self):
  569. self.pressNumber=ui.__mem_func__(self.__SelectQuickPage)
  570. def __PressQuickSlot(self, localSlotIndex):
  571. if localeInfo.IsARABIC():
  572. if 0 <= localSlotIndex and localSlotIndex < 4:
  573. player.RequestUseLocalQuickSlot(3-localSlotIndex)
  574. else:
  575. player.RequestUseLocalQuickSlot(11-localSlotIndex)
  576. else:
  577. player.RequestUseLocalQuickSlot(localSlotIndex)
  578. def __PressTeleport(self):
  579. if self.interface:
  580. self.interface.ToggleTeleportWindow()
  581. def __SelectQuickPage(self, pageIndex):
  582. self.quickSlotPageIndex = pageIndex
  583. player.SetQuickPage(pageIndex)
  584. def ToggleDebugInfo(self):
  585. self.isShowDebugInfo = not self.isShowDebugInfo
  586. if self.isShowDebugInfo:
  587. self.PrintCoord.Show()
  588. self.FrameRate.Show()
  589. self.Pitch.Show()
  590. self.Splat.Show()
  591. self.TextureNum.Show()
  592. self.ObjectNum.Show()
  593. self.ViewDistance.Show()
  594. self.PrintMousePos.Show()
  595. else:
  596. self.PrintCoord.Hide()
  597. self.FrameRate.Hide()
  598. self.Pitch.Hide()
  599. self.Splat.Hide()
  600. self.TextureNum.Hide()
  601. self.ObjectNum.Hide()
  602. self.ViewDistance.Hide()
  603. self.PrintMousePos.Hide()
  604. def __BuildDebugInfo(self):
  605. self.PrintCoord = ui.TextLine()
  606. self.PrintCoord.SetFontName(localeInfo.UI_DEF_FONT)
  607. self.PrintCoord.SetPosition(wndMgr.GetScreenWidth() - 270, 0)
  608. self.FrameRate = ui.TextLine()
  609. self.FrameRate.SetFontName(localeInfo.UI_DEF_FONT)
  610. self.FrameRate.SetPosition(wndMgr.GetScreenWidth() - 270, 20)
  611. self.Pitch = ui.TextLine()
  612. self.Pitch.SetFontName(localeInfo.UI_DEF_FONT)
  613. self.Pitch.SetPosition(wndMgr.GetScreenWidth() - 270, 40)
  614. self.Splat = ui.TextLine()
  615. self.Splat.SetFontName(localeInfo.UI_DEF_FONT)
  616. self.Splat.SetPosition(wndMgr.GetScreenWidth() - 270, 60)
  617. self.PrintMousePos = ui.TextLine()
  618. self.PrintMousePos.SetFontName(localeInfo.UI_DEF_FONT)
  619. self.PrintMousePos.SetPosition(wndMgr.GetScreenWidth() - 270, 80)
  620. self.TextureNum = ui.TextLine()
  621. self.TextureNum.SetFontName(localeInfo.UI_DEF_FONT)
  622. self.TextureNum.SetPosition(wndMgr.GetScreenWidth() - 270, 100)
  623. self.ObjectNum = ui.TextLine()
  624. self.ObjectNum.SetFontName(localeInfo.UI_DEF_FONT)
  625. self.ObjectNum.SetPosition(wndMgr.GetScreenWidth() - 270, 120)
  626. self.ViewDistance = ui.TextLine()
  627. self.ViewDistance.SetFontName(localeInfo.UI_DEF_FONT)
  628. self.ViewDistance.SetPosition(0, 0)
  629. def __NotifyError(self, msg):
  630. chat.AppendChat(chat.CHAT_TYPE_INFO, msg)
  631. if app.ENABLE_KEYBOARD_SETTINGS_SYSTEM:
  632. def PressNumberKey(self, key):
  633. self.pressNumber(key)
  634. def PressQuickSlot(self, key):
  635. player.RequestUseLocalQuickSlot(key)
  636. def SelectQuickPage(self, key):
  637. if app.IsPressed(app.DIK_LSHIFT):
  638. self.quickSlotPageIndex = key
  639. player.SetQuickPage(key)
  640. def SetEmoticon(self, key):
  641. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  642. if (chrmgr.IsPossibleEmoticon(-1)):
  643. chrmgr.SetEmoticon(-1, key)
  644. net.SendEmoticon(key)
  645. def ShowNameNew(self):
  646. self.ShowNameFlag = True
  647. self.playerGauge.EnableShowAlways()
  648. def HideNameNew(self):
  649. self.ShowNameFlag = False
  650. self.playerGauge.DisableShowAlways()
  651. def PressExtraKey(self, key):
  652. if key == "RIDE_HORSE":
  653. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  654. net.SendChatPacket("/user_horse_ride")
  655. elif key == "RIDE_PEED":
  656. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  657. net.SendChatPacket("/user_horse_feed")
  658. elif key == "RIDE":
  659. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  660. net.SendChatPacket("/ride")
  661. elif key == "RIDE_J":
  662. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  663. if player.IsMountingHorse():
  664. net.SendChatPacket("/unmount")
  665. else:
  666. if not uiPrivateShopBuilder.IsBuildingPrivateShop():
  667. if app.ENABLE_MOUNT_SYSTEM:
  668. for i in xrange(180):
  669. index = player.GetItemIndex(i)
  670. if index:
  671. item.SelectItem(index)
  672. subType = item.GetItemSubType()
  673. if subType == item.USE_MOUNT:
  674. net.SendItemUsePacket(i)
  675. break
  676. else:
  677. return
  678. elif key == "RIDE_BYE":
  679. net.SendChatPacket("/user_horse_back")
  680. elif key == "QUEST_SCROLL_ONOFF":
  681. if app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
  682. if 0 == interfaceModule.IsQBHide:
  683. interfaceModule.IsQBHide = 1
  684. self.interface.HideAllQuestButton()
  685. else:
  686. interfaceModule.IsQBHide = 0
  687. self.interface.ShowAllQuestButton()
  688. elif key == "GUILD_WINDOW":
  689. if app.IsPressed(app.DIK_LALT):
  690. self.interface.ToggleGuildWindow()
  691. elif key == "MESSENGER_WINDOW":
  692. if app.IsPressed(app.DIK_LCONTROL):
  693. self.interface.ToggleMessenger()
  694. elif key == "SHOW_MINIMAP":
  695. if app.IsPressed(app.DIK_LSHIFT):
  696. if False == self.interface.wndMiniMap.isShowMiniMap():
  697. self.interface.wndMiniMap.ShowMiniMap()
  698. self.interface.wndMiniMap.SetTop()
  699. else:
  700. self.interface.wndMiniMap.HideMiniMap()
  701. elif key == "HIDE_PM":
  702. if 0 == interfaceModule.IsWisperHide:
  703. interfaceModule.IsWisperHide = 1
  704. self.interface.HideAllWhisperButton()
  705. else:
  706. interfaceModule.IsWisperHide = 0
  707. self.interface.ShowAllWhisperButton()
  708. elif key == "OPEN_WHISPER":
  709. self.interface.OpenWhisperDialogWithoutTarget()
  710. def ChangePKMode(self):
  711. if not app.IsPressed(app.DIK_LCONTROL):
  712. return
  713. if player.GetStatus(player.LEVEL)<constInfo.PVPMODE_PROTECTED_LEVEL:
  714. self.__NotifyError(localeInfo.OPTION_PVPMODE_PROTECT % (constInfo.PVPMODE_PROTECTED_LEVEL))
  715. return
  716. curTime = app.GetTime()
  717. if curTime - self.lastPKModeSendedTime < constInfo.PVPMODE_ACCELKEY_DELAY:
  718. return
  719. self.lastPKModeSendedTime = curTime
  720. curPKMode = player.GetPKMode()
  721. nextPKMode = curPKMode + 1
  722. if nextPKMode == player.PK_MODE_PROTECT:
  723. if 0 == player.GetGuildID():
  724. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_PVPMODE_CANNOT_SET_GUILD_MODE)
  725. nextPKMode = 0
  726. else:
  727. nextPKMode = player.PK_MODE_GUILD
  728. elif nextPKMode == player.PK_MODE_MAX_NUM:
  729. nextPKMode = 0
  730. net.SendChatPacket("/PKMode " + str(nextPKMode))
  731. print "/PKMode " + str(nextPKMode)
  732. def OnChangePKMode(self):
  733. # self.interface.OnChangePKMode()
  734. try:
  735. self.__NotifyError(localeInfo.OPTION_PVPMODE_MESSAGE_DICT[player.GetPKMode()])
  736. except KeyError:
  737. print "UNKNOWN PVPMode[%d]" % (player.GetPKMode())
  738. if constInfo.PVPMODE_TEST_ENABLE:
  739. curPKMode = player.GetPKMode()
  740. alignment, grade = chr.testGetPKData()
  741. self.pkModeNameDict = { 0 : "PEACE", 1 : "REVENGE", 2 : "FREE", 3 : "PROTECT", }
  742. self.testPKMode.SetText("Current PK Mode : " + self.pkModeNameDict.get(curPKMode, "UNKNOWN"))
  743. self.testAlignment.SetText("Current Alignment : " + str(alignment) + " (" + localeInfo.TITLE_NAME_LIST[grade] + ")")
  744. # Start
  745. def StartGame(self):
  746. self.RefreshInventory()
  747. self.RefreshEquipment()
  748. self.RefreshCharacter()
  749. self.RefreshSkill()
  750. # Refresh
  751. def CheckGameButton(self):
  752. if self.interface:
  753. self.interface.CheckGameButton()
  754. def RefreshAlignment(self):
  755. self.interface.RefreshAlignment()
  756. def RefreshStatus(self):
  757. self.CheckGameButton()
  758. if self.interface:
  759. self.interface.RefreshStatus()
  760. if self.playerGauge:
  761. self.playerGauge.RefreshGauge()
  762. def RefreshStamina(self):
  763. self.interface.RefreshStamina()
  764. def RefreshSkill(self):
  765. self.CheckGameButton()
  766. if self.interface:
  767. self.interface.RefreshSkill()
  768. def RefreshMessenger(self):
  769. self.interface.RefreshMessenger()
  770. def RefreshGuildInfoPage(self):
  771. self.interface.RefreshGuildInfoPage()
  772. def RefreshGuildBoardPage(self):
  773. self.interface.RefreshGuildBoardPage()
  774. def RefreshGuildMemberPage(self):
  775. self.interface.RefreshGuildMemberPage()
  776. def RefreshGuildMemberPageGradeComboBox(self):
  777. self.interface.RefreshGuildMemberPageGradeComboBox()
  778. def RefreshGuildSkillPage(self):
  779. self.interface.RefreshGuildSkillPage()
  780. def RefreshGuildGradePage(self):
  781. self.interface.RefreshGuildGradePage()
  782. def RefreshMobile(self):
  783. if self.interface:
  784. self.interface.RefreshMobile()
  785. def OnMobileAuthority(self):
  786. self.interface.OnMobileAuthority()
  787. def OnBlockMode(self, mode):
  788. self.interface.OnBlockMode(mode)
  789. def OpenQuestWindow(self, skin, idx):
  790. import constInfo
  791. if constInfo.INPUT_IGNORE == 1:
  792. return
  793. if constInfo.GIFT_INPUT == 1:
  794. return
  795. self.interface.OpenQuestWindow(skin, idx)
  796. def HideAllQuestWindow(self):
  797. self.interface.HideAllQuestWindow()
  798. def AskGuildName(self):
  799. guildNameBoard = uiCommon.InputDialog()
  800. guildNameBoard.SetTitle(localeInfo.GUILD_NAME)
  801. guildNameBoard.SetAcceptEvent(ui.__mem_func__(self.ConfirmGuildName))
  802. guildNameBoard.SetCancelEvent(ui.__mem_func__(self.CancelGuildName))
  803. guildNameBoard.Open()
  804. self.guildNameBoard = guildNameBoard
  805. def ConfirmGuildName(self):
  806. guildName = self.guildNameBoard.GetText()
  807. if not guildName:
  808. return
  809. if net.IsInsultIn(guildName):
  810. self.PopupMessage(localeInfo.GUILD_CREATE_ERROR_INSULT_NAME)
  811. return
  812. net.SendAnswerMakeGuildPacket(guildName)
  813. self.guildNameBoard.Close()
  814. self.guildNameBoard = None
  815. return TRUE
  816. def CancelGuildName(self):
  817. self.guildNameBoard.Close()
  818. self.guildNameBoard = None
  819. return TRUE
  820. ## Refine
  821. def PopupMessage(self, msg):
  822. self.stream.popupWindow.Close()
  823. self.stream.popupWindow.Open(msg, 0, localeInfo.UI_OK)
  824. def OpenRefineDialog(self, targetItemPos, nextGradeItemVnum, cost, prob, type=0):
  825. self.interface.OpenRefineDialog(targetItemPos, nextGradeItemVnum, cost, prob, type)
  826. def AppendMaterialToRefineDialog(self, vnum, count):
  827. self.interface.AppendMaterialToRefineDialog(vnum, count)
  828. def RunUseSkillEvent(self, slotIndex, coolTime):
  829. self.interface.OnUseSkill(slotIndex, coolTime)
  830. def ClearAffects(self):
  831. self.affectShower.ClearAffects()
  832. def SetAffect(self, affect):
  833. self.affectShower.SetAffect(affect)
  834. def ResetAffect(self, affect):
  835. self.affectShower.ResetAffect(affect)
  836. # UNKNOWN_UPDATE
  837. def BINARY_NEW_AddAffect(self, type, pointIdx, value, duration):
  838. self.affectShower.BINARY_NEW_AddAffect(type, pointIdx, value, duration)
  839. if chr.NEW_AFFECT_DRAGON_SOUL_DECK1 == type or chr.NEW_AFFECT_DRAGON_SOUL_DECK2 == type:
  840. self.interface.DragonSoulActivate(type - chr.NEW_AFFECT_DRAGON_SOUL_DECK1)
  841. elif chr.NEW_AFFECT_DRAGON_SOUL_QUALIFIED == type:
  842. self.BINARY_DragonSoulGiveQuilification()
  843. elif app.ENABLE_DS_SET and chr.NEW_AFFECT_DS_SET == type:
  844. self.interface.DragonSoulSetGrade(value)
  845. if app.ENABLE_BATTLE_PASS:
  846. if type == chr.NEW_AFFECT_BATTLE_PASS:
  847. if self.interface:
  848. if self.interface.wndBattlePassButton:
  849. self.interface.wndBattlePassButton.ShowButton()
  850. self.interface.wndBattlePassButton.Show()
  851. if self.interface.wndBattlePass:
  852. self.interface.wndBattlePass.SetBattlePassInfo(value, duration)
  853. def BINARY_NEW_RemoveAffect(self, type, pointIdx):
  854. self.affectShower.BINARY_NEW_RemoveAffect(type, pointIdx)
  855. if chr.NEW_AFFECT_DRAGON_SOUL_DECK1 == type or chr.NEW_AFFECT_DRAGON_SOUL_DECK2 == type:
  856. self.interface.DragonSoulDeactivate()
  857. elif app.ENABLE_DS_SET and chr.NEW_AFFECT_DS_SET == type:
  858. self.interface.DragonSoulSetGrade(0)
  859. if app.ENABLE_BATTLE_PASS:
  860. if type == chr.NEW_AFFECT_BATTLE_PASS:
  861. if self.interface and self.interface.wndBattlePassButton:
  862. self.interface.wndBattlePassButton.HideButton()
  863. self.interface.wndBattlePassButton.Hide()
  864. # END_OF_UNKNOWN_UPDATE
  865. def ActivateSkillSlot(self, slotIndex):
  866. if self.interface:
  867. self.interface.OnActivateSkill(slotIndex)
  868. def DeactivateSkillSlot(self, slotIndex):
  869. if self.interface:
  870. self.interface.OnDeactivateSkill(slotIndex)
  871. def RefreshEquipment(self):
  872. if self.interface:
  873. self.interface.RefreshInventory()
  874. def RefreshInventory(self):
  875. if self.interface:
  876. self.interface.RefreshInventory()
  877. def RefreshCharacter(self):
  878. if self.interface:
  879. self.interface.RefreshCharacter()
  880. def OnGameOver(self):
  881. self.CloseTargetBoard()
  882. self.OpenRestartDialog()
  883. def OpenRestartDialog(self):
  884. self.interface.OpenRestartDialog()
  885. def ChangeCurrentSkill(self, skillSlotNumber):
  886. self.interface.OnChangeCurrentSkill(skillSlotNumber)
  887. def ExInvenItemUseMsg(self, current_stage, need_left, need_count):
  888. if app.ENABLE_EXTEND_INVEN_SYSTEM:
  889. self.interface.ExInvenItemUseMsg(current_stage, need_left, need_count)
  890. if app.ENABLE_STONE_EVENT:
  891. def BINARY_STONE_EVENT(self, arg1):
  892. self.stone_event.SetPoint(arg1)
  893. if app.ENABLE_12ZI:
  894. def OpenUI12zi(self, yellowmark, greenmark, yellowreward, greenreward, goldreward):
  895. self.interface.OpenUI12zi(yellowmark, greenmark, yellowreward, greenreward, goldreward)
  896. def Refresh12ziTimer(self, currentFloor, jumpCount, limitTime, elapseTime):
  897. self.interface.Refresh12ziTimer(currentFloor, jumpCount, limitTime, elapseTime)
  898. def Show12ziJumpButton(self):
  899. self.interface.Show12ziJumpButton()
  900. def Hide12ziTimer(self):
  901. self.interface.Hide12ziTimer()
  902. def OpenReviveDialog(self, vid, itemcount):
  903. self.targetBoard.OpenReviveDialog(vid, itemcount);
  904. def NotEnoughPrism(self, itemcount):
  905. self.PopupMessage(localeInfo.NOT_ENOUGH_PRISM % (itemcount))
  906. def RefreshShopItemToolTip(self):
  907. self.interface.RefreshShopItemToolTip()
  908. def __Refresh12ziTimer1(self):
  909. net.SendChatPacket("/open_cz")
  910. def __Refresh12ziTimer2(self, a, b, c, d, e):
  911. self.OpenUI12zi(int(a), int(b), int(c), int(d), int(e))
  912. ## TargetBoard
  913. def SetPCTargetBoard(self, vid, name):
  914. self.targetBoard.Open(vid, name)
  915. if app.IsPressed(app.DIK_LCONTROL):
  916. if not player.IsSameEmpire(vid):
  917. return
  918. if player.IsMainCharacterIndex(vid):
  919. return
  920. elif chr.INSTANCE_TYPE_BUILDING == chr.GetInstanceType(vid):
  921. return
  922. self.interface.OpenWhisperDialog(name)
  923. def RefreshTargetBoardByVID(self, vid):
  924. self.targetBoard.RefreshByVID(vid)
  925. def RefreshTargetBoardByName(self, name):
  926. self.targetBoard.RefreshByName(name)
  927. def __RefreshTargetBoard(self):
  928. self.targetBoard.Refresh()
  929. if app.ENABLE_VIEW_TARGET_DECIMAL_HP: #ENABLE_VIEW_ELEMENT
  930. def SetHPTargetBoard(self, vid, hpPercentage, iMinHP, iMaxHP, bElement):
  931. if vid != self.targetBoard.GetTargetVID():
  932. self.targetBoard.ResetTargetBoard()
  933. self.targetBoard.SetEnemyVID(vid)
  934. self.targetBoard.SetHP(hpPercentage, iMinHP, iMaxHP)
  935. self.targetBoard.SetElementImage(bElement)
  936. self.targetBoard.Show()
  937. else:
  938. def SetHPTargetBoard(self, vid, hpPercentage, bElement):
  939. if vid != self.targetBoard.GetTargetVID():
  940. self.targetBoard.ResetTargetBoard()
  941. self.targetBoard.SetEnemyVID(vid)
  942. self.targetBoard.SetHP(hpPercentage)
  943. self.targetBoard.SetElementImage(bElement)
  944. self.targetBoard.Show()
  945. def CloseTargetBoardIfDifferent(self, vid):
  946. if vid != self.targetBoard.GetTargetVID():
  947. self.targetBoard.Close()
  948. def CloseTargetBoard(self):
  949. self.targetBoard.Close()
  950. ## View Equipment
  951. def OpenEquipmentDialog(self, vid):
  952. if app.ENABLE_VIEW_EQUIPMENT_SYSTEM:
  953. self.interface.OpenEquipmentDialog(vid)
  954. def SetEquipmentDialogItem(self, vid, slotIndex, vnum, count, transmutation, evolution):
  955. if app.ENABLE_VIEW_EQUIPMENT_SYSTEM:
  956. self.interface.SetEquipmentDialogItem(vid, slotIndex, vnum, count, transmutation, evolution)
  957. def SetEquipmentDialogSocket(self, vid, slotIndex, socketIndex, value):
  958. if app.ENABLE_VIEW_EQUIPMENT_SYSTEM:
  959. self.interface.SetEquipmentDialogSocket(vid, slotIndex, socketIndex, value)
  960. def SetEquipmentDialogAttr(self, vid, slotIndex, attrIndex, type, value):
  961. if app.ENABLE_VIEW_EQUIPMENT_SYSTEM:
  962. self.interface.SetEquipmentDialogAttr(vid, slotIndex, attrIndex, type, value)
  963. def ViewEquipRequest(self, vid):
  964. if app.ENABLE_VIEW_EQUIPMENT_SYSTEM:
  965. vid = int(vid)
  966. eqRequestQuestionDialog = uiCommon.QuestionDialog()
  967. eqRequestQuestionDialog.SetText(chr.GetNameByVID(vid) + ' giydiklerini g�rmek istiyor?')
  968. eqRequestQuestionDialog.SetAcceptText(localeInfo.UI_ACCEPT)
  969. eqRequestQuestionDialog.SetCancelText(localeInfo.UI_DENY)
  970. eqRequestQuestionDialog.SetAcceptEvent(lambda arg = True: self.AnswerViewEquipRequest(arg))
  971. eqRequestQuestionDialog.SetCancelEvent(lambda arg = False: self.AnswerViewEquipRequest(arg))
  972. eqRequestQuestionDialog.Open()
  973. eqRequestQuestionDialog.vid = vid
  974. self.eqRequestQuestionDialog = eqRequestQuestionDialog
  975. def AnswerViewEquipRequest(self, answer):
  976. if app.ENABLE_VIEW_EQUIPMENT_SYSTEM:
  977. if not self.eqRequestQuestionDialog:
  978. return
  979. else:
  980. vid = self.eqRequestQuestionDialog.vid
  981. if answer:
  982. net.SendChatPacket('/view_equip_accept ' + str(vid))
  983. else:
  984. net.SendChatPacket('/view_equip_deny ' + str(vid))
  985. self.eqRequestQuestionDialog.Close()
  986. self.eqRequestQuestionDialog = None
  987. return
  988. def ViewEquipRequestDenied(self):
  989. if app.ENABLE_VIEW_EQUIPMENT_SYSTEM:
  990. self.PopupMessage('Profil g�r�nt�leme iste�i reddedildi.')
  991. if app.ENABLE_RENEW_MESSENGER_WHISPER:
  992. def BINARY_OpenWhisperBySearchName(self, name):
  993. self.interface.OpenWhisperDialog(name)
  994. def BINARY_Profile_OnRecvData(self, name, job, level, empire, guild, language, status, location, year, month, day):
  995. self.interface.RecvWhisperProfile(name, job, level, empire, guild, language, status, location, year, month, day)
  996. if str(name) == str(player.GetMainCharacterName()):
  997. uicontact.PROFILE_DICT.update({"job":job,"status":status,"location":location,"year":year,"month":month,"day":day})
  998. # SHOW_LOCAL_MAP_NAME
  999. def ShowMapName(self, mapName, x, y):
  1000. if self.mapNameShower:
  1001. self.mapNameShower.ShowMapName(mapName, x, y)
  1002. if self.interface:
  1003. self.interface.SetMapName(mapName)
  1004. # END_OF_SHOW_LOCAL_MAP_NAME
  1005. def BINARY_OpenAtlasWindow(self):
  1006. self.interface.BINARY_OpenAtlasWindow()
  1007. ## Chat
  1008. if app.ENABLE_RENEW_MESSENGER_WHISPER:
  1009. def OnRecvWhisper(self, mode, name, line, job, level, empire, guild, language, status, location, year, month, day):
  1010. if mode == chat.WHISPER_TYPE_GM:
  1011. self.interface.RegisterGameMasterName(name)
  1012. chat.AppendWhisper(mode, name, "%s %s" % (uicontact.GetWhisperSendedTime(), line))
  1013. self.interface.RecvWhisper(name, job, level, empire, guild, language, status, location, year, month, day)
  1014. else:
  1015. def OnRecvWhisper(self, mode, name, line):
  1016. if mode == chat.WHISPER_TYPE_GM:
  1017. self.interface.RegisterGameMasterName(name)
  1018. chat.AppendWhisper(mode, name, line)
  1019. self.interface.RecvWhisper(name)
  1020. def OnRecvWhisperSystemMessage(self, mode, name, line):
  1021. chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, line)
  1022. self.interface.RecvWhisper(name)
  1023. def OnRecvWhisperError(self, mode, name, line):
  1024. if localeInfo.WHISPER_ERROR.has_key(mode):
  1025. chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, localeInfo.WHISPER_ERROR[mode](name))
  1026. else:
  1027. chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, "Whisper Unknown Error(mode=%d, name=%s)" % (mode, name))
  1028. self.interface.RecvWhisper(name)
  1029. def RecvWhisper(self, name):
  1030. self.interface.RecvWhisper(name)
  1031. if app.ENABLE_WHISPER_ADMIN_SYSTEM:
  1032. def OnRecvWhisperAdminSystem(self, name, line, color):
  1033. def ExistCustomColor(val):
  1034. return (val > 0)
  1035. def GetColor(type):
  1036. WHISPER_COLOR_MESSAGE = {
  1037. 0: "|cffffffff|H|h",
  1038. 1: "|cffff796a|H|h",
  1039. 2: "|cffb1ff80|H|h",
  1040. 3: "|cff46deff|H|h"
  1041. }
  1042. return WHISPER_COLOR_MESSAGE[type]
  1043. def ResizeTextWithColor(color, text):
  1044. return str("%s%s|h|r" % (GetColor(color), text))
  1045. import datetime
  1046. now = datetime.datetime.now()
  1047. ret = line.replace("#", " ")
  1048. if ExistCustomColor(int(color)):
  1049. ret = ResizeTextWithColor(int(color), ret)
  1050. else:
  1051. ret = ResizeTextWithColor(0, ret)
  1052. text = localeInfo.WHISPER_ADMIN_MESSAGE % (ret)
  1053. self.interface.RegisterGameMasterName(name)
  1054. chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, text)
  1055. self.interface.RecvWhisper(name)
  1056. def OnPickExp(self, money):
  1057. if constInfo.ExpDrop == 1:
  1058. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_PICK_EXP % (money))
  1059. else:
  1060. return
  1061. def OnPickMoney(self, money):
  1062. if constInfo.YangDrop == 1:
  1063. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_PICK_MONEY % (money))
  1064. else:
  1065. return
  1066. def OnPickCheque(self, cheque):
  1067. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHEQUE_SYSTEM_PICK_WON % (cheque))
  1068. if app.ENABLE_12ZI:
  1069. def SetBeadCount(self, value):
  1070. self.interface.SetBeadCount(value)
  1071. def NextBeadUpdateTime(self, value):
  1072. self.interface.NextBeadUpdateTime(value)
  1073. def OnShopError(self, type):
  1074. try:
  1075. self.PopupMessage(localeInfo.SHOP_ERROR_DICT[type])
  1076. except KeyError:
  1077. self.PopupMessage(localeInfo.SHOP_ERROR_UNKNOWN % (type))
  1078. def OnSafeBoxError(self):
  1079. self.PopupMessage(localeInfo.SAFEBOX_ERROR)
  1080. def OnFishingSuccess(self, isFish, fishName):
  1081. chat.AppendChatWithDelay(chat.CHAT_TYPE_INFO, localeInfo.FISHING_SUCCESS(isFish, fishName), 2000)
  1082. # ADD_FISHING_MESSAGE
  1083. def OnFishingNotifyUnknown(self):
  1084. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.FISHING_UNKNOWN)
  1085. def OnFishingWrongPlace(self):
  1086. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.FISHING_WRONG_PLACE)
  1087. # END_OF_ADD_FISHING_MESSAGE
  1088. def OnFishingNotify(self, isFish, fishName):
  1089. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.FISHING_NOTIFY(isFish, fishName))
  1090. def OnFishingFailure(self):
  1091. chat.AppendChatWithDelay(chat.CHAT_TYPE_INFO, localeInfo.FISHING_FAILURE, 2000)
  1092. def OnCannotPickItem(self):
  1093. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_CANNOT_PICK_ITEM)
  1094. # MINING
  1095. def OnCannotMining(self):
  1096. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_CANNOT_MINING)
  1097. # END_OF_MINING
  1098. def OnCannotUseSkill(self, vid, type):
  1099. if localeInfo.USE_SKILL_ERROR_TAIL_DICT.has_key(type):
  1100. textTail.RegisterInfoTail(vid, localeInfo.USE_SKILL_ERROR_TAIL_DICT[type])
  1101. if localeInfo.USE_SKILL_ERROR_CHAT_DICT.has_key(type):
  1102. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_SKILL_ERROR_CHAT_DICT[type])
  1103. def OnCannotShotError(self, vid, type):
  1104. textTail.RegisterInfoTail(vid, localeInfo.SHOT_ERROR_TAIL_DICT.get(type, localeInfo.SHOT_ERROR_UNKNOWN % (type)))
  1105. ## PointReset
  1106. def StartPointReset(self):
  1107. self.interface.OpenPointResetDialog()
  1108. ## Shop
  1109. if (app.WJ_COMBAT_ZONE):
  1110. def StartShop(self, vid, points, curLimit, maxLimit):
  1111. self.interface.OpenShopDialog(vid, points, curLimit, maxLimit)
  1112. else:
  1113. def StartShop(self, vid):
  1114. self.interface.OpenShopDialog(vid)
  1115. def EndShop(self):
  1116. self.interface.CloseShopDialog()
  1117. def RefreshShop(self):
  1118. self.interface.RefreshShopDialog()
  1119. def SetShopSellingPrice(self, Price):
  1120. pass
  1121. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  1122. def StartOfflineShop(self, vid):
  1123. self.interface.OpenOfflineShopDialog(vid)
  1124. def EndOfflineShop(self):
  1125. self.interface.CloseOfflineShopDialog()
  1126. def RefreshOfflineShop(self):
  1127. self.interface.RefreshOfflineShopDialog()
  1128. def RefreshOfflineShopManager(self):
  1129. self.interface.RefreshOfflineShopDialogManager()
  1130. def CloseOfflineShopManager(self):
  1131. self.interface.CloseOfflineShopDialogManager()
  1132. ## Exchange
  1133. def StartExchange(self):
  1134. self.interface.StartExchange()
  1135. def EndExchange(self):
  1136. self.interface.EndExchange()
  1137. def RefreshExchange(self):
  1138. self.interface.RefreshExchange()
  1139. if app.ENABLE_TRADABLE_ICON:
  1140. def AddExchangeItemSlotIndex(self, idx):
  1141. self.interface.AddExchangeItemSlotIndex(idx)
  1142. ## Party
  1143. if app.ENABLE_NEW_USER_CARE:
  1144. def RecvPartyInviteQuestion(self, leaderVID, leaderName):
  1145. partyInviteQuestionDialog = uiCommon.QuestionDialogWithTimeLimit()
  1146. partyInviteQuestionDialog.SetAcceptEvent(lambda arg=True: self.AnswerPartyInvite(arg))
  1147. partyInviteQuestionDialog.SetCancelEvent(lambda arg=False: self.AnswerPartyInvite(arg))
  1148. partyInviteQuestionDialog.Open(leaderName + localeInfo.PARTY_DO_YOU_JOIN, 10)
  1149. partyInviteQuestionDialog.SetTimeOverMsg(localeInfo.PARTY_ANSWER_TIMEOVER)
  1150. partyInviteQuestionDialog.SetCancelOnTimeOver()
  1151. partyInviteQuestionDialog.partyLeaderVID = leaderVID
  1152. self.partyInviteQuestionDialog = partyInviteQuestionDialog
  1153. else:
  1154. def RecvPartyInviteQuestion(self, leaderVID, leaderName):
  1155. partyInviteQuestionDialog = uiCommon.QuestionDialog()
  1156. partyInviteQuestionDialog.SetText(leaderName + localeInfo.PARTY_DO_YOU_JOIN)
  1157. partyInviteQuestionDialog.SetAcceptEvent(lambda arg=True: self.AnswerPartyInvite(arg))
  1158. partyInviteQuestionDialog.SetCancelEvent(lambda arg=False: self.AnswerPartyInvite(arg))
  1159. partyInviteQuestionDialog.Open()
  1160. partyInviteQuestionDialog.partyLeaderVID = leaderVID
  1161. self.partyInviteQuestionDialog = partyInviteQuestionDialog
  1162. def AnswerPartyInvite(self, answer):
  1163. if not self.partyInviteQuestionDialog:
  1164. return
  1165. partyLeaderVID = self.partyInviteQuestionDialog.partyLeaderVID
  1166. if not app.ENABLE_NEW_USER_CARE:
  1167. distance = player.GetCharacterDistance(partyLeaderVID)
  1168. if distance < 0.0 or distance > 5000:
  1169. answer = False
  1170. net.SendPartyInviteAnswerPacket(partyLeaderVID, answer)
  1171. self.partyInviteQuestionDialog.Close()
  1172. self.partyInviteQuestionDialog = None
  1173. if app.ENABLE_PARTY_UPDATE:
  1174. def AddPartyMember(self, pid, name, mapIdx, channel):
  1175. self.interface.AddPartyMember(pid, name, mapIdx, channel)
  1176. else:
  1177. def AddPartyMember(self, pid, name):
  1178. self.interface.AddPartyMember(pid, name)
  1179. def UpdatePartyMemberInfo(self, pid):
  1180. self.interface.UpdatePartyMemberInfo(pid)
  1181. def RemovePartyMember(self, pid):
  1182. self.interface.RemovePartyMember(pid)
  1183. self.__RefreshTargetBoard()
  1184. if app.ENABLE_PARTY_UPDATE:
  1185. def LinkPartyMember(self, pid, vid, mapIdx, channel):
  1186. self.interface.LinkPartyMember(pid, vid, mapIdx, channel)
  1187. else:
  1188. def LinkPartyMember(self, pid, vid):
  1189. self.interface.LinkPartyMember(pid, vid)
  1190. def UnlinkPartyMember(self, pid):
  1191. self.interface.UnlinkPartyMember(pid)
  1192. def UnlinkAllPartyMember(self):
  1193. self.interface.UnlinkAllPartyMember()
  1194. def ExitParty(self):
  1195. self.interface.ExitParty()
  1196. self.RefreshTargetBoardByVID(self.targetBoard.GetTargetVID())
  1197. def ChangePartyParameter(self, distributionMode):
  1198. self.interface.ChangePartyParameter(distributionMode)
  1199. ## Messenger
  1200. def OnMessengerAddFriendQuestion(self, name):
  1201. messengerAddFriendQuestion = uiCommon.QuestionDialog2()
  1202. messengerAddFriendQuestion.SetText1(localeInfo.MESSENGER_DO_YOU_ACCEPT_ADD_FRIEND_1 % (name))
  1203. messengerAddFriendQuestion.SetText2(localeInfo.MESSENGER_DO_YOU_ACCEPT_ADD_FRIEND_2)
  1204. messengerAddFriendQuestion.SetAcceptEvent(ui.__mem_func__(self.OnAcceptAddFriend))
  1205. messengerAddFriendQuestion.SetCancelEvent(ui.__mem_func__(self.OnDenyAddFriend))
  1206. messengerAddFriendQuestion.Open()
  1207. messengerAddFriendQuestion.name = name
  1208. self.messengerAddFriendQuestion = messengerAddFriendQuestion
  1209. def OnAcceptAddFriend(self):
  1210. name = self.messengerAddFriendQuestion.name
  1211. net.SendChatPacket("/messenger_auth y " + name)
  1212. self.OnCloseAddFriendQuestionDialog()
  1213. return TRUE
  1214. def OnDenyAddFriend(self):
  1215. name = self.messengerAddFriendQuestion.name
  1216. net.SendChatPacket("/messenger_auth n " + name)
  1217. self.OnCloseAddFriendQuestionDialog()
  1218. return TRUE
  1219. def OnCloseAddFriendQuestionDialog(self):
  1220. self.messengerAddFriendQuestion.Close()
  1221. self.messengerAddFriendQuestion = None
  1222. return TRUE
  1223. ## SafeBox
  1224. def OpenSafeboxWindow(self, size):
  1225. self.interface.OpenSafeboxWindow(size)
  1226. def RefreshSafebox(self):
  1227. self.interface.RefreshSafebox()
  1228. def RefreshSafeboxMoney(self):
  1229. self.interface.RefreshSafeboxMoney()
  1230. # ITEM_MALL
  1231. def OpenMallWindow(self, size):
  1232. self.interface.OpenMallWindow(size)
  1233. def RefreshMall(self):
  1234. self.interface.RefreshMall()
  1235. # END_OF_ITEM_MALL
  1236. ## Guild
  1237. def RecvGuildInviteQuestion(self, guildID, guildName):
  1238. guildInviteQuestionDialog = uiCommon.QuestionDialog()
  1239. guildInviteQuestionDialog.SetText(guildName + localeInfo.GUILD_DO_YOU_JOIN)
  1240. guildInviteQuestionDialog.SetAcceptEvent(lambda arg=TRUE: self.AnswerGuildInvite(arg))
  1241. guildInviteQuestionDialog.SetCancelEvent(lambda arg=FALSE: self.AnswerGuildInvite(arg))
  1242. guildInviteQuestionDialog.Open()
  1243. guildInviteQuestionDialog.guildID = guildID
  1244. self.guildInviteQuestionDialog = guildInviteQuestionDialog
  1245. def AnswerGuildInvite(self, answer):
  1246. if not self.guildInviteQuestionDialog:
  1247. return
  1248. guildLeaderVID = self.guildInviteQuestionDialog.guildID
  1249. net.SendGuildInviteAnswerPacket(guildLeaderVID, answer)
  1250. self.guildInviteQuestionDialog.Close()
  1251. self.guildInviteQuestionDialog = None
  1252. def DeleteGuild(self):
  1253. self.interface.DeleteGuild()
  1254. ## Clock
  1255. def ShowClock(self, second):
  1256. self.interface.ShowClock(second)
  1257. def HideClock(self):
  1258. self.interface.HideClock()
  1259. ## Emotion
  1260. def BINARY_ActEmotion(self, emotionIndex):
  1261. if self.interface.wndCharacter:
  1262. self.interface.wndCharacter.ActEmotion(emotionIndex)
  1263. ###############################################################################################
  1264. ###############################################################################################
  1265. ## Keyboard Functions
  1266. def CheckFocus(self):
  1267. if FALSE == self.IsFocus():
  1268. if TRUE == self.interface.IsOpenChat():
  1269. self.interface.ToggleChat()
  1270. self.SetFocus()
  1271. def SaveScreen(self):
  1272. print "save screen"
  1273. # SCREENSHOT_CWDSAVE
  1274. if SCREENSHOT_CWDSAVE:
  1275. if not os.path.exists(os.getcwd()+os.sep+"screenshot"):
  1276. os.mkdir(os.getcwd()+os.sep+"screenshot")
  1277. (succeeded, name) = grp.SaveScreenShotToPath(os.getcwd()+os.sep+"screenshot"+os.sep)
  1278. elif SCREENSHOT_DIR:
  1279. (succeeded, name) = grp.SaveScreenShot(SCREENSHOT_DIR)
  1280. else:
  1281. (succeeded, name) = grp.SaveScreenShot()
  1282. # END_OF_SCREENSHOT_CWDSAVE
  1283. if succeeded:
  1284. pass
  1285. chat.AppendChat(chat.CHAT_TYPE_INFO, name + localeInfo.SCREENSHOT_SAVE1)
  1286. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SCREENSHOT_SAVE2)
  1287. else:
  1288. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SCREENSHOT_SAVE_FAILURE)
  1289. def ShowConsole(self):
  1290. if debugInfo.IsDebugMode() or TRUE == self.consoleEnable:
  1291. player.EndKeyWalkingImmediately()
  1292. self.console.OpenWindow()
  1293. def ShowName(self):
  1294. self.ShowNameFlag = TRUE
  1295. self.playerGauge.EnableShowAlways()
  1296. player.SetQuickPage(self.quickSlotPageIndex+1)
  1297. if app.ENABLE_GRAPHIC_NAME:
  1298. # ADD_ALWAYS_SHOW_NAME
  1299. def __IsShowName(self):
  1300. if systemSetting.IsAlwaysShowName() == 0:
  1301. return True
  1302. if self.ShowNameFlag:
  1303. return True
  1304. return False
  1305. def __IsShowNameItem(self):
  1306. if systemSetting.IsAlwaysShowName() == 1:
  1307. return True
  1308. return False
  1309. # END_OF_ADD_ALWAYS_SHOW_NAME
  1310. else:
  1311. # ADD_ALWAYS_SHOW_NAME
  1312. def __IsShowName(self):
  1313. if systemSetting.IsAlwaysShowName():
  1314. return TRUE
  1315. if self.ShowNameFlag:
  1316. return TRUE
  1317. return FALSE
  1318. # END_OF_ADD_ALWAYS_SHOW_NAME
  1319. def HideName(self):
  1320. self.ShowNameFlag = FALSE
  1321. self.playerGauge.DisableShowAlways()
  1322. player.SetQuickPage(self.quickSlotPageIndex)
  1323. def ShowMouseImage(self):
  1324. self.interface.ShowMouseImage()
  1325. def HideMouseImage(self):
  1326. self.interface.HideMouseImage()
  1327. def StartAttack(self):
  1328. player.SetAttackKeyState(TRUE)
  1329. def EndAttack(self):
  1330. player.SetAttackKeyState(FALSE)
  1331. def MoveUp(self):
  1332. player.SetSingleDIKKeyState(app.DIK_UP, TRUE)
  1333. def MoveDown(self):
  1334. player.SetSingleDIKKeyState(app.DIK_DOWN, TRUE)
  1335. def MoveLeft(self):
  1336. player.SetSingleDIKKeyState(app.DIK_LEFT, TRUE)
  1337. def MoveRight(self):
  1338. player.SetSingleDIKKeyState(app.DIK_RIGHT, TRUE)
  1339. def StopUp(self):
  1340. player.SetSingleDIKKeyState(app.DIK_UP, FALSE)
  1341. def StopDown(self):
  1342. player.SetSingleDIKKeyState(app.DIK_DOWN, FALSE)
  1343. def StopLeft(self):
  1344. player.SetSingleDIKKeyState(app.DIK_LEFT, FALSE)
  1345. def StopRight(self):
  1346. player.SetSingleDIKKeyState(app.DIK_RIGHT, FALSE)
  1347. def PickUpItem(self):
  1348. player.PickCloseItem()
  1349. ###############################################################################################
  1350. ###############################################################################################
  1351. ## Event Handler
  1352. def OnKeyDown(self, key):
  1353. if self.interface.wndWeb and self.interface.wndWeb.IsShow():
  1354. return
  1355. if key == app.DIK_ESC:
  1356. constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
  1357. if app.ENABLE_KEYBOARD_SETTINGS_SYSTEM:
  1358. if self.interface:
  1359. self.dlgKeyboardSettings.OnKeyDown(key)
  1360. try:
  1361. if app.ENABLE_KEYBOARD_SETTINGS_SYSTEM:
  1362. pass
  1363. else:
  1364. self.onPressKeyDict[key]()
  1365. except KeyError:
  1366. pass
  1367. except:
  1368. raise
  1369. return TRUE
  1370. def OnKeyUp(self, key):
  1371. if app.ENABLE_KEYBOARD_SETTINGS_SYSTEM:
  1372. if self.interface:
  1373. self.dlgKeyboardSettings.OnKeyUp(key)
  1374. try:
  1375. if app.ENABLE_KEYBOARD_SETTINGS_SYSTEM:
  1376. pass
  1377. else:
  1378. self.onClickKeyDict[key]()
  1379. except KeyError:
  1380. pass
  1381. except:
  1382. raise
  1383. return TRUE
  1384. def OnMouseLeftButtonDown(self):
  1385. if self.interface.BUILD_OnMouseLeftButtonDown():
  1386. return
  1387. if mouseModule.mouseController.isAttached():
  1388. self.CheckFocus()
  1389. else:
  1390. hyperlink = ui.GetHyperlink()
  1391. if hyperlink:
  1392. return
  1393. else:
  1394. self.CheckFocus()
  1395. player.SetMouseState(player.MBT_LEFT, player.MBS_PRESS);
  1396. return TRUE
  1397. def OnMouseLeftButtonUp(self):
  1398. if self.interface.BUILD_OnMouseLeftButtonUp():
  1399. return
  1400. if mouseModule.mouseController.isAttached():
  1401. attachedType = mouseModule.mouseController.GetAttachedType()
  1402. attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
  1403. attachedItemSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1404. attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
  1405. ## QuickSlot
  1406. if player.SLOT_TYPE_QUICK_SLOT == attachedType:
  1407. player.RequestDeleteGlobalQuickSlot(attachedItemSlotPos)
  1408. ## Inventory
  1409. elif player.SLOT_TYPE_INVENTORY == attachedType or\
  1410. (player.SLOT_TYPE_SKILL_BOOK_INVENTORY == attachedType or\
  1411. player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == attachedType or\
  1412. player.SLOT_TYPE_STONE_INVENTORY == attachedType or\
  1413. player.SLOT_TYPE_BOX_INVENTORY == attachedType or\
  1414. player.SLOT_TYPE_EFSUN_INVENTORY == attachedType or\
  1415. player.SLOT_TYPE_CICEK_INVENTORY == attachedType and app.ENABLE_SPLIT_INVENTORY_SYSTEM):
  1416. if player.ITEM_MONEY == attachedItemIndex:
  1417. self.__PutMoney(attachedType, attachedItemCount, self.PickingCharacterIndex)
  1418. elif player.ITEM_CHEQUE == attachedItemIndex:
  1419. self.__PutCheque(attachedType, attachedItemCount, self.PickingCharacterIndex)
  1420. else:
  1421. self.__PutItem(attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount, self.PickingCharacterIndex)
  1422. ## DragonSoul
  1423. elif player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedType:
  1424. self.__PutItem(attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount, self.PickingCharacterIndex)
  1425. mouseModule.mouseController.DeattachObject()
  1426. if app.ENABLE_AUTO_HUNT_SYSTEM:
  1427. if player.SLOT_TYPE_AUTOHUNT_ITEM == attachedType:
  1428. self.interface.AutohuntRemoveItemSlot(attachedItemSlotPos)
  1429. if player.SLOT_TYPE_AUTOHUNT_SKILL == attachedType:
  1430. self.interface.AutohuntRemoveSkillSlot(attachedItemSlotPos)
  1431. else:
  1432. hyperlink = ui.GetHyperlink()
  1433. if hyperlink:
  1434. if app.IsPressed(app.DIK_LALT):
  1435. link = chat.GetLinkFromHyperlink(hyperlink)
  1436. ime.PasteString(link)
  1437. else:
  1438. self.interface.MakeHyperlinkTooltip(hyperlink)
  1439. return
  1440. else:
  1441. player.SetMouseState(player.MBT_LEFT, player.MBS_CLICK)
  1442. #player.EndMouseWalking()
  1443. return TRUE
  1444. def __PutItem(self, attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount, dstChrID):
  1445. if player.SLOT_TYPE_INVENTORY == attachedType or player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedType or\
  1446. (player.SLOT_TYPE_SKILL_BOOK_INVENTORY == attachedType or\
  1447. player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == attachedType or\
  1448. player.SLOT_TYPE_STONE_INVENTORY == attachedType or\
  1449. player.SLOT_TYPE_BOX_INVENTORY == attachedType or\
  1450. player.SLOT_TYPE_EFSUN_INVENTORY == attachedType or\
  1451. player.SLOT_TYPE_CICEK_INVENTORY == attachedType and app.ENABLE_SPLIT_INVENTORY_SYSTEM):
  1452. attachedInvenType = player.SlotTypeToInvenType(attachedType)
  1453. if TRUE == chr.HasInstance(self.PickingCharacterIndex) and player.GetMainCharacterIndex() != dstChrID:
  1454. if player.IsEquipmentSlot(attachedItemSlotPos) and player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedType:
  1455. self.stream.popupWindow.Close()
  1456. self.stream.popupWindow.Open(localeInfo.EXCHANGE_FAILURE_EQUIP_ITEM, 0, localeInfo.UI_OK)
  1457. else:
  1458. if chr.IsNPC(dstChrID):
  1459. net.SendGiveItemPacket(dstChrID, attachedInvenType, attachedItemSlotPos, attachedItemCount)
  1460. else:
  1461. if app.ENABLE_MELEY_LAIR_DUNGEON:
  1462. if chr.IsStone(dstChrID):
  1463. net.SendGiveItemPacket(dstChrID, attachedInvenType, attachedItemSlotPos, attachedItemCount)
  1464. else:
  1465. net.SendExchangeStartPacket(dstChrID)
  1466. net.SendExchangeItemAddPacket(attachedInvenType, attachedItemSlotPos, 0)
  1467. else:
  1468. net.SendExchangeStartPacket(dstChrID)
  1469. net.SendExchangeItemAddPacket(attachedInvenType, attachedItemSlotPos, 0)
  1470. if app.ENABLE_REFINE_RENEWAL:
  1471. constInfo.AUTO_REFINE_TYPE = 2
  1472. constInfo.AUTO_REFINE_DATA["NPC"][0] = dstChrID
  1473. constInfo.AUTO_REFINE_DATA["NPC"][1] = attachedInvenType
  1474. constInfo.AUTO_REFINE_DATA["NPC"][2] = attachedItemSlotPos
  1475. constInfo.AUTO_REFINE_DATA["NPC"][3] = attachedItemCount
  1476. else:
  1477. self.__DropItem(attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount)
  1478. def __PutMoney(self, attachedType, attachedMoney, dstChrID):
  1479. if TRUE == chr.HasInstance(dstChrID) and player.GetMainCharacterIndex() != dstChrID:
  1480. net.SendExchangeStartPacket(dstChrID)
  1481. net.SendExchangeElkAddPacket(attachedMoney)
  1482. else:
  1483. self.__DropMoney(attachedType, attachedMoney)
  1484. def __DropMoney(self, attachedType, attachedMoney):
  1485. # PRIVATESHOP_DISABLE_ITEM_DROP
  1486. if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1487. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1488. return
  1489. # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
  1490. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  1491. if uiOfflineShopBuilder.IsBuildingOfflineShop():
  1492. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1493. return
  1494. if uiOfflineShop.IsEditingOfflineShop():
  1495. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1496. return
  1497. if attachedMoney>=1000:
  1498. self.stream.popupWindow.Close()
  1499. self.stream.popupWindow.Open(localeInfo.DROP_MONEY_FAILURE_1000_OVER, 0, localeInfo.UI_OK)
  1500. return
  1501. itemDropQuestionDialog = uiCommon.QuestionDialog()
  1502. itemDropQuestionDialog.SetText(localeInfo.DO_YOU_DROP_MONEY % (attachedMoney))
  1503. itemDropQuestionDialog.SetAcceptEvent(lambda arg=TRUE: self.RequestDropItem(arg))
  1504. itemDropQuestionDialog.SetCancelEvent(lambda arg=FALSE: self.RequestDropItem(arg))
  1505. itemDropQuestionDialog.Open()
  1506. itemDropQuestionDialog.dropType = attachedType
  1507. itemDropQuestionDialog.dropCount = attachedMoney
  1508. itemDropQuestionDialog.dropNumber = player.ITEM_MONEY
  1509. self.itemDropQuestionDialog = itemDropQuestionDialog
  1510. def __PutCheque(self, attachedType, attachedCheque, dstChrID):
  1511. if True == chr.HasInstance(dstChrID) and player.GetMainCharacterIndex() != dstChrID:
  1512. net.SendExchangeStartPacket(dstChrID)
  1513. net.SendExchangePsgAddPacket(attachedCheque)
  1514. else:
  1515. self.__DropCheque(attachedType, attachedCheque)
  1516. def __DropCheque(self, attachedType, attachedCheque):
  1517. if attachedCheque>=999:
  1518. self.stream.popupWindow.Close()
  1519. self.stream.popupWindow.Open(localeInfo.DROP_CHEQUE_FAILURE_100_OVER, 0, localeInfo.UI_OK)
  1520. return
  1521. itemDropQuestionDialog = uiCommon.QuestionDialog()
  1522. itemDropQuestionDialog.SetText(localeInfo.DO_YOU_DROP_CHEQUE % (attachedCheque))
  1523. itemDropQuestionDialog.SetAcceptEvent(lambda arg=True: self.RequestDropItem(arg))
  1524. itemDropQuestionDialog.SetCancelEvent(lambda arg=False: self.RequestDropItem(arg))
  1525. itemDropQuestionDialog.Open()
  1526. itemDropQuestionDialog.dropType = attachedType
  1527. itemDropQuestionDialog.dropCount = attachedCheque
  1528. itemDropQuestionDialog.dropNumber = player.ITEM_CHEQUE
  1529. self.itemDropQuestionDialog = itemDropQuestionDialog
  1530. def __DropItem(self, attachedType, attachedItemIndex, attachedItemSlotPos, attachedItemCount):
  1531. # PRIVATESHOP_DISABLE_ITEM_DROP
  1532. if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1533. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1534. return
  1535. # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
  1536. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  1537. if uiOfflineShopBuilder.IsBuildingOfflineShop():
  1538. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1539. return
  1540. if uiOfflineShop.IsEditingOfflineShop():
  1541. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1542. return
  1543. if player.SLOT_TYPE_INVENTORY == attachedType and player.IsEquipmentSlot(attachedItemSlotPos):
  1544. self.stream.popupWindow.Close()
  1545. self.stream.popupWindow.Open(localeInfo.DROP_ITEM_FAILURE_EQUIP_ITEM, 0, localeInfo.UI_OK)
  1546. else:
  1547. if player.SLOT_TYPE_INVENTORY == attachedType or\
  1548. (player.SLOT_TYPE_SKILL_BOOK_INVENTORY == attachedType or\
  1549. player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == attachedType or\
  1550. player.SLOT_TYPE_STONE_INVENTORY == attachedType or\
  1551. player.SLOT_TYPE_BOX_INVENTORY == attachedType or\
  1552. player.SLOT_TYPE_EFSUN_INVENTORY == attachedType or\
  1553. player.SLOT_TYPE_CICEK_INVENTORY == attachedType and app.ENABLE_SPLIT_INVENTORY_SYSTEM):
  1554. dropItemIndex = player.GetItemIndex(attachedItemSlotPos)
  1555. item.SelectItem(dropItemIndex)
  1556. dropItemName = item.GetItemName()
  1557. ## Question Text
  1558. itemPrice = player.GetISellItemPrice(attachedItemSlotPos)
  1559. questionText = localeInfo.HOW_MANY_ITEM_DO_YOU_DROP_NEW(dropItemName, attachedItemCount)
  1560. ## Dialog
  1561. itemDropQuestionDialog = uiCommon.QuestionDialogItem()
  1562. itemDropQuestionDialog.SetText(questionText)
  1563. itemDropQuestionDialog.SetAcceptEvent(lambda arg=True: self.RequestDropItem(arg))
  1564. itemDropQuestionDialog.SetDestroyEvent(lambda arg=True: self.RequestDestroyItem(arg))
  1565. itemDropQuestionDialog.SetCancelEvent(lambda arg=False: self.RequestDropItem(arg))
  1566. itemDropQuestionDialog.SetSellEvent(lambda arg=True: self.RequestSellItem(arg))
  1567. itemDropQuestionDialog.Open()
  1568. itemDropQuestionDialog.dropType = attachedType
  1569. itemDropQuestionDialog.dropNumber = attachedItemSlotPos
  1570. itemDropQuestionDialog.dropCount = attachedItemCount
  1571. self.itemDropQuestionDialog = itemDropQuestionDialog
  1572. constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
  1573. elif player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedType:
  1574. dropItemIndex = player.GetItemIndex(player.DRAGON_SOUL_INVENTORY, attachedItemSlotPos)
  1575. item.SelectItem(dropItemIndex)
  1576. dropItemName = item.GetItemName()
  1577. ## Question Text
  1578. itemPrice = player.GetISellItemPrice(player.DRAGON_SOUL_INVENTORY, attachedItemSlotPos)
  1579. questionText = localeInfo.HOW_MANY_ITEM_DO_YOU_DROP_NEW(dropItemName, attachedItemCount)
  1580. ## Dialog
  1581. itemDropQuestionDialog = uiCommon.QuestionDialogItem()
  1582. itemDropQuestionDialog.SetText(questionText)
  1583. itemDropQuestionDialog.SetAcceptEvent(lambda arg=True: self.RequestDropItem(arg))
  1584. itemDropQuestionDialog.SetDestroyEvent(lambda arg=True: self.RequestDestroyItem(arg))
  1585. itemDropQuestionDialog.SetCancelEvent(lambda arg=False: self.RequestDropItem(arg))
  1586. itemDropQuestionDialog.SetSellEvent(lambda arg=True: self.RequestSellItem(arg))
  1587. itemDropQuestionDialog.Open()
  1588. itemDropQuestionDialog.dropType = attachedType
  1589. itemDropQuestionDialog.dropNumber = attachedItemSlotPos
  1590. itemDropQuestionDialog.dropCount = attachedItemCount
  1591. self.itemDropQuestionDialog = itemDropQuestionDialog
  1592. constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
  1593. def RequestDropItem(self, answer):
  1594. if not self.itemDropQuestionDialog:
  1595. return
  1596. if answer:
  1597. dropType = self.itemDropQuestionDialog.dropType
  1598. dropCount = self.itemDropQuestionDialog.dropCount
  1599. dropNumber = self.itemDropQuestionDialog.dropNumber
  1600. if player.SLOT_TYPE_INVENTORY == dropType or\
  1601. (player.SLOT_TYPE_SKILL_BOOK_INVENTORY == dropType or\
  1602. player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == dropType or\
  1603. player.SLOT_TYPE_STONE_INVENTORY == dropType or\
  1604. player.SLOT_TYPE_BOX_INVENTORY == dropType or\
  1605. player.SLOT_TYPE_EFSUN_INVENTORY == dropType or\
  1606. player.SLOT_TYPE_CICEK_INVENTORY == dropType and app.ENABLE_SPLIT_INVENTORY_SYSTEM):
  1607. if dropNumber == player.ITEM_MONEY:
  1608. net.SendGoldDropPacketNew(dropCount)
  1609. snd.PlaySound("sound/ui/money.wav")
  1610. elif dropNumber == player.ITEM_CHEQUE:
  1611. net.SendChequeDropPacketNew(dropCount)
  1612. snd.PlaySound("sound/ui/money.wav")
  1613. else:
  1614. # PRIVATESHOP_DISABLE_ITEM_DROP
  1615. self.__SendDropItemPacket(dropNumber, dropCount)
  1616. # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
  1617. elif player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == dropType:
  1618. # PRIVATESHOP_DISABLE_ITEM_DROP
  1619. self.__SendDropItemPacket(dropNumber, dropCount, player.DRAGON_SOUL_INVENTORY)
  1620. # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
  1621. elif app.ENABLE_SPLIT_INVENTORY_SYSTEM:
  1622. if player.SLOT_TYPE_SKILL_BOOK_INVENTORY == dropType or player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == dropType or player.SLOT_TYPE_STONE_INVENTORY == dropType or player.SLOT_TYPE_BOX_INVENTORY == dropType or player.SLOT_TYPE_EFSUN_INVENTORY == dropType or player.SLOT_TYPE_CICEK_INVENTORY == dropType:
  1623. self.__SendDropItemPacket(dropNumber, dropCount, player.SLOT_TYPE_SKILL_BOOK_INVENTORY or player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY or player.SLOT_TYPE_STONE_INVENTORY or player.SLOT_TYPE_BOX_INVENTORY or player.SLOT_TYPE_EFSUN_INVENTORY or player.SLOT_TYPE_CICEK_INVENTORY)
  1624. self.itemDropQuestionDialog.Close()
  1625. self.itemDropQuestionDialog = None
  1626. constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
  1627. def RequestDestroyItem(self, answer):
  1628. if not self.itemDropQuestionDialog:
  1629. return
  1630. if answer:
  1631. dropType = self.itemDropQuestionDialog.dropType
  1632. dropCount = self.itemDropQuestionDialog.dropCount
  1633. dropNumber = self.itemDropQuestionDialog.dropNumber
  1634. if player.SLOT_TYPE_INVENTORY == dropType or\
  1635. (player.SLOT_TYPE_SKILL_BOOK_INVENTORY == dropType or\
  1636. player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == dropType or\
  1637. player.SLOT_TYPE_STONE_INVENTORY == dropType or\
  1638. player.SLOT_TYPE_BOX_INVENTORY == dropType or\
  1639. player.SLOT_TYPE_EFSUN_INVENTORY == dropType or\
  1640. player.SLOT_TYPE_CICEK_INVENTORY == dropType and app.ENABLE_SPLIT_INVENTORY_SYSTEM):
  1641. if dropNumber == player.ITEM_MONEY:
  1642. return
  1643. else:
  1644. self.__SendDestroyItemPacket(dropNumber)
  1645. elif player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == dropType:
  1646. self.__SendSellItemPacket(dropNumber, dropCount, player.DRAGON_SOUL_INVENTORY)
  1647. self.itemDropQuestionDialog.Close()
  1648. self.itemDropQuestionDialog = None
  1649. constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
  1650. def RequestSellItem(self, answer):
  1651. if not self.itemDropQuestionDialog:
  1652. return
  1653. if answer:
  1654. dropType = self.itemDropQuestionDialog.dropType
  1655. dropCount = self.itemDropQuestionDialog.dropCount
  1656. dropNumber = self.itemDropQuestionDialog.dropNumber
  1657. if player.SLOT_TYPE_INVENTORY == dropType or player.SLOT_TYPE_SKILL_BOOK_INVENTORY == dropType or player.SLOT_TYPE_UPGRADE_ITEMS_INVENTORY == dropType or player.SLOT_TYPE_STONE_INVENTORY == dropType or player.SLOT_TYPE_BOX_INVENTORY == dropType or player.SLOT_TYPE_EFSUN_INVENTORY == dropType or player.SLOT_TYPE_CICEK_INVENTORY == dropType:
  1658. if dropNumber == player.ITEM_MONEY:
  1659. return
  1660. else:
  1661. self.__SendSellItemPacket(dropNumber)
  1662. elif player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == dropType:
  1663. self.__SendSellItemPacket(dropNumber, dropCount, player.DRAGON_SOUL_INVENTORY)
  1664. self.itemDropQuestionDialog.Close()
  1665. self.itemDropQuestionDialog = None
  1666. constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
  1667. # PRIVATESHOP_DISABLE_ITEM_DROP
  1668. def __SendDropItemPacket(self, itemVNum, itemCount, itemInvenType = player.INVENTORY):
  1669. if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1670. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1671. return
  1672. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  1673. if uiOfflineShopBuilder.IsBuildingOfflineShop():
  1674. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1675. return
  1676. if uiOfflineShop.IsEditingOfflineShop():
  1677. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1678. return
  1679. net.SendItemDropPacketNew(itemInvenType, itemVNum, itemCount)
  1680. # END_OF_PRIVATESHOP_DISABLE_ITEM_DROP
  1681. def __SendDestroyItemPacket(self, itemVNum, itemInvenType = player.INVENTORY):
  1682. if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1683. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1684. return
  1685. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  1686. if uiOfflineShopBuilder.IsBuildingOfflineShop():
  1687. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1688. return
  1689. if uiOfflineShop.IsEditingOfflineShop():
  1690. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1691. return
  1692. net.SendItemDestroyPacket(itemVNum)
  1693. def __SendSellItemPacket(self, itemVNum, itemInvenTyoe = player.INVENTORY):
  1694. if uiPrivateShopBuilder.IsBuildingPrivateShop():
  1695. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.DROP_ITEM_FAILURE_PRIVATE_SHOP)
  1696. return
  1697. net.SendItemSellPacket(itemVNum)
  1698. def OnMouseRightButtonDown(self):
  1699. self.CheckFocus()
  1700. if TRUE == mouseModule.mouseController.isAttached():
  1701. mouseModule.mouseController.DeattachObject()
  1702. else:
  1703. player.SetMouseState(player.MBT_RIGHT, player.MBS_PRESS)
  1704. return TRUE
  1705. def OnMouseRightButtonUp(self):
  1706. if TRUE == mouseModule.mouseController.isAttached():
  1707. return TRUE
  1708. player.SetMouseState(player.MBT_RIGHT, player.MBS_CLICK)
  1709. return TRUE
  1710. def OnMouseMiddleButtonDown(self):
  1711. player.SetMouseMiddleButtonState(player.MBS_PRESS)
  1712. def OnMouseMiddleButtonUp(self):
  1713. player.SetMouseMiddleButtonState(player.MBS_CLICK)
  1714. def OnUpdate(self):
  1715. app.UpdateGame()
  1716. if self.mapNameShower.IsShow():
  1717. self.mapNameShower.Update()
  1718. if self.isShowDebugInfo:
  1719. self.UpdateDebugInfo()
  1720. if self.enableXMasBoom:
  1721. self.__XMasBoom_Update()
  1722. if app.ENABLE_SOUL_ROULETTE_SYSTEM:
  1723. if self.enableXMasSoul:
  1724. self.__XMasSoul_Update()
  1725. if 1 == constInfo.AUTO_PICK_UP:
  1726. self.PickUpItem()
  1727. if 1 == constInfo.DRAGON_SOULD_REFINE_OPEN:
  1728. constInfo.DRAGON_SOULD_REFINE_OPEN = 0
  1729. self.BINARY_DragonSoulRefineWindow_Open()
  1730. if app.ENABLE_BOSS_TRACKING:
  1731. if 1== constInfo.BOSS_TRACKING:
  1732. constInfo.BOSS_TRACKING = 0
  1733. self.OpenBossTracking()
  1734. if app.ENABLE_PREMIUM_AFFECT_SYSTEM:
  1735. if systemSetting.IsEnablePremiumAffect():
  1736. self.affectShower.Show()
  1737. else:
  1738. self.affectShower.Hide()
  1739. def UpdateDebugInfo(self):
  1740. (x, y, z) = player.GetMainCharacterPosition()
  1741. nUpdateTime = app.GetUpdateTime()
  1742. nUpdateFPS = app.GetUpdateFPS()
  1743. nRenderFPS = app.GetRenderFPS()
  1744. nFaceCount = app.GetFaceCount()
  1745. fFaceSpeed = app.GetFaceSpeed()
  1746. nST=background.GetRenderShadowTime()
  1747. (fAveRT, nCurRT) = app.GetRenderTime()
  1748. (iNum, fFogStart, fFogEnd, fFarCilp) = background.GetDistanceSetInfo()
  1749. (iPatch, iSplat, fSplatRatio, sTextureNum) = background.GetRenderedSplatNum()
  1750. if iPatch == 0:
  1751. iPatch = 1
  1752. def OnRender(self):
  1753. app.RenderGame()
  1754. if self.console.Console.collision:
  1755. background.RenderCollision()
  1756. chr.RenderCollision()
  1757. (x, y) = app.GetCursorPosition()
  1758. ########################
  1759. # Picking
  1760. ########################
  1761. textTail.UpdateAllTextTail()
  1762. if TRUE == wndMgr.IsPickedWindow(self.hWnd):
  1763. self.PickingCharacterIndex = chr.Pick()
  1764. if -1 != self.PickingCharacterIndex:
  1765. textTail.ShowCharacterTextTail(self.PickingCharacterIndex)
  1766. if 0 != self.targetBoard.GetTargetVID():
  1767. textTail.ShowCharacterTextTail(self.targetBoard.GetTargetVID())
  1768. # ADD_ALWAYS_SHOW_NAME
  1769. if not self.__IsShowName():
  1770. self.PickingItemIndex = item.Pick()
  1771. if -1 != self.PickingItemIndex:
  1772. textTail.ShowItemTextTail(self.PickingItemIndex)
  1773. # END_OF_ADD_ALWAYS_SHOW_NAME
  1774. ## Show all name in the range
  1775. if app.ENABLE_GRAPHIC_NAME:
  1776. # ADD_ALWAYS_SHOW_NAME
  1777. if self.__IsShowName():
  1778. textTail.ShowAllTextTail()
  1779. self.PickingItemIndex = textTail.Pick(x, y)
  1780. if self.__IsShowNameItem():
  1781. textTail.ShowJustItemTextTail()
  1782. self.PickingItemIndex = textTail.Pick(x, y)
  1783. # END_OF_ADD_ALWAYS_SHOW_NAME
  1784. else:
  1785. # ADD_ALWAYS_SHOW_NAME
  1786. if self.__IsShowName():
  1787. textTail.ShowAllTextTail()
  1788. self.PickingItemIndex = textTail.Pick(x, y)
  1789. # END_OF_ADD_ALWAYS_SHOW_NAME
  1790. if app.ENABLE_GRAPHIC_ON_OFF:
  1791. if systemSetting.IsShowSalesText():
  1792. uiPrivateShopBuilder.UpdateADBoard()
  1793. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  1794. uiOfflineShopBuilder.UpdateADBoard()
  1795. textTail.UpdateShowingTextTail()
  1796. textTail.ArrangeTextTail()
  1797. if -1 != self.PickingItemIndex:
  1798. textTail.SelectItemName(self.PickingItemIndex)
  1799. grp.PopState()
  1800. grp.SetInterfaceRenderState()
  1801. textTail.Render()
  1802. textTail.HideAllTextTail()
  1803. def OnPressEscapeKey(self):
  1804. if app.TARGET == app.GetCursor():
  1805. app.SetCursor(app.NORMAL)
  1806. elif TRUE == mouseModule.mouseController.isAttached():
  1807. mouseModule.mouseController.DeattachObject()
  1808. else:
  1809. self.interface.OpenSystemDialog()
  1810. return TRUE
  1811. def OnIMEReturn(self):
  1812. if app.IsPressed(app.DIK_LSHIFT):
  1813. self.interface.OpenWhisperDialogWithoutTarget()
  1814. else:
  1815. self.interface.ToggleChat()
  1816. return TRUE
  1817. def OnPressExitKey(self):
  1818. self.interface.ToggleSystemDialog()
  1819. return TRUE
  1820. ## BINARY CALLBACK
  1821. ######################################################################################
  1822. # WEDDING
  1823. def BINARY_LoverInfo(self, name, lovePoint):
  1824. if self.interface.wndMessenger:
  1825. self.interface.wndMessenger.OnAddLover(name, lovePoint)
  1826. if self.affectShower:
  1827. self.affectShower.SetLoverInfo(name, lovePoint)
  1828. def BINARY_UpdateLovePoint(self, lovePoint):
  1829. if self.interface.wndMessenger:
  1830. self.interface.wndMessenger.OnUpdateLovePoint(lovePoint)
  1831. if self.affectShower:
  1832. self.affectShower.OnUpdateLovePoint(lovePoint)
  1833. # END_OF_WEDDING
  1834. # QUEST_CONFIRM
  1835. def BINARY_OnQuestConfirm(self, msg, timeout, pid):
  1836. confirmDialog = uiCommon.QuestionDialogWithTimeLimit()
  1837. confirmDialog.SetText1(msg)
  1838. confirmDialog.Open(timeout)
  1839. confirmDialog.SetAcceptEvent(lambda answer=True, pid=pid: net.SendQuestConfirmPacket(answer, pid) or self.confirmDialog.Hide())
  1840. confirmDialog.SetCancelEvent(lambda answer=False, pid=pid: net.SendQuestConfirmPacket(answer, pid) or self.confirmDialog.Hide())
  1841. self.confirmDialog = confirmDialog
  1842. # END_OF_QUEST_CONFIRM
  1843. # GIFT command
  1844. def Gift_Show(self):
  1845. self.interface.ShowGift()
  1846. # CUBE
  1847. def BINARY_Cube_Open(self, npcVNUM):
  1848. self.currentCubeNPC = npcVNUM
  1849. self.interface.OpenCubeWindow()
  1850. if npcVNUM not in self.cubeInformation:
  1851. net.SendChatPacket("/cube r_info")
  1852. else:
  1853. cubeInfoList = self.cubeInformation[npcVNUM]
  1854. i = 0
  1855. for cubeInfo in cubeInfoList:
  1856. self.interface.wndCube.AddCubeResultItem(cubeInfo["vnum"], cubeInfo["count"])
  1857. j = 0
  1858. for materialList in cubeInfo["materialList"]:
  1859. for materialInfo in materialList:
  1860. itemVnum, itemCount, percent = materialInfo
  1861. self.interface.wndCube.AddMaterialInfo(i, j, itemVnum, itemCount, percent)
  1862. j = j + 1
  1863. i = i + 1
  1864. self.interface.wndCube.Refresh()
  1865. def BINARY_Cube_Close(self):
  1866. self.interface.CloseCubeWindow()
  1867. def BINARY_Cube_UpdateInfo(self, gold, itemVnum, count):
  1868. self.interface.UpdateCubeInfo(gold, itemVnum, count)
  1869. def BINARY_Cube_Succeed(self, itemVnum, count):
  1870. print "ť�� ���� ����"
  1871. self.interface.SucceedCubeWork(itemVnum, count)
  1872. pass
  1873. def BINARY_Cube_Failed(self):
  1874. print "ť�� ���� ����"
  1875. self.interface.FailedCubeWork()
  1876. pass
  1877. def BINARY_Cube_ResultList(self, npcVNUM, listText):
  1878. if npcVNUM == 0:
  1879. npcVNUM = self.currentCubeNPC
  1880. self.cubeInformation[npcVNUM] = []
  1881. try:
  1882. for eachInfoText in listText.split("/"):
  1883. eachInfo = eachInfoText.split(",")
  1884. itemVnum = int(eachInfo[0])
  1885. itemCount = int(eachInfo[1])
  1886. self.cubeInformation[npcVNUM].append({"vnum": itemVnum, "count": itemCount})
  1887. self.interface.wndCube.AddCubeResultItem(itemVnum, itemCount)
  1888. resultCount = len(self.cubeInformation[npcVNUM])
  1889. requestCount = 7
  1890. modCount = resultCount % requestCount
  1891. splitCount = resultCount / requestCount
  1892. for i in xrange(splitCount):
  1893. net.SendChatPacket("/cube r_info %d %d" % (i * requestCount, requestCount))
  1894. if 0 < modCount:
  1895. net.SendChatPacket("/cube r_info %d %d" % (splitCount * requestCount, modCount))
  1896. except RuntimeError, msg:
  1897. dbg.TraceError(msg)
  1898. return 0
  1899. pass
  1900. def BINARY_Cube_MaterialInfo(self, startIndex, listCount, listText):
  1901. try:
  1902. if 3 > len(listText):
  1903. dbg.TraceError("Wrong Cube Material Infomation")
  1904. return 0
  1905. eachResultList = listText.split("@")
  1906. cubeInfo = self.cubeInformation[self.currentCubeNPC]
  1907. itemIndex = 0
  1908. for eachResultText in eachResultList:
  1909. cubeInfo[startIndex + itemIndex]["materialList"] = [[], [], [], [], []]
  1910. materialList = cubeInfo[startIndex + itemIndex]["materialList"]
  1911. percent = 0
  1912. gold = 0
  1913. splitResult = eachResultText.split("]")
  1914. if 1 < len(splitResult):
  1915. new_gold = str(splitResult[1]).split("/")
  1916. new_gold2 = str(new_gold[0]).split("/")
  1917. gold = int(new_gold2[0])
  1918. percent = int(splitResult[1])
  1919. eachMaterialList = splitResult[0].split("&")
  1920. i = 0
  1921. for eachMaterialText in eachMaterialList:
  1922. complicatedList = eachMaterialText.split("|")
  1923. if 0 < len(complicatedList):
  1924. for complicatedText in complicatedList:
  1925. (itemVnum, itemCount) = complicatedText.split(",")
  1926. itemVnum = int(itemVnum)
  1927. count_test = str(itemCount).split("/")
  1928. itemCount = int(count_test[0])
  1929. self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount, percent)
  1930. materialList[i].append((itemVnum, itemCount, percent))
  1931. else:
  1932. itemVnum, itemCount = eachMaterialText.split(",")
  1933. itemVnum = int(itemVnum)
  1934. itemCount = int(itemCount)
  1935. self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount, percent)
  1936. materialList[i].append((itemVnum, itemCount,percent))
  1937. i = i + 1
  1938. itemIndex = itemIndex + 1
  1939. self.interface.wndCube.Refresh()
  1940. except RuntimeError, msg:
  1941. dbg.TraceError(msg)
  1942. return 0
  1943. pass
  1944. # END_OF_CUBE
  1945. def BINARY_AttrTransfer_Open(self):
  1946. self.interface.OpenAttrTransferWindow()
  1947. def BINARY_AttrTransfer_Close(self):
  1948. self.interface.CloseAttrTransferWindow()
  1949. def BINARY_AttrTransfer_Success(self):
  1950. self.interface.AttrTransferSuccess()
  1951. def BINARY_Highlight_Item(self, inven_type, inven_pos):
  1952. if self.interface:
  1953. self.interface.Highligt_Item(inven_type, inven_pos)
  1954. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  1955. ## OfflineShop
  1956. if app.ENABLE_CHEQUE_SYSTEM:
  1957. def __CashOfflineShop_Open(self):
  1958. self.interface.OpenOfflineShopInputNameDialog(True)
  1959. def __OfflineShop_Open(self):
  1960. self.interface.OpenOfflineShopInputNameDialog(False)
  1961. else:
  1962. def __OfflineShop_Open(self):
  1963. self.interface.OpenOfflineShopInputNameDialog()
  1964. def __OpenOfflineShopSalesWindow(self):
  1965. self.interface.OpenOfflineShopSalesWindow()
  1966. def __ClearOfflineShopSalesWindow(self):
  1967. constInfo_new.OFFLINE_SHOP_SALES = []
  1968. def BINARY_OfflineShop_Appear(self, vid, text):
  1969. if (chr.GetInstanceType(vid) == chr.INSTANCE_TYPE_NPC):
  1970. self.interface.AppearOfflineShop(vid, text)
  1971. def BINARY_OfflineShop_Disappear(self, vid):
  1972. if (chr.GetInstanceType(vid) == chr.INSTANCE_TYPE_NPC):
  1973. self.interface.DisappearOfflineShop(vid)
  1974. def BINARY_OfflineShop_Count(self, count):
  1975. pass
  1976. def BINARY_OfflineShop_Open(self, isOpen, mapIndex, time):
  1977. self.interface.ToggleOfflineShopAdminPanelWindow(isOpen, mapIndex, time)
  1978. def BINARY_OfflineShop_Sales(self, buyerName, itemVnum, itemCount, itemPrice, itemCheque, itemDate):
  1979. constInfo_new.OFFLINE_SHOP_SALES.append([buyerName, itemVnum, itemCount, itemPrice, itemCheque, itemDate],)
  1980. if app.ENABLE_MINI_GAME_OKEY:
  1981. ## MiniGame Rumi
  1982. def BINARY_Cards_UpdateInfo(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, hand_4, hand_4_v, hand_5, hand_5_v, cards_left, points):
  1983. self.interface.UpdateCardsInfo(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, hand_4, hand_4_v, hand_5, hand_5_v, cards_left, points)
  1984. def BINARY_Cards_FieldUpdateInfo(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points):
  1985. self.interface.UpdateCardsFieldInfo(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points)
  1986. def BINARY_Cards_PutReward(self, hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points):
  1987. self.interface.CardsPutReward(hand_1, hand_1_v, hand_2, hand_2_v, hand_3, hand_3_v, points)
  1988. def BINARY_Cards_ShowIcon(self):
  1989. self.interface.CardsShowIcon()
  1990. def BINARY_Cards_Open(self, safemode):
  1991. self.interface.OpenCardsWindow(safemode)
  1992. def BINARY_DragonSoulGiveQuilification(self):
  1993. self.interface.DragonSoulGiveQuilification()
  1994. def BINARY_DragonSoulRefineWindow_Open(self):
  1995. self.interface.OpenDragonSoulRefineWindow()
  1996. def BINARY_DragonSoulRefineWindow_RefineFail(self, reason, inven_type, inven_pos):
  1997. self.interface.FailDragonSoulRefine(reason, inven_type, inven_pos)
  1998. def BINARY_DragonSoulRefineWindow_RefineSucceed(self, inven_type, inven_pos):
  1999. self.interface.SucceedDragonSoulRefine(inven_type, inven_pos)
  2000. # END of DRAGON SOUL REFINE WINDOW
  2001. def BINARY_DungeonInfo_Open(self):
  2002. self.interface.ToggleDungeonInfoWindow()
  2003. def BINARY_SetBigMessage(self, message):
  2004. self.interface.bigBoard.SetTip(message)
  2005. def BINARY_SetTipMessage(self, message):
  2006. self.interface.tipBoard.SetTip(message)
  2007. def BINARY_AppendNotifyMessage(self, type):
  2008. if not type in localeInfo.NOTIFY_MESSAGE:
  2009. return
  2010. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.NOTIFY_MESSAGE[type])
  2011. if app.ENABLE_12ZI:
  2012. def BINARY_SetMissionMessage(self, message):
  2013. self.interface.missionBoard.SetMission(message)
  2014. def BINARY_SetSubMissionMessage(self, message):
  2015. self.interface.missionBoard.SetSubMission(message)
  2016. def BINARY_CleanMissionMessage(self):
  2017. self.interface.missionBoard.CleanMission()
  2018. if app.ENABLE_OX_RENEWAL:
  2019. def BINARY_SetBigControlMessage(self, message):
  2020. self.interface.bigBoardControl.SetTip(message)
  2021. def BINARY_Guild_EnterGuildArea(self, areaID):
  2022. self.interface.BULID_EnterGuildArea(areaID)
  2023. def BINARY_Guild_ExitGuildArea(self, areaID):
  2024. self.interface.BULID_ExitGuildArea(areaID)
  2025. def BINARY_GuildWar_OnSendDeclare(self, guildID):
  2026. pass
  2027. def BINARY_GuildWar_OnRecvDeclare(self, guildID, warType):
  2028. mainCharacterName = player.GetMainCharacterName()
  2029. masterName = guild.GetGuildMasterName()
  2030. if mainCharacterName == masterName:
  2031. self.__GuildWar_OpenAskDialog(guildID, warType)
  2032. def BINARY_GuildWar_OnRecvPoint(self, gainGuildID, opponentGuildID, point):
  2033. self.interface.OnRecvGuildWarPoint(gainGuildID, opponentGuildID, point)
  2034. def BINARY_GuildWar_OnStart(self, guildSelf, guildOpp):
  2035. self.interface.OnStartGuildWar(guildSelf, guildOpp)
  2036. def BINARY_GuildWar_OnEnd(self, guildSelf, guildOpp):
  2037. self.interface.OnEndGuildWar(guildSelf, guildOpp)
  2038. def BINARY_BettingGuildWar_SetObserverMode(self, isEnable):
  2039. self.interface.BINARY_SetObserverMode(isEnable)
  2040. def BINARY_BettingGuildWar_UpdateObserverCount(self, observerCount):
  2041. self.interface.wndMiniMap.UpdateObserverCount(observerCount)
  2042. def __GuildWar_UpdateMemberCount(self, guildID1, memberCount1, guildID2, memberCount2, observerCount):
  2043. guildID1 = int(guildID1)
  2044. guildID2 = int(guildID2)
  2045. memberCount1 = int(memberCount1)
  2046. memberCount2 = int(memberCount2)
  2047. observerCount = int(observerCount)
  2048. self.interface.UpdateMemberCount(guildID1, memberCount1, guildID2, memberCount2)
  2049. self.interface.wndMiniMap.UpdateObserverCount(observerCount)
  2050. def __GuildWar_OpenAskDialog(self, guildID, warType):
  2051. guildName = guild.GetGuildName(guildID)
  2052. # REMOVED_GUILD_BUG_FIX
  2053. if "Noname" == guildName:
  2054. return
  2055. # END_OF_REMOVED_GUILD_BUG_FIX
  2056. import uiGuild
  2057. questionDialog = uiGuild.AcceptGuildWarDialog()
  2058. questionDialog.SAFE_SetAcceptEvent(self.__GuildWar_OnAccept)
  2059. questionDialog.SAFE_SetCancelEvent(self.__GuildWar_OnDecline)
  2060. questionDialog.Open(guildName, warType)
  2061. self.guildWarQuestionDialog = questionDialog
  2062. def __GuildWar_CloseAskDialog(self):
  2063. self.guildWarQuestionDialog.Close()
  2064. self.guildWarQuestionDialog = None
  2065. def __GuildWar_OnAccept(self):
  2066. guildName = self.guildWarQuestionDialog.GetGuildName()
  2067. net.SendChatPacket("/war " + guildName)
  2068. self.__GuildWar_CloseAskDialog()
  2069. return 1
  2070. def __GuildWar_OnDecline(self):
  2071. guildName = self.guildWarQuestionDialog.GetGuildName()
  2072. net.SendChatPacket("/nowar " + guildName)
  2073. self.__GuildWar_CloseAskDialog()
  2074. return 1
  2075. ######################################################################################
  2076. def __ServerCommand_Build(self):
  2077. serverCommandList={
  2078. "ConsoleEnable" : self.__Console_Enable,
  2079. "DayMode" : self.__DayMode_Update,
  2080. "PRESERVE_DayMode" : self.__PRESERVE_DayMode_Update,
  2081. "CloseRestartWindow" : self.__RestartDialog_Close,
  2082. "OpenPrivateShop" : self.__PrivateShop_Open,
  2083. "PartyHealReady" : self.PartyHealReady,
  2084. "ShowMeSafeboxPassword" : self.AskSafeboxPassword,
  2085. "CloseSafebox" : self.CommandCloseSafebox,
  2086. "CloseMall" : self.CommandCloseMall,
  2087. "ShowMeMallPassword" : self.AskMallPassword,
  2088. "item_mall" : self.__ItemMall_Open,
  2089. "RefineSuceeded" : self.RefineSuceededMessage,
  2090. "RefineFailed" : self.RefineFailedMessage,
  2091. "xmas_snow" : self.__XMasSnow_Enable,
  2092. "xmas_boom" : self.__XMasBoom_Enable,
  2093. "xmas_song" : self.__XMasSong_Enable,
  2094. "xmas_tree" : self.__XMasTree_Enable,
  2095. "newyear_boom" : self.__XMasBoom_Enable,
  2096. "PartyRequest" : self.__PartyRequestQuestion,
  2097. "PartyRequestDenied" : self.__PartyRequestDenied,
  2098. "horse_state" : self.__Horse_UpdateState,
  2099. "hide_horse_state" : self.__Horse_HideState,
  2100. "WarUC" : self.__GuildWar_UpdateMemberCount,
  2101. "test_server" : self.__EnableTestServerFlag,
  2102. "mall" : self.__InGameShop_Show,
  2103. "ITEMSHOP" : self.ManagerItemshop,
  2104. "TICKETS" : self.ManagerTickets,
  2105. # WEDDING
  2106. "lover_login" : self.__LoginLover,
  2107. "lover_logout" : self.__LogoutLover,
  2108. "lover_near" : self.__LoverNear,
  2109. "lover_far" : self.__LoverFar,
  2110. "lover_divorce" : self.__LoverDivorce,
  2111. "PlayMusic" : self.__PlayMusic,
  2112. # END_OF_WEDDING
  2113. "AttrTransferMessage" : self.AttrTransferMessage,
  2114. # PRIVATE_SHOP_PRICE_LIST
  2115. "MyShopPriceList" : self.__PrivateShop_PriceList,
  2116. # END_OF_PRIVATE_SHOP_PRICE_LIST
  2117. "MakeVisibleOX" : self.MakeVisibleOX,
  2118. "RemoveTitleOX" : self.RemoveTitleOX,
  2119. "Update" : self.Update,
  2120. "getinputbegin" : self.__Inputget1,
  2121. "getinputend" : self.__Inputget2,
  2122. "getinputbegin" : self.__Inputget1,
  2123. "getinputend" : self.__Inputget2,
  2124. "getinput" : self.__Inputget3,
  2125. "GetInputStringStart" : self.GetInputStringStart,
  2126. "GetInputStringEnd" : self.GetInputStringEnd,
  2127. }
  2128. if app.ENABLE_SKILL_SELECT_SYSTEM:
  2129. serverCommandList.update({"OpenBec1Gui" : self.__BecSystem1 })
  2130. serverCommandList.update({"OpenBec2Gui" : self.__BecSystem3 })
  2131. serverCommandList.update({"OpenBec3Gui" : self.__BecSystem2 })
  2132. serverCommandList.update({"OpenBec4Gui" : self.__BecSystem4 })
  2133. serverCommandList.update({"OpenBec5Gui" : self.__BecSystem5 })
  2134. serverCommandList.update({"zihinsel_oto_bec" : self.zihinsel_oto_bec })
  2135. serverCommandList.update({"bedensel_oto_bec" : self.bedensel_oto_bec })
  2136. serverCommandList.update({"karabuyu_oto_bec" : self.karabuyu_oto_bec })
  2137. serverCommandList.update({"buyulusilah_oto_bec" : self.buyulusilah_oto_bec })
  2138. serverCommandList.update({"yakin_oto_bec" : self.yakin_oto_bec })
  2139. serverCommandList.update({"uzak_oto_bec" : self.uzak_oto_bec })
  2140. serverCommandList.update({"ejderha_oto_bec" : self.ejderha_oto_bec })
  2141. serverCommandList.update({"iyilestirme_oto_bec" : self.iyilestirme_oto_bec })
  2142. serverCommandList.update({"lycany_oto_bec" : self.lycany_oto_bec })
  2143. if app.ENABLE_CONQUEROR_LEVEL:
  2144. serverCommandList.update({"ConquerorMap187" : self.ConquerorMap187 })
  2145. serverCommandList.update({"ConquerorMap190" : self.ConquerorMap190 })
  2146. if app.ENABLE_ADMIN_BAN_MANAGER:
  2147. serverCommandList.update({"OpenAdminTool" : self.OpenAdminTool })
  2148. if app.ENABLE_WHISPER_ADMIN_SYSTEM:
  2149. serverCommandList.update({"OpenWhisperTool" : self.OpenWhisperSystem })
  2150. if app.ENABLE_PACKET_INFO_SYSTEM:
  2151. serverCommandList.update({"switch_bot_message" : self.SwitchBotMessage })
  2152. serverCommandList.update({"battle_pass_finish_mission" : self.BattlePassMessage })
  2153. serverCommandList.update({"battle_pass_finish_full_mission" : self.BattlePassMessageFull })
  2154. if app.ENABLE_SOUL_ROULETTE_SYSTEM:
  2155. serverCommandList["xmas_soul"] = self.__XMasSoul_Enable
  2156. if app.ENABLE_STONE_EVENT:
  2157. serverCommandList["IsStoneEvent"] = self.StoneEvent
  2158. if app.ENABLE_SOCCER_BALL_EVENT:
  2159. serverCommandList["FutbolEventGui"] = self.FutbolTopuVer
  2160. if app.ENABLE_WORD_GAME_EVENT:
  2161. serverCommandList["KelimeEventGui"] = self.WordGameWindowShow
  2162. if app.ENABLE_DUNGEON_INFO_SYSTEM:
  2163. serverCommandList.update({"DungeonInfo" : self.DungeonInfo })
  2164. serverCommandList.update({"CleanDungeonInfo" : self.CleanDungeonInfo })
  2165. serverCommandList.update({"CleanDungeonRanking" : self.CleanDungeonRanking })
  2166. serverCommandList.update({"GetDungeonInfo" : self.GetDungeonInfo })
  2167. serverCommandList.update({"UpdateDungeonInfo" : self.UpdateDungeonInfo })
  2168. serverCommandList.update({"UpdateDungeonRanking" : self.UpdateDungeonRanking })
  2169. serverCommandList.update({"UpdateMyDungeonRanking" : self.UpdateMyDungeonRanking })
  2170. serverCommandList.update({"OpenDungeonRanking" : self.OpenDungeonRanking })
  2171. if app.ENABLE_AUTO_HUNT_SYSTEM:
  2172. serverCommandList.update({"OtomatikAvWindow" : self.__otomatikavstart })
  2173. if app.ENABLE_HALLOWEEN_EVENT_SYSTEM:
  2174. serverCommandList["halloween_rewards"] = self.SHalounRewards
  2175. serverCommandList["level_halloween"] = self.SHalounLevel
  2176. serverCommandList["points_halloween"] = self.SPointsHaloun
  2177. serverCommandList["eveniment_haloun"] = self.SHalloweenStatus
  2178. if app.ENABLE_SPIRIT_STONE_READING:
  2179. serverCommandList["ruhtasiekranac"] = self.ruhcac
  2180. if app.ENABLE_SKILL_BOOK_READING:
  2181. serverCommandList["bkekranac"] = self.bkac
  2182. if app.ENABLE_VIEW_EQUIPMENT_SYSTEM:
  2183. serverCommandList["ViewEquipRequest"] = self.ViewEquipRequest
  2184. serverCommandList["ViewEquipRequestDenied"] = self.ViewEquipRequestDenied
  2185. if app.ENABLE_EXPRESSING_EMOTION:
  2186. serverCommandList["RegisterSpecialEmotion"] = self.RegisterSpecialEmotion
  2187. serverCommandList["ClearSpecialEmotions"] = self.ClearSpecialEmotions
  2188. if app.ENABLE_SPLIT_INVENTORY_SYSTEM:
  2189. serverCommandList.update({"OpenSpecialInventoryWindow" : self.OpenSpecialInventoryWindow })
  2190. if app.ENABLE_WHISPER_ADMIN_SYSTEM:
  2191. serverCommandList["OnRecvWhisperAdminSystem"] = self.OnRecvWhisperAdminSystem
  2192. if app.ENABLE_ATTR_6TH_7TH_SYSTEM:
  2193. serverCommandList["attr_6th_7th"] = self.attr_6th_7th
  2194. serverCommandList["Attr67Add"] = self.Attr67Add
  2195. if app.ENABLE_SOUL_SYSTEM:
  2196. serverCommandList["RefineSoulSuceeded"] = self.__RefineSoulSuceededMessage
  2197. serverCommandList["RefineSoulFailed"] = self.__RefineSoulFailedMessage
  2198. if app.ENABLE_12ZI:
  2199. serverCommandList.update({"OpenUI12zi" : self.__Refresh12ziTimer2 })
  2200. serverCommandList.update({"NextFloorButton" : self.Show12ziJumpButton })
  2201. if app.ENABLE_GAYA_SYSTEM:
  2202. serverCommandList.update({"OpenGuiGem" : self.OpenGuiGem })
  2203. serverCommandList.update({"GemCheck" : self.GemCheck })
  2204. serverCommandList.update({"OpenGuiGemMarket" : self.OpenGuiGemMarket })
  2205. serverCommandList.update({"GemMarketSlotsDesblock" : self.GemMarketSlotsDesblock })
  2206. serverCommandList.update({"GemMarketItems" : self.GemMarketItems })
  2207. serverCommandList.update({"GemMarketClear" : self.GemMarketClear })
  2208. serverCommandList.update({"GemMarketTime" : self.GemTimeMarket })
  2209. if app.ENABLE_LUCKY_BOX:
  2210. serverCommandList["OpenLuckyBox"] = self.OpenLuckyBox
  2211. serverCommandList["CloseLuckyBox"] = self.CloseLuckyBox
  2212. if app.ENABLE_DS_CHANGE_ATTR:
  2213. serverCommandList.update({"DS_ChangeAttr_Success" : self.DS_ChangeAttr_Success })
  2214. serverCommandList.update({"DS_ChangeAttr_Failed" : self.DS_ChangeAttr_Success })
  2215. if app.ENABLE_BIO_SYSTEM:
  2216. serverCommandList["biyologlvl"] = self.BiyologLvBildirim
  2217. serverCommandList["biyolog_update"] = self.__BiyologMission
  2218. serverCommandList["biyolog_open"] = self.BiyologOpen
  2219. if app.ENABLE_MAIL_BOX_SYSTEM:
  2220. serverCommandList.update({"MailBoxRefresh" : self.MailBoxRefresh })
  2221. serverCommandList.update({"MailBoxOpen" : self.MailBoxOpen })
  2222. serverCommandList.update({"MailBoxMini" : self.MailBoxMiniMap })
  2223. if app.ENABLE_OFFLINE_PRIVATE_SHOP_SYSTEM:
  2224. serverCommandList.update({"OpenOfflineShop" : self.__OfflineShop_Open })
  2225. serverCommandList.update({"OpenOfflineShopSalesWindow" : self.__OpenOfflineShopSalesWindow })
  2226. serverCommandList.update({"ClearOfflineShopSales" : self.__ClearOfflineShopSalesWindow })
  2227. if app.ENABLE_HIDRA_DUNGEON_RELEASE:
  2228. serverCommandList["BINARY_Update_Mast_HP"] = self.BINARY_Update_Mast_HP
  2229. serverCommandList["BINARY_Update_Mast_Window"] = self.BINARY_Update_Mast_Window
  2230. if app.ENABLE_CHEQUE_COUPON_SYSTEM:
  2231. serverCommandList["OpenChequeTicket"] = self.__OpenChequeTicket
  2232. if app.ENABLE_GAYA_TICKET_SYSTEM:
  2233. serverCommandList["OpenGemTicket"] = self.__OpenGemTicket
  2234. if app.ENABLE_HIDE_COSTUME_SYSTEM:
  2235. serverCommandList.update({"SetBodyCostumeHidden" : self.SetBodyCostumeHidden })
  2236. serverCommandList.update({"SetHairCostumeHidden" : self.SetHairCostumeHidden })
  2237. serverCommandList.update({"SetSashCostumeHidden" : self.SetSashCostumeHidden })
  2238. serverCommandList.update({"SetWeaponCostumeHidden" : self.SetWeaponCostumeHidden })
  2239. serverCommandList.update({"SetAuraCostumeHidden" : self.SetAuraCostumeHidden })
  2240. if app.ENABLE_MELEY_LAIR_DUNGEON:
  2241. serverCommandList.update({"ClearDragonLairRanking" : self.ClearDragonLairRanking })
  2242. serverCommandList.update({"OpenDragonLairRanking" : self.OpenDragonLairRanking })
  2243. serverCommandList.update({"AddDragonLairRanking" : self.AddDragonLairRanking })
  2244. if app.ENABLE_NEW_PET_SYSTEM:
  2245. serverCommandList.update({"PetEvolution" : self.SetPetEvolution })
  2246. serverCommandList.update({"PetName" : self.SetPetName })
  2247. serverCommandList.update({"PetLevel" : self.SetPetLevel })
  2248. serverCommandList.update({"PetAgeDuration" : self.SetPetAgeDuration })
  2249. serverCommandList.update({"PetDuration" : self.SetPetDuration })
  2250. serverCommandList.update({"PetBonus" : self.SetPetBonus })
  2251. serverCommandList.update({"PetSkill" : self.SetPetskill })
  2252. serverCommandList.update({"PetIcon" : self.SetPetIcon })
  2253. serverCommandList.update({"PetExp" : self.SetPetExp })
  2254. serverCommandList.update({"PetUnsummon" : self.PetUnsummon })
  2255. serverCommandList.update({"OpenPetIncubator" : self.OpenPetIncubator })
  2256. if app.ENABLE_PET_ATTR_DETERMINE:
  2257. serverCommandList["OnResultPetAttrDetermine"] = self.__OnResultPetAttrDetermine
  2258. serverCommandList["OnResultPetAttrChange"] = self.__OnResultPetAttrChange
  2259. self.serverCommander=stringCommander.Analyzer()
  2260. for serverCommandItem in serverCommandList.items():
  2261. self.serverCommander.SAFE_RegisterCallBack(
  2262. serverCommandItem[0], serverCommandItem[1]
  2263. )
  2264. if app.ENABLE_EXPRESSING_EMOTION:
  2265. def ClearSpecialEmotions(self):
  2266. constInfo_new.SPECIAL_EMOTIONS = []
  2267. constInfo_new.SPECIAL_EMOTIONS_TIME = []
  2268. self.interface.ClearSpecialEmotions()
  2269. def RegisterSpecialEmotion(self, emotionIdx, leftTime):
  2270. SPECIAL_EMOTIONS = constInfo_new.SPECIAL_EMOTIONS
  2271. SPECIAL_EMOTIONS_TIME = constInfo_new.SPECIAL_EMOTIONS_TIME
  2272. emotionIdx, leftTime = int(emotionIdx), int(leftTime)
  2273. if not emotionIdx in SPECIAL_EMOTIONS:
  2274. if len(SPECIAL_EMOTIONS) < 12:
  2275. SPECIAL_EMOTIONS.append(emotionIdx)
  2276. SPECIAL_EMOTIONS_TIME.append(leftTime)
  2277. self.interface.RegisterSpecialEmotions()
  2278. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPEN_THE_SPECIAL_ACTION_KIT % constInfo_new.GET_SPECIAL_EMOTION_NAME(emotionIdx))
  2279. if app.ENABLE_STONE_POINT_SYSTEM:
  2280. def OnPickStonePoint(self, stone):
  2281. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.STONE_POINT_SYSTEM_PICK_STONE_POINT % (stone))
  2282. if app.ENABLE_GAYA_SYSTEM:
  2283. def OnPickGem(self, gem):
  2284. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GEM_SYSTEM_PICK_GEM % (gem))
  2285. def OpenGuiGem(self):
  2286. self.interface.OpenGuiGem()
  2287. def GemCheck(self):
  2288. self.interface.GemCheck()
  2289. def OpenGuiGemMarket(self):
  2290. self.interface.OpenGuiGemMarket()
  2291. def GemMarketItems(self, vnums, gem, count):
  2292. self.interface.GemMarketItems(vnums, gem, count)
  2293. def GemMarketSlotsDesblock(self, slot0, slot1, slot2, slot3, slot4, slot5):
  2294. self.interface.GemMarketSlotsDesblock(slot0, slot1, slot2, slot3, slot4, slot5)
  2295. def GemMarketClear(self):
  2296. self.interface.GemMarketClear()
  2297. def GemTimeMarket(self, time):
  2298. self.interface.GemTime(time)
  2299. if app.ENABLE_SPLIT_INVENTORY_SYSTEM:
  2300. def OpenSpecialInventoryWindow(self, category):
  2301. self.interface.OpenSpecialInventoryWindow(int(category))
  2302. if app.ENABLE_SOUL_SYSTEM:
  2303. def __RefineSoulSuceededMessage(self):
  2304. snd.PlaySound("sound/ui/make_soket.wav")
  2305. self.PopupMessage(localeInfo.SOUL_REFINE_SUCCESS)
  2306. def __RefineSoulFailedMessage(self):
  2307. snd.PlaySound("sound/ui/jaeryun_fail.wav")
  2308. self.PopupMessage(localeInfo.SOUL_REFINE_FAILURE)
  2309. def BINARY_ServerCommand_Run(self, line):
  2310. #dbg.TraceError(line)
  2311. try:
  2312. #print " BINARY_ServerCommand_Run", line
  2313. return self.serverCommander.Run(line)
  2314. except RuntimeError, msg:
  2315. dbg.TraceError(msg)
  2316. return 0
  2317. def __ProcessPreservedServerCommand(self):
  2318. try:
  2319. command = net.GetPreservedServerCommand()
  2320. while command:
  2321. print " __ProcessPreservedServerCommand", command
  2322. self.serverCommander.Run(command)
  2323. command = net.GetPreservedServerCommand()
  2324. except RuntimeError, msg:
  2325. dbg.TraceError(msg)
  2326. return 0
  2327. def __Inputget1(self):
  2328. constInfo.INPUT_IGNORE = 1
  2329. def __Inputget2(self):
  2330. constInfo.INPUT_IGNORE = 0
  2331. def __Inputget3(self):
  2332. net.SendQuestInputStringPacket("1")
  2333. def GetInputStringStart(self):
  2334. constInfo.INPUT_IGNORE = 1
  2335. def GetInputStringEnd(self):
  2336. constInfo.INPUT_IGNORE = 0
  2337. def PartyHealReady(self):
  2338. self.interface.PartyHealReady()
  2339. def AskSafeboxPassword(self):
  2340. self.interface.AskSafeboxPassword()
  2341. # ITEM_MALL
  2342. def AskMallPassword(self):
  2343. self.interface.AskMallPassword()
  2344. def __ItemMall_Open(self):
  2345. self.interface.OpenItemMall();
  2346. def CommandCloseMall(self):
  2347. self.interface.CommandCloseMall()
  2348. # END_OF_ITEM_MALL
  2349. def AttrTransferMessage(self):
  2350. snd.PlaySound("sound/ui/make_soket.wav")
  2351. self.PopupMessage(localeInfo.COMB_ALERT)
  2352. def RefineSuceededMessage(self):
  2353. snd.PlaySound("sound/ui/make_soket.wav")
  2354. self.PopupMessage(localeInfo.REFINE_SUCCESS)
  2355. if app.ENABLE_REFINE_RENEWAL:
  2356. self.interface.CheckRefineDialog(False)
  2357. def RefineFailedMessage(self):
  2358. snd.PlaySound("sound/ui/jaeryun_fail.wav")
  2359. self.PopupMessage(localeInfo.REFINE_FAILURE)
  2360. if app.ENABLE_REFINE_RENEWAL:
  2361. self.interface.CheckRefineDialog(True)
  2362. def CommandCloseSafebox(self):
  2363. self.interface.CommandCloseSafebox()
  2364. # PRIVATE_SHOP_PRICE_LIST
  2365. if app.ENABLE_CHEQUE_SYSTEM:
  2366. def __PrivateShop_PriceList(self, itemVNum, itemPrice, itemPriceCheque):
  2367. uiPrivateShopBuilder.SetPrivateShopItemPrice(itemVNum, itemPrice, itemPriceCheque)
  2368. else:
  2369. def __PrivateShop_PriceList(self, itemVNum, itemPrice):
  2370. uiPrivateShopBuilder.SetPrivateShopItemPrice(itemVNum, itemPrice)
  2371. # END_OF_PRIVATE_SHOP_PRICE_LIST
  2372. if app.ENABLE_NEW_PET_SYSTEM:
  2373. def SetPetEvolution(self, evo):
  2374. petname = ["Genc", "Vahsi", "Cesur", "Kahraman"]
  2375. self.petmain.SetEvolveName(petname[int(evo)])
  2376. def SetPetName(self, name):
  2377. if len(name) > 1 and name != "":
  2378. self.petmini.Show()
  2379. self.petmain.SetName(name)
  2380. def SetPetLevel(self, level):
  2381. self.petmain.SetLevel(level)
  2382. def SetPetDuration(self, dur, durt):
  2383. if int(durt) > 0:
  2384. self.petmini.SetDuration(dur, durt)
  2385. self.petmain.SetDuration(dur, durt)
  2386. def SetPetAgeDuration(self, age):
  2387. if (int(age)) > 0:
  2388. self.petmain.SetAgeDuration(age)
  2389. def SetPetBonus(self, hp, dif, sp):
  2390. self.petmain.SetHp(hp)
  2391. self.petmain.SetDef(dif)
  2392. self.petmain.SetSp(sp)
  2393. def SetPetskill(self, slot, idx, lv):
  2394. if int(lv) > 0:
  2395. self.petmini.SetSkill(slot, idx, lv)
  2396. self.petmain.SetSkill(slot, idx, lv)
  2397. self.affectShower.BINARY_NEW_AddAffect(5400+int(idx),int(constInfo.LASTAFFECT_POINT)+1,int(constInfo.LASTAFFECT_VALUE)+1, 0)
  2398. if int(slot)==0:
  2399. constInfo.SKILL_PET1=5400+int(idx)
  2400. if int(slot)==1:
  2401. constInfo.SKILL_PET2=5400+int(idx)
  2402. if int(slot)==2:
  2403. constInfo.SKILL_PET3=5400+int(idx)
  2404. def SetPetIcon(self, vnum):
  2405. if int(vnum) > 0:
  2406. self.petmini.SetImageSlot(vnum)
  2407. self.petmain.SetImageSlot(vnum)
  2408. def SetPetExp(self, exp, expi, exptot):
  2409. if int(exptot) > 0:
  2410. self.petmini.SetExperience(exp, expi, exptot)
  2411. self.petmain.SetExperience(exp, expi, exptot)
  2412. def PetUnsummon(self):
  2413. self.petmini.SetDefaultInfo()
  2414. self.petmini.Close()
  2415. self.petmain.SetDefaultInfo()
  2416. self.affectShower.BINARY_NEW_RemoveAffect(int(constInfo.SKILL_PET1),0)
  2417. self.affectShower.BINARY_NEW_RemoveAffect(int(constInfo.SKILL_PET2),0)
  2418. self.affectShower.BINARY_NEW_RemoveAffect(int(constInfo.SKILL_PET3),0)
  2419. constInfo.SKILL_PET1 = 0
  2420. constInfo.SKILL_PET2 = 0
  2421. constInfo.SKILL_PET3 = 0
  2422. def OpenPetMainGui(self):
  2423. if self.petmain.IsShow() == True:
  2424. self.petmain.Close()
  2425. else:
  2426. self.petmain.Show()
  2427. self.petmain.SetTop()
  2428. def OpenPetIncubator(self, pet_new = 0):
  2429. import uipetincubatrice
  2430. self.petinc = uipetincubatrice.PetSystemIncubator(pet_new)
  2431. self.petinc.Show()
  2432. self.petinc.SetTop()
  2433. def OpenPetMini(self):
  2434. self.petmini.Show()
  2435. self.petmini.SetTop()
  2436. def OpenPetFeed(self):
  2437. import uipetfeed
  2438. self.feedwind = uipetfeed.PetFeedWindow()
  2439. self.feedwind.Show()
  2440. self.feedwind.SetTop()
  2441. if (app.ENABLE_PET_ATTR_DETERMINE):
  2442. def __OnResultPetAttrDetermine(self, pet_type):
  2443. self.petmain.OnResultPetAttrDetermine(int(pet_type))
  2444. def __OnResultPetAttrChange(self, pet_type):
  2445. self.petmain.OnResultPetAttrChange(int(pet_type))
  2446. def Gift_Show(self):
  2447. if constInfo.PET_MAIN == 0:
  2448. self.petmain.Show()
  2449. constInfo.PET_MAIN =1
  2450. self.petmain.SetTop()
  2451. else:
  2452. self.petmain.Hide()
  2453. constInfo.PET_MAIN =0
  2454. if app.ENABLE_CONQUEROR_LEVEL:
  2455. def ConquerorMap187(self):
  2456. self.affectShower.SetConqueror_187()
  2457. def ConquerorMap190(self):
  2458. self.affectShower.SetConqueror_190()
  2459. def __Horse_HideState(self):
  2460. self.affectShower.SetHorseState(0, 0, 0)
  2461. def __Horse_UpdateState(self, level, health, battery):
  2462. self.affectShower.SetHorseState(int(level), int(health), int(battery))
  2463. def __IsXMasMap(self):
  2464. mapDict = ( "metin2_map_n_flame_01",
  2465. "metin2_map_n_desert_01",
  2466. "metin2_map_spiderdungeon",
  2467. "metin2_map_deviltower1", )
  2468. if background.GetCurrentMapName() in mapDict:
  2469. return FALSE
  2470. return TRUE
  2471. def __XMasSnow_Enable(self, mode):
  2472. self.__XMasSong_Enable(mode)
  2473. if "1" == mode:
  2474. #if app.ENABLE_ENVIRONMENT_EFFECT_OPTION:
  2475. # background.SetXMasShowEvent(1)
  2476. if not self.__IsXMasMap():
  2477. return
  2478. print "XMAS_SNOW ON"
  2479. background.EnableSnow(1)
  2480. else:
  2481. #if app.ENABLE_ENVIRONMENT_EFFECT_OPTION:
  2482. # background.SetXMasShowEvent(0)
  2483. print "XMAS_SNOW OFF"
  2484. background.EnableSnow(0)
  2485. def __XMasBoom_Enable(self, mode):
  2486. if "1" == mode:
  2487. if app.ENABLE_ENVIRONMENT_EFFECT_OPTION:
  2488. #if not background.IsBoomMap():
  2489. # return
  2490. if not self.__IsXMasMap():
  2491. return
  2492. else:
  2493. if not self.__IsXMasMap():
  2494. return
  2495. print "XMAS_BOOM ON"
  2496. self.__DayMode_Update("dark")
  2497. self.enableXMasBoom = True
  2498. self.startTimeXMasBoom = app.GetTime()
  2499. else:
  2500. print "XMAS_BOOM OFF"
  2501. self.__DayMode_Update("light")
  2502. self.enableXMasBoom = False
  2503. def __XMasTree_Enable(self, grade):
  2504. print "XMAS_TREE ", grade
  2505. background.SetXMasTree(int(grade))
  2506. if app.ENABLE_DS_CHANGE_ATTR:
  2507. def DS_ChangeAttr_Success(self):
  2508. self.interface.DS_AttrSuccess()
  2509. def DS_ChangeAttr_Failed(self):
  2510. self.interface.DS_AttrFailed()
  2511. def __XMasSong_Enable(self, mode):
  2512. if "1"==mode:
  2513. print "XMAS_SONG ON"
  2514. XMAS_BGM = "xmas.mp3"
  2515. if app.IsExistFile("BGM/" + XMAS_BGM)==1:
  2516. if musicInfo.fieldMusic != "":
  2517. snd.FadeOutMusic("BGM/" + musicInfo.fieldMusic)
  2518. musicInfo.fieldMusic=XMAS_BGM
  2519. snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
  2520. else:
  2521. print "XMAS_SONG OFF"
  2522. if musicInfo.fieldMusic != "":
  2523. snd.FadeOutMusic("BGM/" + musicInfo.fieldMusic)
  2524. musicInfo.fieldMusic=musicInfo.METIN2THEMA
  2525. snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
  2526. if app.ENABLE_SOUL_ROULETTE_SYSTEM:
  2527. def __XMasSoul_Enable(self, mode):
  2528. if "1" == mode:
  2529. if not self.__IsXMasMap():
  2530. return
  2531. print "XMAS_SOUL ON"
  2532. self.__DayMode_Update("red")
  2533. self.enableXMasSoul = True
  2534. self.startTimeXMasSoul = app.GetTime()
  2535. else:
  2536. print "XMAS_SOUL OFF"
  2537. self.__DayMode_Update("light")
  2538. self.enableXMasSoul = False
  2539. def __RestartDialog_Close(self):
  2540. self.interface.CloseRestartDialog()
  2541. if app.ENABLE_AUTO_HUNT_SYSTEM:
  2542. def __otomatikavstart(self):
  2543. constInfo_new.StartHunt = 1
  2544. def __Console_Enable(self):
  2545. constInfo.CONSOLE_ENABLE = TRUE
  2546. self.consoleEnable = TRUE
  2547. app.EnableSpecialCameraMode()
  2548. ui.EnablePaste(TRUE)
  2549. ## PrivateShop
  2550. def __PrivateShop_Open(self):
  2551. self.interface.OpenPrivateShopInputNameDialog()
  2552. def BINARY_PrivateShop_Appear(self, vid, text):
  2553. if (chr.GetInstanceType(vid) == chr.INSTANCE_TYPE_PLAYER):
  2554. self.interface.AppearPrivateShop(vid, text)
  2555. def BINARY_PrivateShop_Disappear(self, vid):
  2556. if (chr.GetInstanceType(vid) == chr.INSTANCE_TYPE_PLAYER):
  2557. self.interface.DisappearPrivateShop(vid)
  2558. ## DayMode
  2559. def __PRESERVE_DayMode_Update(self, mode):
  2560. if "light" == mode:
  2561. if app.ENABLE_12ZI:
  2562. if not self.__IsXMasMap():
  2563. return
  2564. background.SetEnvironmentData(0)
  2565. else:
  2566. background.SetEnvironmentData(0)
  2567. elif "dark" == mode:
  2568. if app.ENABLE_ENVIRONMENT_EFFECT_OPTION:
  2569. #if not background.IsBoomMap():
  2570. # return
  2571. if not self.__IsXMasMap():
  2572. return
  2573. else:
  2574. if not self.__IsXMasMap():
  2575. return
  2576. background.RegisterEnvironmentData(1, constInfo.ENVIRONMENT_NIGHT)
  2577. background.SetEnvironmentData(1)
  2578. def __DayMode_Update(self, mode):
  2579. if "light" == mode:
  2580. if app.ENABLE_12ZI:
  2581. if not self.__IsXMasMap():
  2582. return
  2583. self.curtain.SAFE_FadeOut(self.__DayMode_OnCompleteChangeToLight)
  2584. elif "dark" == mode:
  2585. if app.ENABLE_ENVIRONMENT_EFFECT_OPTION:
  2586. #if not background.IsBoomMap():
  2587. # return
  2588. if not self.__IsXMasMap():
  2589. return
  2590. else:
  2591. if not self.__IsXMasMap():
  2592. return
  2593. self.curtain.SAFE_FadeOut(self.__DayMode_OnCompleteChangeToDark)
  2594. if app.ENABLE_SOUL_ROULETTE_SYSTEM:
  2595. if "red" == mode:
  2596. if not self.__IsXMasMap():
  2597. return
  2598. self.curtain.SAFE_FadeOut(self.__DayMode_OnCompleteChangeToRed)
  2599. def __DayMode_OnCompleteChangeToLight(self):
  2600. if app.ENABLE_12ZI:
  2601. background.SetEnvironmentData(0)
  2602. else:
  2603. background.SetEnvironmentData(0)
  2604. self.curtain.FadeIn()
  2605. def __DayMode_OnCompleteChangeToDark(self):
  2606. background.RegisterEnvironmentData(1, constInfo.ENVIRONMENT_NIGHT)
  2607. background.SetEnvironmentData(1)
  2608. self.curtain.FadeIn()
  2609. if app.ENABLE_SOUL_ROULETTE_SYSTEM:
  2610. def __DayMode_OnCompleteChangeToRed(self):
  2611. background.RegisterEnvironmentData(1, constInfo_new.ENVIRONMENT_RED)
  2612. background.SetEnvironmentData(1)
  2613. self.curtain.FadeIn()
  2614. if app.ENABLE_12ZI:
  2615. def BINARY_SetEnvironment(self, idx):
  2616. self.indexEnv = idx
  2617. self.curtain.SAFE_FadeOut(self.__SetEnvironment)
  2618. def __SetEnvironment(self):
  2619. background.SetEnvironmentData(self.indexEnv)
  2620. self.curtain.FadeIn()
  2621. ## XMasBoom
  2622. def __XMasBoom_Update(self):
  2623. self.BOOM_DATA_LIST = ( (2, 5), (5, 2), (7, 3), (10, 3), (20, 5) )
  2624. if self.indexXMasBoom >= len(self.BOOM_DATA_LIST):
  2625. return
  2626. boomTime = self.BOOM_DATA_LIST[self.indexXMasBoom][0]
  2627. boomCount = self.BOOM_DATA_LIST[self.indexXMasBoom][1]
  2628. if app.GetTime() - self.startTimeXMasBoom > boomTime:
  2629. self.indexXMasBoom += 1
  2630. for i in xrange(boomCount):
  2631. self.__XMasBoom_Boom()
  2632. def __XMasBoom_Boom(self):
  2633. x, y, z = player.GetMainCharacterPosition()
  2634. randX = app.GetRandom(-150, 150)
  2635. randY = app.GetRandom(-150, 150)
  2636. snd.PlaySound3D(x+randX, -y+randY, z, "sound/common/etc/salute.mp3")
  2637. if app.ENABLE_SOUL_ROULETTE_SYSTEM:
  2638. def __XMasSoul_Update(self):
  2639. self.SOUL_DATA_LIST = ( (2, 5), (5, 2), (7, 3), (10, 3), (20, 5) )
  2640. if self.indexXMasSoul >= len(self.SOUL_DATA_LIST):
  2641. return
  2642. soulTime = self.SOUL_DATA_LIST[self.indexXMasSoul][0]
  2643. soulCount = self.SOUL_DATA_LIST[self.indexXMasSoul][1]
  2644. if app.GetTime() - self.startTimeXMasSoul > soulTime:
  2645. self.indexXMasSoul += 1
  2646. for i in xrange(soulCount):
  2647. self.__XMasSoul_Soul()
  2648. def __XMasSoul_Soul(self):
  2649. x, y, z = player.GetMainCharacterPosition()
  2650. randX = app.GetRandom(-150, 150)
  2651. randY = app.GetRandom(-150, 150)
  2652. snd.PlaySound3D(x+randX, -y+randY, z, "sound/common/etc/salute.mp3")
  2653. if app.ENABLE_NEW_USER_CARE:
  2654. def __PartyRequestQuestion(self, vid, name):
  2655. vid = int(vid)
  2656. partyRequestQuestionDialog = uiCommon.QuestionDialogWithTimeLimit()
  2657. partyRequestQuestionDialog.SetAcceptText(localeInfo.UI_ACCEPT)
  2658. partyRequestQuestionDialog.SetCancelText(localeInfo.UI_DENY)
  2659. partyRequestQuestionDialog.SetAcceptEvent(lambda arg=True: self.__AnswerPartyRequest(arg))
  2660. partyRequestQuestionDialog.SetCancelEvent(lambda arg=False: self.__AnswerPartyRequest(arg))
  2661. partyRequestQuestionDialog.Open(name + localeInfo.PARTY_DO_YOU_ACCEPT, 10)
  2662. partyRequestQuestionDialog.SetTimeOverMsg(localeInfo.PARTY_ANSWER_TIMEOVER)
  2663. partyRequestQuestionDialog.SetCancelOnTimeOver()
  2664. partyRequestQuestionDialog.vid = vid
  2665. self.partyRequestQuestionDialog = partyRequestQuestionDialog
  2666. else:
  2667. def __PartyRequestQuestion(self, vid):
  2668. vid = int(vid)
  2669. partyRequestQuestionDialog = uiCommon.QuestionDialog()
  2670. partyRequestQuestionDialog.SetText(chr.GetNameByVID(vid) + localeInfo.PARTY_DO_YOU_ACCEPT)
  2671. partyRequestQuestionDialog.SetAcceptText(localeInfo.UI_ACCEPT)
  2672. partyRequestQuestionDialog.SetCancelText(localeInfo.UI_DENY)
  2673. partyRequestQuestionDialog.SetAcceptEvent(lambda arg=True: self.__AnswerPartyRequest(arg))
  2674. partyRequestQuestionDialog.SetCancelEvent(lambda arg=False: self.__AnswerPartyRequest(arg))
  2675. partyRequestQuestionDialog.Open()
  2676. partyRequestQuestionDialog.vid = vid
  2677. self.partyRequestQuestionDialog = partyRequestQuestionDialog
  2678. def __AnswerPartyRequest(self, answer):
  2679. if not self.partyRequestQuestionDialog:
  2680. return
  2681. vid = self.partyRequestQuestionDialog.vid
  2682. if answer:
  2683. net.SendChatPacket("/party_request_accept " + str(vid))
  2684. else:
  2685. net.SendChatPacket("/party_request_deny " + str(vid))
  2686. self.partyRequestQuestionDialog.Close()
  2687. self.partyRequestQuestionDialog = None
  2688. def __PartyRequestDenied(self):
  2689. self.PopupMessage(localeInfo.PARTY_REQUEST_DENIED)
  2690. if (app.WJ_COMBAT_ZONE):
  2691. def BINARY_CombatZone_Manager(self, tokens, arg1 = 0, arg2 = 0, arg3 = 0, arg4 = 0):
  2692. if tokens == "OpenWindow":
  2693. self.wndCombatZone.Open(arg1, arg2, arg3, arg4)
  2694. elif tokens == "RegisterRank":
  2695. self.wndCombatZone.RegisterRanking()
  2696. elif tokens == "StartFlashing":
  2697. if self.interface:
  2698. self.interface.wndMiniMap.btnCombatZone.FlashEx()
  2699. elif tokens == "RefreshShop":
  2700. if self.interface:
  2701. self.interface.dlgShop.SetCombatZonePoints(arg1)
  2702. self.interface.dlgShop.SetLimitCombatZonePoints(arg2, arg3)
  2703. def __EnableTestServerFlag(self):
  2704. app.EnableTestServerFlag()
  2705. def __InGameShop_Show(self, url):
  2706. if constInfo.IN_GAME_SHOP_ENABLE:
  2707. constInfo.ItemShop['QCMD'] = 'OPEN_SHOP#'
  2708. event.QuestButtonClick(constInfo.ItemShop['QID'])
  2709. def ManagerItemshop(self, cmd):
  2710. cmd = cmd.split('#')
  2711. if cmd[0] == 'QID':
  2712. constInfo.ItemShop['QID'] = int(cmd[1])
  2713. elif cmd[0] == 'INPUT':
  2714. constInfo.INPUT_IGNORE = int(cmd[1])
  2715. elif cmd[0] == 'SEND':
  2716. net.SendQuestInputStringPacket(str(constInfo.ItemShop['QCMD']))
  2717. constInfo.ItemShop['QCMD'] = ''
  2718. elif cmd[0] == 'CREATE_CATEGORY':
  2719. constInfo.ItemShop['ITEMS'][cmd[1]][int(cmd[2])] = []
  2720. elif cmd[0] == 'SET_ITEM':
  2721. constInfo.ItemShop['ITEMS'][cmd[1]][int(cmd[2])].append([int(cmd[3]), int(cmd[4]), int(cmd[5]), [(int(cmd[6]), int(cmd[7])), (int(cmd[8]), int(cmd[9])), (int(cmd[10]), int(cmd[11])), (int(cmd[12]), int(cmd[13])), (int(cmd[14]), int(cmd[15])), (int(cmd[16]), int(cmd[17])), (int(cmd[18]), int(cmd[19]))], [int(cmd[20]), int(cmd[21]), int(cmd[22])], int(cmd[23]), int(cmd[24]), int(cmd[25])])
  2722. elif cmd[0] == 'CLEAR_CONTENT':
  2723. constInfo.ItemShop['ITEMS']['mostBought'] = []
  2724. constInfo.ItemShop['ITEMS']['hotOffers'] = []
  2725. elif cmd[0] == 'SET_ITEM_MOSTBOUGHT':
  2726. constInfo.ItemShop['ITEMS']['mostBought'].append([int(cmd[1]), int(cmd[2]), int(cmd[3]), [(int(cmd[4]), int(cmd[5])), (int(cmd[6]), int(cmd[7])), (int(cmd[8]), int(cmd[9])), (int(cmd[10]), int(cmd[11])), (int(cmd[12]), int(cmd[13])), (int(cmd[14]), int(cmd[15])), (int(cmd[16]), int(cmd[17]))], [int(cmd[17]), int(cmd[19]), int(cmd[20])], int(cmd[21]), int(cmd[22]), int(cmd[23])])
  2727. elif cmd[0] == 'SET_ITEM_HOTOFFERS':
  2728. constInfo.ItemShop['ITEMS']['hotOffers'].append([int(cmd[1]), int(cmd[2]), int(cmd[3]), [(int(cmd[4]), int(cmd[5])), (int(cmd[6]), int(cmd[7])), (int(cmd[8]), int(cmd[9])), (int(cmd[10]), int(cmd[11])), (int(cmd[12]), int(cmd[13])), (int(cmd[14]), int(cmd[15])), (int(cmd[16]), int(cmd[17]))], [int(cmd[17]), int(cmd[19]), int(cmd[20])], int(cmd[21]), int(cmd[22]), int(cmd[23])])
  2729. elif cmd[0] == 'SET_LOG':
  2730. constInfo.ItemShop['LOGS'].append([int(cmd[1]), int(cmd[2]), int(cmd[3]), cmd[4], [(int(cmd[5]), int(cmd[6])), (int(cmd[7]), int(cmd[8])), (int(cmd[9]), int(cmd[10])), (int(cmd[11]), int(cmd[12])), (int(cmd[13]), int(cmd[14])), (int(cmd[15]), int(cmd[16])), (int(cmd[17]), int(cmd[18]))], [int(cmd[19]), int(cmd[20]), int(cmd[21])]])
  2731. elif cmd[0] == 'SEND_COINS':
  2732. constInfo.COINS_DRS = [int(cmd[1]), int(cmd[2])]
  2733. elif cmd[0] == 'SEND_3RD_SHOP_COIN':
  2734. self.interface.wndItemShop.Set3rdCoins(int(cmd[1]))
  2735. elif cmd[0] == 'ALLOW_SPIN_WHEEL':
  2736. self.interface.wndItemShop.SpinWheel()
  2737. elif cmd[0] == 'CLEAR_WHEEL_CONTENT':
  2738. constInfo.ItemShop['WOD'] = [[], []]
  2739. elif cmd[0] == 'SET_WHEEL_PRIZE':
  2740. prize = cmd[2].split(',')
  2741. if cmd[1] == 'G':
  2742. for i in xrange(len(prize)-1):
  2743. constInfo.ItemShop['WOD'][1].append(int(prize[i]))
  2744. elif cmd[1] == 'B':
  2745. for i in xrange(len(prize)-1):
  2746. constInfo.ItemShop['WOD'][0].append(int(prize[i]))
  2747. elif cmd[0] == 'OPEN':
  2748. self.interface.wndItemShop.Open(int(cmd[1]))
  2749. elif cmd[0] == 'REFRESH_CONTENT':
  2750. self.interface.wndItemShop.RefreshWindow()
  2751. def ManagerTickets(self, cmd):
  2752. cmd = cmd.split('#')
  2753. if cmd[0] == 'QID':
  2754. constInfo.Tickets['QID'] = int(cmd[1])
  2755. elif cmd[0] == 'INPUT':
  2756. constInfo.INPUT_IGNORE = int(cmd[1])
  2757. elif cmd[0] == 'SEND':
  2758. net.SendQuestInputTicketLongStringPacket(str(constInfo.Tickets['QCMD']))
  2759. constInfo.Tickets['QCMD'] = ''
  2760. elif cmd[0] == 'CLEAR_CONTENT':
  2761. constInfo.Tickets['MY_TICKETS'] = []
  2762. constInfo.Tickets['GLOBAL_TICKETS'] = []
  2763. elif cmd[0] == 'CLEAR_PERMISIONS':
  2764. constInfo.Tickets['PERMISIONS'] = []
  2765. elif cmd[0] == 'SET_TICKET':
  2766. date = cmd[4].split('[_]')
  2767. constInfo.Tickets['GLOBAL_TICKETS'].append([cmd[1], cmd[2].replace('[_]', ' '), int(cmd[3]), date[0], date[1], int(cmd[5]), cmd[6], cmd[7].replace('[_]', ' '), int(cmd[8])])
  2768. if cmd[6] == player.GetName():
  2769. constInfo.Tickets['MY_TICKETS'].append([cmd[1], cmd[2].replace('[_]', ' '), int(cmd[3]), date[0], date[1], int(cmd[5]), cmd[6], cmd[7].replace('[_]', ' '), int(cmd[8])])
  2770. elif cmd[0] == 'CREATE_ANSWER':
  2771. constInfo.Tickets['ANSWERS'][cmd[1]] = []
  2772. elif cmd[0] == 'SET_ANSWER':
  2773. date = cmd[3].split('[_]')
  2774. constInfo.Tickets['ANSWERS'][cmd[1]].append([cmd[2], date[0], date[1], cmd[4].replace('[_]', ' ')])
  2775. elif cmd[0] == 'SET_PERMISION':
  2776. constInfo.Tickets['PERMISIONS'].append([cmd[1], int(cmd[2]), int(cmd[3]), int(cmd[4])])
  2777. elif cmd[0] == 'OPEN':
  2778. self.interface.wndTicket.Open(int(cmd[1]))
  2779. elif cmd[0] == 'REFRESH_CONTENT':
  2780. self.interface.wndTicket.RefreshPage()
  2781. if app.ENABLE_OX_INVISIBILITY_SYSTEM:
  2782. def MakeVisibleOX(self):
  2783. chrmgr.ShowAllPlayers()
  2784. def RemoveTitleOX(self):
  2785. chrmgr.RemoveAllPlayersTitle()
  2786. # WEDDING
  2787. def __LoginLover(self):
  2788. if self.interface.wndMessenger:
  2789. self.interface.wndMessenger.OnLoginLover()
  2790. def __LogoutLover(self):
  2791. if self.interface.wndMessenger:
  2792. self.interface.wndMessenger.OnLogoutLover()
  2793. if self.affectShower:
  2794. self.affectShower.HideLoverState()
  2795. def __LoverNear(self):
  2796. if self.affectShower:
  2797. self.affectShower.ShowLoverState()
  2798. def __LoverFar(self):
  2799. if self.affectShower:
  2800. self.affectShower.HideLoverState()
  2801. if app.ENABLE_ATTR_6TH_7TH_SYSTEM:
  2802. def attr_6th_7th(self):
  2803. self.interface.OpenAttr67AddDialog()
  2804. def Attr67Add(self):
  2805. self.wndPopupDialog = uiCommon.PopupDialog()
  2806. self.wndPopupDialog.SetText(localeInfo.ATTR_6TH_7TH_POSSIBILITY)
  2807. self.wndPopupDialog.Open()
  2808. if app.ENABLE_WHISPER_ADMIN_SYSTEM:
  2809. def OpenWhisperSystem(self):
  2810. if self.adminWhisperManager.IsShow():
  2811. self.adminWhisperManager.Hide()
  2812. else:
  2813. self.adminWhisperManager.Show()
  2814. def __LoverDivorce(self):
  2815. if self.interface.wndMessenger:
  2816. self.interface.wndMessenger.ClearLoverInfo()
  2817. if self.affectShower:
  2818. self.affectShower.ClearLoverState()
  2819. def __PlayMusic(self, flag, filename):
  2820. flag = int(flag)
  2821. if flag:
  2822. snd.FadeOutAllMusic()
  2823. musicInfo.SaveLastPlayFieldMusic()
  2824. snd.FadeInMusic("BGM/" + filename)
  2825. else:
  2826. snd.FadeOutAllMusic()
  2827. musicInfo.LoadLastPlayFieldMusic()
  2828. snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
  2829. if app.ENABLE_HIDRA_DUNGEON_RELEASE:
  2830. def BINARY_Update_Mast_HP(self, hp):
  2831. self.interface.BINARY_Update_Mast_HP(int(hp))
  2832. def BINARY_Update_Mast_Window(self, i):
  2833. self.interface.BINARY_Update_Mast_Window(int(i))
  2834. def Update(self, ch):
  2835. import serverInfo
  2836. net.SetServerInfo("%s, CH%s" % (serverInfo.SERVER_NAME, str(ch)))
  2837. constInfo.ch = int(ch)
  2838. if app.ENABLE_BOSS_TRACKING:
  2839. def OpenBossTracking(self):
  2840. self.bosstracking.Open()
  2841. def CloseBossTracking(self):
  2842. self.bosstracking.__OnClose()
  2843. def BINARY_BOSS_TRACKING(self, kill_time, start_time, channel, mob_vnum, map_index):
  2844. self.bosstracking.SetData(kill_time, start_time, channel, mob_vnum, map_index)
  2845. if app.ENABLE_MINI_GAME_CATCH_KING:
  2846. def MiniGameCatchKingEvent(self, isEnable):
  2847. if self.interface:
  2848. self.interface.SetCatchKingEventStatus(isEnable)
  2849. def MiniGameCatchKingEventStart(self, bigScore):
  2850. self.interface.MiniGameCatchKingEventStart(bigScore)
  2851. def MiniGameCatchKingSetHandCard(self, cardNumber):
  2852. self.interface.MiniGameCatchKingSetHandCard(cardNumber)
  2853. def MiniGameCatchKingResultField(self, score, rowType, cardPos, cardValue, keepFieldCard, destroyHandCard, getReward, isFiveNear):
  2854. self.interface.MiniGameCatchKingResultField(score, rowType, cardPos, cardValue, keepFieldCard, destroyHandCard, getReward, isFiveNear)
  2855. def MiniGameCatchKingSetEndCard(self, cardPos, cardNumber):
  2856. self.interface.MiniGameCatchKingSetEndCard(cardPos, cardNumber)
  2857. def MiniGameCatchKingReward(self, rewardCode):
  2858. self.interface.MiniGameCatchKingReward(rewardCode)
  2859. if app.ENABLE_ATTENDANCE_EVENT:
  2860. def MiniGameAttendanceEvent(self, isEnable):
  2861. if self.interface:
  2862. self.interface.SetAttendanceEventStatus(isEnable)
  2863. def MiniGameAttendanceSetData(self, type, value):
  2864. self.interface.MiniGameAttendanceSetData(type, value)
  2865. def RefreshHitCount(self, vid):
  2866. if vid == self.targetBoard.GetTargetVID():
  2867. self.targetBoard.RefreshHitCount(vid)
  2868. def OpenDragonLairRanking(self):
  2869. if self.interface:
  2870. self.interface.OpenDragonLairRanking()
  2871. def AddDragonLairRanking(self, data):
  2872. if self.interface:
  2873. line = int(data.split("#")[1])
  2874. name = str(data.split("#")[2])
  2875. empire = int(data.split("#")[3])
  2876. killcount = int(data.split("#")[4])
  2877. self.interface.AddDragonLairRanking(line, name, empire, killcount)
  2878. if app.ENABLE_MELEY_LAIR_DUNGEON:
  2879. def ClearDragonLairRanking(self, type):
  2880. if self.interface:
  2881. self.interface.ClearDragonLairRanking(int(type))
  2882. def OpenDragonLairRanking(self, type):
  2883. if self.interface:
  2884. self.interface.OpenDragonLairRanking(int(type))
  2885. def AddDragonLairRanking(self, type, data):
  2886. if self.interface:
  2887. line = int(data.split("#")[1])
  2888. guildname = str(data.split("#")[2])
  2889. membercount = int(data.split("#")[3])
  2890. sec = int(data.split("#")[4])
  2891. min = int(sec / 60)
  2892. sec %= 60
  2893. self.interface.AddDragonLairRanking(int(type), guildname, membercount, min, sec)
  2894. if app.ENABLE_FISH_EVENT_SYSTEM:
  2895. def MiniGameFishEvent(self, isEnable, lasUseCount):
  2896. if self.interface:
  2897. self.interface.SetFishEventStatus(isEnable)
  2898. self.interface.MiniGameFishCount(lasUseCount)
  2899. def MiniGameFishUse(self, shape, useCount):
  2900. self.interface.MiniGameFishUse(shape, useCount)
  2901. def MiniGameFishAdd(self, pos, shape):
  2902. self.interface.MiniGameFishAdd(pos, shape)
  2903. def MiniGameFishReward(self, vnum):
  2904. self.interface.MiniGameFishReward(vnum)
  2905. def AddRankMeleyRanking(self, data):
  2906. if self.interface:
  2907. line = int(data.split("#")[1])
  2908. name = str(data.split("#")[2])
  2909. members = int(data.split("#")[3])
  2910. seconds = int(data.split("#")[4])
  2911. minutes = seconds // 60
  2912. seconds %= 60
  2913. if seconds > 0:
  2914. time = localeInfo.TIME_MIN_SEC % (minutes, seconds)
  2915. else:
  2916. time = localeInfo.TIME_MIN % (minutes)
  2917. self.interface.RankMeleyRanking(line, name, members, time)
  2918. if app.ENABLE_SASH_SYSTEM:
  2919. def ActSash(self, iAct, bWindow):
  2920. if self.interface:
  2921. self.interface.ActSash(iAct, bWindow)
  2922. def AlertSash(self, bWindow):
  2923. snd.PlaySound("sound/ui/make_soket.wav")
  2924. if bWindow:
  2925. self.PopupMessage(localeInfo.SASH_DEL_SERVEITEM)
  2926. else:
  2927. self.PopupMessage(localeInfo.SASH_DEL_ABSORDITEM)
  2928. if app.ENABLE_CHANGELOOK_SYSTEM:
  2929. if app.ENABLE_MOUNT_CHANGELOOK_SYSTEM:
  2930. def ActChangeLook(self, iAct, bMount):
  2931. if self.interface:
  2932. self.interface.ActChangeLook(iAct, bMount)
  2933. else:
  2934. def ActChangeLook(self, iAct):
  2935. if self.interface:
  2936. self.interface.ActChangeLook(iAct)
  2937. def AlertChangeLook(self):
  2938. self.PopupMessage(localeInfo.CHANGE_LOOK_DEL_ITEM)
  2939. # END_OF_WEDDING
  2940. if app.ENABLE_TARGET_INFORMATION_SYSTEM:
  2941. def BINARY_AddTargetMonsterDropInfo(self, raceNum, itemVnum, itemCount):
  2942. if not raceNum in constInfo.MONSTER_INFO_DATA:
  2943. constInfo.MONSTER_INFO_DATA.update({raceNum : {}})
  2944. constInfo.MONSTER_INFO_DATA[raceNum].update({"items" : []})
  2945. curList = constInfo.MONSTER_INFO_DATA[raceNum]["items"]
  2946. isUpgradeable = False
  2947. isMetin = False
  2948. item.SelectItem(itemVnum)
  2949. if item.GetItemType() == item.ITEM_TYPE_WEAPON or item.GetItemType() == item.ITEM_TYPE_ARMOR:
  2950. isUpgradeable = True
  2951. elif item.GetItemType() == item.ITEM_TYPE_METIN:
  2952. isMetin = True
  2953. for curItem in curList:
  2954. if isUpgradeable:
  2955. if curItem.has_key("vnum_list") and curItem["vnum_list"][0] / 10 * 10 == itemVnum / 10 * 10:
  2956. if not (itemVnum in curItem["vnum_list"]):
  2957. curItem["vnum_list"].append(itemVnum)
  2958. return
  2959. elif isMetin:
  2960. if curItem.has_key("vnum_list"):
  2961. baseVnum = curItem["vnum_list"][0]
  2962. if curItem.has_key("vnum_list") and (baseVnum - baseVnum%1000) == (itemVnum - itemVnum%1000):
  2963. if not (itemVnum in curItem["vnum_list"]):
  2964. curItem["vnum_list"].append(itemVnum)
  2965. return
  2966. else:
  2967. if curItem.has_key("vnum") and curItem["vnum"] == itemVnum and curItem["count"] == itemCount:
  2968. return
  2969. if isUpgradeable or isMetin:
  2970. curList.append({"vnum_list":[itemVnum], "count":itemCount})
  2971. else:
  2972. curList.append({"vnum":itemVnum, "count":itemCount})
  2973. def BINARY_RefreshTargetMonsterDropInfo(self, raceNum):
  2974. self.targetBoard.RefreshMonsterInfoBoard()
  2975. if app.ENABLE_SKILL_SELECT_SYSTEM:
  2976. def __BecSystem1(self):
  2977. self.black = uiskillselect.Savacci()
  2978. self.black.OpenWindow()
  2979. def __BecSystem2(self):
  2980. self.black = uiskillselect.Sura()
  2981. self.black.OpenWindow()
  2982. def __BecSystem3(self):
  2983. self.black = uiskillselect.Ninja()
  2984. self.black.OpenWindow()
  2985. def __BecSystem4(self):
  2986. self.black = uiskillselect.Shaman()
  2987. self.black.OpenWindow()
  2988. def __BecSystem5(self):
  2989. self.black = uiskillselect.Lycan()
  2990. self.black.OpenWindow()
  2991. def zihinsel_oto_bec(self,qid):
  2992. constInfo.zihinsel_oto_bec = int(qid)
  2993. def bedensel_oto_bec(self,qid):
  2994. constInfo.bedensel_oto_bec = int(qid)
  2995. def karabuyu_oto_bec(self,qid):
  2996. constInfo.karabuyu_oto_bec = int(qid)
  2997. def buyulusilah_oto_bec(self,qid):
  2998. constInfo.buyulusilah_oto_bec = int(qid)
  2999. def yakin_oto_bec(self,qid):
  3000. constInfo.yakin_oto_bec = int(qid)
  3001. def uzak_oto_bec(self,qid):
  3002. constInfo.uzak_oto_bec = int(qid)
  3003. def ejderha_oto_bec(self,qid):
  3004. constInfo.ejderha_oto_bec = int(qid)
  3005. def iyilestirme_oto_bec(self,qid):
  3006. constInfo.iyilestirme_oto_bec = int(qid)
  3007. def lycany_oto_bec(self,qid):
  3008. constInfo.lycany_oto_bec = int(qid)
  3009. def BINARY_OpenKeyboardSettings(self):
  3010. if self.dlgKeyboardSettings.IsShow():
  3011. self.dlgKeyboardSettings.Close()
  3012. else:
  3013. self.dlgKeyboardSettings.Open()
  3014. if app.ENABLE_MAIL_BOX_SYSTEM:
  3015. def BINARY_RecvMailBox(self, mail_id, sender_name, title, pos, type):
  3016. if self.interface:
  3017. self.interface.RecvMailBox(mail_id, sender_name, title, pos, type)
  3018. def BINARY_RecvMailBoxGold(self, mail_id, gold):
  3019. if self.interface:
  3020. self.interface.RecvMailBoxGold(mail_id, gold)
  3021. def BINARY_RecvMailBoxCheque(self, mail_id, cheque):
  3022. if self.interface:
  3023. self.interface.RecvMailBoxCheque(mail_id, cheque)
  3024. def BINARY_RecvMailBoxItem(self, mail_id, item_vnum, item_count, item_socket0, item_socket1, item_socket2, item_socket3, item_transmutation, item_attrtype0, item_attrvalue0, item_attrtype1, item_attrvalue1, item_attrtype2\
  3025. ,item_attrvalue2, item_attrtype3, item_attrvalue3, item_attrtype4, item_attrvalue4, item_attrtype5, item_attrvalue5, item_attrtype6, item_attrvalue6, item_attrtype7, item_attrvalue7, item_attrtype8, item_attrvalue8\
  3026. ,item_attrtype9, item_attrvalue9, item_attrtype10, item_attrvalue10, item_attrtype11, item_attrvalue11, item_attrtype12, item_attrvalue12, item_attrtype13, item_attrvalue13, item_attrtype14, item_attrvalue14):
  3027. if self.interface:
  3028. self.interface.RecvMailBoxItem(mail_id, item_vnum, item_count, item_socket0, item_socket1, item_socket2, item_socket3, item_transmutation, item_attrtype0, item_attrvalue0, item_attrtype1, item_attrvalue1, item_attrtype2, item_attrvalue2, item_attrtype3, item_attrvalue3, item_attrtype4, item_attrvalue4, item_attrtype5, item_attrvalue5, item_attrtype6, item_attrvalue6, item_attrtype7, item_attrvalue7, item_attrtype8, item_attrvalue8, item_attrtype9, item_attrvalue9, item_attrtype10, item_attrvalue10, item_attrtype11, item_attrvalue11, item_attrtype12, item_attrvalue12, item_attrtype13, item_attrvalue13, item_attrtype14, item_attrvalue14)
  3029. def MailBoxRefresh(self):
  3030. if self.interface:
  3031. self.interface.MailBoxRefresh()
  3032. def MailBoxOpen(self):
  3033. if app.GetTime() > self.MailBoxOpenT:
  3034. if self.interface:
  3035. self.interface.OpenmMailBox()
  3036. self.MailBoxOpenT = app.GetTime() + 10
  3037. else:
  3038. NewGetTime = self.MailBoxOpenT - app.GetTime()
  3039. chat.AppendChat(chat.CHAT_TYPE_INFO, "Tekrar a�abilmek i�in %d saniye beklemelisin." % (NewGetTime))
  3040. def MailBoxMiniMap(self, read, unread):
  3041. self.interface.SetMailBoxMiniMap(read, unread)
  3042. if app.ENABLE_SHOW_CHEST_DROP:
  3043. def BINARY_AddChestDropInfo(self, chestVnum, pageIndex, slotIndex, itemVnum, itemCount):
  3044. if self.interface:
  3045. self.interface.AddChestDropInfo(chestVnum, pageIndex, slotIndex, itemVnum, itemCount)
  3046. def BINARY_RefreshChestDropInfo(self, chestVnum):
  3047. if self.interface:
  3048. self.interface.RefreshChestDropInfo(chestVnum)
  3049. if app.ENABLE_DUNGEON_INFO_SYSTEM:
  3050. def DungeonInfo(self, questindex):
  3051. constInfo.dungeonData["quest_index"] = questindex
  3052. def CleanDungeonInfo(self):
  3053. constInfo.dungeonInfo = []
  3054. def CleanDungeonRanking(self):
  3055. constInfo.dungeonRanking["ranking_list"] = []
  3056. constInfo.dungeonRanking["my_ranking"] = []
  3057. def GetDungeonInfo(self, cmd):
  3058. cmd = cmd.split("#")
  3059. if cmd[0] == "INPUT":
  3060. constInfo.INPUT_IGNORE = int(cmd[1])
  3061. elif cmd[0] == "CMD":
  3062. net.SendQuestInputStringPacket(constInfo.dungeonData["quest_cmd"])
  3063. constInfo.dungeonData["quest_cmd"] = ""
  3064. else:
  3065. pass
  3066. def UpdateDungeonInfo(self, status, waitTime, type, organization, levelMinLimit, levelMaxLimit, partyMemberMinLimit, partyMemberMaxLimit, mapIndex, mapCoordX, mapCoordY, cooldown, duration, entranceMapIndex, strengthBonusName, resistanceBonusName, itemVnum, itemCount, finished, fastestTime, highestDamage):
  3067. status = int(status)
  3068. waitTime = int(waitTime)
  3069. type = int(type)
  3070. organization = int(organization)
  3071. levelMinLimit = int(levelMinLimit)
  3072. levelMaxLimit = int(levelMaxLimit)
  3073. partyMemberMinLimit = int(partyMemberMinLimit)
  3074. partyMemberMaxLimit = int(partyMemberMaxLimit)
  3075. mapIndex = int(mapIndex)
  3076. mapCoordX = int(mapCoordX)
  3077. mapCoordY = int(mapCoordY)
  3078. cooldown = int(cooldown)
  3079. duration = int(duration)
  3080. entranceMapIndex = int(entranceMapIndex)
  3081. strengthBonusName = str(strengthBonusName).replace("_", " ")
  3082. resistanceBonusName = str(resistanceBonusName).replace("_", " ")
  3083. itemVnum = int(itemVnum)
  3084. itemCount = int(itemCount)
  3085. finished = int(finished)
  3086. fastestTime = int(fastestTime)
  3087. highestDamage = int(highestDamage)
  3088. constInfo.dungeonInfo.append(
  3089. {
  3090. "status" : status,
  3091. "wait_time" : waitTime,
  3092. "type" : type,
  3093. "organization" : organization,
  3094. "level_limit" : [levelMinLimit, levelMaxLimit],
  3095. "party_member_limit" : [partyMemberMinLimit, partyMemberMaxLimit],
  3096. "map_index" : mapIndex,
  3097. "map_coords" : [mapCoordX, mapCoordY],
  3098. "cooldown" : cooldown,
  3099. "duration" : duration,
  3100. "entrance_map_index" : entranceMapIndex,
  3101. "strength_bonus" : strengthBonusName,
  3102. "resistance_bonus" : resistanceBonusName,
  3103. "required_item" : [itemVnum, itemCount],
  3104. "finished" : finished,
  3105. "fastest_time" : fastestTime,
  3106. "highest_damage" : highestDamage,
  3107. },
  3108. )
  3109. def UpdateDungeonRanking(self, name, level, rankType):
  3110. name = str(name)
  3111. level = int(level)
  3112. rankType = int(rankType)
  3113. constInfo.dungeonRanking["ranking_list"].append([name, level, rankType],)
  3114. def UpdateMyDungeonRanking(self, position, name, level, rankType):
  3115. position = int(position)
  3116. name = str(name)
  3117. level = int(level)
  3118. rankType = int(rankType)
  3119. constInfo.dungeonRanking["my_ranking"].append([position, name, level, rankType],)
  3120. def OpenDungeonRanking(self):
  3121. import uiDungeonInfo
  3122. self.DungeonRank = uiDungeonInfo.DungeonRank()
  3123. self.DungeonRank.Open()
  3124. if app.ENABLE_HIDE_COSTUME_SYSTEM:
  3125. def SetBodyCostumeHidden(self, hidden):
  3126. constInfo_new.HIDDEN_BODY_COSTUME = int(hidden)
  3127. self.interface.RefreshVisibleCostume()
  3128. def SetHairCostumeHidden(self, hidden):
  3129. constInfo_new.HIDDEN_HAIR_COSTUME = int(hidden)
  3130. self.interface.RefreshVisibleCostume()
  3131. def SetSashCostumeHidden(self, hidden):
  3132. if app.ENABLE_SASH_SYSTEM:
  3133. constInfo_new.HIDDEN_SASH_COSTUME = int(hidden)
  3134. self.interface.RefreshVisibleCostume()
  3135. else:
  3136. pass
  3137. def SetWeaponCostumeHidden(self, hidden):
  3138. if app.ENABLE_COSTUME_WEAPON_SYSTEM:
  3139. constInfo_new.HIDDEN_WEAPON_COSTUME = int(hidden)
  3140. self.interface.RefreshVisibleCostume()
  3141. else:
  3142. pass
  3143. def SetAuraCostumeHidden(self, hidden):
  3144. if app.ENABLE_AURA_SYSTEM:
  3145. constInfo_new.HIDDEN_AURA_COSTUME = int(hidden)
  3146. self.interface.RefreshVisibleCostume()
  3147. else:
  3148. pass
  3149. if app.ENABLE_AURA_SYSTEM:
  3150. def ActAura(self, iAct, bWindow):
  3151. if self.interface:
  3152. self.interface.ActAura(iAct, bWindow)
  3153. def AlertAura(self, bWindow):
  3154. snd.PlaySound("sound/ui/make_soket.wav")
  3155. if app.ENABLE_CHEQUE_COUPON_SYSTEM:
  3156. def __OpenChequeTicket(self, itemPos):
  3157. self.interface.OpenChequeTicket(int(itemPos))
  3158. if app.ENABLE_GAYA_TICKET_SYSTEM:
  3159. def __OpenGemTicket(self, itemPos):
  3160. self.interface.OpenGemTicket(int(itemPos))
  3161. if app.ENABLE_BIO_SYSTEM:
  3162. def __BiyologMission(self, mission, missionState, givenCount, needCount, remainingTime):
  3163. self.interface.SetBiyologMission(mission, missionState, givenCount, needCount, remainingTime)
  3164. def BiyologOpen(self):
  3165. if self.interface:
  3166. self.interface.OpenBiyologDialog()
  3167. def BiyologLvBildirim(self, veri):
  3168. self.bildirim = uiCommon.Bildirim()
  3169. self.bildirim.SetUserName(str(veri) + localeInfo.BIYOLOG_BILDIRIM)
  3170. self.bildirim.SlideIn()
  3171. if app.ENABLE_HALLOWEEN_EVENT_SYSTEM:
  3172. def SHalounRewards(self, index, item_vnum, item_count):
  3173. constInfo_new.haloun_rewards[int(index)]={"iVnum":int(item_vnum),"iCount":int(item_count)}
  3174. def SHalounLevel(self, nivel):
  3175. constInfo_new.haloun_lvl = nivel
  3176. def SHalloweenStatus(self, status):
  3177. constInfo_new.IsHaloun = int(status)
  3178. def SPointsHaloun(self, points):
  3179. constInfo_new.haloun_points = points
  3180. if app.ENABLE_CUBE_RENEWAL:
  3181. def BINARY_CUBE_RENEWAL_OPEN(self):
  3182. if self.interface:
  3183. self.interface.BINARY_CUBE_RENEWAL_OPEN()
  3184. if app.ENABLE_PRIVATE_SHOP_SEARCH_SYSTEM:
  3185. def OpenPrivateShopSearch(self, type):
  3186. if self.interface:
  3187. self.interface.OpenPrivateShopSearch(type)
  3188. def RefreshShopSearch(self):
  3189. self.interface.RefreshShopSearch()
  3190. def BuyShopSearch(self):
  3191. self.interface.RefreshShopSearch()
  3192. if app.ENABLE_SWITCHBOT:
  3193. def RefreshSwitchbotWindow(self):
  3194. self.interface.RefreshSwitchbotWindow()
  3195. def RefreshSwitchbotItem(self, slot):
  3196. self.interface.RefreshSwitchbotItem(slot)
  3197. if app.ENABLE_PACKET_INFO_SYSTEM:
  3198. def SwitchBotMessage(self, count):
  3199. self.bildirim = uiCommon.Bildirim()
  3200. self.bildirim.SetUserName(item.GetItemName() + translate.BILDIRIM_1)
  3201. # self.bildirim.SetUserName (str(count) + translate.BILDIRIM_1)
  3202. self.bildirim.SlideIn()
  3203. def BattlePassMessage(self):
  3204. self.bildirim = uiCommon.Bildirim()
  3205. self.bildirim.SetUserName (translate.BILDIRIM_2)
  3206. self.bildirim.SlideIn()
  3207. def BattlePassMessageFull(self):
  3208. self.bildirim = uiCommon.Bildirim()
  3209. self.bildirim.SetUserName (translate.BILDIRIM_3)
  3210. self.bildirim.SlideIn()
  3211. if app.ENABLE_BATTLE_PASS:
  3212. def BINARY_BattlePassOpen(self):
  3213. if self.interface:
  3214. self.interface.OpenBattlePass()
  3215. def BINARY_BattlePassAddMission(self, missionType, missionInfo1, missionInfo2, missionInfo3):
  3216. if self.interface:
  3217. self.interface.AddBattlePassMission(missionType, missionInfo1, missionInfo2, missionInfo3)
  3218. def BINARY_BattlePassAddMissionReward(self, missionType, itemVnum, itemCount):
  3219. if self.interface:
  3220. self.interface.AddBattlePassMissionReward(missionType, itemVnum, itemCount)
  3221. def BINARY_BattlePassUpdate(self, missionType, newProgress):
  3222. if self.interface:
  3223. self.interface.UpdateBattlePassMission(missionType, newProgress)
  3224. def BINARY_BattlePassAddReward(self, itemVnum, itemCount):
  3225. if self.interface:
  3226. self.interface.AddBattlePassReward(itemVnum, itemCount)
  3227. def BINARY_BattlePassAddRanking(self, pos, playerName, finishTime):
  3228. if self.interface:
  3229. self.interface.AddBattlePassRanking(pos, playerName, finishTime)
  3230. def BINARY_BattlePassRefreshRanking(self):
  3231. if self.interface:
  3232. self.interface.RefreshBattlePassRanking()
  3233. def BINARY_BattlePassOpenRanking(self):
  3234. if self.interface:
  3235. self.interface.OpenBattlePassRanking()
  3236. if app.ENABLE_LUCKY_BOX:
  3237. def OpenLuckyBox(self, pos, itemVnum, trys, start_gold, reward_vnum):
  3238. self.uiLuckyBox = uiLuckyBox.LuckyBoxWindow()
  3239. self.uiLuckyBox.OpenLuckyBoxWindow(pos, itemVnum, trys, start_gold, reward_vnum)
  3240. def CloseLuckyBox(self):
  3241. self.uiLuckyBox = uiLuckyBox.LuckyBoxWindow()
  3242. self.uiLuckyBox.Close()
  3243. if app.ENABLE_SOUL_ROULETTE_SYSTEM:
  3244. def BINARY_ROULETTE_OPEN(self, price, soul):
  3245. if self.interface:
  3246. self.interface.Roulette_Open(price, soul)
  3247. def BINARY_ROULETTE_CLOSE(self):
  3248. if self.interface:
  3249. self.interface.Roulette_Close()
  3250. def BINARY_ROULETTE_TURN(self, spin, idx):
  3251. if self.interface:
  3252. self.interface.Roulette_TurnWheel(spin, idx)
  3253. def BINARY_ROULETTE_ICON(self, idx, vnum, count):
  3254. if self.interface:
  3255. self.interface.Roulette_SetIcons(idx, vnum, count)
  3256. if app.ENABLE_HALLOWEEN_EVENT_SYSTEM:
  3257. def ShowHaloun(self):
  3258. self.interface.ShowHaloun()
  3259. if app.ENABLE_EVENT_SYSTEM:
  3260. def OnRecvEventInformation(self):
  3261. if self.interface:
  3262. self.interface.RefreshEventWindowDialog()

game.py