Guest User

Untitled

a guest
Nov 5th, 2024
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.01 KB | None | 0 0
  1. import os
  2. import ui
  3. import player
  4. import nonplayer
  5. import renderTarget
  6. import mouseModule
  7. import net
  8. import app
  9. import snd
  10. import time
  11. import item
  12. import chat
  13. import grp
  14. import uiScriptLocale
  15. import localeInfo
  16. import constInfo
  17. import ime
  18. import wndMgr
  19. import uiToolTip
  20.  
  21. from _weakref import proxy
  22.  
  23. IMG_PATH = "d:/ymir work/ui/public/huntsystem/"
  24.  
  25. MAX_MISSION_LEVEL = 90
  26.  
  27. TARGET_RENDER_INDEX_MAIN = 10
  28.  
  29. TARGET_RENDER_INDEX_SEL_1 = 11
  30. TARGET_RENDER_INDEX_SEL_2 = 12
  31.  
  32. RACE_IMAGES = {
  33. 0 : IMG_PATH + "face_warrior_m.sub",
  34. 1 : IMG_PATH + "face_assassine_w.sub",
  35. 2 : IMG_PATH + "face_sura_m.sub",
  36. 3 : IMG_PATH + "face_shaman_w.sub",
  37. 4 : IMG_PATH + "face_warrior_w.sub",
  38. 5 : IMG_PATH + "face_assassine_m.sub",
  39. 6 : IMG_PATH + "face_sura_w.sub",
  40. 7 : IMG_PATH + "face_shaman_m.sub",
  41. 8 : IMG_PATH + "face_wolfman.sub",
  42. }
  43.  
  44. class HuntingWindow(ui.ScriptWindow):
  45. def __init__(self):
  46. ui.ScriptWindow.__init__(self)
  47. self.level = 0
  48. self.info_type = 0
  49. self.dest_count = 0
  50. self.race_item = 0
  51. self.isMouseWheel = False
  52. self.ScrollBarStep = 0.2
  53. self.curScrollbarPos = 0.0
  54. self.destScrollbarPos = 0.0
  55. self.targetMonster = 0
  56. self.AniImageObjects = []
  57.  
  58. self.LoadWindow()
  59.  
  60. def __del__(self):
  61. ui.ScriptWindow.__del__(self)
  62. constInfo.HUNTING_MAIN_UI_SHOW = 0
  63. self.level = 0
  64. self.info_type = 0
  65. self.dest_count = 0
  66. self.race_item = 0
  67. self.isMouseWheel = False
  68. self.ScrollBarStep = 0.2
  69. self.curScrollbarPos = 0.0
  70. self.destScrollbarPos = 0.0
  71. self.AnimationImage = None
  72. self.AniImageObjects = []
  73.  
  74. def Show(self):
  75. ui.ScriptWindow.Show(self)
  76.  
  77. def OpenMain(self, level, monster, cur_count, dest_count, money_min, money_max, exp_min, exp_max, race_item, race_item_count):
  78. self.ResetBoard()
  79. self.level = level
  80. self.GetChild("board").SetTitleName(uiScriptLocale.HUNTING_SYSTEM_TITLE % level)
  81. if level > MAX_MISSION_LEVEL:
  82. self.SetCompledetAllMissionsInfo()
  83. self.info_type = 1
  84. if self.HuntingMiniUI:
  85. self.HuntingMiniUI.Hide()
  86. self.Show()
  87. return
  88.  
  89. if player.GetStatus(player.LEVEL) < level:
  90. self.SetOverLevelInfo(level)
  91. self.info_type = 2
  92. if self.HuntingMiniUI:
  93. self.HuntingMiniUI.Hide()
  94. self.Show()
  95. return
  96.  
  97. self.dest_count = dest_count
  98. self.SetRenderTarget(monster)
  99. self.SetInfo(level, monster, cur_count, dest_count, money_min, money_max, exp_min, exp_max)
  100. self.SetRaceItem(race_item, race_item_count)
  101. if self.HuntingMiniUI:
  102. self.HuntingMiniUI.SetInfo(level, monster, cur_count, dest_count)
  103. if constInfo.HUNTING_MINI_UI_SHOW == 1:
  104. self.GetChild("mini_ui_button").SetText(uiScriptLocale.HUNTING_SYSTEM_BUTTON_MINI_UI_OFF)
  105. self.HuntingMiniUI.Show()
  106.  
  107. constInfo.HUNTING_MAIN_UI_SHOW = 1
  108. self.info_type = 0
  109. self.Show()
  110.  
  111. def Close(self):
  112. constInfo.HUNTING_MAIN_UI_SHOW = 0
  113. if self.randomItemList:
  114. self.randomItemList.ClearList()
  115. self.Hide()
  116.  
  117. def OnPressEscapeKey(self):
  118. self.Close()
  119. return True
  120.  
  121. def CloseWithMini(self):
  122. self.GetChild("mini_ui_button").SetText(uiScriptLocale.HUNTING_SYSTEM_BUTTON_MINI_UI_ON)
  123. self.HuntingMiniUI.Hide()
  124. self.Close()
  125.  
  126. def Destroy(self):
  127. constInfo.HUNTING_MAIN_UI_SHOW = 0
  128. self.HuntingMiniUI.Hide()
  129. del self.HuntingMiniUI
  130. self.Hide()
  131.  
  132. def LoadWindow(self):
  133. try:
  134. pyScrLoader = ui.PythonScriptLoader()
  135. pyScrLoader.LoadScriptFile(self, "uiscript/hunting.py")
  136. except:
  137. import exception
  138. exception.Abort("HuntingWindow.LoadWindow.LoadObject")
  139.  
  140. try:
  141. self.randomItemList = ListBoxItems()
  142. self.randomItemList.SetParent(self.GetChild("item_area"))
  143. self.randomItemList.SetGlobalParent(self)
  144. self.randomItemList.SetPosition(0, 0)
  145. self.randomItemList.SetSize(32, 154)
  146.  
  147. self.tooltip = uiToolTip.ToolTip()
  148. self.tooltip.Hide()
  149. self.tooltipItem = uiToolTip.ItemToolTip()
  150. self.tooltipItem.Hide()
  151.  
  152. self.GetChild("board").SetCloseEvent(self.Close)
  153.  
  154. self.GetChild("mini_ui_button").SetEvent(self.ButtonMiniUI)
  155. self.GetChild("close_button").SetEvent(self.Close)
  156. self.GetChild("reward_button").SetEvent(self.ButtonReciveReward)
  157.  
  158. self.ModelPreview = ui.RenderTarget()
  159. self.ModelPreview.SetParent(self.GetChild("thinboard"))
  160. self.ModelPreview.SetSize(140, 180)
  161. self.ModelPreview.SetPosition(5, 5)
  162. self.ModelPreview.SetRenderTarget(TARGET_RENDER_INDEX_MAIN)
  163.  
  164. self.HuntingMiniUI = HuntingMiniWindow()
  165. self.HuntingMiniUI.Hide()
  166.  
  167. self.scrollBar = ScrollBar()
  168. self.scrollBar.SetParent(self.GetChild("scrollbar_area"))
  169. self.scrollBar.SetScrollEvent(ui.__mem_func__(self.OnScroll))
  170. self.scrollBar.SetTexture(IMG_PATH + "scrollbar.sub")
  171. self.scrollBar.SetMovementArea(0, 0, 4, 150)
  172. self.scrollBar.SetPosition(0, 0)
  173. self.scrollBar.Show()
  174.  
  175. race = net.GetMainActorRace()
  176. self.GetChild("face_icon").LoadImage(RACE_IMAGES[race])
  177. self.GetChild("face_icon").SetPosition(224, 27)
  178. self.GetChild("face_icon").SAFE_SetStringEvent("MOUSE_OVER_IN",self.MouseOverInRaceDesc,)
  179. self.GetChild("face_icon").SAFE_SetStringEvent("MOUSE_OVER_OUT",self.MouseOverOut)
  180. self.GetChild("face_icon").Show()
  181.  
  182. self.GetChild("reward_button").Disable()
  183.  
  184. except:
  185. import exception
  186. exception.Abort("HuntingWindow.LoadWindow.BindObject")
  187.  
  188. def ResetBoard(self):
  189. self.GetChild("info_layer").Hide()
  190. self.GetChild("mini_ui_button").Hide()
  191. self.GetChild("close_button").Hide()
  192. self.GetChild("reward_button").Hide()
  193. self.ModelPreview.Hide()
  194.  
  195. def SetCompledetAllMissionsInfo(self):
  196. self.GetChild("close_button").Show()
  197. self.GetChild("info_text_over_level").Hide()
  198. self.GetChild("info_text_complete_all").Show()
  199. self.GetChild("info_layer").Show()
  200.  
  201. def SetOverLevelInfo(self, level):
  202. self.GetChild("close_button").Show()
  203. self.GetChild("info_text_over_level").SetText(uiScriptLocale.HUNTING_SYSTEM_INFO_OVER_LEVEL % level)
  204. self.GetChild("info_text_over_level").Show()
  205. self.GetChild("info_text_complete_all").Hide()
  206. self.GetChild("info_layer").Show()
  207.  
  208. def SetRenderTarget(self, monster):
  209. renderTarget.SetBackground(TARGET_RENDER_INDEX_MAIN, "d:/ymir work/ui/game/myshop_deco/model_view_bg.sub")
  210. renderTarget.SetVisibility(TARGET_RENDER_INDEX_MAIN, True)
  211. if monster != 0:
  212. renderTarget.SelectModel(TARGET_RENDER_INDEX_MAIN, monster)
  213. self.ModelPreview.Show()
  214.  
  215. def SetInfo(self, level, monster, cur_count, dest_count, money_min, money_max, exp_min, exp_max):
  216. mob_name = str(nonplayer.GetMonsterName(monster))
  217. self.GetChild("mobname_text").SetText(mob_name)
  218. self.GetChild("dest_text").SetText(self.GetMapNameByMobVnum(monster))
  219. self.GetChild("amount_text").SetText(uiScriptLocale.HUNTING_SYSTEM_AMOUNT_TEXT % (cur_count, dest_count))
  220. self.GetChild("money_text").SetText("%s - %s" % (localeInfo.NumberWithPoint(money_min), localeInfo.NumberWithPoint(money_max)))
  221. self.GetChild("exp_text").SetText("%d%% - %d%%" % (exp_min, exp_max))
  222. self.GetChild("mini_ui_button").Show()
  223. self.GetChild("reward_button").Show()
  224. if cur_count >= dest_count:
  225. self.GetChild("gauge").LoadImage("d:/ymir work/ui/public/huntsystem/gauge_green.sub")
  226. self.GetChild("reward_button").Enable()
  227. self.GetChild("reward_button").EnableFlash()
  228. else:
  229. self.GetChild("gauge").LoadImage("d:/ymir work/ui/public/huntsystem/gauge_blue.sub")
  230. self.GetChild("reward_button").Disable()
  231. self.GetChild("gauge").SetPercentage(cur_count, dest_count)
  232.  
  233. def SetRaceItem(self, race_item, race_item_count):
  234. if race_item != 0:
  235. self.race_item = race_item
  236. item.SelectItem(race_item)
  237. self.GetChild("item_icon").LoadImage(item.GetIconImageFileName())
  238. self.GetChild("item_icon").SAFE_SetStringEvent("MOUSE_OVER_IN",self.MouseOverInRaceItem,)
  239. self.GetChild("item_icon").SAFE_SetStringEvent("MOUSE_OVER_OUT",self.MouseOverOut)
  240.  
  241. self.GetChild("item_icon").Show()
  242. for i in xrange(3):
  243. self.GetChild("empty_slot_%d" % i).Hide()
  244. else:
  245. self.current_race_item = 0
  246. self.GetChild("item_icon").Hide()
  247. for i in xrange(3):
  248. self.GetChild("empty_slot_%d" % i).Show()
  249.  
  250. def UpdateMission(self, count):
  251. self.GetChild("amount_text").SetText(uiScriptLocale.HUNTING_SYSTEM_AMOUNT_TEXT % (count, self.dest_count))
  252. self.GetChild("gauge").SetPercentage(count, self.dest_count)
  253. if count >= self.dest_count:
  254. self.GetChild("gauge").LoadImage("d:/ymir work/ui/public/huntsystem/gauge_green.sub")
  255. self.GetChild("reward_button").Enable()
  256. self.GetChild("reward_button").EnableFlash()
  257. if self.HuntingMiniUI:
  258. self.HuntingMiniUI.UpdateCount(count)
  259.  
  260. def SetRandomItemTable(self, item_vnum, item_count):
  261. self.randomItemList.AppendObject(item_vnum, item_count, 3)
  262. self.randomItemList.Show()
  263. if self.randomItemList.GetObjectCount() >= 5:
  264. self.scrollBar.Show()
  265. else:
  266. self.scrollBar.Hide()
  267.  
  268. def ButtonReciveReward(self):
  269. net.SendHuntingAction(3, 0)
  270.  
  271. def ButtonMiniUI(self):
  272. if constInfo.HUNTING_MINI_UI_SHOW == 0:
  273. constInfo.HUNTING_MINI_UI_SHOW = 1
  274. self.GetChild("mini_ui_button").SetText(uiScriptLocale.HUNTING_SYSTEM_BUTTON_MINI_UI_OFF)
  275. self.HuntingMiniUI.Show()
  276. elif constInfo.HUNTING_MINI_UI_SHOW == 1:
  277. constInfo.HUNTING_MINI_UI_SHOW = 0
  278. self.GetChild("mini_ui_button").SetText(uiScriptLocale.HUNTING_SYSTEM_BUTTON_MINI_UI_ON)
  279. self.HuntingMiniUI.Hide()
  280.  
  281. def GetMapNameByMobVnum(self, mobvnum):
  282. for key in uiHuntingMapNames.MAP_NAMES_FROM_MOB:
  283. for mob in uiHuntingMapNames.MAP_NAMES_FROM_MOB[key]:
  284. if mob == mobvnum:
  285. return str(key)
  286. return "Unknown Map"
  287.  
  288. def OnRunMouseWheel(self, nLen):
  289. if self.scrollBar.IsShow():
  290. if nLen > 0:
  291. pos = self.destScrollbarPos - self.ScrollBarStep
  292. else:
  293. pos = self.destScrollbarPos + self.ScrollBarStep
  294. pos = max(0.0, pos)
  295. pos = min(1.0, pos)
  296.  
  297. self.isMouseWheel = True
  298. self.destScrollbarPos = pos
  299.  
  300. def MouseOverInRaceDesc(self):
  301. if self.tooltip:
  302. self.tooltip.ClearToolTip()
  303. self.tooltip.AppendDescription(uiScriptLocale.HUNTING_SYSTEM_RACE_TOOLTIP, 40)
  304. self.tooltip.ShowToolTip()
  305.  
  306. def MouseOverInRaceItem(self):
  307. if self.tooltipItem and self.race_item != 0:
  308. self.tooltipItem.ClearToolTip()
  309. self.tooltipItem.AddItemData(self.race_item, metinSlot = [0 for i in xrange(player.METIN_SOCKET_MAX_NUM)])
  310. self.tooltipItem.ShowToolTip()
  311.  
  312. def MouseOverOut(self):
  313. if self.tooltip:
  314. self.tooltip.Hide()
  315. if self.tooltipItem:
  316. self.tooltipItem.Hide()
  317.  
  318. def OnUpdate(self):
  319. if self.info_type == 2 and player.GetStatus(player.LEVEL) >= self.level:
  320. net.SendHuntingAction(1, 0)
  321. self.info_type = 0
  322.  
  323. if self.isMouseWheel:
  324. self.curScrollbarPos += (self.destScrollbarPos - self.curScrollbarPos) / 10.0
  325. if abs(self.curScrollbarPos - self.destScrollbarPos) < 0.005:
  326. self.curScrollbarPos = self.destScrollbarPos
  327. self.isMouseWheel = False
  328. self.scrollBar.SetPos(self.curScrollbarPos)
  329. else:
  330. self.curScrollbarPos = self.scrollBar.GetPos()
  331.  
  332. def OnScroll(self):
  333. self.randomItemList.OnScroll(self.scrollBar.GetPos())
  334.  
  335. class HuntingSelectWindow(ui.ScriptWindow):
  336. def __init__(self):
  337. ui.ScriptWindow.__init__(self)
  338. self.RenderTargetList = []
  339. self.RaceItem = [[],[]]
  340. self.LoadWindow()
  341.  
  342. def __del__(self):
  343. ui.ScriptWindow.__del__(self)
  344.  
  345. def Show(self):
  346. ui.ScriptWindow.Show(self)
  347.  
  348. def OpenSelect(self, level, type, monster, count, money_min, money_max, exp_min, exp_max, race_item, race_item_count):
  349. if level != 0:
  350. self.RaceItem[type].append(race_item)
  351. self.RaceItem[type].append(race_item_count)
  352. self.SetRenderTargetModel(type, monster)
  353. self.SetInformation(level, type, monster, count, money_min, money_max, exp_min, exp_max)
  354. self.SetRaceItem(type, race_item, race_item_count)
  355. if type == 1:
  356. self.scrollBar1.SetPosition(0, 0)
  357. self.scrollBar2.SetPosition(0, 0)
  358. self.Show()
  359. else:
  360. chat.AppendChat(chat.CHAT_TYPE_INFO, "Failure to open Huntin Select Window" % type)
  361.  
  362. def Close(self):
  363. self.RaceItem = [[],[]]
  364. if self.randomItemList1:
  365. self.randomItemList1.ClearList()
  366. if self.randomItemList2:
  367. self.randomItemList2.ClearList()
  368. self.Hide()
  369.  
  370. def OnPressEscapeKey(self):
  371. self.Close()
  372. return True
  373.  
  374. def Destroy(self):
  375. self.Hide()
  376.  
  377. def LoadWindow(self):
  378. try:
  379. pyScrLoader = ui.PythonScriptLoader()
  380. pyScrLoader.LoadScriptFile(self, "uiscript/huntingselect.py")
  381. except:
  382. import exception
  383. exception.Abort("HuntingWindow.LoadWindow.LoadObject")
  384.  
  385. try:
  386. self.main_race = net.GetMainActorRace()
  387.  
  388. self.tooltip = uiToolTip.ToolTip()
  389. self.tooltip.Hide()
  390. self.tooltipItem = uiToolTip.ItemToolTip()
  391. self.tooltipItem.Hide()
  392.  
  393. self.board = self.GetChild("board")
  394. self.board.SetCloseEvent(self.Close)
  395.  
  396. self.randomItemList1 = ListBoxItems()
  397. self.randomItemList1.SetParent(self.GetChild("item_area_0"))
  398. self.randomItemList1.SetGlobalParent(self)
  399. self.randomItemList1.SetPosition(0, 0)
  400. self.randomItemList1.SetSize(32, 154)
  401.  
  402. self.randomItemList2 = ListBoxItems()
  403. self.randomItemList2.SetParent(self.GetChild("item_area_1"))
  404. self.randomItemList2.SetGlobalParent(self)
  405. self.randomItemList2.SetPosition(0, 0)
  406. self.randomItemList2.SetSize(32, 154)
  407.  
  408. self.scrollBar1 = ScrollBar()
  409. self.scrollBar1.SetParent(self.GetChild("scrollbar_area_0"))
  410. self.scrollBar1.SetScrollEvent(ui.__mem_func__(self.OnScrollList1))
  411. self.scrollBar1.SetTexture(IMG_PATH + "scrollbar.sub")
  412. self.scrollBar1.SetMovementArea(0, 0, 4, 150)
  413. self.scrollBar1.SetPosition(0, 0)
  414. self.scrollBar1.Show()
  415.  
  416. self.scrollBar2 = ScrollBar()
  417. self.scrollBar2.SetParent(self.GetChild("scrollbar_area_1"))
  418. self.scrollBar2.SetScrollEvent(ui.__mem_func__(self.OnScrollList2))
  419. self.scrollBar2.SetTexture(IMG_PATH + "scrollbar.sub")
  420. self.scrollBar2.SetMovementArea(0, 0, 4, 150)
  421. self.scrollBar2.SetPosition(0, 0)
  422. self.scrollBar2.Show()
  423.  
  424. self.GetChild("face_icon_0").LoadImage(RACE_IMAGES[self.main_race])
  425. self.GetChild("face_icon_0").SetPosition(224, 27)
  426. self.GetChild("face_icon_0").SAFE_SetStringEvent("MOUSE_OVER_IN",self.MouseOverInRaceDesc,)
  427. self.GetChild("face_icon_0").SAFE_SetStringEvent("MOUSE_OVER_OUT",self.MouseOverOut)
  428. self.GetChild("face_icon_0").Show()
  429.  
  430. self.GetChild("face_icon_1").LoadImage(RACE_IMAGES[self.main_race])
  431. self.GetChild("face_icon_1").SetPosition(224, 27)
  432. self.GetChild("face_icon_1").SAFE_SetStringEvent("MOUSE_OVER_IN",self.MouseOverInRaceDesc,)
  433. self.GetChild("face_icon_1").SAFE_SetStringEvent("MOUSE_OVER_OUT",self.MouseOverOut)
  434. self.GetChild("face_icon_1").Show()
  435.  
  436. self.GetChild("select_button_0").EnableFlash()
  437. self.GetChild("select_button_1").EnableFlash()
  438. self.GetChild("select_button_0").SetEvent(ui.__mem_func__(self.OnButtonSelect), 0)
  439. self.GetChild("select_button_1").SetEvent(ui.__mem_func__(self.OnButtonSelect), 1)
  440.  
  441. for i in xrange(2):
  442. if i == 0:
  443. index = TARGET_RENDER_INDEX_SEL_1
  444. else:
  445. index = TARGET_RENDER_INDEX_SEL_2
  446. self.ModelPreview = ui.RenderTarget()
  447. self.ModelPreview.SetParent(self.GetChild("board_%d" % i))
  448. self.ModelPreview.SetSize(140, 180)
  449. self.ModelPreview.SetPosition(5, 5)
  450. self.ModelPreview.SetRenderTarget(index)
  451. self.ModelPreview.Show()
  452. renderTarget.SetBackground(index, "d:/ymir work/ui/game/myshop_deco/model_view_bg.sub")
  453. renderTarget.SetVisibility(index, True)
  454. self.RenderTargetList.append(self.ModelPreview)
  455.  
  456. except:
  457. import exception
  458. exception.Abort("HuntingSelectWindow.LoadWindow.BindObject")
  459.  
  460. def SetRenderTargetModel(self, type, monster):
  461. index = TARGET_RENDER_INDEX_SEL_1
  462. if type == 1:
  463. index = TARGET_RENDER_INDEX_SEL_2
  464. renderTarget.SelectModel(index, monster)
  465.  
  466. def SetInformation(self, level, type, monster, count, money_min, money_max, exp_min, exp_max):
  467. self.board.SetTitleName(uiScriptLocale.HUNTING_SYSTEM_TITLE_SELECT % level)
  468. mob_name = str(nonplayer.GetMonsterName(monster))
  469. self.GetChild("mobname_text_%d" % type).SetText(mob_name)
  470. self.GetChild("dest_text_%d" % type).SetText(self.GetMapNameByMobVnum(monster))
  471. self.GetChild("amount_text_%d" % type).SetText("%d" % count)
  472. self.GetChild("money_text_%d" % type).SetText("%s - %s" % (localeInfo.NumberWithPoint(money_min), localeInfo.NumberWithPoint(money_max)))
  473. self.GetChild("exp_text_%d" % type).SetText("%d%% - %d%%" % (exp_min, exp_max))
  474.  
  475. def SetRaceItem(self, type, race_item, race_item_count):
  476. if race_item != 0:
  477. item.SelectItem(race_item)
  478. self.GetChild("item_icon_%d" % type).LoadImage(item.GetIconImageFileName())
  479. if type == 0:
  480. self.GetChild("item_icon_%d" % type).SAFE_SetStringEvent("MOUSE_OVER_IN",self.MouseOverInRaceItem1,)
  481. if type == 1:
  482. self.GetChild("item_icon_%d" % type).SAFE_SetStringEvent("MOUSE_OVER_IN",self.MouseOverInRaceItem2,)
  483. self.GetChild("item_icon_%d" % type).SAFE_SetStringEvent("MOUSE_OVER_OUT",self.MouseOverOut)
  484. self.GetChild("item_icon_%d" % type).Show()
  485. for i in xrange(3):
  486. self.GetChild("empty_slot_%d_%d" % (i, type)).Hide()
  487. else:
  488. self.GetChild("item_icon_%d" % type).Hide()
  489. for i in xrange(3):
  490. self.GetChild("empty_slot_%d_%d" % (i, type)).Show()
  491.  
  492. def SetRandomItemTable(self, item_vnum, item_count):
  493. self.randomItemList1.AppendObject(item_vnum, item_count, 3)
  494. self.randomItemList2.AppendObject(item_vnum, item_count, 3)
  495. self.randomItemList1.Show()
  496. self.randomItemList2.Show()
  497. if self.randomItemList1.GetObjectCount() >= 5:
  498. self.scrollBar1.Show()
  499. self.scrollBar2.Show()
  500. else:
  501. self.scrollBar1.Hide()
  502. self.scrollBar2.Hide()
  503.  
  504. def OnButtonSelect(self, type):
  505. net.SendHuntingAction(2, type)
  506. self.Close()
  507.  
  508. def GetMapNameByMobVnum(self, mobvnum):
  509. for key in uiHuntingMapNames.MAP_NAMES_FROM_MOB:
  510. for mob in uiHuntingMapNames.MAP_NAMES_FROM_MOB[key]:
  511. if mob == mobvnum:
  512. return str(key)
  513. return "Unknown Map"
  514.  
  515. def MouseOverInRaceDesc(self):
  516. if self.tooltip:
  517. self.tooltip.ClearToolTip()
  518. self.tooltip.AppendDescription(uiScriptLocale.HUNTING_SYSTEM_RACE_TOOLTIP, 40)
  519. self.tooltip.ShowToolTip()
  520.  
  521. def MouseOverInRaceItem1(self):
  522. if self.tooltipItem and self.RaceItem[0][0] != 0:
  523. self.tooltipItem.ClearToolTip()
  524. self.tooltipItem.AddItemData(self.RaceItem[0][0], metinSlot = [0 for i in xrange(player.METIN_SOCKET_MAX_NUM)])
  525. self.tooltipItem.ShowToolTip()
  526.  
  527. def MouseOverInRaceItem2(self):
  528. if self.tooltipItem and self.RaceItem[1][0] != 0:
  529. self.tooltipItem.ClearToolTip()
  530. self.tooltipItem.AddItemData(self.RaceItem[1][0], metinSlot = [0 for i in xrange(player.METIN_SOCKET_MAX_NUM)])
  531. self.tooltipItem.ShowToolTip()
  532.  
  533. def MouseOverOut(self):
  534. if self.tooltip:
  535. self.tooltip.Hide()
  536. if self.tooltipItem:
  537. self.tooltipItem.Hide()
  538.  
  539. def OnRunMouseWheel(self, nLen):
  540. return
  541.  
  542. def OnScrollList1(self):
  543. self.randomItemList1.OnScroll(self.scrollBar1.GetPos())
  544.  
  545. def OnScrollList2(self):
  546. self.randomItemList2.OnScroll(self.scrollBar2.GetPos())
  547.  
  548. class HuntingRewardWindow(ui.ScriptWindow):
  549. def __init__(self):
  550. ui.ScriptWindow.__init__(self)
  551. self.startetAni = 1
  552. self.startNextAni = 0
  553. self.startingAni = []
  554. self.cur = [0,0,0]
  555. self.dest = [0,0,0]
  556.  
  557. self.clickOpenButton = False
  558. self.showRandomItemName = False
  559.  
  560. self.LoadWindow()
  561.  
  562. def __del__(self):
  563. ui.ScriptWindow.__del__(self)
  564. self.startNextAni = 0
  565. self.startingAni = []
  566.  
  567. def Show(self, level = 0):
  568. ui.ScriptWindow.Show(self)
  569.  
  570. def OpenReward(self, level, reward, reward_count, rand_reward, rand_reward_count, money, exp):
  571. self.clickOpenButton = False
  572. self.showRandomItemName = False
  573. self.level = level
  574. self.reward = reward
  575. self.reward_count = reward_count
  576. self.rand_reward = rand_reward
  577. self.rand_reward_count = rand_reward_count
  578. self.money = money
  579. self.exp = exp
  580. self.dest = [rand_reward_count,money,exp]
  581.  
  582. # chat.AppendChat(chat.CHAT_TYPE_INFO, "Rand Reward %d" % rand_reward)
  583. self.startNextAni = 0
  584. self.startetAni = 1
  585.  
  586. for i in xrange(4):
  587. self.GetChild("empty_slot_%d" % i).Show()
  588. self.GetChild("ani_slot_%d" % i).Show()
  589.  
  590. self.GetChild("random_item_name").SetText("")
  591. self.GetChild("money_text").SetText("")
  592. self.GetChild("exp_text").SetText("")
  593.  
  594. self.clickOpenButton = False
  595. self.showRandomItemName = False
  596. self.cur = [0,0,0]
  597. self.GetChild("ButtonRecive").SetText(uiScriptLocale.HUNTING_SYSTEM_RE_REWAR)
  598.  
  599. self.GetChild("board").SetTitleName(uiScriptLocale.HUNTING_SYSTEM_TITLE_REWARD % self.level)
  600. self.GetChild("ButtonRecive").EnableFlash()
  601.  
  602. self.CreateBrokeAnimation()
  603.  
  604. ui.ScriptWindow.Show(self)
  605.  
  606. def Close(self):
  607. if self.clickOpenButton == False:
  608. chat.AppendChat(chat.CHAT_TYPE_INFO, uiScriptLocale.HUNTING_SYSTEM_RE_REWAR_RECIBE)
  609. return
  610. else:
  611. self.GetChild("item_icon").Hide()
  612. self.GetChild("item_icon_random").Hide()
  613. net.SendHuntingAction(1, 0)
  614. self.Hide()
  615.  
  616. def OnPressEscapeKey(self):
  617. self.Close()
  618. return True
  619.  
  620. def Destroy(self):
  621. self.Hide()
  622.  
  623. def LoadWindow(self):
  624. try:
  625. pyScrLoader = ui.PythonScriptLoader()
  626. pyScrLoader.LoadScriptFile(self, "uiscript/huntingreward.py")
  627. except:
  628. import exception
  629. exception.Abort("HuntingWindow.LoadWindow.LoadObject")
  630.  
  631. try:
  632. self.tooltipItem = uiToolTip.ItemToolTip()
  633. self.tooltipItem.Hide()
  634.  
  635. self.GetChild("board").SetCloseEvent(self.Close)
  636. self.GetChild("ButtonRecive").SetEvent(self.ButtonReciveReward)
  637.  
  638. except:
  639. import exception
  640. exception.Abort("HuntingWindow.LoadWindow.BindObject")
  641.  
  642. def CreateBrokeAnimation(self):
  643. FRAMES_COUNT = 29
  644. self.AniImageObjects = []
  645. self.startingAni = []
  646. if self.reward != 0:
  647. item.SelectItem(self.reward)
  648. self.GetChild("item_icon").LoadImage(item.GetIconImageFileName())
  649. self.GetChild("item_icon").SAFE_SetStringEvent("MOUSE_OVER_IN",self.MouseOverInRaceItem,)
  650. self.GetChild("item_icon").SAFE_SetStringEvent("MOUSE_OVER_OUT",self.MouseOverOut)
  651.  
  652. self.GetChild("item_icon").Show()
  653. for i in xrange(3):
  654. # self.GetChild("empty_slot_%d" % i).Hide()
  655. self.startingAni.append([0,0])
  656. self.AnimationImage = ui.AniImageBox()
  657. self.AnimationImage.SetParent(self.GetChild("ani_slot_%d" % i))
  658. self.AnimationImage.SetDelay(4)
  659. self.AnimationImage.SetEndFrameEvent(ui.__mem_func__(self.HideBrokeSlotAni), i)
  660. for s in xrange(FRAMES_COUNT+1):
  661. self.AnimationImage.AppendImage("d:/ymir work/ui/effect/slot_broke_key/frame_%d.sub" % (s))
  662. self.AnimationImage.Show()
  663. self.AnimationImage.SetPosition(-24, -24)
  664. self.AnimationImage.ResetFrame()
  665. self.AnimationImage.Hide()
  666. self.AniImageObjects.append(self.AnimationImage)
  667. else:
  668. for i in xrange(3):
  669. self.GetChild("empty_slot_%d" % i).LoadImage("d:/ymir work/ui/pet/skill_button/skill_enable_button.sub")
  670. self.GetChild("ani_slot_%d" % i).Hide()
  671.  
  672. for obj in xrange(len(self.AniImageObjects)):
  673. self.AniImageObjects[obj].Hide()
  674.  
  675. if self.rand_reward != 0:
  676. item.SelectItem(self.rand_reward)
  677. self.GetChild("item_icon_random").LoadImage(item.GetIconImageFileName())
  678. self.GetChild("item_icon_random").SAFE_SetStringEvent("MOUSE_OVER_IN",self.MouseOverInRandomItem,)
  679. self.GetChild("item_icon_random").SAFE_SetStringEvent("MOUSE_OVER_OUT",self.MouseOverOut)
  680.  
  681. self.GetChild("item_icon_random").Show()
  682.  
  683. # self.GetChild("empty_slot_3").Hide()
  684. self.AnimationImage = ui.AniImageBox()
  685. self.AnimationImage.SetParent(self.GetChild("ani_slot_3"))
  686. self.AnimationImage.SetDelay(4)
  687. self.AnimationImage.SetEndFrameEvent(ui.__mem_func__(self.HideBrokeSlotAni), 3)
  688. for x in xrange(FRAMES_COUNT+1):
  689. self.AnimationImage.AppendImage("d:/ymir work/ui/effect/slot_broke_key/frame_%d.sub" % (x))
  690. self.AnimationImage.Show()
  691. self.AnimationImage.SetPosition(-24, -24)
  692. self.AnimationImage.ResetFrame()
  693. self.AnimationImage.Hide()
  694. self.AniImageObjects.append(self.AnimationImage)
  695. self.startingAni.append([0,0])
  696. else:
  697. self.GetChild("empty_slot_3").LoadImage("d:/ymir work/ui/pet/skill_button/skill_enable_button.sub")
  698. self.GetChild("ani_slot_3").Hide()
  699.  
  700. def ShowBrokeSlotAni(self, object = 0):
  701. if len(self.startingAni) != 0:
  702. self.startingAni[0][0] = 1
  703. self.startetAni = 1
  704. self.startNextAni = time.clock() + 0.3
  705.  
  706. def HideBrokeSlotAni(self, object):
  707. if len(self.startingAni) == 1:
  708. self.AniImageObjects[0].Hide()
  709. self.GetChild("empty_slot_3").Hide()
  710. self.GetChild("ani_slot_3").Hide()
  711. else:
  712. self.AniImageObjects[object].Hide()
  713. self.GetChild("empty_slot_%d" % object).Hide()
  714. self.GetChild("ani_slot_%d" % object).Hide()
  715.  
  716. def ButtonReciveReward(self):
  717. if self.clickOpenButton == False:
  718. self.clickOpenButton = True
  719. self.ShowBrokeSlotAni()
  720. self.GetChild("ButtonRecive").SetText(uiScriptLocale.HUNTING_SYSTEM_CLOSE)
  721. self.GetChild("ButtonRecive").DisableFlash()
  722. net.SendHuntingAction(4, 0)
  723.  
  724. # item.SelectItem(self.rand_reward)
  725. # self.GetChild("random_item_name").SetText("%dx %s" %(self.rand_reward_count, item.GetItemName()))
  726. else:
  727. self.Close()
  728.  
  729. def MouseOverInRaceItem(self):
  730. if self.tooltipItem and self.reward != 0:
  731. self.tooltipItem.ClearToolTip()
  732. self.tooltipItem.AddItemData(self.reward, metinSlot = [0 for i in xrange(player.METIN_SOCKET_MAX_NUM)])
  733. self.tooltipItem.ShowToolTip()
  734.  
  735. def MouseOverInRandomItem(self):
  736. if self.tooltipItem and self.rand_reward != 0:
  737. self.tooltipItem.ClearToolTip()
  738. self.tooltipItem.AddItemData(self.rand_reward, metinSlot = [0 for i in xrange(player.METIN_SOCKET_MAX_NUM)])
  739. self.tooltipItem.ShowToolTip()
  740.  
  741. def MouseOverOut(self):
  742. if self.tooltipItem:
  743. self.tooltipItem.Hide()
  744.  
  745. def OnUpdate(self):
  746. if len(self.startingAni) == 1:
  747. if self.startNextAni != 0 and self.startNextAni < time.clock() and self.startingAni[0][1] == 0:
  748. self.startingAni[0][1] = 1
  749. self.AniImageObjects[0].ResetFrame()
  750. self.AniImageObjects[0].Show()
  751. self.GetChild("empty_slot_3").Hide()
  752. snd.PlaySound("sound/ui/broken_glass.wav")
  753. self.showRandomItemName = True
  754. else:
  755. if self.startetAni < len(self.startingAni):
  756. if self.startNextAni != 0 and self.startNextAni < time.clock() and self.startingAni[self.startetAni][1] == 0:
  757. self.startNextAni = time.clock() + 0.3
  758. self.startingAni[self.startetAni][0] = 1
  759. self.startetAni += 1
  760.  
  761. if self.startetAni-1 < 4 and self.startingAni[self.startetAni-1][0] == 1 and self.startingAni[self.startetAni-1][1] == 0:
  762. self.startingAni[self.startetAni-1][1] = 1
  763. self.AniImageObjects[self.startetAni-1].ResetFrame()
  764. self.AniImageObjects[self.startetAni-1].Show()
  765. self.GetChild("empty_slot_%d" % int(self.startetAni-1)).Hide()
  766. snd.PlaySound("sound/ui/broken_glass.wav")
  767. if self.startetAni-1 == 3:
  768. self.showRandomItemName = True
  769.  
  770. if self.clickOpenButton == True:
  771. if self.showRandomItemName == True:
  772. self.cur[0] += (self.dest[0] - self.cur[0]) / 50.0
  773. if abs(self.cur[0] - self.dest[0]) < 0.5:
  774. self.cur[0] = self.dest[0]
  775. item.SelectItem(self.rand_reward)
  776. self.GetChild("random_item_name").SetText("%dx %s" %(self.cur[0], item.GetItemName()))
  777.  
  778. self.cur[1] += (self.dest[1] - self.cur[1]) / 15.0
  779. if abs(self.cur[1] - self.dest[1]) < 0.8:
  780. self.cur[1] = self.dest[1]
  781. self.GetChild("money_text").SetText("%s" % (localeInfo.NumberWithPoint(int(self.cur[1]))))
  782.  
  783. self.cur[2] += (self.dest[2] - self.cur[2]) / 50.0
  784. if abs(self.cur[2] - self.dest[2]) < 0.5:
  785. self.cur[2] = self.dest[2]
  786. self.GetChild("exp_text").SetText("%d%%" %(self.cur[2]))
  787.  
  788. class HuntingMiniWindow(ui.Window):
  789. def __init__(self):
  790. ui.Window.__init__(self)
  791. self.level = 0
  792. self.mob = 0
  793. self.cur_count = 0
  794. self.dest_count = 0
  795.  
  796. self.LoadWindow()
  797.  
  798. def __del__(self):
  799. self.level = 0
  800. self.mob = 0
  801. self.cur_count = 0
  802. self.dest_count = 0
  803. ui.Window.__del__(self)
  804.  
  805. def Show(self):
  806. ui.Window.Show(self)
  807.  
  808. def Close(self):
  809. constInfo.HUNTING_MINI_UI_SHOW = 0
  810. self.Hide()
  811.  
  812. def OnPressEscapeKey(self):
  813. self.Close()
  814. return True
  815.  
  816. def Destroy(self):
  817. self.Hide()
  818.  
  819. def LoadWindow(self):
  820. try:
  821. self.AddFlag("movable")
  822. self.AddFlag("float")
  823. self.SetSize(152, 62)
  824. self.SetPosition(200, wndMgr.GetScreenHeight() - self.GetHeight() - 110)
  825.  
  826. self.background_image = ui.MakeExpandedImageBox(self, "d:/ymir work/ui/public/huntsystem/mini_ui_board.tga", 0, 0, "attach")
  827. self.background_image.SetParent(self)
  828. self.background_image.Show()
  829.  
  830. self.close_button = ui.Button()
  831. self.close_button.SetParent(self.background_image)
  832. self.close_button.SetUpVisual("d:/ymir work/ui/public/huntsystem/mini_button_close_normal.sub")
  833. self.close_button.SetOverVisual("d:/ymir work/ui/public/huntsystem/mini_button_close_hover.sub")
  834. self.close_button.SetDownVisual("d:/ymir work/ui/public/huntsystem/mini_button_close_down.sub")
  835. self.close_button.SetEvent(self.Close)
  836. self.close_button.SetPosition(136, 8)
  837. self.close_button.Show()
  838.  
  839. self.title_text = ui.TextLine()
  840. self.title_text.SetParent(self.background_image)
  841. self.title_text.SetWindowHorizontalAlignCenter()
  842. self.title_text.SetHorizontalAlignCenter()
  843. self.title_text.SetFontName(localeInfo.UI_DEF_FONT_LARGE)
  844. self.title_text.SetPosition(0, 8)
  845. self.title_text.SetOutline()
  846. self.title_text.SetText("Jagdmission - Lv.10")
  847. self.title_text.Show()
  848.  
  849. self.mob_text = ui.TextLine()
  850. self.mob_text.SetParent(self.background_image)
  851. self.mob_text.SetWindowHorizontalAlignCenter()
  852. self.mob_text.SetHorizontalAlignCenter()
  853. self.mob_text.SetPosition(0, 26)
  854. self.mob_text.SetOutline()
  855. self.mob_text.SetText("Weißer-Eid Kommandantin")
  856. self.mob_text.Show()
  857.  
  858. self.count_text = ui.TextLine()
  859. self.count_text.SetParent(self.background_image)
  860. self.count_text.SetHorizontalAlignCenter()
  861. self.count_text.SetPosition(32, 39)
  862. self.count_text.SetOutline()
  863. self.count_text.SetText("17 / 45")
  864. self.count_text.Show()
  865.  
  866. self.gauge_image = ui.MakeExpandedImageBox(self, "d:/ymir work/ui/public/huntsystem/mini_gauge_blue.sub", 56, 44, "not_pick")
  867. self.gauge_image.SetParent(self.background_image)
  868. self.gauge_image.Show()
  869.  
  870. except:
  871. import exception
  872. exception.Abort("HuntingMiniWindow.LoadWindow.BindObject")
  873.  
  874. def SetInfo(self, level, monster, cur_count, dest_count):
  875. self.level = level
  876. self.mob = monster
  877. self.dest_count = dest_count
  878. self.UpdateCount(cur_count)
  879. self.title_text.SetText(uiScriptLocale.HUNTING_SYSTEM_TITLE % self.level)
  880. mob_name = str(nonplayer.GetMonsterName(monster))
  881. self.mob_text.SetText(mob_name)
  882.  
  883. def UpdateCount(self, count):
  884. self.cur_count = count
  885. self.count_text.SetText("%d / %d" % (self.cur_count, self.dest_count))
  886. if self.cur_count >= self.dest_count:
  887. self.gauge_image.LoadImage("d:/ymir work/ui/public/huntsystem/mini_gauge_green.sub")
  888. else:
  889. self.gauge_image.LoadImage("d:/ymir work/ui/public/huntsystem/mini_gauge_blue.sub")
  890. self.gauge_image.SetPercentage(self.cur_count, self.dest_count)
  891.  
  892. class ListBoxItems(ui.Window):
  893. class Item(ui.Window):
  894. def __init__(self, parent, index, vnum, count):
  895. ui.Window.__init__(self)
  896. ui.Window.SetParent(self, parent)
  897.  
  898. self.tooltipItem = uiToolTip.ItemToolTip()
  899. self.tooltipItem.Hide()
  900.  
  901. self.parent = proxy(parent)
  902. self.SetWindowName("ListBox_Item")
  903. self.xBase, self.yBase = 0, 0
  904.  
  905. self.index = index
  906. self.vnum = vnum
  907. self.count = count
  908.  
  909. self.background_image = ui.MakeExpandedImageBox(self, "d:/ymir work/ui/public/slot_base.sub", 0, 0, "not_pick")
  910. self.background_image.SetParent(self)
  911. self.background_image.Show()
  912.  
  913. item.SelectItem(self.vnum)
  914. self.item_image = ui.MakeExpandedImageBox(self, item.GetIconImageFileName(), 0, 0)
  915. # self.item_image.SetParent(self.background_image)
  916.  
  917. self.item_image.SAFE_SetStringEvent("MOUSE_OVER_IN",self.OverInItem,)
  918. self.item_image.SAFE_SetStringEvent("MOUSE_OVER_OUT",self.OverOutItem)
  919.  
  920. self.item_image.Show()
  921.  
  922. self.item_count = ui.NumberLine()
  923. self.item_count.SetParent(self.item_image)
  924. self.item_count.SetWindowName("itemCount")
  925. self.item_count.SetHorizontalAlignRight()
  926. self.item_count.SetNumber(str(self.count))
  927. self.item_count.SetPosition(32 - 4, 32 - 10)
  928. self.item_count.Show()
  929.  
  930. def __del__(self):
  931. ui.Window.__del__(self)
  932. self.xBase, self.yBase = 0, 0
  933. self.index = 0
  934. self.vnum = 0
  935. self.count = 0
  936. self.background_image = None
  937. self.item_image = None
  938. self.item_count = None
  939.  
  940. def SetBasePosition(self, x, y):
  941. self.xBase = x
  942. self.yBase = y
  943.  
  944. def GetBasePosition(self):
  945. return (self.xBase, self.yBase)
  946.  
  947. def OverInItem(self):
  948. if self.tooltipItem:
  949. self.tooltipItem.ClearToolTip()
  950. self.tooltipItem.AddItemData(self.vnum, metinSlot = [0 for i in xrange(player.METIN_SOCKET_MAX_NUM)])
  951. self.tooltipItem.ShowToolTip()
  952.  
  953. def OverOutItem(self):
  954. if self.tooltipItem:
  955. self.tooltipItem.HideToolTip()
  956.  
  957. def GetIndex(self):
  958. return self.index
  959.  
  960. def Show(self):
  961. ui.Window.Show(self)
  962.  
  963. def OnRender(self):
  964. xList, yList = self.parent.GetGlobalPosition()
  965.  
  966. if self.background_image:
  967. self.background_image.SetClipRect(xList, yList, xList + self.parent.GetWidth(), yList + self.parent.GetHeight())
  968. self.item_image.SetClipRect(xList, yList, xList + self.parent.GetWidth(), yList + self.parent.GetHeight())
  969.  
  970. if self.item_count:
  971. xText, yText = self.item_count.GetGlobalPosition()
  972. wText, hText = self.item_count.GetWidth(), 7
  973.  
  974. if yText < yList or (yText + hText > yList + self.parent.GetHeight()):
  975. self.item_count.Hide()
  976. else:
  977. self.item_count.Show()
  978.  
  979. def __init__(self):
  980. ui.Window.__init__(self)
  981. self.SetWindowName("ListBox")
  982. self.globalParent = None
  983. self.index_list = 0
  984. self.object_list = []
  985.  
  986. def __del__(self):
  987. ui.Window.__del__(self)
  988. self.globalParent = None
  989. self.index_list = 0
  990. self.object_list = []
  991.  
  992. def GetObjectCount(self):
  993. count = 0
  994. for i in xrange(len(self.object_list)):
  995. count += 1
  996. return count
  997.  
  998. def SetGlobalParent(self, parent):
  999. self.globalParent = proxy(parent)
  1000.  
  1001. def OnScroll(self, scrollPos):
  1002. totalHeight = 0
  1003. for item in self.object_list:
  1004. totalHeight += item.GetHeight()
  1005.  
  1006. totalHeight -= self.GetHeight()
  1007.  
  1008. for i in xrange(len(self.object_list)):
  1009. x, y = self.object_list[i].GetLocalPosition()
  1010. xB, yB = self.object_list[i].GetBasePosition()
  1011. setPos = yB - int(scrollPos * totalHeight)
  1012. self.object_list[i].SetPosition(xB, setPos)
  1013.  
  1014. def AppendObject(self, item_vnum, item_count, space_y):
  1015. self.index_list += 1
  1016. item = self.Item(self, self.index_list, item_vnum, item_count)
  1017. item.SetSize(32, 32 + space_y)
  1018.  
  1019. if len(self.object_list) == 0:
  1020. item.SetPosition(0, 0)
  1021. item.SetBasePosition(0, 0)
  1022. else:
  1023. x, y = self.object_list[-1].GetLocalPosition()
  1024. item.SetPosition(0, y + self.object_list[-1].GetHeight())
  1025. item.SetBasePosition(0, y + self.object_list[-1].GetHeight())
  1026.  
  1027. item.Show()
  1028. self.object_list.append(item)
  1029.  
  1030. def ClearList(self):
  1031. self.index_list = 0
  1032. self.object_list = []
  1033.  
  1034. class ScrollBar(ui.DragButton):
  1035. def __init__(self):
  1036. ui.DragButton.__init__(self)
  1037. self.AddFlag("float")
  1038. self.AddFlag("movable")
  1039. self.AddFlag("restrict_x")
  1040.  
  1041. self.eventScroll = lambda *arg: None
  1042. self.movearea = 0
  1043. self.currentPos = 0.0
  1044.  
  1045. def __del__(self):
  1046. ui.DragButton.__del__(self)
  1047. self.movearea = 0
  1048. self.currentPos = 0.0
  1049. self.eventScroll = lambda *arg: None
  1050.  
  1051. def SetMovementArea(self, x, y, width, height):
  1052. self.movearea = height - y - self.GetHeight()
  1053. self.SetRestrictMovementArea(x, y, width, height)
  1054.  
  1055. def SetTexture(self, image):
  1056. self.SetUpVisual(image)
  1057. self.SetOverVisual(image)
  1058. self.SetDownVisual(image)
  1059.  
  1060. def SetScrollEvent(self, event):
  1061. self.eventScroll = event
  1062.  
  1063. def SetPos(self, pos):
  1064. pos = max(0.0, pos)
  1065. pos = min(1.0, pos)
  1066.  
  1067. yPos = float(pos * self.movearea)
  1068.  
  1069. self.SetPosition(12, yPos)
  1070. self.OnMove()
  1071.  
  1072. def GetPos(self):
  1073. return self.currentPos
  1074.  
  1075. def OnMove(self):
  1076. (xLocal, yLocal) = self.GetLocalPosition()
  1077. self.currentPos = float(yLocal) / float(self.movearea)
  1078.  
  1079. self.eventScroll()
Advertisement
Add Comment
Please, Sign In to add comment