Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AddCSLuaFile( "cl_init.lua" )
- AddCSLuaFile( "init.lua" )
- include('shared.lua')
- ENT.SpawnRagdollOnDeath = true
- ENT.BloodType = "red"
- ENT.AnimScale = 3
- ENT.Damage = 14
- ENT.Death = {"deadzone/death1.wav", "deadzone/death2.wav", "deadzone/death3.wav"}
- ENT.Taunt = {"deadzone/alert1.wav","deadzone/alert2.wav"}
- ENT.Attack = {"deadzone/attack.wav","deadzone/attack2.wav"}
- ENT.MeleeAnims = {"swing"}
- function ENT:SpawnFunction( ply, tr )
- if ( !tr.Hit ) then return end
- local SpawnPos = tr.HitPos + tr.HitNormal * 20
- local ent = ents.Create( "npc_zombie2" )
- ent:SetPos( SpawnPos )
- ent:Spawn()
- ent:Activate()
- return ent
- end
- function ENT:Initialize()
- self:SetModel( "models/Zed/malezed_0"..ChooseRandom({4,6,8})..".mdl" )
- util.PrecacheSound("deadzone/stalk1.wav")
- util.PrecacheSound("deadzone/stalk2.wav")
- self:SetHullType( HULL_HUMAN );
- self:SetHullSizeNormal();
- self:SetSolid( SOLID_BBOX )
- self:SetMoveType( MOVETYPE_STEP )
- self:CapabilitiesAdd( CAP_MOVE_GROUND | CAP_ANIMATEDFACE | CAP_TURN_HEAD | CAP_AIM_GUN | CAP_USE_SHOT_REGULATOR | CAP_OPEN_DOORS | CAP_MOVE_JUMP | CAP_OPEN_DOORS | CAP_MOVE_CLIMB )
- self:SetMaxYawSpeed( 5000 )
- self:SetHealth( math.random(20, 150) )
- self.NextFindNewEnemy = 0;
- end
- function ENT:SelectSchedule()
- local schdChase = ai_schedule.New( "AIFighter Chase" ) //creates the schedule used for this npc
- schdChase:AddTask( "FindEnemy", { Class = "player", Radius = 10000000 } )
- schdChase:EngTask( "TASK_GET_PATH_TO_ENEMY", 0 )
- schdChase:EngTask( "TASK_RUN_PATH_TIMED", 0.0 )
- schdChase:EngTask( "TASK_RUN_PATH", 0 )
- schdChase:EngTask( "TASK_WAIT", 0.1 )
- if ( !IsValid(enemy) or ( enemy:IsPlayer() and !enemy:Alive() ) ) then
- if (!self.NextFindRandom or curTime >= self.NextFindRandom) then
- schdChase:EngTask("TASK_GET_PATH_TO_RANDOM_NODE", 512)
- self.NextFindRandom = curTime + 3
- end
- local close = false
- local tbl = player.GetAll()
- for k,v in pairs(tbl) do
- if v:GetPos():Distance(self:GetPos()) < 100 then
- close = true
- end
- end
- if close then
- schdChase:EngTask( "TASK_STOP_MOVING", 0 )
- schdChase:EngTask( "TASK_FACE_ENEMY", 0 )
- schdChase:AddTask( "PlaySequence", { Name = "swing", Speed = .6 } )
- end
- self:StartSchedule( schdChase )
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement