Guest User

Rift & Event timer 1.1 --Fixed !rift spam before riftstart

a guest
Dec 12th, 2016
535
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.55 KB | None | 0 0
  1. local Hud_Clocks_Offset_Y = 0
  2. local Hud_Clocks_Offset_X = -35
  3.  
  4.  
  5. --init clock
  6. local riftHoursLeft = 99
  7. local riftMinutesLeft = 99
  8. local nextRift = 99
  9. --Get Rift Timer regex
  10. GenericTextMessageProxy.OnReceive("RiftTimeReader2", function (_, speaker, level, text)
  11. if string.match(speaker,'Time left to next rift') ~= nil then
  12. riftHoursLeft = string.match(speaker,'%((.-)H')
  13. riftMinutesLeft = string.match(speaker,'H:(.-):M')
  14. nextRift = tonumber((tonumber(riftHoursLeft)*60*60)+(tonumber(riftMinutesLeft)*60))+os.time()
  15. end
  16. end)
  17. wait(200)
  18. Self.SayToNpc('!rift',1)
  19.  
  20.  
  21. local RiftClock = HUD.New(50+Hud_Clocks_Offset_X,500+Hud_Clocks_Offset_Y,"Rift Timer: ",255,246,143)
  22. local RiftClock_Hour = HUD.New(150+Hud_Clocks_Offset_X,500+Hud_Clocks_Offset_Y,"init",255,127,0)
  23. local RiftClock_Minute = HUD.New(170+Hud_Clocks_Offset_X,500+Hud_Clocks_Offset_Y,"init",255,127,0)
  24.  
  25. --Event (Snowball, TDM, Dungenevent usw.)
  26.  
  27. local Hud_Event_Offset_X = 0
  28. local Hud_Event_Offset_Y = 0
  29. local eventHoursLeft = 99
  30. local eventMinutesLeft = 99
  31.  
  32. local EventHud = HUD.New(15+Hud_Event_Offset_X,530+Hud_Event_Offset_Y,"Next Event in: ",235,246,143)
  33. local EventHud_Hour = HUD.New(115+Hud_Event_Offset_X,530+Hud_Event_Offset_Y,"0H",255,127,0)
  34. local EventHud_Minute = HUD.New(135+Hud_Event_Offset_X,530+Hud_Event_Offset_Y,"init",255,127,0)
  35.  
  36. local Rift_Arrow_Animation = 0
  37. local Rift_Arrow_Pos_X = 230
  38. local Rift_Arrow = HUD.New(230+Hud_Event_Offset_X,500+Hud_Event_Offset_Y,"<<<",50,220,0)
  39.  
  40.  
  41. local Module_Rift_Arrow = Module.New('module1', function()
  42. if Rift_Arrow_Animation == 1 and Rift_Arrow_Pos_X > 160 then
  43. Rift_Arrow:SetPosition(Rift_Arrow_Pos_X-2,500)
  44. Rift_Arrow_Pos_X = Rift_Arrow_Pos_X-5
  45. elseif Rift_Arrow_Animation == 1 and Rift_Arrow_Pos_X <= 160 then
  46. Rift_Arrow:SetPosition(230,500)
  47. Rift_Arrow_Pos_X = 230
  48. elseif Rift_Arrow_Animation == 0 and Rift_Arrow_Pos_X ~= 230 then
  49. Rift_Arrow:SetTextColor(105,105,105)
  50. Rift_Arrow:SetPosition(230,500)
  51. Rift_Arrow_Pos_X = 230
  52.  
  53. if Rift_Arrow_Animation == 1 then
  54. Rift_Arrow:SetTextColor(50,220,0)
  55. else
  56. Rift_Arrow:SetTextColor(105,105,105)
  57. end
  58. end
  59. end)
  60.  
  61. Module_Rift_Arrow:Start()
  62.  
  63. local lastupdate = 0
  64.  
  65. --on tick
  66. registerEventListener(TIMER_TICK, "onTimerTick")
  67. function onTimerTick()
  68. --transform time left to hour and minutes
  69. local hLeft = math.floor((nextRift-os.time())/3600)
  70. local mLeft = math.floor(((nextRift-os.time())-hLeft*3600)/60)
  71. --check if negative, if so .!rift again
  72. if hLeft < 0 or mLeft < 0 then
  73. if (os.time() > (lastupdate+60)) then
  74. wait(200)
  75. Self.SayToNpc('!rift',1)
  76. print(lastupdate)
  77. lastupdate = os.time()
  78. end
  79. end
  80. --update display
  81. RiftClock_Hour:SetText(hLeft.."H")
  82. RiftClock_Minute:SetText(mLeft.."M")
  83.  
  84. --color changer + arrow anim
  85. if nextRift-os.time() < 120 then
  86. Rift_Arrow_Animation = 1
  87. Rift_Arrow:SetTextColor(50,220,0)
  88. RiftClock_Hour:SetTextColor(math.random(0,255),math.random(0,255),math.random(0,255))
  89. RiftClock_Minute:SetTextColor(math.random(0,255),math.random(0,255),math.random(0,255))
  90.  
  91. elseif nextRift-os.time() < 240 then
  92. Rift_Arrow_Animation = 1
  93. RiftClock_Hour:SetTextColor(255,0,0)
  94. RiftClock_Minute:SetTextColor(255,0,0)
  95. Rift_Arrow:SetTextColor(50,220,0)
  96. else
  97. Rift_Arrow_Animation = 0
  98. RiftClock_Hour:SetTextColor(255,127,0)
  99. RiftClock_Minute:SetTextColor(255,127,0)
  100. Rift_Arrow:SetPosition(230+Hud_Event_Offset_X,500+Hud_Event_Offset_Y)
  101. Rift_Arrow:SetTextColor(105,105,105)
  102. end
  103.  
  104. --Calculate EventTimeLeft
  105. local eventMinutesLeft = math.floor((math.ceil(os.time()/3600)*3600-os.time())/60)
  106. --update display
  107. EventHud_Minute:SetText(eventMinutesLeft.."M")
  108. end
Add Comment
Please, Sign In to add comment