local whi = 0; local par = 0; local gui = 0; local ontime = 0; local location = GetLocation() -- Variablen setzen function kAFK_LoadVariables() SaveVariables("kAFKSettings"); local kAFKDefaultSettings = { ["BGUILD"] = false, ["BPARTY"] = false, ["BZONE"] = false, ["KAFKMES"] = "", ["BINIMODE"] = false, ["KAFKMES"] = "Ich bin gerade AFK", ["MESP1"] = "", ["MESP2"] = "", ["KAFKKEYWORD1"] = "", ["KAFKSOUND"] = false, ["KAFKKEYWORD"] = false, ["KAFKCLOCK1"] = true, ["AUTOPOST"] = false, ["AUTOPOSTGUILD"] = false, ["AUTOPOSTGROUP"] = false, ["AUTOMESSAGE1"] = "Bin AFK", ["AUTOMESSAGE2"] = "Bin wieder Zur\195\188ck", ["FONTSIZESLIDER"] = 12 }; if (kAFKSettings == nil) then kAFKSettings = kAFKDefaultSettings; else for k,v in pairs(kAFKDefaultSettings) do if (kAFKSettings[k] == nil) then kAFKSettings[k] = v; end end DEFAULT_CHAT_FRAME:AddMessage("|cffffff00kAFK|r |cfff41818: Einstellungen konnten nicht geladen werden - Lade Standarteinstellungen... "); end end function setChecked(o, value) if value == false then o:SetChecked(nil); else o:SetChecked(1); end end function getIsChecked(o) if o:IsChecked() then return true; else return false; end end -- Einstellungen speichern function kAFKConfigSave() kAFKSettings["KAFKMES"]=AwayMessage:GetText(); kAFKSettings["BGUILD"]=checkguild:IsChecked(); kAFKSettings["BPARTY"]=checkparty:IsChecked(); kAFKSettings["BZONE"]=checkzone:IsChecked(); kAFKSettings["BINIMODE"]=checkinimode:IsChecked(); kAFKSettings["KAFKMES"]=AwayMessage:GetText(); kAFKSettings["MESP1"]=AwayMessageP1:GetText(); kAFKSettings["MESP2"]=AwayMessageP2:GetText(); kAFKSettings["KAFKKEYWORD1"]=Keyword1:GetText(); kAFKSettings["KAFKSOUND"]=playsoundfile:IsChecked(); kAFKSettings["KAFKKEYWORD"]=keywordcheck:IsChecked(); kAFKSettings["KAFKCLOCK1"]=clockcheck:IsChecked(); kAFKSettings["AUTOPOST"]=checkautopost:IsChecked(); kAFKSettings["AUTOPOSTGUILD"]=checkautopostguild:IsChecked(); kAFKSettings["AUTOPOSTGROUP"]=checkautopostgroup:IsChecked(); kAFKSettings["AUTOMESSAGE1"]=autoafk1:GetText(); kAFKSettings["AUTOMESSAGE2"]=autoafk2:GetText(); kAFKSettings["FONTSIZESLIDER"]=kAFKFontSize:GetValue(); end -- Sprachdatei laden function kAFK_LoadFile(filename) local func, err = loadfile(filename) if err then return false, err end dofile(filename) return true end if kAFK_LoadFile("Interface/Addons/kAFK/Locales/TEXTS.lua") then end -- Slash-Commands SLASH_AFK1 = "/awayfromkeyboard"; SLASH_AFK2 = "/afk"; SlashCmdList["AFK"] = function (editBox, msg) goAFK() end; -- OnLoad function kAFK_OnLoad(this) this:RegisterEvent("CHAT_MSG_WHISPER"); this:RegisterEvent("CHAT_MSG_GUILD"); this:RegisterEvent("CHAT_MSG_PARTY"); this:RegisterEvent("CHAT_MSG_ZONE"); this:RegisterEvent("ZONE_CHANGED"); this:RegisterForClicks("LeftButton"); this:RegisterForClicks("RightButton"); DEFAULT_CHAT_FRAME:AddMessage(KAFK_LOADED); kAFKFrame:Hide(); OWNNAME = ""; IMAMAFK = 0; end; function kAFKAutoPost_OnEvent(this, event) if (IMAMAFK == 1 and checkautopost:IsChecked() == true and checkautopostguild:IsChecked() == true) then SendChatMessage(autoafk1:GetText(), "GUILD"); end; if (IMAMAFK == 1 and checkautopost:IsChecked() == true and checkautopostgroup:IsChecked() == true) then SendChatMessage(autoafk1:GetText(), "PARTY"); end; end; function kAFKAutoPostExit_OnEvent(this, event) if (checkautopost:IsChecked() == true and checkautopostguild:IsChecked() == true) then SendChatMessage(autoafk2:GetText(), "GUILD"); end; if (checkautopost:IsChecked() == true and checkautopostgroup:IsChecked() == true) then SendChatMessage(autoafk2:GetText(), "PARTY"); end; end; function kAFK_OnEvent(this, event) end; -- Ini Modus function kAFKIni_OnEvent(event) if (event == "ZONE_CHANGED" and IMAMAFK == 0 and checkinimode:IsChecked() == true) then if GetZoneName() == "Verlassene Abtei" or GetZoneName() == "Gr\195\164berstadt der Spiegel" or GetZoneName() == "Mystischer Altar" or GetZoneName() == "Schrein von Pasper" or GetZoneName() == "Schrein von Kalin" or GetZoneName() == "Schatzh\195\182hle" or GetZoneName() == "Karge H\195\182hlen" or GetZoneName() == "Ruinen des Eiszwergenkönigreiches" or GetZoneName() == "Herz des Ozeans" or GetZoneName() == "Ursprung" or GetZoneName() == "Halle der \195\156berlebenden" or GetZoneName() == "H\195\182hle der Zyklopen" or GetZoneName() == "Windmühlenkeller" or GetZoneName() == "Arkane Kammer des Sathkur" or GetZoneName() == "Blutige Galerie" or GetZoneName() == "Zurhidonfeste" then goAFK(); kAFKMini:Show(); kAFKFrame:Hide(); end end end; function goAFK() if (IMAMAFK == 0) then IMAMAFK = 1; DEFAULT_CHAT_FRAME:AddMessage(KAFK_ACTIVE, 0.8, 0.5, 0.3); kAFKFrame:Show(); messageframe:Show(); whi = 0; par = 0; gui = 0; kAFKWhispers_Text:SetText(KAFK_INCOMING); kAFKpar_Text:SetText(KAFK_PAR); kAFKgui_Text:SetText(KAFK_GUI); kAFKwhicount_Text:SetText("|cff99E500"..whi.."|r"); kAFKparcount_Text:SetText("|cff99E500"..par.."|r"); kAFKguicount_Text:SetText("|cff99E500"..gui.."|r"); AwayMessage:SetText(kAFKSettings["KAFKMES"]); checkinimode:SetChecked(kAFKSettings["BINIMODE"]); checkguild:SetChecked(kAFKSettings["BGUILD"]); checkparty:SetChecked(kAFKSettings["BPARTY"]); checkzone:SetChecked(kAFKSettings["BZONE"]); checkinimode:SetChecked(kAFKSettings["BINIMODE"]); checkinimode:SetChecked(kAFKSettings["BINIMODE"]); AwayMessageP1:SetText(kAFKSettings["MESP1"]); AwayMessageP2:SetText(kAFKSettings["MESP2"]); Keyword1:SetText(kAFKSettings["KAFKKEYWORD1"]); playsoundfile:SetChecked(kAFKSettings["KAFKSOUND"]); keywordcheck:SetChecked(kAFKSettings["KAFKKEYWORD"]); clockcheck:SetChecked(kAFKSettings["KAFKCLOCK1"]); checkautopost:SetChecked(kAFKSettings["AUTOPOST"]); checkautopostguild:SetChecked(kAFKSettings["AUTOPOSTGUILD"]); checkautopostgroup:SetChecked(kAFKSettings["AUTOPOSTGROUP"]); autoafk1:SetText(kAFKSettings["AUTOMESSAGE1"]); autoafk2:SetText(kAFKSettings["AUTOMESSAGE2"]); kAFKFontSize:SetValueStepMode("INT"); kAFKFontSize:SetMinMaxValues(8, 16); kAFKFontSize:SetValue(kAFKSettings["FONTSIZESLIDER"]); kAFKButton:Show(); ontime = GetTime(); kAFK_Afk_since_c:SetText("|cff99E500"..os.date("%H:%M").."|r"); FCF_SetWindowAlpha(messageframe, 0, false); FCF_SetWindowColor(messageframe, 0.3, 0.3, 0.3, 1); FCF_SetWindowAlpha(messageframeWhisper, 0, false); FCF_SetWindowColor(messageframeWhisper, 0.3, 0.3, 0.3, 1); FCF_SetWindowAlpha(messageframeGruppe, 0, false); FCF_SetWindowColor(messageframeGruppe, 0.3, 0.3, 0.3, 1); FCF_SetWindowAlpha(messageframeGuild, 0, false); FCF_SetWindowColor(messageframeGuild, 0.3, 0.3, 0.3, 1); kAFK_Chat_Allgemein:SetAlpha(0.8); kAFK_Chat_Whisper:SetAlpha(0.4); kAFK_Chat_Guild:SetAlpha(0.4); kAFK_Chat_Gruppe:SetAlpha(0.4); kAFKAutoPost_OnEvent(this, event); else kAFKAutoPostExit_OnEvent(this, event); IMAMAFK = 0; kafkcount(); DEFAULT_CHAT_FRAME:AddMessage(KAFK_INACTIVE, 0.8, 0.5, 0.3); DEFAULT_CHAT_FRAME:AddMessage(KAFK_CHAT_TIMEAFK..sincetime, 0.8, 0.5, 0.3); kAFKFrame:Hide(); kAFKFrameConfig:Hide(); messageframe:ClearText(); messageframeWhisper:ClearText(); messageframeGuild:ClearText(); messageframeGruppe:ClearText(); end; end; function kAFK1_OnEvent(this, event) if (event == "CHAT_MSG_WHISPER") then whi = whi + 1; kAFKWhispers_Text:SetText(KAFK_INCOMING); kAFKpar_Text:SetText(KAFK_PAR); kAFKgui_Text:SetText(KAFK_GUI); kAFKwhicount_Text:SetText("|cff99E500"..whi.."|r"); end; end; function kAFK2_OnEvent(event, arg1, arg2, arg3, arg4) if (event == "CHAT_MSG_WHISPER" and IMAMAFK == 1 ) then messageframe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0.92, 0.47, 0.86); messageframeWhisper:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0.92, 0.47, 0.86); end; if (event == "CHAT_MSG_WHISPER" and IMAMAFK == 1 and playsoundfile:IsChecked() == true ) then PlaySoundByPath("Interface/Addons/kAFK/Sound/notify.wav"); end; end; function KAFKNAMECHECK_OnEvent(event) kafk_key1 = Keyword1:GetText(); if OWNNAME == "" and UnitName("player") ~= nil then OWNNAME = UnitName("player") end msg = AwayMessage:GetText(); if OWNNAME ~= "" and (event == "CHAT_MSG_GUILD" or event == "CHAT_MSG_PARTY") then CheckName = string.find(string.lower(arg1), string.lower(OWNNAME)); CheckName2 = string.find(string.lower(arg1), string.lower(kafk_key1)); end if (event == "CHAT_MSG_GUILD" and CheckName ~= nil and IMAMAFK == 1 and checkguild:IsChecked() == true ) then messageframe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0.25,1,0.25); messageframeGuild:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0.25,1,0.25); SendChatMessage(msg, "GUILD"); gui = gui + 1; kAFKguicount_Text:SetText("|cff99E500"..gui.."|r"); end; if (event == "CHAT_MSG_GUILD" and CheckName2 ~= nil and IMAMAFK == 1 and checkguild:IsChecked() and keywordcheck:IsChecked() == true ) then messageframe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0.25,1,0.25); messageframeGuild:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0.25,1,0.25); SendChatMessage(msg, "GUILD"); gui = gui + 1; kAFKguicount_Text:SetText("|cff99E500"..gui.."|r"); end; if (event == "CHAT_MSG_PARTY" and CheckName ~= nil and IMAMAFK == 1 and checkparty:IsChecked() == true) then messageframe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0,0.75,0.95); messageframeGruppe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0,0.75,0.95); SendChatMessage(msg, "PARTY"); par = par + 1; kAFKparcount_Text:SetText("|cff99E500"..par.."|r"); end; if (event == "CHAT_MSG_PARTY" and CheckName2 ~= nil and IMAMAFK == 1 and checkparty:IsChecked() and keywordcheck:IsChecked() == true ) then messageframe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0,0.75,0.95); messageframeGruppe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0,0.75,0.95); SendChatMessage(msg, "PARTY"); par = par + 1; kAFKparcount_Text:SetText("|cff99E500"..par.."|r"); end; if (event == "CHAT_MSG_ZONE" and CheckName ~= nil and IMAMAFK == 1 and checkzone:IsChecked() == true) then messageframe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0,0.75,0.95); messageframeGruppe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0,0.75,0.95); SendChatMessage(msg, "ZONE"); end; if (event == "CHAT_MSG_ZONE" and CheckName2 ~= nil and IMAMAFK == 1 and checkzone:IsChecked() and keywordcheck:IsChecked() == true ) then messageframe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0,0.75,0.95); messageframeGruppe:AddMessage(os.date("|cffffffff%H:%M:%S|r ")..arg2.." "..arg1,0,0.75,0.95); SendChatMessage(msg, "ZONE"); end; if (event == "CHAT_MSG_PARTY" and arg1 == kafk_key1 and IMAMAFK == 1 and checkparty:IsChecked() and keywordcheck:IsChecked() and playsoundfile:IsChecked() == true ) then PlaySoundByPath("Interface/Addons/kAFK/Sound/notify.wav"); end; if (event == "CHAT_MSG_PARTY" and CheckName ~= nil and IMAMAFK == 1 and checkparty:IsChecked() == true and playsoundfile:IsChecked() == true ) then PlaySoundByPath("Interface/Addons/kAFK/Sound/notify.wav"); end; if (event == "CHAT_MSG_GUILD" and arg1 == kafk_key1 and IMAMAFK == 1 and checkguild:IsChecked() and keywordcheck:IsChecked() and playsoundfile:IsChecked() == true ) then PlaySoundByPath("Interface/Addons/kAFK/Sound/notify.wav"); end; if (event == "CHAT_MSG_GUILD" and CheckName ~= nil and IMAMAFK == 1 and checkguild:IsChecked() == true and playsoundfile:IsChecked() == true ) then PlaySoundByPath("Interface/Addons/kAFK/Sound/notify.wav"); end; if (event == "CHAT_MSG_ZONE" and arg1 == kafk_key1 and IMAMAFK == 1 and checkzone:IsChecked() and keywordcheck:IsChecked() and playsoundfile:IsChecked() == true ) then PlaySoundByPath("Interface/Addons/kAFK/Sound/notify.wav"); end; if (event == "CHAT_MSG_ZONE" and CheckName ~= nil and IMAMAFK == 1 and checkzone:IsChecked() == true and playsoundfile:IsChecked() == true ) then PlaySoundByPath("Interface/Addons/kAFK/Sound/notify.wav"); end; end; -- DND Mode function kafkdnd_OnVarLoad(this) this:ClearAllAnchors(); if not K_X or not K_Y then this:SetAnchor("CENTER", "CENTER", "UIParent", 0, 0); else local scale = GetUIScale(); this:SetAnchor("TOPLEFT", "TOPLEFT", "UIParent", K_X / scale, K_Y / scale); end end function kafkdnd_MoveEnd() kAFKMini:StopMovingOrSizing(); K_X, K_Y = kAFKMini:GetPos(); end -- Zeitzaehler function kafkcount() local ElapsedTime = GetTime() - ontime; local hours = math.floor(ElapsedTime / 3600); local minutes = ((ElapsedTime - (hours * 3600)) / 60); local afktime = string.format("%02d:%02d",hours,minutes); sincetime = afktime; kAFKAfkTimeTimer:SetText("|cff99E500"..afktime.."|r"); panelafklength:SetText("|cff99E500"..afktime.."|r"); end -- MiniMap Button function kAFKMiniButton() PlaySoundByPath("sound\\interface\\ui_generic_click.mp3"); goAFK(); messageframe:ClearText(); messageframeWhisper:ClearText(); messageframeGuild:ClearText(); messageframeGruppe:ClearText(); kAFKConfirm:Hide(); end