Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.31 KB | None | 0 0
  1. AddCSLuaFile( "cl_init.lua" )
  2. AddCSLuaFile( "init.lua" )
  3.  
  4. include('shared.lua')
  5.  
  6. ENT.SpawnRagdollOnDeath = true
  7. ENT.BloodType = "red"
  8. ENT.AnimScale = 3
  9. ENT.Damage = 14
  10. ENT.Death = {"deadzone/death1.wav", "deadzone/death2.wav", "deadzone/death3.wav"}
  11. ENT.Taunt = {"deadzone/alert1.wav","deadzone/alert2.wav"}
  12. ENT.Attack = {"deadzone/attack.wav","deadzone/attack2.wav"}
  13. ENT.MeleeAnims = {"swing"}
  14.  
  15. function ENT:SpawnFunction( ply, tr )
  16.  
  17.     if ( !tr.Hit ) then return end
  18.    
  19.     local SpawnPos = tr.HitPos + tr.HitNormal * 20
  20.    
  21.     local ent = ents.Create( "npc_zombie2" )
  22.     ent:SetPos( SpawnPos )
  23.     ent:Spawn()
  24.     ent:Activate()
  25.    
  26.     return ent
  27.    
  28. end
  29.  
  30. function ENT:Initialize()
  31.  
  32.     self:SetModel( "models/Zed/malezed_0"..ChooseRandom({4,6,8})..".mdl" )
  33.    
  34.     util.PrecacheSound("deadzone/stalk1.wav")
  35.     util.PrecacheSound("deadzone/stalk2.wav")
  36.    
  37.     self:SetHullType( HULL_HUMAN );
  38.     self:SetHullSizeNormal();
  39.    
  40.     self:SetSolid( SOLID_BBOX )
  41.     self:SetMoveType( MOVETYPE_STEP )
  42.    
  43.     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 )
  44.    
  45.     self:SetMaxYawSpeed( 5000 )
  46.    
  47.     self:SetHealth( math.random(20, 150) )
  48.    
  49.     self.NextFindNewEnemy = 0;
  50.    
  51. end
  52.  
  53. function ENT:SelectSchedule()
  54.  
  55.     local schdChase = ai_schedule.New( "AIFighter Chase" ) //creates the schedule used for this npc
  56.    
  57.     schdChase:AddTask( "FindEnemy",         { Class = "player", Radius = 10000000 } )
  58.     schdChase:EngTask( "TASK_GET_PATH_TO_ENEMY", 0 )
  59.     schdChase:EngTask( "TASK_RUN_PATH_TIMED", 0.0 )
  60.     schdChase:EngTask( "TASK_RUN_PATH", 0 )
  61.     schdChase:EngTask( "TASK_WAIT", 0.1 )
  62.    
  63.     if ( !IsValid(enemy) or ( enemy:IsPlayer() and !enemy:Alive() ) ) then
  64.         if (!self.NextFindRandom or curTime >= self.NextFindRandom) then
  65.             schdChase:EngTask("TASK_GET_PATH_TO_RANDOM_NODE", 512)
  66.            self.NextFindRandom = curTime + 3
  67.         end
  68.    
  69.     local close = false
  70.     local tbl = player.GetAll()
  71.     for k,v in pairs(tbl) do
  72.         if v:GetPos():Distance(self:GetPos()) < 100 then
  73.             close = true
  74.         end
  75.     end
  76.    
  77.     if close then
  78.         schdChase:EngTask( "TASK_STOP_MOVING",          0 )
  79.         schdChase:EngTask( "TASK_FACE_ENEMY",           0 )
  80.         schdChase:AddTask( "PlaySequence",              { Name = "swing", Speed = .6 } )
  81.     end
  82.  
  83.     self:StartSchedule( schdChase )
  84.  
  85.     end
  86. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement