mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
147
lua/entities/npc_vj_hla_zombieclassic_hl2/init.lua
Normal file
147
lua/entities/npc_vj_hla_zombieclassic_hl2/init.lua
Normal file
@@ -0,0 +1,147 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
AddCSLuaFile("shared.lua")
|
||||
include('shared.lua')
|
||||
ENT.StartHealth = 50
|
||||
ENT.Model = {"models/creatures/zombies/zombie_classic.mdl"}
|
||||
ENT.HullType = HULL_HUMAN
|
||||
ENT.EntitiesToNoCollide = {"npc_vj_hla_ocrab","npc_vj_hla_hcrab","npc_vj_hla_ahcrab","npc_vj_hla_fcrab","npc_vj_hla_bcrab","npc_vj_hla_rcrab","npc_vj_hla_fhcrab","npc_drg_headcrabv2_mdcversion","npc_drg_poisonheadcrabv2_mdcversion","npc_drg_fastheadcrabv2_mdcversion","npc_vj_hla_bcrab_hl2"} -- Entities to not collide with when HasEntitiesToNoCollide is set to true
|
||||
------ AI / Relationship Variables ------
|
||||
ENT.HasAllies = true -- Put to false if you want it not to have any allies
|
||||
ENT.VJ_NPC_Class = {"CLASS_ZOMBIE"} -- NPCs with the same class with be allied to each other
|
||||
------ Damaged / Injured Variables ------
|
||||
ENT.Bleeds = true -- Does the SNPC bleed? (Blood decal, particle, etc.)
|
||||
ENT.BloodColor = "Red" -- The blood type, this will determine what it should use (decal, particle, etc.)
|
||||
-- ====== Miscellaneous Variables ====== --
|
||||
ENT.PushProps = true -- Should it push props when trying to move?
|
||||
ENT.AnimTbl_IdleStand = {"ACT_IDLE"} -- The idle animation table when AI is enabled | DEFAULT: {ACT_IDLE}
|
||||
ENT.DeathCorpseSetBoneAngles = true -- This can be used to stop the corpse glitching or flying on death
|
||||
ENT.DeathCorpseApplyForce = false -- Disables the damage force on death | Useful for SNPCs with Death Animations
|
||||
-- ====== Corpse Variables ====== --
|
||||
ENT.HasDeathRagdoll = true -- If set to false, it will not spawn the regular ragdoll of the SNPC
|
||||
ENT.DeathCorpseSetBodyGroup = true -- Should it get the models bodygroups and set it to the corpse? When set to false, it uses the model's default bodygroups
|
||||
-- ====== Death Animation Variables ====== --
|
||||
ENT.HasDeathAnimation = false -- Does it play an animation when it dies?
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
------ Melee Attack Variables ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
ENT.HasMeleeAttack = true -- Should the SNPC have a melee attack?
|
||||
ENT.MeleeAttackDamage = GetConVarNumber("vj_hla_hzomb_d")
|
||||
ENT.MeleeAttackDamageType = DMG_SLASH -- Type of Damage
|
||||
-- ====== Animation Variables ====== --
|
||||
ENT.AnimTbl_MeleeAttack = {} -- Melee Attack Animations
|
||||
ENT.MeleeAttackDamage = 10
|
||||
-- ====== Distance Variables ====== --
|
||||
ENT.MeleeAttackDistance = 35 -- How close does it have to be until it attacks?
|
||||
-- ====== Timer Variables ====== --
|
||||
-- To use event-based attacks, set this to false:
|
||||
ENT.MeleeAttackReps = 1 -- How many times does it run the melee attack code?
|
||||
ENT.FootStepTimeWalk = .9 -- Next foot step sound when it is walking
|
||||
ENT.FootStepTimeRun = .9 -- Next foot step sound when it is walking
|
||||
--------------------------------------------------------------------------------------------------------------------
|
||||
ENT.FootStep = {"npc/zombie/foot1.wav","npc/zombie/foot2.wav","npc/zombie/foot3.wav"}
|
||||
ENT.SoundTbl_Idle = {"npc/zombie/zombie_voice_idle1.wav",
|
||||
"npc/zombie/zombie_voice_idle2.wav",
|
||||
"npc/zombie/zombie_voice_idle3.wav",
|
||||
"npc/zombie/zombie_voice_idle4.wav",
|
||||
"npc/zombie/zombie_voice_idle5.wav",
|
||||
"npc/zombie/zombie_voice_idle6.wav",
|
||||
"npc/zombie/zombie_voice_idle7.wav",
|
||||
"npc/zombie/zombie_voice_idle8.wav",
|
||||
"npc/zombie/zombie_voice_idle9.wav",
|
||||
"npc/zombie/zombie_voice_idle10.wav",
|
||||
"npc/zombie/zombie_voice_idle11.wav",
|
||||
"npc/zombie/zombie_voice_idle12.wav",
|
||||
"npc/zombie/zombie_voice_idle13.wav",
|
||||
"npc/zombie/zombie_voice_idle14.wav"}
|
||||
ENT.SoundTbl_Alert = {"npc/zombie/zombie_alert1.wav","npc/zombie/zombie_alert2.wav","npc/zombie/zombie_alert3.wav"}
|
||||
ENT.SoundTbl_BeforeMeleeAttack = {"npc/zombie/zo_attack1.wav","npc/zombie/zo_attack2.wav"}
|
||||
ENT.SoundTbl_MeleeAttack = {"npc/zombie/claw_strike1.wav","npc/zombie/claw_strike2.wav","npc/zombie/claw_strike3.wav"}
|
||||
ENT.SoundTbl_MeleeAttackMiss = {"npc/zombie/claw_miss1.wav","npc/zombie/claw_miss2.wav"}
|
||||
ENT.SoundTbl_Impact = {"physics/bullet_impacts/flesh_npc_01.wav",
|
||||
"physics/bullet_impacts/flesh_npc_02.wav",
|
||||
"physics/bullet_impacts/flesh_npc_03.wav",
|
||||
"physics/bullet_impacts/flesh_npc_04.wav",
|
||||
"physics/bullet_impacts/flesh_npc_05.wav",
|
||||
"physics/bullet_impacts/flesh_npc_06.wav",
|
||||
"physics/bullet_impacts/flesh_npc_07.wav",
|
||||
"physics/bullet_impacts/flesh_npc_08.wav"}
|
||||
ENT.SoundTbl_Pain = {"npc/zombie/zombie_pain1.wav","npc/zombie/zombie_pain2.wav","npc/zombie/zombie_pain3.wav","npc/zombie/zombie_pain4.wav","npc/zombie/zombie_pain5.wav","npc/zombie/zombie_pain6.wav"}
|
||||
ENT.SoundTbl_Death = {"npc/zombie/zombie_die1.wav","npc/zombie/zombie_die2.wav","npc/zombie/zombie_die3.wav"}
|
||||
--------------------------------------------------------------------------------------------------------------------
|
||||
ENT.FleshImpactLayer = {"physics/flesh/flesh_impact_bullet1.wav",
|
||||
"physics/flesh/flesh_impact_bullet2.wav",
|
||||
"physics/flesh/flesh_impact_bullet3.wav",
|
||||
"physics/flesh/flesh_impact_bullet4.wav",
|
||||
"physics/flesh/flesh_impact_bullet5.wav"}
|
||||
ENT.Idling = false
|
||||
ENT.Bloater = false
|
||||
ENT.itsmarcosingtime = false
|
||||
ENT.alamano = nil
|
||||
ENT.inflatonrate = false
|
||||
ENT.rice = false
|
||||
--------------------------------------------------------------------------------------------------------------------
|
||||
function ENT:CustomOnInitialize()
|
||||
self:SetBodygroup(self:FindBodygroupByName("headcrab1"),1)
|
||||
end
|
||||
|
||||
function ENT:CustomOnHandleAnimEvent(ev, evTime, evCycle, evType, evOptions)
|
||||
if evOptions == "zombie_step" then
|
||||
VJ_EmitSound(self,self.FootStep,75,100)
|
||||
end
|
||||
end
|
||||
|
||||
function ENT:CustomOnTakeDamage_OnBleed(dmginfo, hitgroup)
|
||||
VJ_EmitSound(self,self.FleshImpactLayer,60,100)
|
||||
end
|
||||
|
||||
function ENT:CustomOnThink()
|
||||
if math.random(1,2) == 1 then
|
||||
self.AnimTbl_MeleeAttack = {"vjseq_attackB"}
|
||||
self.MeleeAttackReps = 2
|
||||
self.TimeUntilMeleeAttackDamage = 1.1 -- This counted in seconds | This calculates the time until it hits something
|
||||
else
|
||||
self.AnimTbl_MeleeAttack = {"vjseq_attackA","vjseq_attackC"}
|
||||
self.MeleeAttackReps = 1
|
||||
self.TimeUntilMeleeAttackDamage = 1.1 -- This counted in seconds | This calculates the time until it hits something
|
||||
end
|
||||
end
|
||||
|
||||
function ENT:CustomOnFlinch_BeforeFlinch(dmginfo, hitgroup)
|
||||
if self.MeleeAttacking == true then
|
||||
return false
|
||||
else
|
||||
return true
|
||||
end
|
||||
end -- Return false to disallow the flinch from playing
|
||||
|
||||
function ENT:CustomOnInitialKilled(dmginfo, hitgroup)
|
||||
self:SetBodygroup(self:FindBodygroupByName("headcrab1"),0)
|
||||
|
||||
if hitgroup == HITGROUP_HEAD then
|
||||
local crabdead = ents.Create("prop_ragdoll")
|
||||
crabdead:SetModel("models/headcrabclassic.mdl")
|
||||
crabdead:SetPos(self:GetPos()+Vector(0,0,50))
|
||||
crabdead:SetAngles(self:GetAngles())
|
||||
crabdead:Spawn()
|
||||
crabdead:SetCollisionGroup(COLLISION_GROUP_DEBRIS)
|
||||
else
|
||||
local crab = ents.Create("npc_headcrab")
|
||||
crab:SetPos(self:GetPos()+Vector(0,0,50))
|
||||
crab:SetAngles(self:GetAngles())
|
||||
crab:Spawn()
|
||||
end
|
||||
|
||||
self.AnimTbl_Death = {"ACT_DIESIMPLE"} //"zombie_death_anim_02"
|
||||
self.DeathAnimationTime = 1.33333
|
||||
end
|
||||
|
||||
-- All functions and variables are located inside the base files. It can be found in the GitHub Repository: https://github.com/DrVrej/VJ-Base
|
||||
Reference in New Issue
Block a user