trus7

dailygift.py

Nov 17th, 2020 (edited)
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 KB | None | 0 0
  1. import ui
  2. import uiScriptLocale, event, dbg, uiCommon, uiToolTip, item, localeInfo
  3.  
  4. import net
  5. import app
  6.  
  7. class DailyGift(ui.Window):
  8.  
  9. ITEMS = []
  10. CANTS = []
  11.  
  12. def __init__(self):
  13. ui.Window.__init__(self)
  14. self.LoadWindow()
  15.  
  16. def __del__(self):
  17. ui.Window.__del__(self)
  18.  
  19. def Close(self):
  20. if self.board.IsShow():
  21. self.Show()
  22.  
  23. def Show(self):
  24. if self.board.IsShow():
  25. self.board.Hide()
  26. else:
  27. self.board.Show()
  28. net.SendChatPacket("/daily_reward_reload")
  29.  
  30. def LoadWindow(self):
  31. self.slots = {}
  32. self.daily = 0
  33. self.endTime = None
  34.  
  35. self.board = ui.BoardWithTitleBar()
  36. self.board.SetSize(800, 500)
  37. self.board.SetCenterPosition()
  38. self.board.AddFlag("movable")
  39. self.board.AddFlag("float")
  40. self.board.SetTitleName(uiScriptLocale.DAILY_REWARD01)
  41. self.board.SetCloseEvent(self.Close)
  42. self.board.Hide()
  43.  
  44. self.tooltipItem = uiToolTip.ItemToolTip()
  45. self.tooltipItem.Hide()
  46.  
  47. self.img = ui.ImageBox()
  48. self.img.SetParent(self.board)
  49. self.img.SetPosition(12, 35)
  50. self.img.LoadImage("d:/ymir work/drakon2/dailygift/a.png")
  51. self.img.Show()
  52.  
  53. self.bg = {}
  54. for i in xrange(7):
  55. self.bg[i] = {}
  56. self.bg[i]["image"] = ui.ImageBox()
  57. self.bg[i]["image"].SetParent(self.board)
  58. self.bg[i]["image"].SetPosition(110*i+25, 175)
  59. self.bg[i]["image"].LoadImage("d:/ymir work/drakon2/dailygift/test.png")
  60. self.bg[i]["image"].Show()
  61.  
  62. self.bg[i]["text"] = ui.TextLine()
  63. self.bg[i]["text"].SetParent(self.bg[i]["image"])
  64. self.bg[i]["text"].SetPosition(0,9)
  65. self.bg[i]["text"].SetWindowHorizontalAlignCenter()
  66. self.bg[i]["text"].SetHorizontalAlignCenter()
  67. self.bg[i]["text"].SetText(uiScriptLocale.DAILY_REWARD02+" "+str(i+1))
  68. self.bg[i]["text"].Show()
  69.  
  70. self.bg[i]["button"] = ui.Button()
  71. self.bg[i]["button"].SetParent(self.bg[i]["image"])
  72. self.bg[i]["button"].SetPosition(15,100)
  73. self.bg[i]["button"].SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
  74. self.bg[i]["button"].SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
  75. self.bg[i]["button"].SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
  76. self.bg[i]["button"].SetDisableVisual("d:/ymir work/ui/public/middle_button_03.sub")
  77. self.bg[i]["button"].SetText(uiScriptLocale.DAILY_REWARD03)
  78. self.bg[i]["button"].SetEvent(lambda x = i : self.GetReward(x))
  79. self.bg[i]["button"].Disable()
  80. self.bg[i]["button"].Show()
  81.  
  82. self.reward = ui.ImageBox()
  83. self.reward.SetParent(self.board)
  84. self.reward.SetPosition(20, 360)
  85. self.reward.LoadImage("d:/ymir work/drakon2/dailygift/reward.png")
  86. self.reward.Show()
  87.  
  88. self.items = ui.GridSlotWindow()
  89. self.items.SetParent(self.board)
  90. self.items.SetPosition(110, 355)
  91. self.items.ArrangeSlot(0,10,3,32,32,0,0)
  92. self.items.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  93. self.items.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  94. self.items.SetSlotBaseImage("d:/ymir work/drakon2/inventory/slot.png",1.0,1.0,1.0,1.0)
  95. self.items.RefreshSlot()
  96. self.items.Show()
  97.  
  98. self.text = {}
  99. self.pos = [[112,335], [112+(32*10)+15,335]]
  100. for i in xrange(2):
  101. self.text[i] = ui.TextLine()
  102. self.text[i].SetParent(self.board)
  103. self.text[i].SetPosition(self.pos[i][0], self.pos[i][1])
  104. self.text[i].SetText((uiScriptLocale.DAILY_REWARD04,uiScriptLocale.DAILY_REWARD05)[i])
  105. self.text[i].Show()
  106.  
  107. self.SetDailyReward(1)
  108. self.SetTime(app.GetGlobalTimeStamp()*100)
  109.  
  110. def SetDailyReward(self, idx):
  111. self.daily = int(idx)
  112. self.bg[self.daily]["button"].Enable()
  113.  
  114. def GetActualDailyReward(self):
  115. return self.daily
  116.  
  117. def SetTime(self, time):
  118. self.endTime = int(time)
  119. if self.endTime > 0:
  120. time = self.endTime - app.GetGlobalTimeStamp()
  121. day = int(int((time / 60) / 60) / 24)
  122. leftTime = localeInfo.SecondToDHM(self.endTime - app.GetGlobalTimeStamp())
  123. text = " %s : %s" % (localeInfo.LEFT_TIME, leftTime)
  124. self.text[1].SetText(text)
  125. else:
  126. self.bg[self.GetActualDailyReward()]["button"].Enable()
  127.  
  128. def CheckTime(self):
  129. if self.endTime != None:
  130. time = self.endTime - app.GetGlobalTimeStamp()
  131. day = int(int((time / 60) / 60) / 24)
  132. leftTime = localeInfo.SecondToDHM(self.endTime - app.GetGlobalTimeStamp())
  133. text = " (%s : %s)" % (localeInfo.LEFT_TIME, leftTime)
  134. self.text[1].SetText(text)
  135. if self.endTime <= 0:
  136. self.bg[self.GetActualDailyReward()]["button"].Enable()
  137.  
  138. def DeleteRewards(self):
  139. for i in xrange(len(self.ITEMS)):
  140. self.items.SetItemSlot(i,0)
  141. self.slots[i] = 0
  142. self.ITEMS = []
  143. self.CANTS = []
  144.  
  145. def SetReward(self, items, cant):
  146. self.ITEMS.append(int(items))
  147. self.CANTS.append(int(cant))
  148.  
  149. def SetRewardDone(self):
  150. for i in xrange(len(self.ITEMS)):
  151. self.items.SetItemSlot(i,self.ITEMS[i], self.CANTS[i])
  152. self.slots[i] = self.ITEMS[i]
  153.  
  154. def GetReward(self,x):
  155. for i in xrange(7):
  156. self.bg[i]["button"].Disable()
  157. net.SendChatPacket("/daily_reward_get_reward")
  158. net.SendChatPacket("/daily_reward_reload")
  159.  
  160. def OverInItem(self, slot):
  161. self.tooltipItem.SetItemToolTip(self.slots[slot])
  162.  
  163. def OverOutItem(self):
  164. if self.tooltipItem:
  165. self.tooltipItem.HideToolTip()
  166.  
  167. def OnUpdate(self):
  168. self.CheckTime()
  169. x=DailyGift().Show()
Add Comment
Please, Sign In to add comment