--[[ | 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') /*----------------------------------------------- *** Copyright (c) 2012-2023 by DrVrej, All rights reserved. *** No parts of this code or any of its contents may be reproduced, copied, modified or adapted, without the prior written consent of the author, unless otherwise indicated for stand-alone materials. -----------------------------------------------*/ ENT.Model = {"models/vj_hlr/decay/wheelchair_sci.mdl"} -- The game will pick a random model from the table when the SNPC is spawned | Add as many as you want ENT.StartHealth = 100 ENT.VJC_Data = { ThirdP_Offset = Vector(10, 0, -20), -- The offset for the controller when the camera is in third person FirstP_Bone = "Bip01 Head", -- If left empty, the base will attempt to calculate a position for first person FirstP_Offset = Vector(3, 0, 3.3), -- The offset for the controller when the camera is in first person FirstP_ShrinkBone = false, -- Should the bone shrink? Useful if the bone is obscuring the player's view } ENT.IsMedicSNPC = false -- Is this SNPC a medic? Does it heal other friendly friendly SNPCs, and players(If friendly) /* -- Can't reach player, unfollow vj_hlr/hl1_npc/keller/dk_stop0.wav vj_hlr/hl1_npc/keller/dk_stop1.wav vj_hlr/hl1_npc/keller/dk_stop2.wav -- vj_hlr/hl1_npc/keller/dk_01_cascade.wav ---> vj_hlr/hl1_npc/keller/dk_01_gottodeal.wav -- vj_hlr/hl1_npc/keller/dk_01_needspect.wav ---> vj_hlr/hl1_npc/keller/dk_04_excellent.wav vj_hlr/hl1_npc/keller/dk_04_ididit.wav vj_hlr/hl1_npc/keller/dk_04_interfere.wav -- vj_hlr/hl1_npc/keller/dk_04_otherdamp.wav ---> vj_hlr/hl1_npc/keller/dk_12_whenstart.wav vj_hlr/hl1_npc/keller/dk_furher.wav vj_hlr/hl1_npc/keller/dk_kellerfrog.wav vj_hlr/hl1_npc/keller/dk_leads1.wav vj_hlr/hl1_npc/keller/dk_leads2.wav vj_hlr/hl1_npc/keller/wheelchair_jog.wav vj_hlr/hl1_npc/keller/wheelchair_run.wav vj_hlr/hl1_npc/keller/wheelchair_walk.wav */ -- Custom ENT.Keller_WheelChair = true --------------------------------------------------------------------------------------------------------------------------------------------- function ENT:SCI_CustomOnInitialize() self.SoundTbl_FootStep = {"vj_hlr/hl1_npc/keller/wheelchair_walk.wav"} self.SoundTbl_Idle = {"vj_hlr/hl1_npc/keller/dk_idle0.wav","vj_hlr/hl1_npc/keller/dk_idle1.wav","vj_hlr/hl1_npc/keller/dk_idle3.wav","vj_hlr/hl1_npc/keller/dk_idle4.wav","vj_hlr/hl1_npc/keller/dk_04_letssee.wav"} self.SoundTbl_IdleDialogue = {"vj_hlr/hl1_npc/keller/dk_01_kleiner.wav","vj_hlr/hl1_npc/keller/dk_hevchair.wav","vj_hlr/hl1_npc/keller/dk_idle2.wav","vj_hlr/hl1_npc/keller/dk_rugurinate.wav"} self.SoundTbl_IdleDialogueAnswer = {"vj_hlr/hl1_npc/keller/dk_iknowyouare.wav","vj_hlr/hl1_npc/keller/dk_stare0.wav"} self.SoundTbl_CombatIdle = {"vj_hlr/hl1_npc/keller/dk_help0.wav","vj_hlr/hl1_npc/keller/dk_help1.wav","vj_hlr/hl1_npc/keller/dk_help2.wav","vj_hlr/hl1_npc/keller/dk_fear0.wav","vj_hlr/hl1_npc/keller/dk_fear1.wav","vj_hlr/hl1_npc/keller/dk_fear2.wav","vj_hlr/hl1_npc/keller/dk_fear3.wav","vj_hlr/hl1_npc/keller/dk_fear4.wav","vj_hlr/hl1_npc/keller/dk_fear5.wav","vj_hlr/hl1_npc/keller/dk_fear6.wav"} self.SoundTbl_FollowPlayer = {"vj_hlr/hl1_npc/keller/dk_stare1.wav","vj_hlr/hl1_npc/keller/dk_stare2.wav","vj_hlr/hl1_npc/keller/dk_04_goonway.wav","vj_hlr/hl1_npc/keller/dk_04_onwaythen.wav","vj_hlr/hl1_npc/keller/dk_leads0.wav","vj_hlr/hl1_npc/keller/dk_ok0.wav","vj_hlr/hl1_npc/keller/dk_ok1.wav","vj_hlr/hl1_npc/keller/dk_ok2.wav"} self.SoundTbl_UnFollowPlayer = {"vj_hlr/hl1_npc/keller/dk_plfear2.wav","vj_hlr/hl1_npc/keller/dk_wait0.wav","vj_hlr/hl1_npc/keller/dk_wait1.wav","vj_hlr/hl1_npc/keller/dk_wait2.wav","vj_hlr/hl1_npc/keller/dk_wait3.wav"} self.SoundTbl_OnPlayerSight = {"vj_hlr/hl1_npc/keller/dk_hello0.wav","vj_hlr/hl1_npc/keller/dk_hello1.wav","vj_hlr/hl1_npc/keller/dk_hello2.wav","vj_hlr/hl1_npc/keller/dk_hello3.wav","vj_hlr/hl1_npc/keller/dk_hello4.wav","vj_hlr/hl1_npc/keller/dk_01_late.wav","vj_hlr/hl1_npc/keller/dk_newstuff.wav"} self.SoundTbl_Alert = {"vj_hlr/hl1_npc/keller/dk_04_monsters.wav","vj_hlr/hl1_npc/keller/dk_help0.wav","vj_hlr/hl1_npc/keller/dk_help1.wav","vj_hlr/hl1_npc/keller/dk_help2.wav"} self.SoundTbl_BecomeEnemyToPlayer = {"vj_hlr/hl1_npc/keller/dk_screwyou.wav"} self.SoundTbl_OnGrenadeSight = {"vj_hlr/hl1_npc/keller/dk_fear0.wav","vj_hlr/hl1_npc/keller/dk_fear1.wav","vj_hlr/hl1_npc/keller/dk_fear2.wav","vj_hlr/hl1_npc/keller/dk_fear3.wav","vj_hlr/hl1_npc/keller/dk_fear4.wav","vj_hlr/hl1_npc/keller/dk_fear5.wav","vj_hlr/hl1_npc/keller/dk_fear6.wav"} self.SoundTbl_OnDangerSight = {"vj_hlr/hl1_npc/keller/dk_fear0.wav","vj_hlr/hl1_npc/keller/dk_fear1.wav","vj_hlr/hl1_npc/keller/dk_fear2.wav","vj_hlr/hl1_npc/keller/dk_fear3.wav","vj_hlr/hl1_npc/keller/dk_fear4.wav","vj_hlr/hl1_npc/keller/dk_fear5.wav","vj_hlr/hl1_npc/keller/dk_fear6.wav"} self.SoundTbl_AllyDeath = {"vj_hlr/hl1_npc/keller/dk_condolences.wav"} self.SoundTbl_Pain = {"vj_hlr/hl1_npc/keller/dk_pain1.wav","vj_hlr/hl1_npc/keller/dk_pain2.wav","vj_hlr/hl1_npc/keller/dk_pain3.wav","vj_hlr/hl1_npc/keller/dk_pain4.wav","vj_hlr/hl1_npc/keller/dk_pain5.wav","vj_hlr/hl1_npc/keller/dk_pain6.wav","vj_hlr/hl1_npc/keller/dk_pain7.wav"} self.SoundTbl_DamageByPlayer = {"vj_hlr/hl1_npc/keller/dk_plfear0.wav","vj_hlr/hl1_npc/keller/dk_plfear1.wav","vj_hlr/hl1_npc/keller/dk_plfear3.wav","vj_hlr/hl1_npc/keller/dk_scared0.wav","vj_hlr/hl1_npc/keller/dk_scared1.wav","vj_hlr/hl1_npc/keller/dk_scared2.wav"} self.SoundTbl_Death = {"vj_hlr/hl1_npc/keller/dk_die1.wav","vj_hlr/hl1_npc/keller/dk_die2.wav","vj_hlr/hl1_npc/keller/dk_die3.wav","vj_hlr/hl1_npc/keller/dk_die3.wav","vj_hlr/hl1_npc/keller/dk_die4.wav","vj_hlr/hl1_npc/keller/dk_die5.wav","vj_hlr/hl1_npc/keller/dk_die6.wav","vj_hlr/hl1_npc/keller/dk_die7.wav"} self.AnimTbl_Death = {ACT_DIESIMPLE} end --------------------------------------------------------------------------------------------------------------------------------------------- function ENT:Controller_Initialize(ply, controlEnt) ply:ChatPrint("JUMP: Stand up") function controlEnt:CustomOnKeyBindPressed(key) if key == IN_JUMP && !self.VJCE_NPC:IsBusy() then self.VJCE_NPC:SetState(VJ_STATE_ONLY_ANIMATION_CONSTANT) self.VJCE_NPC:VJ_ACT_PLAYACTIVITY(ACT_STAND, true, false, false, 0, { -- Already done through event, but also here to make sure it's killed! OnFinish = function(interrupted, anim) if self.VJCE_NPC.Dead then return end self.VJCE_NPC.HasDeathAnimation = false self.VJCE_NPC:TakeDamage(self.VJCE_NPC:Health(), self.VJCE_NPC, self.VJCE_NPC) end }) end end end --------------------------------------------------------------------------------------------------------------------------------------------- function ENT:CustomOnDeath_BeforeCorpseSpawned(dmginfo, hitgroup) if self:GetBodygroup(0) == 1 then self.Keller_WheelChair = false end self:SetBodygroup(0, 1) self:SetPos(self:GetPos() + self:GetUp()*5) end --------------------------------------------------------------------------------------------------------------------------------------------- function ENT:CustomOnDeath_AfterCorpseSpawned(dmginfo, hitgroup, corpseEnt) VJ_HLR_ApplyCorpseEffects(self, corpseEnt) if self.Keller_WheelChair == true then self:CreateExtraDeathCorpse("prop_physics", "models/vj_hlr/decay/wheelchair.mdl") end end