-- /////////////////////////////////////////////////////////////////////////////////////////// -- -- WatchTower: Developed for use in Realm Defense. WatchTower allows you to automatically announce to the area all -- pertinant information about the invaders. Simply click on the invader and use your hot key to Report -- enemy. Information included in your message will be Faction, Race, Level, and Current Subzone they are in. -- Or, you may use your multiple reporting hotkey, -- mouseover all enemies you wish to report, and then hit the hotkey again to report multiple enemies at once. -- -- Official Site: www.grimeygames.com/wow -- -- Current Team Members: Clangadin, Sancho, Aragent, Nathanmx -- -- Contributions: Rowne's Variable Saves/Loads and GUI Detection. -- Sancho's multiple enemy reporting code. -- Jhax's PvP enabled/disabled report fix. -- Torgo's AlarmSystem code (and voozoodoo for helping rip some) -- -- License: You are hereby authorized to freely modify and/or distribute all files of this add-on, in whole or in part, -- providing that this header stays intact, and that you do not claim ownership of this Add-on. -- -- Additionally, the original owner wishes to be notified by email if you make any improvements to this add-on. -- Any positive alterations will be added to a future release, and any contributing authors will be -- identified in the section above. Contact at fcarentz@grimeygames.com -- -- Features: -- v1.7 - Added Cosmos (Khaos) and UUI compatibility -- Added tons of various fixes and changes -- v1.6 - Additions by Sancho: Changed addon to use UnitLevel() appropriately (changed by blizzard -- to return -1 when the enemy is 10 levels above you). Added Verbose and Debug Modes. Added -- output options for single enemy reporting. Added Player Name/Guild info to output options. -- Coordinate functionality taken from AlarmSystem, thanks to Torgo, the author, and voozoodoo -- for ripping it. -- 1.6 Bug Fixes (Sancho) -- -Removed Heading functionality (UnitFacing() taken out by blizzard) -- -Fixed typo that was messing up raid channel reporting -- -Fix by Jhax: Now reports pvp enabled/disabled correctly -- v1.5 - Additions by Sancho: Multiple enemy reporting, Raid channel broadcasting -- 1.5 Bug Fixes (Sancho) -- -Fixed faction auto-detection (hopefully) and removed from saved variable list -- -Fixed language auto-detection (hopefully) and removed from saved variable list -- v1.4 - Added detection for GUI to show saved settings. Added Rownes Variable saves and GUI detection. -- 1.4 Bug Fixes -- - Auto Language detection to determine what language the message should be sent in. -- - Removed bug causing error on NPC Targeting. Will now display message that player can only -- target players of the selected enemy faction. -- -- v1.3 - Added GUI interface...and options to send message to Party, Guild and Local Def. -- added Simple slash commands. -- v1.2 - Corrected Autofaction code. Added Message notification of Enemy Faction, also added -- message telling user if Target is currently PVP enabled or not. -- v1.1 - Removed the Player Set variable of WTChannel to allow program to post to Local Defense. -- Added autodetect for faction on load of Watch Tower. WatchTower will now automatically -- set your enemy faction to the opposite of that which you are playing. -- -- v1.0 - Sends message containing targets Faction, Race, Level, Subzone and Heading (Compass Style) -- -- /////////////////////////////////////////////////////////////////////////////////////////// ----------------------------------------------------------------------------------------------------------- --DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING-- ----------------------------------------------------------------------------------------------------------- BINDING_HEADER_WATCHTOWER = "Watch Tower"; BINDING_NAME_WT_OPTIONS = "Options"; BINDING_NAME_WT_VERBOSE = "Toggle Verbose Mode"; BINDING_NAME_WT_DEBUG = "Toggle Debug Mode"; BINDING_NAME_WT_REPORT = "Report Enemy"; BINDING_NAME_WT_REPORT_GANK = "Report Low-Level Player Killer"; BINDING_NAME_WT_TOGGLE = "Toggle Watch Tower"; BINDING_NAME_WT_FACTION = "Switch Faction Enemy (For Testing Purposes)"; BINDING_NAME_WT_REPORT_MULTIPLE = "Report Multiple Enemies With Mouseover"; WATCHTOWERTITLE = "The Watch Tower"; WATCHTOWEROUTPUTTITLE = "Select Reporting Options"; WT_REPORT_PVP = "PvP Status"; WT_REPORT_FACTION = "Faction"; WT_REPORT_GUILD = "Guild"; WT_REPORT_NAME = "Name"; WT_REPORT_RACE = "Race"; WT_REPORT_CLASS = "Class"; WT_REPORT_LEVEL = "Level"; WT_REPORT_LOCATION = "Location"; WT_REPORT_COORDINATES = "Coordinates"; WT_CUSTOM_CHANNEL = "Custom Channel: "; WT_PARTY = "Send To Party"; WT_RAID = "Send To Raid"; WT_GUILD = "Send To Guild"; WT_DEFENSE = "Local Defense"; FactionSetTo = ""; WT_Language= ""; local GankReport = false; local HasCheckedFaction = false; local PlayerCollectionEnabled = false; local ReportOwnFaction = false; local ReportPvPOnly = false; local ClassOrder = {"Warrior", "Paladin", "Priest", "Hunter", "Rogue", "Shaman", "Mage", "Warlock", "Druid"}; local NumOfPlayers = 0; local PlayerNames = { "" }; local PlayerLevels = { }; local SortedPlayerLevels = { }; local AverageLevel = 0; local PlayerClasses = { }; local SortedPlayerClasses = { }; local PlayerRaces = { }; local SortedPlayerRaces = { }; local PlayerClassCounts = {0, 0, 0, 0, 0, 0, 0, 0, 0}; -- support for Cosmos function WatchTower_Register_Khaos() local optionSet = { id="WatchTower"; text=WatchTower_CONFIG_HEADER; helptext=WatchTower_CONFIG_HEADER_INFO; difficulty=1; options={ { id="Header"; text=WATCHTOWER_CONFIG_HEADER; helptext=WATCHTOWER_CONFIG_HEADER_INFO; type=K_HEADER; difficulty=1; }; { id="WatchTowerEnable"; type=K_TEXT; text=WATCHTOWER_ENABLED; helptext=WATCHTOWER_ENABLED_INFO; callback=function(state) if (state.checked) then WatchTower_Enabled = true; else WatchTower_Enabled = false; end end; feedback=function(state) return WATCHTOWER_ENABLED_INFO; end; check=true; default={checked=true}; disabled={checked=false}; }; }; }; Khaos.registerOptionSet( "Comm", optionSet ); end function WT_OnEvent() -- Register command handler and new commands SlashCmdList["WatchTowerCOMMAND"] = WTStatusSlashHandler; SLASH_WatchTowerCOMMAND1 = "/watchtower"; SLASH_WatchTowerCOMMAND2 = "/wt"; if (event == "VARIABLES_LOADED") then if (WatchTowerEnabled == nil) then WatchTowerEnabled = true; end if (WatchTower_SendParty == nil or WatchTower_SendLocal == nil or WatchTower_SendGuild == nil or WatchTower_SendRaid == nil or WatchTower_ReportPvP == nil or WatchTower_ReportFaction == nil or WatchTower_ReportGuild == nil or WatchTower_ReportName == nil or WatchTower_ReportRace == nil or WatchTower_ReportClass == nil or WatchTower_ReportLevel == nil or WatchTower_ReportLocation == nil or WatchTower_ReportCoordinates == nil) then --or WatchTower_CustomChannel == nil) then if (WatchTower_SendParty == nil) then WatchTower_SendParty = false; end if (WatchTower_SendRaid == nil) then WatchTower_SendRaid = false; end if (WatchTower_SendGuild == nil) then WatchTower_SendGuild = false; end if (WatchTower_SendLocal == nil) then WatchTower_SendLocal = false; end if (WatchTower_ReportPvP == nil) then WatchTower_ReportPvP = false; end if (WatchTower_ReportFaction == nil) then WatchTower_ReportFaction = true; end if (WatchTower_ReportGuild == nil) then WatchTower_ReportGuild = false; end if (WatchTower_ReportName == nil) then WatchTower_ReportName = false; end if (WatchTower_ReportRace == nil) then WatchTower_ReportRace = false; end if (WatchTower_ReportClass == nil) then WatchTower_ReportClass = true; end if (WatchTower_ReportLevel == nil) then WatchTower_ReportLevel = true; end if (WatchTower_ReportLocation == nil) then WatchTower_ReportLocation = true; end if (WatchTower_ReportCoordinates == nil) then WatchTower_ReportCoordinates = true; end --if (WatchTower_CustomChannel == nil) then -- WatchTower_CustomChannel = ""; --end --ShowUIPanel(WT_FrameTemplate); end if (WatchTower_Verbose == nil) then WatchTower_Verbose = true; end if (WatchTower_Debug == nil) then WatchTower_Debug = false; end --Let the player know that WatchTower has Loaded. -- WatchTowerStatusChatMsg("WatchTower loaded. Type /wt to display options."); -- WatchTowerStatusChatMsg("Remember to set up your Key Bindings."); WT_SetCheckBox(); end if(PlayerCollectionEnabled and WatchTowerEnabled and event == "UPDATE_MOUSEOVER_UNIT" and UnitExists("mouseover")) then TargetUnit("mouseover"); WatchTowerDebugChatMsg("UNIT SELECTED", 0, 0, 1); --if (UnitFactionGroup("target") == FactionSetTo and UnitPlayerControlled("target") and UnitIsPlayer("target") and (UnitIsPVP("target") or not ReportPvPOnly)) then -------------------------------------------------------------------------------------------------------- -- Comment the above line and uncomment the 2 commented blocks below to give extra debugging | -------------------------------------------------------------------------------------------------------- if (UnitFactionGroup("target") == FactionSetTo) then WatchTowerDebugChatMsg("IN " .. string.upper(FactionSetTo), 0, 0, 1); if (UnitPlayerControlled("target")) then WatchTowerDebugChatMsg("PLAYERCONTROLLED", 0, 0, 1); if (UnitIsPlayer("target")) then WatchTowerDebugChatMsg("NOT A PET", 0, 0, 1); if(UnitIsPVP("target") or not ReportPvPOnly) then if(UnitIsPVP("target")) then WatchTowerDebugChatMsg("IS PVP", 0, 0, 1); end -------------------------------------------------------------------------------------------------------- local tempname = UnitName("target"); local isNew = true; for i=1, NumOfPlayers + 1 do if (PlayerNames[i] == tempname) then isNew = false; end end if(isNew) then Sancho_AddPlayer(); else WatchTowerVerboseChatMsg("PLAYER ALREADY ADDED"); end -------------------------------------------------------------------------------------------------------- else WatchTowerDebugChatMsg("IS NOT PVP", 1, 0, 0); end else WatchTowerDebugChatMsg("IS A PET", 1, 0, 0); end else WatchTowerDebugChatMsg("NOT PLAYERCONTROLLED", 1, 0, 0); end else WatchTowerDebugChatMsg("NOT IN " .. string.upper(FactionSetTo), 1, 0, 0); -------------------------------------------------------------------------------------------------------- end end --if(event == "WORLD_MAP_UPDATE") then -- WT_draw(); --end --if(event == "CHAT_MSG") then -- WatchTowerStatusChatMsg(message); --end end function WT_OnLoad() this:RegisterEvent("UPDATE_MOUSEOVER_UNIT"); this:RegisterEvent("VARIABLES_LOADED"); if (Khaos) then WatchTower_Register_Khaos(); end SLASH_WATCHTOWER1 = "/watchtower"; SLASH_WATCHTOWER2 = "/wt"; SlashCmdList["WATCHTOWER"] = WatchTower_ShowUI; --[[ if ( UltimateUI_RegisterButton ) then UltimateUI_RegisterButton ( "Watch Tower", "Config", "|cFF00CC00Watch Tower|r\nAllows you to report information \nabout enemy targets in various chat channels", "Interface\\Icons\\Ability_Seal", ShowUIPanel(WT_FrameTemplate), function() return true; -- The button is enabled end ); end ]] end --Executed by the user via a script, slash command, or bindable key function Sancho_ReportToggle() if(PlayerCollectionEnabled == false) then PlayerCollectionEnabled = true; if(HasCheckedFaction == false) then SetFaction(UnitFactionGroup("player")); HasCheckedFaction = true; end WatchTowerVerboseChatMsg("WatchTower player collection enabled"); WatchTowerDebugChatMsg("Reporting " .. FactionSetTo .. " enemies", 1, 1, 1); if(ReportPvPOnly) then WatchTowerVerboseChatMsg("Reporting only PvP players"); else WatchTowerVerboseChatMsg("Reporting PvP and non-PvP players"); end else PlayerCollectionEnabled = false; Sancho_PrintData(); Sancho_ClearData(); end end --Function assumes that an enemy unit is selected which is not already in the tables function Sancho_AddPlayer() NumOfPlayers = NumOfPlayers + 1; PlayerNames[NumOfPlayers] = UnitName("target"); PlayerClasses[NumOfPlayers] = UnitClass("target"); PlayerLevels[NumOfPlayers] = UnitLevel("target"); PlayerRaces[NumOfPlayers] = UnitRace("target"); --Was for debugging, but keeping it until a better way is developed of telling the --user which players have already been added (i.e. highlighting the added players somehow) WatchTowerVerboseChatMsg("Added (" .. NumOfPlayers .. " Players)"); end --Prints results, will only be done after data collection has been stopped function Sancho_PrintData() if(NumOfPlayers ~= 0) then Sancho_ClassBreakdown(); Sancho_SortLevels(); end local tMessage = ""; -- From AlarmSystem, by Torgo, ripped with permission -- thanks voozoodoo for ripping! xME, yME = GetPlayerMapPosition("player"); xME = math.floor(xME*100.0); yME = math.floor(yME*100.0); if(not ReportPvPOnly) then tMessage = tMessage .. "WatchTower: " .. NumOfPlayers .. " " .. FactionSetTo .. " attacking " .. GetMinimapZoneText(); else tMessage = tMessage .. "WatchTower: " .. NumOfPlayers .. " PvP enabled " .. FactionSetTo .. " attacking " .. GetMinimapZoneText(); end if ((xME > 0) or (yME > 0)) then tMessage = tMessage.." at ("..xME..","..yME..")! "; else tMessage = tMessage.."! "; end if(NumOfPlayers > 50) then Sancho_CalculateAverage(); if(SortedPlayerLevels[NumOfPlayers] == -1) then tMessage = tMessage .. "Lowest level: " .. SortedPlayerLevels[1] .. " Highest level: " .. UnitLevel("player") + 10 .. "+ Average level of known players: " .. string.format("%.1f", AverageLevel); else tMessage = tMessage .. "Lowest level: " .. SortedPlayerLevels[1] .. " Highest level: " .. SortedPlayerLevels[NumOfPlayers] .. " Average level of known players: " .. string.format("%.1f", AverageLevel); end elseif(NumOfPlayers > 20) then tMessage = tMessage .. "lvls: "; for i=1, NumOfPlayers do if(SortedPlayerLevels[i] == -1) then tMessage = tMessage .. UnitLevel("player") + 10 .. "+ "; else tMessage = tMessage .. SortedPlayerLevels[i] .. " "; end end elseif(NumOfPlayers > 10) then local temporarycounter = 0; --< 1) then tMessage = tMessage .. "s"; end temporarycounter = temporarycounter + PlayerClassCounts[i]; if(temporarycounter < NumOfPlayers) then tMessage = tMessage .. ", "; end end end tMessage = tMessage .. " - lvls: "; for i=1, NumOfPlayers do if(SortedPlayerLevels[i] == -1) then tMessage = tMessage .. UnitLevel("player") + 10 .. "+ "; else tMessage = tMessage .. SortedPlayerLevels[i] .. " "; end end elseif(NumOfPlayers > 5) then for i=1, NumOfPlayers do if(SortedPlayerLevels[i] == -1) then tMessage = tMessage .. "lvl " .. UnitLevel("player") + 10 .. "+ " .. SortedPlayerClasses[i]; else tMessage = tMessage .. "lvl " .. SortedPlayerLevels[i] .. " " .. SortedPlayerClasses[i]; end if(i < NumOfPlayers) then tMessage = tMessage .. ", "; end end elseif(NumOfPlayers > 0) then for i=1, NumOfPlayers do if(SortedPlayerLevels[i] == -1) then tMessage = tMessage .. "Level " .. UnitLevel("player") + 10 .. "+ " .. SortedPlayerRaces[i] .. " " .. SortedPlayerClasses[i]; else tMessage = tMessage .. "Level " .. SortedPlayerLevels[i] .. " " .. SortedPlayerRaces[i] .. " " .. SortedPlayerClasses[i]; end if(i < NumOfPlayers) then tMessage = tMessage .. ", "; end end else --Just in case end --Actually sends the data to whichever channel is wanted if(NumOfPlayers ~= 0) then if (UnitFactionGroup("player") == "Horde") then WT_Language = "Orcish"; else WT_Language = "Common"; end if (WatchTower_SendLocal == true) then tempArray = { GetMapZones(GetCurrentMapContinent()) }; mapZone = tempArray[GetCurrentMapZone()]; localDef = GetChannelName("LocalDefense - " ..mapZone); SendChatMessage(tMessage ,"CHANNEL", WT_Language, localDef); end if WatchTower_SendGuild == true then SendChatMessage(tMessage ,"Guild"); end if WatchTower_SendParty == true then SendChatMessage(tMessage ,"Party"); end if WatchTower_SendRaid == true then SendChatMessage(tMessage ,"Raid"); end WatchTowerDebugChatMsg(tMessage, 1, 1, 1); else WatchTowerStatusChatMsg("No enemies to report. Is your faction set right? Is PvP only reporting enabled?"); end end --Run after the data is printed .. also sorts classes and races to match up with levels when needed function Sancho_SortLevels() for i=1, NumOfPlayers do for j=1, i do if(SortedPlayerLevels[j] == nil or (SortedPlayerLevels[j] > PlayerLevels[i] and PlayerLevels[i] ~= -1)) then table.insert(SortedPlayerLevels, j, PlayerLevels[i]); table.insert(SortedPlayerClasses, j, PlayerClasses[i]); table.insert(SortedPlayerRaces, j, PlayerRaces[i]); break; end end end end function Sancho_CalculateAverage() local count = 0 for i=1, NumOfPlayers do if(PlayerLevels[i] ~= -1) then AverageLevel = AverageLevel + PlayerLevels[i]; count = count + 1; end end AverageLevel = AverageLevel / count; end --Will make an array with elements based on the number of each class --For example PlayerClasses[1] would equal the number of Warriors (see ClassOrder) function Sancho_ClassBreakdown() for i=1, NumOfPlayers do for j=1, 9 do if(PlayerClasses[i] == ClassOrder[j]) then PlayerClassCounts[j] = PlayerClassCounts[j] + 1; end end end end function Sancho_ClearData() NumOfPlayers = 0; PlayerNames = { "" }; PlayerLevels = { }; SortedPlayerLevels = { }; PlayerClasses = { }; SortedPlayerClasses = { }; PlayerRaces = { }; SortedPlayerRaces = { }; PlayerClassCounts = {0, 0, 0, 0, 0, 0, 0, 0, 0} end function WTReportEnemy() if(HasCheckedFaction == false) then SetFaction(UnitFactionGroup("player")); HasCheckedFaction = true; end if (WatchTowerEnabled == true) then if (UnitFactionGroup("target") == FactionSetTo and UnitPlayerControlled("target") and UnitIsPlayer("target")) then --make sure that the unit is the correct faction --Gather all the needed information about the target local tClass, tLevel, tFaction, tRace, tLoc, tPvP; tName = UnitName("target"); tGuild = GetGuildInfo("target"); if(tGuild == nil) then tGuild = "Unguilded" end tClass = UnitClass("target"); tLevel = UnitLevel("target"); tFaction = UnitFactionGroup("target"); tRace = UnitRace("target"); tLoc = GetMinimapZoneText(); tSubZone = GetSubZoneText(); tMessage = "WatchTower: " if(WatchTower_ReportName and WatchTower_ReportGuild) then if(tGuild == "Unguilded") then tMessage = tMessage .. tName .. " / "; else tMessage = tMessage .. tName .. " of the guild " .. tGuild .. " / "; end elseif(WatchTower_ReportName and not WatchTower_ReportGuild) then tMessage = tMessage .. tName .. " / "; elseif(not WatchTower_ReportName and WatchTower_ReportGuild) then if(tGuild ~= "Unguilded") then tMessage = tMessage .. tGuild .. " guild member / "; end end if (UnitIsPVP("target")) then --fix by Jhax tPvP = "PvP enabled" else tPvP = "PvP disabled" end if(WatchTower_ReportPvP) then tMessage = tMessage .. tPvP .. " "; end if(WatchTower_ReportFaction) then tMessage = tMessage .. tFaction .. " "; end if(WatchTower_ReportRace) then tMessage = tMessage .. tRace .. " "; end if(WatchTower_ReportClass) then tMessage = tMessage .. tClass .. " "; end if(WatchTower_ReportLevel) then if(tLevel ~= -1) then tMessage = tMessage .. "(lvl: " .. tLevel .. ") "; else tMessage = tMessage .. "(lvl: " .. UnitLevel("player") + 10 .. "+)"; end end if(WatchTower_ReportLocation or WatchTower_ReportCoordinates) then tMessage = tMessage .. "last seen "; if(WatchTower_ReportLocation) then tMessage = tMessage .. "in " .. tLoc .. " "; end -- From AlarmSystem, by Torgo, ripped with permission -- thanks voozoodoo for ripping! xME, yME = GetPlayerMapPosition("player"); xME = math.floor(xME*100.0); yME = math.floor(yME*100.0); if ((xME > 0) or (yME > 0)) then if(WatchTower_ReportCoordinates) then tMessage = tMessage .. "at ("..xME..","..yME..") "; end end end if(GankReport == true) then tMessage = tMessage .. "WARNING: This player is ganking low level " .. UnitFactionGroup("player") .. " members!"; end if (UnitFactionGroup("player") == "Horde") then WT_Language = "Orcish"; else WT_Language = "Common"; end if (WatchTower_SendLocal == true) then tempArray = { GetMapZones(GetCurrentMapContinent()) }; mapZone = tempArray[GetCurrentMapZone()]; -- fix the output channel incase mapzone is nil (inside instances and whatnot) -nathanmx if (mapZone) then localDef = GetChannelName("LocalDefense - " .. mapZone); else mapZone = GetMinimapZoneText(); localDef = GetChannelName("LocalDefense - " .. mapZone); end SendChatMessage(tMessage ,"CHANNEL", WT_Language, localDef); end if WatchTower_SendGuild == true then SendChatMessage(tMessage ,"Guild"); end if WatchTower_SendParty == true then SendChatMessage(tMessage ,"Party"); end if WatchTower_SendRaid == true then SendChatMessage(tMessage ,"Raid"); end WatchTowerDebugChatMsg(tMessage, 1, 1, 1); else WatchTowerStatusChatMsg("You can only track player-controlled units of the "..FactionSetTo.." faction."); end end end function ToggleWatchTower() if (WatchTowerEnabled == true) then WatchTowerStatusChatMsg("WatchTower Disabled."); else WatchTowerStatusChatMsg("WatchTower Enabled."); end WatchTowerEnabled = not WatchTowerEnabled; end function WTStatusSlashHandler(msg) if (msg == nil) then msg = ""; end msg = string.lower(msg); local num, offset, command, args = string.find (msg, "(%w+) (%w+)"); if (msg == "verbose") then ToggleVerboseMode(); elseif (msg == "debug") then ToggleDebugMode(); elseif (msg == "options") then ShowUIPanel(WT_FrameTemplate); else WatchTowerStatusChatMsg("/wt options - options menu for channel output and info to report"); WatchTowerStatusChatMsg("/wt verbose - toggles verbose mode"); WatchTowerStatusChatMsg("/wt debug - toggles debug mode"); end end function WatchTowerStatusChatMsg(msg) if( DEFAULT_CHAT_FRAME ) then DEFAULT_CHAT_FRAME:AddMessage(msg); end end function WatchTowerVerboseChatMsg(msg) if( DEFAULT_CHAT_FRAME ) then if(WatchTower_Verbose) then DEFAULT_CHAT_FRAME:AddMessage(msg); end end end function WatchTowerDebugChatMsg(msg, red, green, blue) if( DEFAULT_CHAT_FRAME ) then if(WatchTower_Debug) then DEFAULT_CHAT_FRAME:AddMessage(msg, red, green, blue); end end end function ToggleVerboseMode() if (WatchTower_Verbose == true) then WatchTowerStatusChatMsg("Verbose Mode Disabled."); else WatchTowerStatusChatMsg("Verbose Mode Enabled."); end WatchTower_Verbose = not WatchTower_Verbose; end function ToggleDebugMode() if (WatchTower_Debug == true) then WatchTowerStatusChatMsg("Debug Mode Disabled."); else WatchTowerStatusChatMsg("Debug Mode Enabled."); end WatchTower_Debug = not WatchTower_Debug; end function WTGankReport() GankReport = true; WTReportEnemy(); GankReport = false; end function ToggleFaction() -- for debugging ReportOwnFaction = not ReportOwnFaction; SetFaction(); end function SetFaction() local faction; -- Determine the Players Faction upon login and automatically set -- them to the correct enemy type. --if (faction==nil) then faction= UnitFactionGroup("player"); --end if(ReportOwnFaction) then -- for debugging FactionSetTo = faction; WatchTowerStatusChatMsg("Enemy set to " .. faction); elseif (faction == "Horde") then FactionSetTo = "Alliance"; WatchTowerStatusChatMsg("Enemy set to Alliance"); else FactionSetTo = "Horde"; WatchTowerStatusChatMsg("Enemy set to Horde"); end end function WT_SetCheckBox() --Make the GUI show if Options are selected or not --dependant upon the variables. if WatchTower_SendLocal == true then WT_Checkbox3:SetChecked(1); WatchTowerDebugChatMsg("Local True", 0, 0, 1); else WT_Checkbox3:SetChecked(0); WatchTowerDebugChatMsg("Local False", 1, 0, 0); end if WatchTower_SendGuild == true then WT_Checkbox2:SetChecked(1); WatchTowerDebugChatMsg("Guild True", 0, 0, 1); else WT_Checkbox2:SetChecked(0); WatchTowerDebugChatMsg("Guild False", 1, 0, 0); end if WatchTower_SendRaid == true then WT_Checkbox1:SetChecked(1); WatchTowerDebugChatMsg("Raid True", 0, 0, 1); else WT_Checkbox1:SetChecked(0); WatchTowerDebugChatMsg("Raid False", 1, 0, 0); end if WatchTower_SendParty == true then WT_Checkbox0:SetChecked(1); WatchTowerDebugChatMsg("Party True", 0, 0, 1); else WT_Checkbox0:SetChecked(0); WatchTowerDebugChatMsg("Party False", 1, 0, 0); end if WatchTower_ReportPvP == true then WT_Checkbox10:SetChecked(1); else WT_Checkbox10:SetChecked(0); end if WatchTower_ReportFaction == true then WT_Checkbox11:SetChecked(1); else WT_Checkbox11:SetChecked(0); end if WatchTower_ReportGuild == true then WT_Checkbox12:SetChecked(1); else WT_Checkbox12:SetChecked(0); end if WatchTower_ReportName == true then WT_Checkbox13:SetChecked(1); else WT_Checkbox13:SetChecked(0); end if WatchTower_ReportRace == true then WT_Checkbox14:SetChecked(1); else WT_Checkbox14:SetChecked(0); end if WatchTower_ReportClass == true then WT_Checkbox15:SetChecked(1); else WT_Checkbox15:SetChecked(0); end if WatchTower_ReportLevel == true then WT_Checkbox16:SetChecked(1); else WT_Checkbox16:SetChecked(0); end if WatchTower_ReportLocation == true then WT_Checkbox17:SetChecked(1); else WT_Checkbox17:SetChecked(0); end if WatchTower_ReportCoordinates == true then WT_Checkbox18:SetChecked(1); else WT_Checkbox18:SetChecked(0); end --WT_Editbox0:SetText(WatchTower_CustomChannel); end