Filter in trigger_zombieclass now takes lists

Seperate multiple classes with commas in the onlywhenclass keyvalue.
This commit is contained in:
Ben 2014-12-27 20:50:43 +00:00
parent 7f6861a126
commit 3df834895c
2 changed files with 15 additions and 14 deletions

View file

@ -5,7 +5,10 @@ function ENT:Initialize()
if self.On == nil then self.On = true end if self.On == nil then self.On = true end
if self.InstantChange == nil then self.InstantChange = true end if self.InstantChange == nil then self.InstantChange = true end
if self.OnlyWhenClass == nil then self.OnlyWhenClass = -1 end if self.OnlyWhenClass == nil then
self.OnlyWhenClass = {}
self.OnlyWhenClass[1] = -1
end
end end
function ENT:Think() function ENT:Think()
@ -34,15 +37,17 @@ function ENT:KeyValue(key, value)
elseif key == "touchclass" then elseif key == "touchclass" then
self.TouchClass = string.lower(value) self.TouchClass = string.lower(value)
elseif key == "onlywhenclass" then elseif key == "onlywhenclass" then
self.OnlyWhenClass = {}
if value == "disabled" then if value == "disabled" then
self.OnlyWhenClass = -1 self.OnlyWhenClass[1] = -1
else else
for k, v in ipairs(GAMEMODE.ZombieClasses) do self.OnlyWhenClass[1] = -1
if string.lower(v.Name) == value then for i, allowed_class in pairs(string.Explode(",", string.lower(value))) do
self.OnlyWhenClass = k for k, v in ipairs(GAMEMODE.ZombieClasses) do
break if string.lower(v.Name) == allowed_class then
else self.OnlyWhenClass[i] = k
self.OnlyWhenClass = -1 break
end
end end
end end
end end
@ -65,7 +70,7 @@ function ENT:DoTouch(ent, class_name, death_class_name)
for k, v in ipairs(GAMEMODE.ZombieClasses) do for k, v in ipairs(GAMEMODE.ZombieClasses) do
if string.lower(v.Name) == class_name then if string.lower(v.Name) == class_name then
local prev = ent:GetZombieClass() local prev = ent:GetZombieClass()
if self.OnlyWhenClass == prev or self.OnlyWhenClass == -1 then if table.HasValue( self.OnlyWhenClass, prev ) or self.OnlyWhenClass[1] == -1 then
local prevpos = ent:GetPos() local prevpos = ent:GetPos()
local prevang = ent:EyeAngles() local prevang = ent:EyeAngles()
ent:SetZombieClass(k) ent:SetZombieClass(k)

View file

@ -36,7 +36,6 @@
] ]
touchclass(choices) : "On Touch Class" : "zombie" : "Any living zombie touching the brush will be set to this class name." = touchclass(choices) : "On Touch Class" : "zombie" : "Any living zombie touching the brush will be set to this class name." =
[ [
"crow" : "Crow"
"will o' wisp" : "Will O' Wisp" "will o' wisp" : "Will O' Wisp"
"zombie" : "Zombie" "zombie" : "Zombie"
"classic Zombie" : "Classic Zombie" "classic Zombie" : "Classic Zombie"
@ -66,7 +65,6 @@
] ]
endtouchclass(choices) : "On Leaving Class" : "zombie" : "Same as Touching Class but for when leaving the brush." = endtouchclass(choices) : "On Leaving Class" : "zombie" : "Same as Touching Class but for when leaving the brush." =
[ [
"crow" : "Crow"
"will o' wisp" : "Will O' Wisp" "will o' wisp" : "Will O' Wisp"
"zombie" : "Zombie" "zombie" : "Zombie"
"classic Zombie" : "Classic Zombie" "classic Zombie" : "Classic Zombie"
@ -96,7 +94,6 @@
] ]
touchdeathclass(choices) : "On Touch Respawn Class" : "zombie" : "Any living zombie touching the brush will be set to this class name on death." = touchdeathclass(choices) : "On Touch Respawn Class" : "zombie" : "Any living zombie touching the brush will be set to this class name on death." =
[ [
"crow" : "Crow"
"will o' wisp" : "Will O' Wisp" "will o' wisp" : "Will O' Wisp"
"zombie" : "Zombie" "zombie" : "Zombie"
"classic Zombie" : "Classic Zombie" "classic Zombie" : "Classic Zombie"
@ -126,7 +123,6 @@
] ]
endtouchdeathclass(choices) : "On Leaving Respawn Class" : "zombie" : "Same as Touching Respawn Class but for when leaving the brush." = endtouchdeathclass(choices) : "On Leaving Respawn Class" : "zombie" : "Same as Touching Respawn Class but for when leaving the brush." =
[ [
"crow" : "Crow"
"will o' wisp" : "Will O' Wisp" "will o' wisp" : "Will O' Wisp"
"zombie" : "Zombie" "zombie" : "Zombie"
"classic Zombie" : "Classic Zombie" "classic Zombie" : "Classic Zombie"
@ -154,7 +150,7 @@
"gore child" : "Gore Child" "gore child" : "Gore Child"
"giga gore child" : "Giga Gore Child" "giga gore child" : "Giga Gore Child"
] ]
onlywhenclass(choices) : "Player Must Be This Class" : "disabled" : "Set this to a specific class to change only these zombie types." = onlywhenclass(choices) : "Player Must Be This Class" : "disabled" : "Set this to a specific class to change only these zombie types, separate multiple classes with commas." =
[ [
"disabled" : "Disabled" "disabled" : "Disabled"
"will o' wisp" : "Will O' Wisp" "will o' wisp" : "Will O' Wisp"