Making an NPC unattackable in Lua.
This tutorial requires the ArcEmu rev: 2700+
Making an NPC unattackable is the perfect thing for your cutscenes for your boss. You don't want your boss in the middle of a cut-scene to be killed by an inpatient Warlock shadow bolting it, do you? Well, there is only one way at this time of writing to do this.This is an excerpt from my own, unfinished, script. The bit we are interested in is this bit:Code:function NegEtheriumBossOnOnePercent(Unit, Event) if Etherium:GetHealthPct() == 1 then Etherium:RemoveEvents() Etherium:SetUInt32Value(58, 2) -- Set the NPC to be unattackable, Etherium:RemoveAllAuras() Etherium:SetCombatCapable(1) print("Etherium has been defeated. Spawning cache...") Etherium:RegisterEvent("NegEtheriumCINESix", 1, 1) Etherium:RegisterEvent("NegEtheriumCINESeven", 5000, 1) Etherium:RegisterEvent("NegEtheriumCINEEight", 15000, 1) Etherium:RegisterEvent("NegEtheriumCINENine", 22000, 1) Etherium:RegisterEvent("NegEtheriumCINETen", 27000, 1) Etherium:RegisterEvent("NegEtheriumCINEEleven", 29000, 1) Etherium:RegisterEvent("NegEtheriumKill", 30000, 1) --[[ Spawn Cache Event here.. ]]-- else end end
What this code does is that it sets the NPC to be unattackable (but still displays it as hostile), removes all debuffs/buffs from him, and then makes him unable to attack.Code:Etherium:SetUInt32Value(58, 2) -- Set the NPC to be unattackable, Etherium:RemoveAllAuras() Etherium:SetCombatCapable(1)
This bit sets the NPC as unattackable. If you click him, he is displayed as hostile, but you won't see the sword when you mouse-over. You won't be able to attack him, at all.Code:Unit:SetUInt32Value(58, 2)
The above code will make the NPC unselectable from the client.Code:Unit:SetUInt32Value(58, 26)
To make him attackable again, you use this code:
Quite simple eh? It's certainly not the most ideal solution, but it is the only way to do this in Lua as of this writing.Code:Unit:SetUInt32Value(58, 0)
So, to recap. SetUInt32Value(58, 2) will set the NPC as unattackable, SetUInt32Value(52, 0) will set the NPC as attackable.
Furthermore, here are all of the Unit flags (That are known as of r2850)
NOTE THAT THE UNIT FLAGS CHANGE EVERY CLIENT UPDATE.Code:2 -- Client won't let you attack the mob 4 -- Makes players & NPCs attackable/unattackable 256 -- Changes attackable status 13 -- Sets PVP Flag 14 -- Silenced 15 -- Dead 17 -- Alive 18 -- Pacified 19 -- Stunned 20 -- Sets Combat Flag 21 -- Sets the same flag as mounted on a taxi (Can't cast spells) 22 -- Disarmed 23 -- Confused 24 -- Fleeing/Fear 25 -- Makes players & NPCs attackable/unattackable 26 -- Unselectable 27 -- Skinnable 30 -- Feign Death
Hope this helps you,
lbniese


Likes: 

Lbniese


Reply With Quote
Bookmarks