Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
977
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.15 KB | None | 0 0
  1. #(C) 2019 Owsap Productions
  2. #V.1.0.8
  3.  
  4. import app
  5. import ui
  6. import uiToolTip
  7. import grp
  8. import item
  9. import player
  10. import constInfo
  11. import localeInfo
  12. import uiScriptLocale
  13. import uiCommon
  14.  
  15. class DungeonInfo(ui.ScriptWindow):
  16. TOOLTIP_NORMAL_COLOR = grp.GenerateColor(0.9490, 0.9058, 0.7568, 1.0)
  17. TOOLTIP_SPECIAL_COLOR = grp.GenerateColor(1.0, 0.7843, 0.0, 1.0)
  18. MIN_SCROLLBAR_LIST = 10
  19.  
  20. DUNGEON_TYPE = {
  21. 0 : localeInfo.DUNGEON_INFO_TYPE0,
  22. 1 : localeInfo.DUNGEON_INFO_TYPE1,
  23. 2 : localeInfo.DUNGEON_INFO_TYPE2
  24. }
  25.  
  26. DUNGEON_ORGANIZATION = {
  27. 0 : localeInfo.DUNGEON_INFO_ORGANIZATION0,
  28. 1 : localeInfo.DUNGEON_INFO_ORGANIZATION1,
  29. 2 : localeInfo.DUNGEON_INFO_ORGANIZATION2
  30. }
  31.  
  32. def __init__(self):
  33. ui.ScriptWindow.__init__(self)
  34.  
  35. self.dungeonIndex = 0
  36. self.dungeonButton = {}
  37. self.dungeonImage = {}
  38. self.dungeonImageIcon = {}
  39. self.dungeonName = {}
  40. self.questionDialog = None
  41. self.dungeonRankingIndex = None
  42.  
  43. self.isLoaded = FALSE
  44.  
  45. def __del__(self):
  46. ui.ScriptWindow.__del__(self)
  47.  
  48. self.dungeonIndex = 0
  49. self.dungeonButton = {}
  50. self.dungeonImage = {}
  51. self.dungeonImageIcon = {}
  52. self.dungeonName = {}
  53. self.questionDialog = None
  54. self.dungeonRankingIndex = None
  55.  
  56. self.isLoaded = FALSE
  57.  
  58. def LoadDialog(self):
  59. try:
  60. pyScrLoader = ui.PythonScriptLoader()
  61. pyScrLoader.LoadScriptFile(self, "UIScript/dungeoninfowindow.py")
  62. except:
  63. import exception
  64. exception.Abort("DungeonInfo.LoadDialog.LoadScript")
  65.  
  66. try:
  67. self.dungeonBoard = self.GetChild("DungeonBoard")
  68. self.dungeonBoardTitleBar = self.GetChild("DungeonBoardTitleBar")
  69.  
  70. self.dungeonButtonBoard = self.GetChild("DungeonButtonBoard")
  71. self.dungeonButtonThinBoard = self.GetChild("DungeonButtonThinBoard")
  72.  
  73. self.dungeonInfoItem = self.GetChild("DungeonInfoItem")
  74. self.dungeonInfoItemSlot = self.GetChild("DungeonInfoItemSlot")
  75.  
  76. self.dungeonScrollBar = self.GetChild("ScrollBar")
  77. self.dungeonInfoBoard = self.GetChild("DungeonInfoBoard")
  78.  
  79. self.dungeonInfoName = self.GetChild("DungeonInfoName")
  80. self.dungeonInfoType = self.GetChild("DungeonInfoType")
  81. self.dungeonInfoOrganization = self.GetChild("DungeonInfoOrganization")
  82. self.dungeonInfoLevelLimit = self.GetChild("DungeonInfoLevelLimit")
  83. self.dungeonInfoPartyMembers = self.GetChild("DungeonInfoPartyMembers")
  84. self.dungeonInfoCooldown = self.GetChild("DungeonInfoCooldown")
  85. self.dungeonInfoDuration = self.GetChild("DungeonInfoDuration")
  86. self.dungeonInfoEntrance = self.GetChild("DungeonInfoEntrance")
  87. self.dungeonInfoStrengthBonus = self.GetChild("DungeonInfoStrengthBonus")
  88. self.dungeonInfoResistanceBonus = self.GetChild("DungeonInfoResistanceBonus")
  89. self.dungeonInfoTotalFinished = self.GetChild("DungeonInfoTotalFinished")
  90. self.dungeonInfoFastestTime = self.GetChild("DungeonInfoFastestTime")
  91. self.dungeonInfoHighestDamage = self.GetChild("DungeonInfoHighestDamage")
  92.  
  93. self.dungeonInfoTeleportButton = self.GetChild("DungeonInfoTeleportButton")
  94. self.closeDungeonBoard = self.GetChild("CloseDungeonBoard")
  95.  
  96. self.dungeonRank1Button = self.GetChild("DungeonRank1Button")
  97. self.dungeonRank2Button = self.GetChild("DungeonRank2Button")
  98. self.dungeonRank3Button = self.GetChild("DungeonRank3Button")
  99.  
  100. except:
  101. import exception
  102. exception.Abort("DungeonInfo.LoadDialog.GetChild")
  103.  
  104. self.dungeonBoardTitleBar.SetCloseEvent(ui.__mem_func__(self.Close))
  105. self.closeDungeonBoard.SetEvent(ui.__mem_func__(self.Close))
  106. self.dungeonInfoTeleportButton.SetEvent(self.TeleportDungeon)
  107.  
  108. self.dungeonRank1Button.SetEvent(lambda arg = 1: self.OpenRankingBoard(arg))
  109. self.dungeonRank2Button.SetEvent(lambda arg = 2: self.OpenRankingBoard(arg))
  110. self.dungeonRank3Button.SetEvent(lambda arg = 3: self.OpenRankingBoard(arg))
  111.  
  112. self.toolTip = uiToolTip.ToolTip()
  113.  
  114. self.LoadDungeonButtons()
  115. self.LoadDungeonInfoBoard(self.dungeonIndex)
  116.  
  117. self.isLoaded = TRUE
  118.  
  119. def Close(self):
  120. if self.toolTip:
  121. self.toolTip = None
  122.  
  123. self.isLoaded = FALSE
  124. self.Hide()
  125.  
  126. def OnPressEscapeKey(self):
  127. self.Close()
  128. return TRUE
  129.  
  130. def Open(self):
  131. if not self.isLoaded:
  132. self.LoadDialog()
  133.  
  134. self.SetCenterPosition()
  135. self.SetTop()
  136. self.Show()
  137.  
  138. def LoadDungeonButtons(self):
  139. if not constInfo.dungeonInfo:
  140. return
  141.  
  142. for index in xrange(min(self.MIN_SCROLLBAR_LIST, len(constInfo.dungeonInfo))):
  143. self.AppendDungeonButton(
  144. index,\
  145. self.dungeonButtonBoard,\
  146. 3, 3 + (38 * index)
  147. )
  148.  
  149. if len(constInfo.dungeonInfo) <= self.MIN_SCROLLBAR_LIST:
  150. self.dungeonScrollBar.SetMiddleBarSize(float(len(constInfo.dungeonInfo)) / float(len(constInfo.dungeonInfo)))
  151. self.dungeonScrollBar.Show()
  152. else:
  153. self.dungeonScrollBar.SetMiddleBarSize(float(self.MIN_SCROLLBAR_LIST) / float(len(constInfo.dungeonInfo)))
  154. self.dungeonScrollBar.Show()
  155.  
  156. self.dungeonScrollBar.SetScrollEvent(self.OnScroll)
  157.  
  158. def OnScroll(self):
  159. button_count = len(self.dungeonButton)
  160. pos = int(self.dungeonScrollBar.GetPos() * (len(constInfo.dungeonInfo) - button_count))
  161.  
  162. self.dungeonButton = {}
  163. self.dungeonImage = {}
  164. self.dungeonImageIcon = {}
  165. self.dungeonName = {}
  166.  
  167. for idx in xrange(min(self.MIN_SCROLLBAR_LIST, button_count)):
  168. realPos = idx + pos
  169.  
  170. self.AppendDungeonButton(
  171. realPos,\
  172. self.dungeonButtonBoard,\
  173. 3, 3 + (38 * idx)
  174. )
  175.  
  176. if realPos != self.dungeonIndex:
  177. self.dungeonButton[realPos].SetUpVisual("d:/ymir work/ui/game/mailbox/post_default.sub")
  178. self.dungeonButton[realPos].SetOverVisual("d:/ymir work/ui/game/mailbox/post_over.sub")
  179. self.dungeonButton[realPos].SetDownVisual("d:/ymir work/ui/game/mailbox/post_select.sub")
  180.  
  181. def AppendDungeonButton(self, index, parent, x, y):
  182. self.dungeonButton[index] = ui.Button()
  183. self.dungeonButton[index].SetParent(parent)
  184. self.dungeonButton[index].SetUpVisual("d:/ymir work/ui/game/mailbox/post_select.sub")
  185. self.dungeonButton[index].SetOverVisual("d:/ymir work/ui/game/mailbox/post_select.sub")
  186. self.dungeonButton[index].SetDownVisual("d:/ymir work/ui/game/mailbox/post_select.sub")
  187. self.dungeonButton[index].SetPosition(x, y)
  188. self.dungeonButton[index].SetEvent(lambda: self.LoadDungeonInfoBoard(index))
  189. #self.dungeonButton[index].SetText("%d" % index)
  190. self.dungeonButton[index].Show()
  191.  
  192. self.dungeonImage[index] = ui.ImageBox()
  193. self.dungeonImage[index].SetParent(self.dungeonButton[index])
  194. self.dungeonImage[index].LoadImage("d:/ymir work/ui/game/mailbox/mailbox_icon_empty.sub")
  195. self.dungeonImage[index].SetPosition(1, 2)
  196. self.dungeonImage[index].Show()
  197.  
  198. self.dungeonImageIcon[index] = ui.Button()
  199. self.dungeonImageIcon[index].SetParent(self.dungeonImage[index])
  200.  
  201. #imageIcon = constInfo.dungeonInfo[index]['item_vnum']
  202. mapIndex = constInfo.dungeonInfo[index]['map_index']
  203. #if imageIcon > 0:
  204. self.dungeonImageIcon[index].SetUpVisual("d:/ymir work/ui/game/dungeon_info/icons/%d.tga" % mapIndex)
  205. self.dungeonImageIcon[index].SetOverVisual("d:/ymir work/ui/game/dungeon_info/icons/%d.tga" % mapIndex)
  206. self.dungeonImageIcon[index].SetDownVisual("d:/ymir work/ui/game/dungeon_info/icons/%d.tga" % mapIndex)
  207. self.dungeonImageIcon[index].SetEvent(lambda: self.LoadDungeonInfoBoard(index))
  208. #else:
  209. # self.dungeonImageIcon[index].SetUpVisual("d:/ymir work/ui/pet/skill_button/skill_enable_button.sub")
  210. # self.dungeonImageIcon[index].SetOverVisual("d:/ymir work/ui/pet/skill_button/skill_enable_button.sub")
  211. # self.dungeonImageIcon[index].SetDownVisual("d:/ymir work/ui/pet/skill_button/skill_enable_button.sub")
  212.  
  213. self.dungeonImageIcon[index].SetPosition(0, 0)
  214. self.dungeonImageIcon[index].Show()
  215.  
  216. self.dungeonName[index] = ui.TextLine()
  217. self.dungeonName[index].SetParent(self.dungeonButton[index])
  218. self.dungeonName[index].SetPosition(40, 10)
  219. self.dungeonName[index].SetText("%s" % constInfo.dungeonInfo[index]['map'])
  220. self.dungeonName[index].Show()
  221.  
  222. def LoadDungeonInfoBoard(self, index):
  223. self.dungeonIndex = index
  224.  
  225. self.dungeonButton[self.dungeonIndex].SetUpVisual("d:/ymir work/ui/game/mailbox/post_select.sub")
  226. self.dungeonButton[self.dungeonIndex].SetOverVisual("d:/ymir work/ui/game/mailbox/post_select.sub")
  227. self.dungeonButton[self.dungeonIndex].SetDownVisual("d:/ymir work/ui/game/mailbox/post_select.sub")
  228.  
  229. pos = int(self.dungeonScrollBar.GetPos() * (len(constInfo.dungeonInfo) - len(self.dungeonButton)))
  230. for idx in xrange(len(self.dungeonButton)):
  231. realPos = idx + pos
  232. if realPos != self.dungeonIndex:
  233. self.dungeonButton[realPos].SetUpVisual("d:/ymir work/ui/game/mailbox/post_default.sub")
  234. self.dungeonButton[realPos].SetOverVisual("d:/ymir work/ui/game/mailbox/post_over.sub")
  235. self.dungeonButton[realPos].SetDownVisual("d:/ymir work/ui/game/mailbox/post_select.sub")
  236.  
  237. dungeonMap = str(constInfo.dungeonInfo[self.dungeonIndex]['map'])
  238. dungeonType = constInfo.dungeonInfo[self.dungeonIndex]['type']
  239. dungeonOrganization = constInfo.dungeonInfo[self.dungeonIndex]['organization']
  240. dungeonLevelLimit = constInfo.dungeonInfo[self.dungeonIndex]['level_limit']
  241. dungeonPartyMembers = constInfo.dungeonInfo[self.dungeonIndex]['party_members']
  242. dungeonCooldown = constInfo.dungeonInfo[self.dungeonIndex]['cooldown']
  243. dungeonDuration = constInfo.dungeonInfo[self.dungeonIndex]['duration']
  244. dungeonEntranceMap = str(constInfo.dungeonInfo[self.dungeonIndex]['entrance_map'])
  245. dungeonStrengthBonus = str(constInfo.dungeonInfo[self.dungeonIndex]['strength_bonus'])
  246. dungeonResistanceBonus = str(constInfo.dungeonInfo[self.dungeonIndex]['resistance_bonus'])
  247. dungeonItemVnum = int(constInfo.dungeonInfo[self.dungeonIndex]['item_vnum'])
  248. dungeonFinished = int(constInfo.dungeonInfo[self.dungeonIndex]['finished'])
  249. dungeonFastestTime = constInfo.dungeonInfo[self.dungeonIndex]['fastest_time']
  250. dungeonHighestDamage = int(constInfo.dungeonInfo[self.dungeonIndex]['highest_damage'])
  251.  
  252. self.dungeonInfoName.SetText("%s" % dungeonMap)
  253. self.dungeonInfoType.SetText("%s : %s" % (uiScriptLocale.DUNGEON_INFO_TYPE, self.DUNGEON_TYPE[dungeonType]))
  254. self.dungeonInfoOrganization.SetText("%s : %s" % (uiScriptLocale.DUNGEON_INFO_ORGANIZATION, self.DUNGEON_ORGANIZATION[dungeonOrganization]))
  255. self.dungeonInfoLevelLimit.SetText("%s : %d - 120" % (uiScriptLocale.DUNGEON_INFO_LEVEL_LIMIT, dungeonLevelLimit))
  256. self.dungeonInfoPartyMembers.SetText("%s : %d" % (uiScriptLocale.DUNGEON_INFO_PARTY_MEMBERS, dungeonPartyMembers))
  257. self.dungeonInfoCooldown.SetText("%s : %s" % (uiScriptLocale.DUNGEON_INFO_COOLDOWN, self.FormatTime(dungeonCooldown)))
  258. self.dungeonInfoDuration.SetText("%s : %s" % (uiScriptLocale.DUNGEON_INFO_DURATION, self.FormatTime(dungeonDuration)))
  259. self.dungeonInfoEntrance.SetText("%s : %s" % (uiScriptLocale.DUNGEON_INFO_ENTRANCE, dungeonEntranceMap))
  260. self.dungeonInfoStrengthBonus.SetText("%s : %s" % (uiScriptLocale.DUNGEON_INFO_STRENGTH, dungeonStrengthBonus))
  261. self.dungeonInfoResistanceBonus.SetText("%s : %s" % (uiScriptLocale.DUNGEON_INFO_RESISTANCE, dungeonResistanceBonus))
  262. self.dungeonInfoTotalFinished.SetText("%s : %d" % (uiScriptLocale.DUNGEON_INFO_TOTAL_FINISHED, dungeonFinished))
  263. self.dungeonInfoFastestTime.SetText("%s : %s" % (uiScriptLocale.DUNGEON_INFO_FASTEST_TIME, self.FormatTime(dungeonFastestTime)))
  264. self.dungeonInfoHighestDamage.SetText("%s : %d" % (uiScriptLocale.DUNGEON_INFO_HIGHEST_DAMAGE, dungeonHighestDamage))
  265.  
  266. if dungeonItemVnum > 0:
  267. self.dungeonInfoItemSlot.LoadImage("icon/item/%d.tga" % dungeonItemVnum)
  268. else:
  269. self.dungeonInfoItemSlot.LoadImage("d:/ymir work/ui/pet/skill_button/skill_enable_button.sub")
  270.  
  271. def FormatTime(self, seconds):
  272. if seconds == 0:
  273. return localeInfo.DUNGEON_INFO_NONE
  274.  
  275. m, s = divmod(seconds, 60)
  276. h, m = divmod(m, 60)
  277.  
  278. return "%d:%02d:%02d" % (h, m, s)
  279.  
  280. def TeleportDungeon(self):
  281. self.questionDialog = uiCommon.QuestionDialogWithTimeLimit()
  282. self.questionDialog.Open("Queres teleportar para %s?" % str(constInfo.dungeonInfo[self.dungeonIndex]['map']), 5)
  283. self.questionDialog.SetAcceptText(localeInfo.UI_ACCEPT)
  284. self.questionDialog.SetCancelText(localeInfo.UI_DENY)
  285. self.questionDialog.SetAcceptEvent(lambda arg = TRUE: self.AnswerTeleport(arg))
  286. self.questionDialog.SetCancelEvent(lambda arg = FALSE: self.AnswerTeleport(arg))
  287. self.questionDialog.SetCancelOnTimeOver()
  288. self.questionDialog.SetTop()
  289.  
  290. def AnswerTeleport(self, answer):
  291. if not self.questionDialog:
  292. return
  293.  
  294. if answer == TRUE:
  295. import event
  296.  
  297. dungeonMapCoordX = int(constInfo.dungeonInfo[self.dungeonIndex]['map_coord_x'])
  298. dungeonMapCoordY = int(constInfo.dungeonInfo[self.dungeonIndex]['map_coord_y'])
  299.  
  300. constInfo.dungeonData["quest_cmd"] = "WARP#%d#%d" % (dungeonMapCoordX, dungeonMapCoordY)
  301. event.QuestButtonClick(int(constInfo.dungeonData["quest_index"]))
  302.  
  303. self.questionDialog.Close()
  304. self.questionDialog = None
  305.  
  306. def OpenRankingBoard(self, rankType):
  307. if rankType > 0:
  308. import event
  309. constInfo.dungeonData["quest_cmd"] = "RANKING#%d#%d" % (self.dungeonIndex, rankType)
  310. constInfo.dungeonRanking["ranking_type"] = rankType
  311. event.QuestButtonClick(int(constInfo.dungeonData["quest_index"]))
  312.  
  313. def OnUpdate(self):
  314. if self.toolTip:
  315. if self.dungeonInfoItemSlot.IsIn():
  316. self.toolTip.ClearToolTip()
  317.  
  318. dungeonItemVnum = constInfo.dungeonInfo[self.dungeonIndex]['item_vnum']
  319. if dungeonItemVnum > 0:
  320. item.SelectItem(dungeonItemVnum)
  321.  
  322. self.toolTip.AppendTextLine(item.GetItemName(), self.TOOLTIP_SPECIAL_COLOR)
  323. self.toolTip.AppendDescription(item.GetItemDescription(), 26)
  324.  
  325. self.toolTip.AlignHorizonalCenter()
  326. self.toolTip.ShowToolTip()
  327.  
  328. else:
  329. self.toolTip.HideToolTip()
  330.  
  331. class DungeonRank(ui.ScriptWindow):
  332. SLOT_RANKING = 0
  333. SLOT_PLAYER_NAME = 1
  334. SLOT_PLAYER_LEVEL = 2
  335. SLOT_POINT_TYPE = 3
  336.  
  337. MAX_LINE_COUNT = 5
  338.  
  339. def __init__(self):
  340. ui.ScriptWindow.__init__(self)
  341.  
  342. self.NowStartLineNumber = 0
  343. self.dungeonRankingScrollBar = None
  344. self.ResultButtonList = []
  345. self.ResultSlotList = {}
  346. self.MyResultSlotList = []
  347.  
  348. self.isLoaded = FALSE
  349.  
  350. def __del__(self):
  351. ui.ScriptWindow.__del__(self)
  352.  
  353. self.NowStartLineNumber = 0
  354. self.dungeonRankingScrollBar = None
  355. self.ResultButtonList = []
  356. self.ResultSlotList = {}
  357. self.MyResultSlotList = []
  358.  
  359. self.isLoaded = FALSE
  360.  
  361. def LoadDialog(self):
  362. try:
  363. pyScrLoader = ui.PythonScriptLoader()
  364. pyScrLoader.LoadScriptFile(self, "UIScript/dungeonrankingwindow.py")
  365. except:
  366. import exception
  367. exception.Abort("DungeonRank.LoadDialog.LoadScript")
  368.  
  369. try:
  370. self.dungeonRankingTitleBar = self.GetChild("DungeonRankingTitleBar")
  371. self.dungeonRankingTitleName = self.GetChild("DungeonRankingTitleName")
  372. self.dungeonRankingScrollBar = self.GetChild("DungeonRankingScrollBar")
  373.  
  374. self.dungeonRankingResultPosition = self.GetChild("ResultRanking")
  375. self.dungeonRankingResultName = self.GetChild("ResultName")
  376. self.dungeonRankingResultLevel = self.GetChild("ResultLevel")
  377. self.dungeonRankingResultPoints = self.GetChild("ResultPoints")
  378.  
  379. except:
  380. import exception
  381. exception.Abort("DungeonRank.__LoadWindow.SetObject")
  382.  
  383. self.dungeonRankingTitleBar.SetCloseEvent(ui.__mem_func__(self.Close))
  384. self.dungeonRankingScrollBar.SetScrollEvent(ui.__mem_func__(self.OnScrollControl))
  385.  
  386. self.MakeUiBoard()
  387. self.RefreshDungeonRanking()
  388.  
  389. self.isLoaded = TRUE
  390.  
  391. def MakeUiBoard(self):
  392. try:
  393. yPos = 0
  394. for i in range(0, self.MAX_LINE_COUNT+1):
  395. yPos = 65 + i * 24
  396. if i == 5:
  397. yPos += 10
  398.  
  399. ## ¼øÀ§
  400. RankingSlotImage = ui.MakeImageBox(self, "d:/ymir work/ui/public/parameter_slot_00.sub", 23, yPos)
  401. RankingSlotImage.SetAlpha(0)
  402. RankingSlot = ui.MakeTextLine(RankingSlotImage)
  403. self.Children.append(RankingSlotImage)
  404. self.Children.append(RankingSlot)
  405.  
  406. ## ±æµå¸í
  407. GuildNameImage = ui.MakeImageBox(self, "d:/ymir work/ui/public/parameter_slot_04.sub", 77, yPos)
  408. GuildNameImage.SetAlpha(0)
  409. GuildNameSlot = ui.MakeTextLine(GuildNameImage)
  410. self.Children.append(GuildNameImage)
  411. self.Children.append(GuildNameSlot)
  412.  
  413. ## Âü¿©Àοø
  414. MemberCountSlotImage = ui.MakeImageBox(self, "d:/ymir work/ui/public/parameter_slot_00.sub", 205, yPos)
  415. MemberCountSlotImage.SetAlpha(0)
  416. MemberCountSlot = ui.MakeTextLine(MemberCountSlotImage)
  417. self.Children.append(MemberCountSlotImage)
  418. self.Children.append(MemberCountSlot)
  419.  
  420. ## Ŭ¸®¾î ½Ã°£
  421. ClearTimeSlotImage = ui.MakeImageBox(self, "d:/ymir work/ui/public/parameter_slot_00.sub", 270, yPos)
  422. ClearTimeSlotImage.SetAlpha(0)
  423. ClearTimeSlot = ui.MakeTextLine(ClearTimeSlotImage)
  424. self.Children.append(ClearTimeSlotImage)
  425. self.Children.append(ClearTimeSlot)
  426.  
  427. if i < self.MAX_LINE_COUNT:
  428. tempguildlankingslotlist = []
  429. tempguildlankingslotlist.append(RankingSlot)
  430.  
  431. tempguildlankingslotlist.append(GuildNameSlot)
  432. tempguildlankingslotlist.append(MemberCountSlot)
  433. tempguildlankingslotlist.append(ClearTimeSlot)
  434. self.ResultSlotList[i] = tempguildlankingslotlist
  435. else:
  436. self.MyResultSlotList.append(RankingSlot)
  437. self.MyResultSlotList.append(GuildNameSlot)
  438. self.MyResultSlotList.append(MemberCountSlot)
  439. self.MyResultSlotList.append(ClearTimeSlot)
  440.  
  441. ## °á°ú ¸ñ·Ï ¹öÆ°
  442. itemSlotButtonImage = ui.MakeButton(self, 21, yPos, "", "d:/ymir work/ui/game/guild/dragonlairranking/", "ranking_list_button01.sub", "ranking_list_button02.sub", "ranking_list_button02.sub")
  443. itemSlotButtonImage.Show()
  444. itemSlotButtonImage.Disable()
  445. self.Children.append(itemSlotButtonImage)
  446.  
  447. if i < self.MAX_LINE_COUNT:
  448. self.ResultButtonList.append(itemSlotButtonImage)
  449.  
  450. except:
  451. import exception
  452. exception.Abort("GuildWindow_GuildDragonLairWindow.MakeUiBoard")
  453.  
  454. def RefreshDungeonRanking(self):
  455. self.AllClear()
  456.  
  457. dungeonRankingType = constInfo.dungeonRanking["ranking_type"]
  458. dungeonRankingList = constInfo.dungeonRanking["ranking_list"]
  459.  
  460. if not dungeonRankingList:
  461. return
  462.  
  463. if dungeonRankingType == 1:
  464. self.dungeonRankingTitleName.SetText(uiScriptLocale.DUNGEON_RANKING_TYPE1)
  465. self.dungeonRankingResultPoints.SetText(uiScriptLocale.DUNGEON_RANKING_POINT_TYPE1)
  466. elif dungeonRankingType == 2:
  467. self.dungeonRankingTitleName.SetText(uiScriptLocale.DUNGEON_RANKING_TYPE2)
  468. self.dungeonRankingResultPoints.SetText(uiScriptLocale.DUNGEON_RANKING_POINT_TYPE2)
  469. elif dungeonRankingType == 3:
  470. self.dungeonRankingTitleName.SetText(uiScriptLocale.DUNGEON_RANKING_TYPE3)
  471. self.dungeonRankingResultPoints.SetText(uiScriptLocale.DUNGEON_RANKING_POINT_TYPE3)
  472.  
  473. for line, ResultSlotList in self.ResultSlotList.items():
  474. nowindex = line + self.NowStartLineNumber
  475.  
  476. if nowindex >= len(dungeonRankingList):
  477. break
  478.  
  479. rankingData = dungeonRankingList[nowindex]
  480.  
  481. ResultSlotList[self.SLOT_RANKING].SetText(str(nowindex+1))
  482. ResultSlotList[self.SLOT_PLAYER_NAME].SetText(str(rankingData[0]))
  483. ResultSlotList[self.SLOT_PLAYER_LEVEL].SetText(str(rankingData[1]))
  484. if dungeonRankingType == 2:
  485. ResultSlotList[self.SLOT_POINT_TYPE].SetText(self.FormatTime(rankingData[2]))
  486. else:
  487. ResultSlotList[self.SLOT_POINT_TYPE].SetText(str(rankingData[2]))
  488. self.ResultButtonList[line].Show()
  489.  
  490. self.MyResultSlotList[self.SLOT_RANKING].SetText("-")
  491. self.MyResultSlotList[self.SLOT_PLAYER_NAME].SetText("-")
  492. self.MyResultSlotList[self.SLOT_PLAYER_LEVEL].SetText("-")
  493. self.MyResultSlotList[self.SLOT_POINT_TYPE].SetText("-")
  494.  
  495. self.dungeonRankingScrollBar.SetMiddleBarSize(float(self.MAX_LINE_COUNT) / float(self.CheckNowItemCount()))
  496.  
  497. def FormatTime(self, seconds):
  498. if seconds == 0:
  499. return 0
  500.  
  501. m, s = divmod(seconds, 60)
  502. h, m = divmod(m, 60)
  503.  
  504. return "%d:%02d:%02d" % (h, m, s)
  505.  
  506. def AllClear(self):
  507. for line, ResultSlotList in self.ResultSlotList.items():
  508. ResultSlotList[self.SLOT_RANKING].SetText("")
  509. ResultSlotList[self.SLOT_PLAYER_NAME].SetText("")
  510. ResultSlotList[self.SLOT_PLAYER_LEVEL].SetText("")
  511. ResultSlotList[self.SLOT_POINT_TYPE].SetText("")
  512. self.ResultButtonList[line].SetUp()
  513. self.ResultButtonList[line].Hide()
  514.  
  515. self.MyResultSlotList[self.SLOT_RANKING].SetText("-")
  516. self.MyResultSlotList[self.SLOT_PLAYER_NAME].SetText("-")
  517. self.MyResultSlotList[self.SLOT_PLAYER_LEVEL].SetText("-")
  518. self.MyResultSlotList[self.SLOT_POINT_TYPE].SetText("-")
  519.  
  520. def Close(self):
  521. self.isLoaded = FALSE
  522. self.Hide()
  523.  
  524. def OnPressEscapeKey(self):
  525. self.Close()
  526. return TRUE
  527.  
  528. def CheckNowItemCount(self):
  529. if len(constInfo.dungeonRanking["ranking_list"]) <= self.MAX_LINE_COUNT:
  530. return self.MAX_LINE_COUNT
  531. else:
  532. return len(constInfo.dungeonRanking["ranking_list"])
  533.  
  534. def OnScrollControl(self):
  535. nowitemcount = 0
  536. if len(constInfo.dungeonRanking["ranking_list"]) <= self.MAX_LINE_COUNT :
  537. nowitemcount = 0
  538. else:
  539. nowitemcount = (len(constInfo.dungeonRanking["ranking_list"]) - self.MAX_LINE_COUNT)
  540.  
  541. pos = self.dungeonRankingScrollBar.GetPos() * nowitemcount
  542.  
  543. if not int(pos) == self.NowStartLineNumber:
  544. self.NowStartLineNumber = int(pos)
  545. self.RefreshDungeonRanking()
  546.  
  547. def Open(self):
  548. if not self.isLoaded:
  549. self.LoadDialog()
  550.  
  551. self.NowStartLineNumber = 0
  552. self.dungeonRankingScrollBar.SetPos(0)
  553.  
  554. self.SetCenterPosition()
  555. self.SetTop()
  556. self.Show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement