cthun_warnings = { {"tentacles", 5, 45}, {"dark glare", 5, 40} } cthun_Warn = { warn = function(nxt,i) local msg = "****"..cthun_warnings[i][2].."seconds until "..cthun_warnings[i][1].."****" CT_RA_AddMessage("MS "..msg); Chat.console(msg) Chat.raid(msg) --Chronos.scheduleByName("cthun"..i, cthun_warnings[i][3]-cthun_warnings[i][2], cthun_Warn.warn, "", i) Chronos.scheduleByName("cthun"..i, cthun_warnings[i][3], cthun_Warn.warn, "", i) end } cthun_startOnCombat = "OFF" -- ============================================================================= Schedule = { print = function() Chat.console(cthun_warnings[1][1]) Chat.console(cthun_warnings[1][2]) Chat.console(cthun_warnings[1][3]) Chat.console(cthun_warnings[2][1]) Chat.console(cthun_warnings[2][2]) Chat.console(cthun_warnings[2][3]) end, start = function() local t = cthun_warnings for i=1,table.getn(t) do local e = t[i] if(type(e)=="table") then local text = e[1] local delay = e[2] local cycle = e[3] local f = e[4] local index = i Chronos.scheduleByName("cthun"..index, cycle-delay, cthun_Warn.warn, "", index) Chat.console("Chronos.scheduleByName(cthun"..index..", "..cycle-delay..", "..type(cthun_Warn.warn)..", "..index..")") else Chat.console("i is "..i.." but not a table") end end end, stop = function() t = cthun_warnings for i=1,table.getn(t)+1 do Chat.console("stopping id: ".."cthun"..i-1) Chronos.unscheduleByName("cthun"..i-1) end end } -- ============================================================================= UI = { cthun_reset1 = function() Chronos.scheduleByName("cthun1", cthun_warnings[1][3]-cthun_warnings[1][2], cthun_Warn.warn, "", 1) end, cthun_reset2 = function() Chronos.scheduleByName("cthun2", cthun_warnings[2][3]-cthun_warnings[2][2], cthun_Warn.warn, "", 2) end, cthun_reset3 = function() Chronos.scheduleByName("cthun2", cthun_warnings[3][3]-cthun_warnings[3][2], cthun_Warn.warn, "", 3) end, cthun_reset4 = function() Chronos.scheduleByName("cthun2", cthun_warnings[4][3]-cthun_warnings[4][2], cthun_Warn.warn, "", 4) end, cthun_reset5 = function() Chronos.scheduleByName("cthun2", cthun_warnings[5][3]-cthun_warnings[5][2], cthun_Warn.warn, "", 5) end, -- Toggle visibility of the frame called "cthun#" -- where # is a number passed as an argument to this function. cthun_Toggle = function(num) local frame = getglobal("cthunFrame" .. num) if (frame) then if (frame:IsVisible()) then frame:Hide(); else cthunFrame1_InputBox00:SetText(cthun_warnings[1][1]) cthunFrame1_InputBox01:SetText(cthun_warnings[1][2]) cthunFrame1_InputBox02:SetText(cthun_warnings[1][3]) cthunFrame1_InputBox10:SetText(cthun_warnings[2][1]) cthunFrame1_InputBox11:SetText(cthun_warnings[2][2]) cthunFrame1_InputBox12:SetText(cthun_warnings[2][3]) cthunFrame1_InputBox10:SetText(cthun_warnings[3][1]) cthunFrame1_InputBox11:SetText(cthun_warnings[3][2]) cthunFrame1_InputBox12:SetText(cthun_warnings[3][3]) cthunFrame1_InputBox10:SetText(cthun_warnings[4][1]) cthunFrame1_InputBox11:SetText(cthun_warnings[4][2]) cthunFrame1_InputBox12:SetText(cthun_warnings[4][3]) cthunFrame1_InputBox10:SetText(cthun_warnings[5][1]) cthunFrame1_InputBox11:SetText(cthun_warnings[5][2]) cthunFrame1_InputBox12:SetText(cthun_warnings[5][3]) frame:Show(); end end end, cthun_ToggleOnCombat = function (arg1) if (cthun_startOnCombat == "ON") then cthun_startOnCombat = "OFF" Chat.console("start on combat disabled") cthun_Unregister() elseif (cthun_startOnCombat == "OFF") then cthun_startOnCombat = "ON" Chat.console("start on combat enabled") cthun_Register() end --id = this:GetID() --Chat.console("OnCombat" .. this:GetName() .. ", ID:" .. id .. ", Button:" ..arg1) end, cthun_ToggleOnCombat_OnShow = function (arg1) if (cthun_startOnCombat == "ON") then cthunFrame1_OnCombatCheckButton:SetChecked(1); else cthunFrame1_OnCombatCheckButton:SetChecked(0); end end, -- info from pressing button number 'arg1' cthun_OnClick = function (arg1) id = this:GetID() Chat.console("cthun: OnClick:" .. this:GetName() .. ", ID:" .. id .. ", Button:" ..arg1) end, cthun_save = function (arg1) id = this:GetID() --Chat.console("cthun_start: " .. this:GetName() .. " ,ID: " .. id .. " ,Button:" ..arg1) if (cthunFrame1_InputBox00:GetText()) then cthun_warnings[1][1]=cthunFrame1_InputBox00:GetText() end if (cthunFrame1_InputBox01:GetText()) then cthun_warnings[1][2]=cthunFrame1_InputBox01:GetText() end if (cthunFrame1_InputBox02:GetText()) then cthun_warnings[1][3]=cthunFrame1_InputBox02:GetText() end if (cthunFrame1_InputBox10:GetText()) then cthun_warnings[2][1]=cthunFrame1_InputBox10:GetText() end if (cthunFrame1_InputBox11:GetText()) then cthun_warnings[2][2]=cthunFrame1_InputBox11:GetText() end if (cthunFrame1_InputBox12:GetText()) then cthun_warnings[2][3]=cthunFrame1_InputBox12:GetText() end if (cthunFrame1_InputBox10:GetText()) then cthun_warnings[3][1]=cthunFrame1_InputBox10:GetText() end if (cthunFrame1_InputBox11:GetText()) then cthun_warnings[3][2]=cthunFrame1_InputBox11:GetText() end if (cthunFrame1_InputBox12:GetText()) then cthun_warnings[3][3]=cthunFrame1_InputBox12:GetText() end if (cthunFrame1_InputBox10:GetText()) then cthun_warnings[4][1]=cthunFrame1_InputBox10:GetText() end if (cthunFrame1_InputBox11:GetText()) then cthun_warnings[4][2]=cthunFrame1_InputBox11:GetText() end if (cthunFrame1_InputBox12:GetText()) then cthun_warnings[4][3]=cthunFrame1_InputBox12:GetText() end if (cthunFrame1_InputBox10:GetText()) then cthun_warnings[5][1]=cthunFrame1_InputBox10:GetText() end if (cthunFrame1_InputBox11:GetText()) then cthun_warnings[5][2]=cthunFrame1_InputBox11:GetText() end if (cthunFrame1_InputBox12:GetText()) then cthun_warnings[5][3]=cthunFrame1_InputBox12:GetText() end if (cthunFrame1_OnCombatCheckButton:GetChecked()) then if (cthunFrame1_OnCombatCheckButton:GetChecked()==1) then cthun_startOnCombat = "ON" Chat.console("saved autostart on combat On") else cthun_startOnCombat = "OFF" Chat.console("saved autostart on combat Off") end end Chat.console("saved text/delay/cycle: "..cthun_warnings[1][1].."/"..cthun_warnings[1][2].."/"..cthun_warnings[1][3]) Chat.console("saved text/delay/cycle: "..cthun_warnings[2][1].."/"..cthun_warnings[2][2].."/"..cthun_warnings[2][3]) Chat.console("saved text/delay/cycle: "..cthun_warnings[3][1].."/"..cthun_warnings[3][2].."/"..cthun_warnings[3][3]) Chat.console("saved text/delay/cycle: "..cthun_warnings[4][1].."/"..cthun_warnings[4][2].."/"..cthun_warnings[4][3]) Chat.console("saved text/delay/cycle: "..cthun_warnings[5][1].."/"..cthun_warnings[5][2].."/"..cthun_warnings[5][3]) end } -- ============================================================================= Chat = { -- displays msg in console console = function(msg) if (msg==nil) then msg = "nil" end if(DEFAULT_CHAT_FRAME) then DEFAULT_CHAT_FRAME:AddMessage(Time.cthun_getTimeHMS()..": "..msg, 0.0, 1.0, 0.0, 1.0); end end, -- displays msg in error frame error = function(msg) if(UIErrorsFrame) then UIErrorsFrame:AddMessage(text, 1.0, 1.0, 0, 1, 10) end end, -- displays msg in raid channel raid = function(msg) SendChatMessage(msg, "RAID"); end, -- displays msg in addon frame frame = function(msg) empsFrame:AddMessage(msg, 1, 1, 1, 1, 3); end } -- ============================================================================= Time = { -- return the current month+day+hour+sec in seconds cthun_getTime = function () local strtime = date("%m%d%H%M%S") local time = tonumber(string.sub(strtime,1,2)) * 2592000 -- month time = time + tonumber(string.sub(strtime,3,4)) * 86400 -- day time = time + tonumber(string.sub(strtime,5,6)) * 3600 -- hour time = time + tonumber(string.sub(strtime,7,8)) * 60 -- minute time = time + tonumber(string.sub(strtime,9,10)) --second return time; end, -- return the current month+day+hour+sec in seconds cthun_getTimeHMS = function () local strtime = date("%H:%M:%S") return string.sub(strtime,1,8); end } -- ============================================================================= function cthun_OnLoad() DEFAULT_CHAT_FRAME:AddMessage("CTHUN LOADED", 0.0, 1.0, 0.0, 1.0); SLASH_cthun1 = "/cthun"; SlashCmdList["cthun"] = function(msg) cthun_SlashCommandHandler(msg); end if (cthun_startOnCombat == "ON") then Chat.console("Start in combat is ON") cthun_Register() elseif (cthun_startOnCombat == "OFF") then Chat.console("Start in combat is OFF") cthun_Unregister() end end -- "/c config" toggle the visibility of the frame function cthun_SlashCommandHandler(msg) if (msg == "") then UI.cthun_Toggle(1) elseif (msg == "print") then Schedule.print() elseif (msg == "start") then Schedule.start() elseif (msg == "stop") then Schedule.stop() elseif (msg == "time") then Chat.console(Time.cthun_getTime()) end end -- ============================================================================= function cthun_OnEvent(event) if (event == "PLAYER_REGEN_DISABLED") then Schedule.start() end --if (event == "PLAYER_REGEN_ENABLED") then -- Schedule.stop() --end end function cthun_Register() cthunFrame:RegisterEvent("PLAYER_REGEN_ENABLED"); cthunFrame:RegisterEvent("PLAYER_REGEN_DISABLED") end function cthun_Unregister() cthunFrame:UnregisterEvent("PLAYER_REGEN_ENABLED"); cthunFrame:UnregisterEvent("PLAYER_REGEN_DISABLED") end