67 lines
1.8 KiB
Lua
67 lines
1.8 KiB
Lua
|
-- This is a special class which is essentially just Fresh Dead made to be a bit stronger so people can put it in their maps.
|
||
|
-- It also has a climbing function although not as good as the Fast Zombie. Only so you don't have people exploiting high places.
|
||
|
|
||
|
CLASS.Name = "Classic Zombie"
|
||
|
CLASS.TranslationName = "class_classic_zombie"
|
||
|
CLASS.Base = "freshdead"
|
||
|
|
||
|
CLASS.Health = 150
|
||
|
CLASS.Speed = 200
|
||
|
CLASS.Points = 4
|
||
|
|
||
|
CLASS.SWEP = "weapon_zs_classiczombie"
|
||
|
|
||
|
CLASS.UsePlayerModel = true
|
||
|
CLASS.UsePreviousModel = false
|
||
|
CLASS.NoFallDamage = true
|
||
|
|
||
|
if SERVER then
|
||
|
function CLASS:OnKilled(pl, attacker, inflictor, suicide, headshot, dmginfo) end
|
||
|
end
|
||
|
|
||
|
function CLASS:Move(pl, mv)
|
||
|
local wep = pl:GetActiveWeapon()
|
||
|
if wep:IsValid() and wep.Move and wep:Move(mv) then
|
||
|
return true
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function CLASS:CalcMainActivity(pl, velocity)
|
||
|
local wep = pl:GetActiveWeapon()
|
||
|
if wep:IsValid() and wep.GetClimbing and wep:GetClimbing() then
|
||
|
pl.CalcIdeal = ACT_ZOMBIE_CLIMB_UP
|
||
|
return true
|
||
|
end
|
||
|
|
||
|
return self.BaseClass.CalcMainActivity(self, pl, velocity)
|
||
|
end
|
||
|
|
||
|
function CLASS:UpdateAnimation(pl, velocity, maxseqgroundspeed)
|
||
|
local wep = pl:GetActiveWeapon()
|
||
|
if wep:IsValid() and wep.GetClimbing and wep:GetClimbing() then
|
||
|
local vel = pl:GetVelocity()
|
||
|
local speed = vel:Length()
|
||
|
if speed > 8 then
|
||
|
pl:SetPlaybackRate(math.Clamp(speed / 60, 0, 1) * (vel.z < 0 and -1 or 1) * 0.25)
|
||
|
else
|
||
|
pl:SetPlaybackRate(0)
|
||
|
end
|
||
|
|
||
|
return true
|
||
|
end
|
||
|
|
||
|
return self.BaseClass.UpdateAnimation(self, pl, velocity, maxseqgroundspeed)
|
||
|
end
|
||
|
|
||
|
--[[if SERVER then return end
|
||
|
|
||
|
function CLASS:CreateMove(pl, cmd)
|
||
|
local wep = pl:GetActiveWeapon()
|
||
|
if wep:IsValid() and wep.IsClimbing and wep:IsClimbing() then
|
||
|
local buttons = cmd:GetButtons()
|
||
|
if bit.band(buttons, IN_DUCK) ~= 0 then
|
||
|
cmd:SetButtons(buttons - IN_DUCK)
|
||
|
end
|
||
|
end
|
||
|
end]]
|