function PVPSound_OnLoad()
	frame:RegisterEvent("PLAYER_ENTERING_WORLD");
	frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");
	frame:RegisterEvent("PLAYER_DEAD");
	frame:RegisterEvent("ZONE_CHANGED_NEW_AREA");
	frame:RegisterEvent("CHAT_MSG_BG_SYSTEM_NEUTRAL");
	frame:RegisterEvent("CHAT_MSG_BG_SYSTEM_ALLIANCE");
	frame:RegisterEvent("CHAT_MSG_BG_SYSTEM_HORDE");
	frame:RegisterEvent("CHAT_MSG_MONSTER_YELL");
	frame:RegisterEvent("CHAT_MSG_RAID_BOSS_EMOTE");
	frame:RegisterEvent("WORLD_MAP_UPDATE");
	frame:RegisterEvent("UPDATE_WORLD_STATES");

	-- Slash Commands
	SlashCmdList["PVPSound"] = PVPSound_Command;
	SLASH_PVPSound1 = "/pvpsound";
	SLASH_PVPSound2 = "/ps";
end

	-- Default Settings
	PS_pvpmode = true
	PS_emote = true
	PS_emotemode = true
	PS_killsound = true
	PS_multikillsound = true
	PS_bgsound = true
	PS_channel = "Master"

	frame = CreateFrame("FRAME", "PVPSound_Frame");
	local PS_timer_reset = false;
	local PS_reset_time = 1800;
	local PS_mkill_time = 60;
	local PS_dkill_time = 10;
	local PS_kills = 0;
	local MyFaction = "NotYet";
	local MyGender = "NotYet"
	local AllianceScore = "NotYet";
	local HordeScore = "NotYet";
	local TbActive = "NotYet";
	local TbAttacker = "NotYet";
	local WgActive = "NotYet";
	local WgAttacker = "NotYet";
	local SotaAttacker = "NotYet";
	local SotaAttackerYell = "NotYet";

	local ABobjectives = {Blacksmith = 0, Farm = 0, GoldMine = 0, LumberMill = 0, Stables = 0}

	local function ABget_objective(id)
		if id >= 126 and id <= 130 then return "Blacksmith"
		elseif id >= 231 and id <= 235 then return "Farm"
		elseif id >= 316 and id <= 320 then return "GoldMine"
		elseif id >= 421 and id <= 425 then return "LumberMill"
		elseif id >= 536 and id <= 540 then return "Stables"
		else return false
		end
	end

	local function ABobj_state(id)
		if id == 128 or id == 233 or id == 318 or id == 423 or id == 538 then
		return 1 -- Alliance Base
		elseif id == 130 or id == 235 or id == 320 or id == 425 or id == 540 then
		return 2 -- Horde Base
		elseif id == 127 or id == 232 or id == 317 or id == 422 or id == 537 then
		return 3 -- Alliance trys to capture
		elseif id == 129 or id == 234 or id == 319 or id == 424 or id == 539 then
		return 4 -- Horde trys to capture
		else return 0 -- Noone controling
		end
	end

	local TBFGobjectives = {Lighthouse = 0,	Mines = 0, Waterworks = 0}
	
	local function TBFGget_objective(id)
		if id >= 106 and id <= 112 then return "Lighthouse"
		elseif id >= 216 and id <= 220 then return "Mines"
		elseif id >= 326 and id <= 330 then return "Waterworks"
		else return false
		end
	end

	local function TBFGobj_state(id)
		if id == 111 or id == 218 or id == 328 then
		return 1 -- Alliance Base
		elseif id == 110 or id == 220 or id == 330 then
		return 2 -- Horde Base
		elseif id == 109 or id == 217 or id == 327 then
		return 3 -- Alliance trys to capture
		elseif id == 112 or id == 219 or id == 329 then
		return 4 -- Horde trys to capture
		else return 0 -- Noone controling
		end
	end

	local IOCobjectives = {Quarry = 0, Workshop = 0, Hangar = 0, Docks = 0, Refinerie = 0}

	local function IOCget_objective(id)
		if id >= 16 and id <= 20 then return "Quarry"
		elseif id >= 135 and id <= 139 then return "Workshop"
		elseif id >= 140 and id <= 144 then return "Hangar"
		elseif id >= 145 and id <= 149 then return "Docks"
		elseif id >= 150 and id <= 154 then return "Refinerie"
		else return false
		end
	end

	local function IOCobj_state(id)
		if id == 18 or id == 136 or id == 141 or id == 146 or id == 151 then
		return 1 -- Alliance
		elseif id == 20 or id == 138 or id == 143 or id == 148 or id == 153 then
		return 2 -- Horde
		elseif id == 17 or id == 137 or id == 142 or id == 147 or id == 152 then
		return 3 -- Alliance trys to capture
		elseif id == 19 or id == 139 or id == 144 or id == 149 or id == 154 then
		return 4 -- Horde trys to capture
		else return 0 -- Noone controling
		end
	end

	local SOTAobjectives = {SouthGraveyard = 0}

	local function SOTAget_objective(id)
		if id >= 13 and id <= 15 then return "SouthGraveyard"
		elseif id >= 46 and id <= 46 then return "TheFrostbreaker"
		elseif id >= 48 and id <= 48 then return "TheBlightbringer"
		elseif id >= 77 and id <= 79 then return "GateoftheRed_Sun"
		elseif id >= 80 and id <= 82 then return "GateoftheBlueSapphire"
		elseif id >= 102 and id <= 104 then return "GateoftheYellowMoon"
		elseif id >= 105 and id <= 107 then return "GateofthePurpleAmethyst"
		elseif id >= 108 and id <= 110 then return "GateoftheGreenEmerald"
		else return false
		end
	end

	local function SOTAobj_state(id)
		if id == 15 then
		return 1 -- Alliance
		elseif id == 13 then
		return 2 -- Horde
		elseif id == 46 then
		return 3 -- Alliance attacking
		elseif id == 48 then
		return 4 -- Horde attacking
		else return 0
		end
	end

	local EOTSobjectives = {BloodElfTower = 3, DraeneiRuins = 3, FelReaverRuins = 3, MageTower = 3}

	local function EOTSget_objective(id)
		if id >= 106 and id <= 111 then return "BloodElfTower"
		elseif id >= 206 and id <= 211 then return "DraeneiRuins"
		elseif id >= 306 and id <= 311 then return "FelReaverRuins"
		elseif id >= 406 and id <= 411 then return "MageTower"
		else return false
		end
	end

	local function EOTSobj_state(id)
		if id == 106 or id == 206 or id == 306 or id == 406 then
			id = id+4
			if id == 110 or id == 210 or id == 310 or id == 410 then
			return 3 -- Uncontroled
			else return 0
			end
		end
		if id == 110 or id == 210 or id == 310 or id == 410 then
			id = id-4
			if id == 106 or id == 206 or id == 306 or id == 406 then
			return 2 -- Horde Base
			else return 0
			end
		end
		if id == 111 or id == 211 or id == 311 or id == 411 then
		return 1 -- Alliance Base
		else return 0
		end
	end

	local WGobjectives = {FlamewatchTower = 0, ShadowsightTower = 0, WintersEdgeTower = 0}

	local function WGget_objective(id)
		if id >= 110 and id <= 153 then return "FlamewatchTower"
		elseif id >= 210 and id <= 253 then return "ShadowsightTower"
		elseif id >= 310 and id <= 353 then return "WintersEdgeTower"
		else return false
		end
	end

	local function WGobj_state(id)
		if id == 111 or id == 211 or id == 311 then
		return 1 -- Alliance Tower
		elseif id == 110 or id == 210 or id == 310 then
		return 2 -- Horde Tower
		elseif id == 150 or id == 250 or id == 350 then
		return 3 -- Alliance Tower Heavily Damaged
		elseif id == 152 or id == 252 or id == 352 then
		return 4 -- Horde Tower Heavily Damaged
		elseif id == 151 or id == 251 or id == 351 then
		return 5 -- Alliance Tower Destroyed
		elseif id == 153 or id == 253 or id == 353 then
		return 6 -- Horde Tower Destroyed
		else return 0
		end
	end
	
	local AVandIOCCDobjectives = {Reinforcements = 0}

	local function AVandIOCCDget_objective(name)
		if name == "Reinforcements: 11" or name == "Reinforcements: 10" or name == "Reinforcements: 6" or name == "Reinforcements: 5" or name == "Reinforcements: 2" or name == "Reinforcements: 1" then return "Reinforcements"
		else return false
		end
	end

	local function AVandIOCCDobj_state(name)
		if name == "Reinforcements: 11" then
		return 1 -- Reinforcements: 11
		elseif name == "Reinforcements: 10" then
		return 2 -- Reinforcements: 10
		elseif name == "Reinforcements: 6" then
		return 3 -- Reinforcements: 6
		elseif name == "Reinforcements: 5" then
		return 4 -- Reinforcements: 5
		elseif name == "Reinforcements: 2" then
		return 5 -- Reinforcements: 2
		elseif name == "Reinforcements: 1" then
		return 6 -- Reinforcements: 1
		else return 0
		end
	end

