I wanted to make a guard that would become aggressive towards a player attacking another player. So far, I have achieved this, however when going to attack a hostile creature the guards attack. I thought maybe I could do a race check, but that doesn't seem to be working. Here's what I've got so far:
Code:
local GUARD_FEATURE = "Enabled"
local type, pairs = type, pairs;
function UberFireBall(pUnit, Player)
pUnit:FullCastSpellOnTarget(30971, Player)
end
function PvPGuard_OnSpawn(pUnit, Event)
if (GUARD_FEATURE == "Enabled") then
pUnit:RegisterEvent("Check_PvP", 1200, 0)
end
pUnit:EquipWeapons(1728, 1168, 11303)
pUnit:SetFaction(1775)
end
function Check_PvP(pUnit, Event, Player)
local Player_W = pUnit:GetInRangePlayers()
if (Player_W ~= nil) and (type(Player_W) == "table") then
for index, player in pairs(Player_W) do
if (player:IsPlayerAttacking() == true) then
pUnit:RegisterEvent("UberFireBall", 1500, 4)
UberFireBall(pUnit, player)
if (player:GetPlayerRace() == 1 or --alliance
player:GetPlayerRace() == 3 or
player:GetPlayerRace() == 4 or
player:GetPlayerRace() == 7 or
player:GetPlayerRace() == 11) then
pUnit:SetFaction(85) --Orgrimmar defender
end
if (player:GetPlayerRace() == 2 or --horde
player:GetPlayerRace() == 5 or
player:GetPlayerRace() == 6 or
player:GetPlayerRace() == 8 or
player:GetPlayerRace() == 10) then
if (player:IsPlayerAttacking(player:GetPlayerRace(1)) then --trying to do a race check here, because mobs don't have races(?) and would't attack you unless you are targeting a hostile race
pUnit:SetFaction(12) --Orgrimmar defender
pUnit:Despawn(10000, 200)
end
end
end
end
end
end
function PvPGuard_OnCombat(pUnit, Event)
pUnit:SetAttackTimer(100, 100)
pUnit:CastSpell(43430)
end
function PvPGuard_OnLeaveCombat(pUnit, Event)
pUnit:Despawn(500, 1000)
pUnit:RemoveEvents()
end
RegisterUnitEvent(900056, 18, "PvPGuard_OnSpawn")
RegisterUnitEvent(900056, 2, "PvPGuard_OnLeaveCombat")
RegisterUnitEvent(900056, 1, "PvPGuard_OnCombat")
Table code taken from google. I just spiced it up a bit. (tinyurl.com/9xd27t9)
As always, I'll rep if you can help. Thanks!