function PVPSound_OnEvent(self, event, ...)
	local player = UnitGUID("player")
	local arg1, eventType, hideCaster, srcGUID, srcName, sourceFlags, sourceRaidFlags, destGUID, dstName, dstFlags, destRaidFlags = select(1, ...)
	local CombatLog_Object_IsA = CombatLog_Object_IsA
	local COMBATLOG_OBJECT_NONE = COMBATLOG_OBJECT_NONE
	local PS_COMBATLOG_FILTER_ENEMY_PLAYERS = bit.bor (COMBATLOG_OBJECT_AFFILIATION_MASK, COMBATLOG_OBJECT_REACTION_MASK, COMBATLOG_OBJECT_CONTROL_PLAYER, COMBATLOG_OBJECT_TYPE_PLAYER);
	local PS_COMBATLOG_FILTER_ENEMY_NPC = bit.bor (COMBATLOG_OBJECT_AFFILIATION_MASK, COMBATLOG_OBJECT_REACTION_MASK, COMBATLOG_OBJECT_CONTROL_PLAYER, COMBATLOG_OBJECT_TYPE_PLAYER, COMBATLOG_OBJECT_CONTROL_NPC, COMBATLOG_OBJECT_TYPE_NPC);
	local PS_msg = "";

	CurrentZone = GetRealZoneText();

	if CurrentZone == BG_WSG  then
		MyZone = "Zone_WarsongGulch";
	elseif CurrentZone == BG_AB then
		MyZone = "Zone_ArathiBasin";
	elseif CurrentZone == BG_AV then
		MyZone = "Zone_AlteracValley";
	elseif CurrentZone == BG_EOTS then
		MyZone = "Zone_EyeoftheStorm";
	elseif CurrentZone == BG_IOC then
		MyZone = "Zone_IsleofConquest";
	elseif CurrentZone == BG_SOTA then
		MyZone = "Zone_StrandoftheAncients";
	elseif CurrentZone == BG_TP then
		MyZone = "Zone_TwinPeaks";
	elseif CurrentZone == BG_TBFG then
		MyZone = "Zone_TheBattleforGilneas";
	elseif CurrentZone == BF_TB then
		MyZone = "Zone_TolBarad";
	elseif CurrentZone == BF_WG then
		MyZone = "Zone_Wintergrasp";
	end

	if (event == "PLAYER_ENTERING_WORLD") then
		MyFaction = UnitFactionGroup("player");
		if (UnitSex("player") == 1) then
			MyGender = "Unknown"
		elseif (UnitSex("player") == 2) then
			MyGender = "Male"
		elseif (UnitSex("player") == 3) then
			MyGender = "Female"
		end
	end

	if (event == "PLAYER_DEAD") then
		PS_timer_reset = true;
	end

	if PS_bgsound == true then
	-- PlaySounds
	if (event == "ZONE_CHANGED_NEW_AREA") then
		CurrentZone = GetRealZoneText();
		MyFaction = UnitFactionGroup("player");
		if (CurrentZone == BG_WSG or CurrentZone == BG_EOTS or CurrentZone == BG_AB or CurrentZone == BG_AV or CurrentZone == BG_IOC or CurrentZone == BG_SOTA or CurrentZone == BG_TP or CurrentZone == BG_TBFG) then
			if (MyFaction == "Alliance") then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\GameStatus\\PlayBlue.mp3", ""..PS_channel.."");
			elseif (MyFaction == "Horde") then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\GameStatus\\PlayRed.mp3", ""..PS_channel.."");
			end
		elseif (CurrentZone == AR_ROL or CurrentZone == AR_BEA or CurrentZone == AR_NA or CurrentZone == AR_DA or CurrentZone == AR_TROV) then
			PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\GameStatus\\PrepareForBattle.mp3", ""..PS_channel.."");
		end
		PS_timer_reset = true;
	end
	-- WinSounds
	if (event == "CHAT_MSG_BG_SYSTEM_NEUTRAL") or (event == "CHAT_MSG_BG_SYSTEM_ALLIANCE") or (event == "CHAT_MSG_BG_SYSTEM_HORDE") or (event == "CHAT_MSG_MONSTER_YELL") then
		local Winner = GetBattlefieldWinner()
		if Winner == 1 or (strfind(arg1,BG_ALLIANCE_WINS)) then
			PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\GameStatus\\Alliance_Wins.mp3", ""..PS_channel.."");
		elseif Winner == 0 or (strfind(arg1,BG_HORDE_WINS)) then
			PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\GameStatus\\Horde_Wins.mp3", ""..PS_channel.."");
		end	
	end

	if (event == "CHAT_MSG_BG_SYSTEM_NEUTRAL") then
		-- Waronsg Gulch and Twin Peaks Overtime
		if ((MyZone == "Zone_WarsongGulch") or (MyZone == "Zone_TwinPeaks")) then
			if (strfind(arg1,BG_VULNERABLE)) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\Overtime.mp3", ""..PS_channel.."");
			end
		 -- Strand of the Ancients
		elseif (MyZone == "Zone_StrandoftheAncients") then
			if (strfind(arg1,BG_SOTA_ROUND_ONE)) or (strfind(arg1,BG_SOTA_ROUND_TWO)) then
				for i=10, 10, 1 do
					local name, _, textureIndex = GetMapLandmarkInfo(i)
					if name and textureIndex then
						if (name == "The Frostbreaker") then
							SotaAttacker = "Alliance"
						elseif (name == "The Blightbringer") then
							SotaAttacker = "Horde"
						end
					end
				end
				if ((SotaAttacker == "Alliance") and (MyFaction == "Alliance")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\AttackTheEnemyCore.mp3", ""..PS_channel.."");
				elseif ((SotaAttacker == "Alliance") and (MyFaction == "Horde")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\DefendYourCore.mp3", ""..PS_channel.."");
				elseif ((SotaAttacker == "Horde") and (MyFaction == "Alliance")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\DefendYourCore.mp3", ""..PS_channel.."");
				elseif ((SotaAttacker == "Horde") and (MyFaction == "Horde")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\AttackTheEnemyCore.mp3", ""..PS_channel.."");
				end
			end
		end

	elseif (event == "CHAT_MSG_BG_SYSTEM_ALLIANCE") or (event == "CHAT_MSG_BG_SYSTEM_HORDE") then
		-- Waronsg Gulch and Twin Peaks
		if ((MyZone == "Zone_WarsongGulch") or (MyZone == "Zone_TwinPeaks")) then
			if (strfind(arg1,BG_PICKED)) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Flag_Taken.mp3", ""..PS_channel.."");
			elseif (strfind(arg1,BG_DROPPED)) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Flag_Dropped.mp3", ""..PS_channel.."");
			elseif (strfind(arg1,BG_RETURNED)) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Flag_Returned.mp3", ""..PS_channel.."");
			elseif (strfind(arg1,BG_CAPTURED)) then
				AllianceScore = select(4, GetWorldStateUIInfo(2)); -- Alliance score
				HordeScore = select(4, GetWorldStateUIInfo(3)); -- Horde score
				if (AllianceScore == "1/3") and (HordeScore == "0/3") then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Takes_Lead.mp3", ""..PS_channel.."");
				elseif (AllianceScore == "0/3") and (HordeScore == "1/3") then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Takes_Lead.mp3", ""..PS_channel.."");
				elseif (AllianceScore == "2/3") and (HordeScore == "1/3") then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Score.mp3", ""..PS_channel.."");
				elseif (AllianceScore == "1/3") and (HordeScore == "2/3") then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Score.mp3", ""..PS_channel.."");
				elseif (AllianceScore == "1/3") and (HordeScore == "1/3") then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Score.mp3", ""..PS_channel.."");
				elseif (AllianceScore == "2/3") and (HordeScore == "2/3") then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Score.mp3", ""..PS_channel.."");
				elseif (AllianceScore == "0/3") and (HordeScore == "2/3") then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Inc_Lead.mp3", ""..PS_channel.."");
				elseif (AllianceScore == "2/3") and (HordeScore == "0/3") then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Inc_Lead.mp3", ""..PS_channel.."");
				end
			end
		 -- Eye of the Storm
		elseif (MyZone == "Zone_EyeoftheStorm") then
			if (strfind(arg1,BG_EOTS_CONTROL)) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Defence.mp3", ""..PS_channel.."");
			elseif (strfind(arg1,BG_EOTS_LOST_CONTROL)) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Offense.mp3", ""..PS_channel.."");
			elseif (strfind(arg1,BG_CAPTURED)) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Score.mp3", ""..PS_channel.."");
			end
		 -- Isle of Conquest Vulnerable
		elseif (MyZone == "Zone_IsleofConquest") then
			if (strfind(arg1,BG_IOC_GATE_DOWN)) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\"..event.."_Vulnerable.mp3", ""..PS_channel.."");
			end
		end

	elseif (event == "CHAT_MSG_MONSTER_YELL") then
		-- Alterac Valley
		if (MyZone == "Zone_AlteracValley") then
			if (strfind(arg1,BG_AV_WILL_DESTROY_IT) or strfind(arg1,BG_AV_WILL_CAPTURE_IT)) then
				if (strfind(arg1,FACTION_HORDE)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
				elseif (strfind(arg1,FACTION_ALLIANCE)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
				end
			elseif (strfind(arg1,BG_HAS_TAKEN) or strfind(arg1,BG_TAKEN)) then
				if (strfind(arg1,FACTION_HORDE)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
				elseif (strfind(arg1,FACTION_ALLIANCE)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
				end
			elseif (strfind(arg1,BG_AV_HAS_DESTROYED)) then
				if (strfind(arg1,FACTION_HORDE)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Destroyed.mp3", ""..PS_channel.."");
				elseif (strfind(arg1,FACTION_ALLIANCE)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Destroyed.mp3", ""..PS_channel.."");
				end
			end
		 -- Strand of the Ancients
		elseif (MyZone == "Zone_StrandoftheAncients") then
			for i=10, 10, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					if (name == "The Frostbreaker") then
						SotaAttackerYell = "Alliance"
					elseif (name == "The Blightbringer") then
						SotaAttackerYell = "Horde"
					end
				end
			end
			if (strfind(arg1,BG_SOTA_VEHICLE_EAST)) then
				if (SotaAttackerYell == "Alliance") then
					local name, _, textureIndex = GetMapLandmarkInfo(2)
					if name and textureIndex then
						if ((textureIndex == 15) and (name == "East Graveyard") and (SotaAttackerYell == "Alliance")) then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						end
					end
				elseif (SotaAttackerYell == "Horde") then
					local name, _, textureIndex = GetMapLandmarkInfo(3)
					if name and textureIndex then
						if ((textureIndex == 13) and (name == "East Graveyard") and (SotaAttackerYell == "Horde")) then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						end
					end
				end
			elseif (strfind(arg1,BG_SOTA_VEHICLE_WEST)) then
				if (SotaAttackerYell == "Alliance") then
					local name, _, textureIndex = GetMapLandmarkInfo(12)
					if name and textureIndex then
						if ((textureIndex == 15) and (name == "West Graveyard") and (SotaAttackerYell == "Alliance")) then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						end
					end
				elseif (SotaAttackerYell == "Horde") then
					local name, _, textureIndex = GetMapLandmarkInfo(12)
					if name and textureIndex then
						if ((textureIndex == 13) and (name == "West Graveyard") and (SotaAttackerYell == "Horde")) then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						end
					end
				end
			end
		end

	elseif (event == "CHAT_MSG_RAID_BOSS_EMOTE") then
		-- Wintergrasp
		if (MyZone == "Zone_Wintergrasp") then
			local _, localizedName, isActive = GetWorldPVPAreaInfo(1)
			if isActive == true then
				WgActive = "Active"
			elseif isActive == false then
				WgActive = "NotActive"
			end
			-- WinSounds
			if ((strfind(arg1,BF_WG_ALLIANCE_WIN_DEFENDED)) or (strfind(arg1,BF_WG_ALLIANCE_WIN_CAPTURED))) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\GameStatus\\Alliance_Wins.mp3", ""..PS_channel.."");
			elseif ((strfind(arg1,BF_WG_HORDE_WIN_DEFENDED)) or (strfind(arg1,BF_WG_HORDE_WIN_CAPTURED))) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\GameStatus\\Horde_Wins.mp3", ""..PS_channel.."");
			end
			if (WgActive == "Active") then
				-- Workshops
				if (strfind(arg1,BF_WG_ALLIANCE_ATTACKED)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
				elseif (strfind(arg1,BF_WG_ALLIANCE_CAPTURED)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
				elseif (strfind(arg1,BF_WG_HORDE_ATTACKED)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
				elseif (strfind(arg1,BF_WG_HORDE_CAPTURED)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
				end
			end
		 -- Tol Barad
		elseif (MyZone == "Zone_TolBarad") then
			local _, localizedName, isActive = GetWorldPVPAreaInfo(2)
			if isActive == true then
				TbActive = "Active"
			elseif isActive == false then
				TbActive = "NotActive"
			end
			-- WinSounds
			if ((strfind(arg1,BF_TB_ALLIANCE_SUCCESSFULLY_DEFENDED)) or (strfind(arg1,BF_TB_ALLIANCE_SUCCESSFULLY_TAKEN))) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\GameStatus\\Alliance_Wins.mp3", ""..PS_channel.."");
			elseif ((strfind(arg1,BF_TB_HORDE_SUCCESSFULLY_DEFENDED)) or (strfind(arg1,BF_TB_HORDE_SUCCESSFULLY_TAKEN))) then
				PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\GameStatus\\Horde_Wins.mp3", ""..PS_channel.."");
			end
			if (TbActive == "Active") then
				for i=1, 1, 1 do
					local name, _, textureIndex = GetMapLandmarkInfo(i)
					if name and textureIndex then
						if ((name == "Baradin Hold") and (textureIndex == 48)) then
							TbAttacker = "Alliance"
						elseif ((name == "Baradin Hold") and (textureIndex == 46)) then
							TbAttacker = "Horde"
						end
					end
				end
				-- Bases
				if (strfind(arg1,BF_TB_ALLIANCE_LOST_CONTROL)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
				elseif (strfind(arg1,BF_TB_HORDE_LOST_CONTROL)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
				elseif (strfind(arg1,BF_TB_ALLIANCE_TAKEN)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
				elseif (strfind(arg1,BF_TB_HORDE_TAKEN)) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
				end
				-- Towers
				if ((strfind(arg1,BF_TB_DAMAGED)) and (TbAttacker == "Horde")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_HeavilyDamaged.mp3", ""..PS_channel.."");
				elseif ((strfind(arg1,BF_TB_DESTROYED)) and (TbAttacker == "Horde")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Destroyed.mp3", ""..PS_channel.."");
				elseif ((strfind(arg1,BF_TB_DAMAGED)) and (TbAttacker == "Alliance")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_HeavilyDamaged.mp3", ""..PS_channel.."");
				elseif ((strfind(arg1,BF_TB_DESTROYED)) and (TbAttacker == "Alliance")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Destroyed.mp3", ""..PS_channel.."");
				end
			end
		 -- Eye of the Storm RBG
		elseif (MyZone == "Zone_EyeoftheStorm") then
			-- Blood Elf Tower
			for i=1, 1, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+100
					local type = EOTSget_objective(faketextureIndex)
					if type then
						if EOTSobj_state(EOTSobjectives[type]) == 3 and EOTSobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 3 and EOTSobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_HORDE_Defence.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 1 and EOTSobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 2 and EOTSobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_HORDE_Offense.mp3", ""..PS_channel.."");
						end
						EOTSobjectives[type] = faketextureIndex
					end
				end
			end
			-- Draenei Ruins
			for i=2, 2, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+200
					local type = EOTSget_objective(faketextureIndex)
					if type then
						if EOTSobj_state(EOTSobjectives[type]) == 3 and EOTSobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 3 and EOTSobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_HORDE_Defence.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 1 and EOTSobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 2 and EOTSobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_HORDE_Offense.mp3", ""..PS_channel.."");
						end
						EOTSobjectives[type] = faketextureIndex
					end
				end
			end
			-- Fel Reaver Ruins
			for i=3, 3, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+300
					local type = EOTSget_objective(faketextureIndex)
					if type then
						if EOTSobj_state(EOTSobjectives[type]) == 3 and EOTSobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 3 and EOTSobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_HORDE_Defence.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 1 and EOTSobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 2 and EOTSobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_HORDE_Offense.mp3", ""..PS_channel.."");
						end
						EOTSobjectives[type] = faketextureIndex
					end
				end
			end
			-- Mage Tower
			for i=4, 4, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+400
					local type = EOTSget_objective(faketextureIndex)
					if type then
						if EOTSobj_state(EOTSobjectives[type]) == 3 and EOTSobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 3 and EOTSobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_HORDE_Defence.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 1 and EOTSobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif EOTSobj_state(EOTSobjectives[type]) == 2 and EOTSobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\CHAT_MSG_BG_SYSTEM_HORDE_Offense.mp3", ""..PS_channel.."");
						end
						EOTSobjectives[type] = faketextureIndex
					end
				end
			end
		end

	elseif (event == "WORLD_MAP_UPDATE") then
		 -- Strand of the Ancients, South Graveyard
		if (MyZone == "Zone_StrandoftheAncients") then
			for i=9, 9, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local type = SOTAget_objective(textureIndex)
					if type then
						local _, _, textureIndex = GetMapLandmarkInfo(1)
						local _, _, textureIndexx = GetMapLandmarkInfo(2)
						if not (textureIndex == 82) or not (textureIndexx == 82) then
							if SOTAobj_state(SOTAobjectives[type]) == 2 and SOTAobj_state(textureIndex) == 1 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
							elseif SOTAobj_state(SOTAobjectives[type]) == 1 and SOTAobj_state(textureIndex) == 2 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
							end
							SOTAobjectives[type] = textureIndex
						end
					end
				end
			end
		 -- Isle of Conquest
		elseif (MyZone == "Zone_IsleofConquest") then
			for i=1, GetNumMapLandmarks(), 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local type = IOCget_objective(textureIndex)
					if type then
						if IOCobj_state(IOCobjectives[type]) == 3 and IOCobj_state(textureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif IOCobj_state(IOCobjectives[type]) == 4 and IOCobj_state(textureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif IOCobj_state(IOCobjectives[type]) == 1 and IOCobj_state(textureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif IOCobj_state(IOCobjectives[type]) == 2 and IOCobj_state(textureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif IOCobj_state(IOCobjectives[type]) == 3 and IOCobj_state(textureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif IOCobj_state(IOCobjectives[type]) == 4 and IOCobj_state(textureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						end
						IOCobjectives[type] = textureIndex
					end
				end
			end
		 -- Wintergrasp
		elseif (MyZone == "Zone_Wintergrasp") then
			local _, localizedName, isActive = GetWorldPVPAreaInfo(1)
			if isActive == true then
				WgActive = "Active"
			elseif isActive == false then
				WgActive = "NotActive"
			end
			if (WgActive == "Active") then
				-- Flamewatch Tower
				for i=5, 5, 1 do
					local name, _, textureIndex = GetMapLandmarkInfo(i)
					if name and textureIndex then
						local faketextureIndex = textureIndex+100
						local type = WGget_objective(faketextureIndex)
						if type then
							if WGobj_state(WGobjectives[type]) == 1 and WGobj_state(faketextureIndex) == 3 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_HeavilyDamaged.mp3", ""..PS_channel.."");
							elseif WGobj_state(WGobjectives[type]) == 2 and WGobj_state(faketextureIndex) == 4 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_HeavilyDamaged.mp3", ""..PS_channel.."");
							elseif WGobj_state(WGobjectives[type]) == 3 and WGobj_state(faketextureIndex) == 5 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Destroyed.mp3", ""..PS_channel.."");
							elseif WGobj_state(WGobjectives[type]) == 4 and WGobj_state(faketextureIndex) == 6 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Destroyed.mp3", ""..PS_channel.."");
							end
							WGobjectives[type] = faketextureIndex
						end
					end
				end
				-- Shadowsight Tower
				for i=9, 9, 1 do
					local name, _, textureIndex = GetMapLandmarkInfo(i)
					if name and textureIndex then
						local faketextureIndex = textureIndex+200
						local type = WGget_objective(faketextureIndex)
						if type then
							if WGobj_state(WGobjectives[type]) == 1 and WGobj_state(faketextureIndex) == 3 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_HeavilyDamaged.mp3", ""..PS_channel.."");
							elseif WGobj_state(WGobjectives[type]) == 2 and WGobj_state(faketextureIndex) == 4 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_HeavilyDamaged.mp3", ""..PS_channel.."");
							elseif WGobj_state(WGobjectives[type]) == 3 and WGobj_state(faketextureIndex) == 5 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Destroyed.mp3", ""..PS_channel.."");
							elseif WGobj_state(WGobjectives[type]) == 4 and WGobj_state(faketextureIndex) == 6 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Destroyed.mp3", ""..PS_channel.."");
							end
							WGobjectives[type] = faketextureIndex
						end
					end
				end
				-- Winter's Edge Tower
				for i=15, 15, 1 do
					local name, _, textureIndex = GetMapLandmarkInfo(i)
					if name and textureIndex then
						local faketextureIndex = textureIndex+300
						local type = WGget_objective(faketextureIndex)
						if type then
							if WGobj_state(WGobjectives[type]) == 1 and WGobj_state(faketextureIndex) == 3 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_HeavilyDamaged.mp3", ""..PS_channel.."");
							elseif WGobj_state(WGobjectives[type]) == 2 and WGobj_state(faketextureIndex) == 4 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_HeavilyDamaged.mp3", ""..PS_channel.."");
							elseif WGobj_state(WGobjectives[type]) == 3 and WGobj_state(faketextureIndex) == 5 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Destroyed.mp3", ""..PS_channel.."");
							elseif WGobj_state(WGobjectives[type]) == 4 and WGobj_state(faketextureIndex) == 6 then
								PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Destroyed.mp3", ""..PS_channel.."");
							end
							WGobjectives[type] = faketextureIndex
						end
					end
				end
			end
		end

	elseif (event == "UPDATE_WORLD_STATES") then
		-- Arathi Basin
		if (MyZone == "Zone_ArathiBasin") then
			-- Blacksmith
			for i=1, 1, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+100
					local type = ABget_objective(faketextureIndex)
					if type then
						if ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 1 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 2 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						end
						ABobjectives[type] = faketextureIndex
					end
				end
			end
			-- Farm
			for i=2, 2, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+200
					local type = ABget_objective(faketextureIndex)
					if type then
						if ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 1 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 2 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						end
						ABobjectives[type] = faketextureIndex
					end
				end
			end
			-- Gold Mine
			for i=3, 3, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+300
					local type = ABget_objective(faketextureIndex)
					if type then
						if ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 1 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 2 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						end
						ABobjectives[type] = faketextureIndex
					end
				end
			end
			-- Lumber Mill
			for i=4, 4, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+400
					local type = ABget_objective(faketextureIndex)
					if type then
						if ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 1 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 2 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						end
						ABobjectives[type] = faketextureIndex
					end
				end
			end
			-- Stables
			for i=5, 5, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+500
					local type = ABget_objective(faketextureIndex)
					if type then
						if ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 1 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 2 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 3 and ABobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif ABobj_state(ABobjectives[type]) == 4 and ABobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						end
						ABobjectives[type] = faketextureIndex
					end
				end
			end
		 -- The Battle for Gilneas
		elseif (MyZone == "Zone_TheBattleforGilneas") then
			-- Lighthouse
			for i=1, 1, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+100
					local type = TBFGget_objective(faketextureIndex)
					if type then
						if TBFGobj_state(TBFGobjectives[type]) == 3 and TBFGobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 4 and TBFGobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 4 and TBFGobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 3 and TBFGobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 1 and TBFGobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 2 and TBFGobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 3 and TBFGobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 4 and TBFGobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						end
						TBFGobjectives[type] = faketextureIndex
					end
				end
			end
			-- Mines
			for i=2, 2, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+200
					local type = TBFGget_objective(faketextureIndex)
					if type then
						if TBFGobj_state(TBFGobjectives[type]) == 3 and TBFGobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 4 and TBFGobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 4 and TBFGobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 3 and TBFGobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 1 and TBFGobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 2 and TBFGobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 3 and TBFGobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 4 and TBFGobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						end
						TBFGobjectives[type] = faketextureIndex
					end
				end
			end
			-- Waterworks
			for i=3, 3, 1 do
				local name, _, textureIndex = GetMapLandmarkInfo(i)
				if name and textureIndex then
					local faketextureIndex = textureIndex+300
					local type = TBFGget_objective(faketextureIndex)
					if type then
						if TBFGobj_state(TBFGobjectives[type]) == 3 and TBFGobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 4 and TBFGobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 4 and TBFGobj_state(faketextureIndex) == 1 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 3 and TBFGobj_state(faketextureIndex) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Defence.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 1 and TBFGobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 2 and TBFGobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 3 and TBFGobj_state(faketextureIndex) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\HORDE_Offense.mp3", ""..PS_channel.."");
						elseif TBFGobj_state(TBFGobjectives[type]) == 4 and TBFGobj_state(faketextureIndex) == 3 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\ALLIANCE_Offense.mp3", ""..PS_channel.."");
						end
						TBFGobjectives[type] = faketextureIndex
					end
				end
			end
		 -- Alterac Valley and Isle of Conquest Countdown
		elseif (MyZone == "Zone_AlteracValley") or (MyZone == "Zone_IsleofConquest") then
			-- Alliance Reinforcements
			for i=1, 1, 1 do
				local _, _, _, name = GetWorldStateUIInfo(i)
				if name then
					local type = AVandIOCCDget_objective(name)
					if type then
						if AVandIOCCDobj_state(AVandIOCCDobjectives[type]) == 1 and AVandIOCCDobj_state(name) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\CountDown\\TenKillsRemains.mp3", ""..PS_channel.."");
						elseif AVandIOCCDobj_state(AVandIOCCDobjectives[type]) == 3 and AVandIOCCDobj_state(name) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\CountDown\\FiveKillsRemains.mp3", ""..PS_channel.."");
						elseif AVandIOCCDobj_state(AVandIOCCDobjectives[type]) == 5 and AVandIOCCDobj_state(name) == 6 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\CountDown\\OneKillRemains.mp3", ""..PS_channel.."");
						end
						AVandIOCCDobjectives[type] = name
					end
				end
			end
			-- Horde Reinforcements
			for i=2, 2, 1 do
				local _, _, _, name = GetWorldStateUIInfo(i)
				if name then
					local type = AVandIOCCDget_objective(name)
					if type then
						if AVandIOCCDobj_state(AVandIOCCDobjectives[type]) == 1 and AVandIOCCDobj_state(name) == 2 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\CountDown\\TenKillsRemains.mp3", ""..PS_channel.."");
						elseif AVandIOCCDobj_state(AVandIOCCDobjectives[type]) == 3 and AVandIOCCDobj_state(name) == 4 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\CountDown\\FiveKillsRemains.mp3", ""..PS_channel.."");
						elseif AVandIOCCDobj_state(AVandIOCCDobjectives[type]) == 5 and AVandIOCCDobj_state(name) == 6 then
							PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\CountDown\\OneKillRemains.mp3", ""..PS_channel.."");
						end
						AVandIOCCDobjectives[type] = name
					end
				end
			end
		end
	end

	if (event == "ZONE_CHANGED_NEW_AREA") then
		-- Tol Barad PlaySounds
		if (MyZone == "Zone_TolBarad") then
			local _, localizedName, isActive = GetWorldPVPAreaInfo(2)
			if isActive == true then
				TbActive = "Active"
			elseif isActive == false then
				TbActive = "NotActive"
			end
			if (TbActive == "Active") then
				for i=1, 1, 1 do
					local name, _, textureIndex = GetMapLandmarkInfo(i)
					if name and textureIndex then
						if ((name == "Baradin Hold") and (textureIndex == 48)) then
							TbAttacker = "Alliance"
						elseif ((name == "Baradin Hold") and (textureIndex == 46)) then	
							TbAttacker = "Horde"
						end
					end
				end
				if ((TbAttacker == "Horde") and (MyFaction == "Horde")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\PlayRedAttackCore.mp3", ""..PS_channel.."");
				elseif ((TbAttacker == "Horde") and (MyFaction == "Alliance")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\PlayBlueDefendCore.mp3", ""..PS_channel.."");
				elseif ((TbAttacker == "Alliance") and (MyFaction == "Alliance")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\PlayBlueAttackCore.mp3", ""..PS_channel.."");
				elseif ((TbAttacker == "Alliance") and (MyFaction == "Horde")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\PlayRedDefendCore.mp3", ""..PS_channel.."");
				end
			end
		 -- Wintergrasp PlaySounds
		elseif (MyZone == "Zone_Wintergrasp") then
			local _, localizedName, isActive = GetWorldPVPAreaInfo(1)
			if isActive == true then
				WgActive = "Active"
			elseif isActive == false then
				WgActive = "NotActive"
			end
			if (WgActive == "Active") then
				for i=7, 7, 1 do
					local name, _, textureIndex = GetMapLandmarkInfo(i)
					if name and textureIndex then
						if ((name == "Fortress Vehicle Workshop (E)") and (textureIndex == 68)) then
							WgAttacker = "Alliance"
						elseif ((name == "Fortress Vehicle Workshop (E)") and (textureIndex == 71)) then
							WgAttacker = "Horde"
						end
					end
				end
				if ((WgAttacker == "Horde") and (MyFaction == "Horde")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\PlayRedAttackCore.mp3", ""..PS_channel.."");
				elseif ((WgAttacker == "Horde") and (MyFaction == "Alliance")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\PlayBlueDefendCore.mp3", ""..PS_channel.."");
				elseif ((WgAttacker == "Alliance") and (MyFaction == "Alliance")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\PlayBlueAttackCore.mp3", ""..PS_channel.."");
				elseif ((WgAttacker == "Alliance") and (MyFaction == "Horde")) then
					PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\"..MyZone.."\\PlayRedDefendCore.mp3", ""..PS_channel.."");
				end
			end
		end
	end
	end -- PS_bgsounds == true

	-- See if its to an enemy
	local toEnemy
	local toEnemyPlayer
	local toEnemyNPC
	if (dstName and not CombatLog_Object_IsA(dstFlags, COMBATLOG_OBJECT_NONE)) then
		toEnemyPlayer = CombatLog_Object_IsA(dstFlags, PS_COMBATLOG_FILTER_ENEMY_PLAYERS)
		toEnemyNPC = CombatLog_Object_IsA(dstFlags, PS_COMBATLOG_FILTER_ENEMY_NPC)
	end

	if PS_pvpmode == true then
		toEnemy = toEnemyPlayer;
	else
		toEnemy = toEnemyNPC;
	end

	if PS_killsound == true then
		if (eventType == "PARTY_KILL" and srcGUID == player and toEnemy) then
			-- First Killing
			if (not PS_lastkill or (GetTime() - PS_lastkill > PS_reset_time) or PS_timer_reset) then
				PS_file = "FirstBlood.mp3";
				if (MyGender == "Male") then
					PS_msg = MSG_FirstBloodMale;
				elseif (MyGender == "Female") then
					PS_msg = MSG_FirstBloodFemale;
				end
				PS_kills = 1;
				PS_mkills = 1;
				if (not PS_lastkill or (GetTime() - PS_lastkill > PS_dkill_time) or PS_timer_reset) then
					PS_dkills = 1;
				end
				PS_timer_reset = false
			 -- Killing
			elseif (GetTime() - PS_lastkill <= PS_reset_time) then
				PS_kills = PS_kills + 1;
				if (GetTime() - PS_lastkill <= PS_mkill_time) then
					PS_firstmkill = PS_lastkill;
					if (GetTime() - PS_firstmkill <= PS_mkill_time) then
						-- MultiKilling
						if PS_multikillsound == true then
							if (GetTime() - PS_lastkill <= PS_dkill_time) then
								PS_firstdkill = PS_lastkill;
								if (GetTime() - PS_firstdkill > PS_dkill_time) then
									PS_dkills = 1;
								elseif (GetTime() - PS_firstdkill <= PS_dkill_time) then
									PS_dkills = PS_dkills + 1;
									if (PS_dkills == 2) then
										PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\Spree\\DoubleKill.mp3", ""..PS_channel.."");
									elseif (PS_dkills == 3) then
										PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\Spree\\MultiKill.mp3", ""..PS_channel.."");
									elseif (PS_dkills == 4) then
										PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\Spree\\MegaKill.mp3", ""..PS_channel.."");
									elseif (PS_dkills == 5) then
										PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\Spree\\UltraKill.mp3", ""..PS_channel.."");
									elseif (PS_dkills == 6) then
										PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\Spree\\MonsterKill.mp3", ""..PS_channel.."");
									elseif (PS_dkills > 6) then
										PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\Spree\\Unreal.mp3", ""..PS_channel.."");
									end
								end
							end
						end
						PS_mkills = PS_mkills + 1;
						if (PS_mkills == 2) then
							PS_file = "KillingSpree.mp3";
							PS_msg = MSG_KillingSpree;
						elseif (PS_mkills == 3) then
							PS_file = "Rampage.mp3";
							PS_msg = MSG_Rampage;
						elseif (PS_mkills == 4) then
							PS_file = "Dominating.mp3";
							PS_msg = MSG_Dominating;
						elseif (PS_mkills == 5) then
							PS_file = "Unstoppable.mp3";
							PS_msg = MSG_Unstopable;
						elseif (PS_mkills == 6) then
							PS_file = "Godlike.mp3";
							PS_msg = MSG_Godlike;
						elseif (PS_mkills > 6) then
							PS_file = "Massacre.mp3";
							PS_msg = MSG_Massacre;
						end
					end
				end
			end
			-- Reseting MultiKilling
			if (not PS_lastkill or (GetTime() - PS_lastkill > PS_dkill_time)) then
				PS_dkills = 1;
			end
			PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\Spree\\"..PS_file, ""..PS_channel.."");
			PS_lastkill = GetTime();
		end
	end
	if PS_emote == true then
		if (eventType == "PARTY_KILL" and srcGUID == player and toEnemy) then
			if PS_emotemode == true then
				SendChatMessage(PS_msg, "EMOTE");
			elseif PS_emotemode == false then
				print("|cFFFFFF00" .. srcName .." " .. PS_msg);
			end
		end
	end
end

frame:SetScript("OnEvent", PVPSound_OnEvent);

function PVPSound_Command(arg1)
	arg1 = strlower(arg1)
	if arg1 == "pvp" then
		PS_pvpmode = not PS_pvpmode;
		if PS_pvpmode == true then
			print("|cFF50C0FF" .. Opt_Mode .. ": |cFFADFF2F" .. Opt_PVP);
		else
			print("|cFF50C0FF" .. Opt_Mode .. ": |cFFFF4500" .. Opt_PVE);
		end
	elseif arg1 == "emote" then
		PS_emote = not PS_emote;
		if PS_emote == true then
			print("|cFF50C0FF" .. Opt_Emote .. ": |cFFADFF2F" .. Opt_Enable);
		else
			print("|cFF50C0FF" .. Opt_Emote .. ": |cFFFF4500" .. Opt_Disable);
		end
	elseif arg1 == "emotemode" then
		PS_emotemode = not PS_emotemode;
		if PS_emotemode == true then
			print("|cFF50C0FF" .. Opt_EmoteMode .. ": |cFFADFF2F" .. "[Emote]");
		else
			print("|cFF50C0FF" .. Opt_EmoteMode .. ": |cFFFF4500" .. "[Chat Message]");
		end
	elseif arg1 == "killsound" then
		PS_killsound = not PS_killsound;
		if PS_killsound == true then
			print("|cFF50C0FF" .. Opt_KillSound .. ": |cFFADFF2F" .. Opt_Enable);
		else
			print("|cFF50C0FF" .. Opt_KillSound .. ": |cFFFF4500" .. Opt_Disable);
		end
	elseif arg1 == "mutlikillsound" then
		PS_multikillsound = not PS_multikillsound;
		if PS_multikillsound == true then
			print("|cFF50C0FF" .. Opt_MultiKillSound .. ": |cFFADFF2F" .. Opt_Enable);
		else
			print("|cFF50C0FF" .. Opt_MultiKillSound .. ": |cFFFF4500" .. Opt_Disable);
		end	
	elseif arg1 == "bgsound" then
		PS_bgsound = not PS_bgsound;
		if PS_bgsound == true then
			print("|cFF50C0FF" .. Opt_BgSound .. ": |cFFADFF2F" .. Opt_Enable);
		else
			print("|cFF50C0FF" .. Opt_BgSound .. ": |cFFFF4500" .. Opt_Disable);
		end
	elseif arg1 == "channelmaster" then
		PS_channel = "Master";
		if PS_channel == "Master" then
			print("|cFF50C0FF" .. Opt_Channel .. ": |cFFADFF2F" .. "[Master]");
		end
	elseif arg1 == "channelsound" then
		PS_channel = "Sound";
		if PS_channel == "Sound" then
			print("|cFF50C0FF" .. Opt_Channel .. ": |cFFFF4500" .. "[Sound]");
		end
	elseif arg1 == "channelmusic" then
		PS_channel = "Music";
		if PS_channel == "Music" then
			print("|cFF50C0FF" .. Opt_Channel .. ": |cFFFF4500" .. "[Music]");
		end
	elseif arg1 == "channelambience" then
		PS_channel = "Ambience";
		if PS_channel == "Ambience" then
			print("|cFF50C0FF" .. Opt_Channel .. ": |cFFFF4500" .. "[Ambience]");
		end
	elseif arg1 == "test" then
		print("|cFF50C0FF" .. Opt_Test);
		PlaySoundFile("Interface\\AddOns\\PVPSound\\Sounds\\Test\\Pancake.mp3", ""..PS_channel.."");
	elseif arg1 == "reset" then
		PS_timer_reset = true
		PS_kills = 0;
		print(Opt_Reset);
	elseif arg1 == "help" then
		print("|cFFFFA500PVPSound " .. GetAddOnMetadata("PVPSound", "Version") .. " " .. Opt_cmdlist);
		print("|cFF50C0FF/ps - |cFFFFFFA0" .. Opt_helpstatus);
		print("|cFF50C0FF/ps pvp - |cFFFFFFA0" .. Opt_helpmode);
		print("|cFF50C0FF/ps emote - |cFFFFFFA0" .. Opt_helpemote);
		print("|cFF50C0FF/ps emotemode - |cFFFFFFA0" .. Opt_helpemotemode);
		print("|cFF50C0FF/ps killsound - |cFFFFFFA0" .. Opt_helpkillsound);
		print("|cFF50C0FF/ps multikillsound - |cFFFFFFA0" .. Opt_helpmultikillsound);
		print("|cFF50C0FF/ps bgsound - |cFFFFFFA0" .. Opt_helpbgsound);
		print("|cFF50C0FF/ps channel'channelname' - |cFFFFFFA0" .. Opt_helpchannel);
		print("|cFF50C0FF/ps test - |cFFFFFFA0" .. Opt_helptest);
		print("|cFF50C0FF/ps reset - |cFFFFFFA0" .. Opt_helpreset);
		print("|cFF50C0FF/ps help - |cFFFFFFA0" .. Opt_helpcmdlist);
	else
		print("|cFFFFA500PVPSound " .. GetAddOnMetadata("PVPSound", "Version") .. " " .. Opt_helpinput);
		print("|cFF50C0FF" .. Opt_kills .. ": |cFFADFF2F"..PS_kills);
		if PS_pvpmode == true then
			print("|cFF50C0FF" .. Opt_Mode .. ": |cFFADFF2F" .. Opt_PVP);
		else
			print("|cFF50C0FF" .. Opt_Mode .. ": |cFFFF4500" .. Opt_PVE);
		end
		if PS_emote == true then
			print("|cFF50C0FF" .. Opt_Emote .. ": |cFFADFF2F" .. Opt_Enable);
		else
			print("|cFF50C0FF" .. Opt_Emote .. ": |cFFFF4500" .. Opt_Disable);
		end
		if PS_emotemode == true then
			print("|cFF50C0FF" .. Opt_EmoteMode .. ": |cFFADFF2F" .. "[Emote]");
		else
			print("|cFF50C0FF" .. Opt_EmoteMode .. ": |cFFFF4500" .. "[Chat Message]");
		end
		if PS_killsound == true then
			print("|cFF50C0FF" .. Opt_KillSound .. ": |cFFADFF2F" .. Opt_Enable);
		else
			print("|cFF50C0FF" .. Opt_KillSound .. ": |cFFFF4500" .. Opt_Disable);
		end
		if PS_multikillsound == true then
			print("|cFF50C0FF" .. Opt_MultiKillSound .. ": |cFFADFF2F" .. Opt_Enable);
		else
			print("|cFF50C0FF" .. Opt_MultiKillSound .. ": |cFFFF4500" .. Opt_Disable);
		end
		if PS_bgsound == true then
			print("|cFF50C0FF" .. Opt_BgSound .. ": |cFFADFF2F" .. Opt_Enable);
		else
			print("|cFF50C0FF" .. Opt_BgSound .. ": |cFFFF4500" .. Opt_Disable);
		end
		if PS_channel == "Master" then
			print("|cFF50C0FF" .. Opt_Channel .. ": |cFFADFF2F" .. "[Master]");
		elseif PS_channel == "Sound" then
			print("|cFF50C0FF" .. Opt_Channel .. ": |cFFFF4500" .. "[Sound]");
		elseif PS_channel == "Music" then
			print("|cFF50C0FF" .. Opt_Channel .. ": |cFFFF4500" .. "[Music]");
		elseif PS_channel == "Ambience" then
			print("|cFF50C0FF" .. Opt_Channel .. ": |cFFFF4500" .. "[Ambience]");
		end
	end
end