mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
386
lua/autorun/include/pill_ep2.lua
Normal file
386
lua/autorun/include/pill_ep2.lua
Normal file
@@ -0,0 +1,386 @@
|
||||
--[[
|
||||
| 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()
|
||||
|
||||
pk_pills.register("ep2_hunter",{
|
||||
printName="Hunter",
|
||||
side="hl_combine",
|
||||
type="ply",
|
||||
model="models/hunter.mdl",
|
||||
default_rp_cost=9000,
|
||||
camera={
|
||||
offset=Vector(0,0,100),
|
||||
dist=150
|
||||
},
|
||||
hull=Vector(60,60,100),
|
||||
anims={
|
||||
default={
|
||||
idle="idle1",
|
||||
walk="walk_all",
|
||||
run="canter_all",
|
||||
jump="jump",
|
||||
glide="jump_idle",
|
||||
melee1="meleeleft",
|
||||
melee2="meleert",
|
||||
melee3="melee_02"
|
||||
}
|
||||
},
|
||||
sounds={
|
||||
melee=pk_pills.helpers.makeList("npc/ministrider/hunter_defendstrider#.wav",3),
|
||||
melee_hit=pk_pills.helpers.makeList("npc/zombie/claw_strike#.wav",3),
|
||||
shoot="npc/ministrider/ministrider_fire1.wav",
|
||||
step=pk_pills.helpers.makeList("npc/ministrider/ministrider_footstep#.wav",5)
|
||||
},
|
||||
aim={
|
||||
attachment="MiniGunBase",
|
||||
simple=true
|
||||
},
|
||||
attack={
|
||||
mode= "auto",
|
||||
func=function(ply,ent)
|
||||
ent:PillSound("shoot",true)
|
||||
local f = ents.Create("hunter_flechette")
|
||||
f:SetPos(ply:GetShootPos()+ply:EyeAngles():Forward()*80)
|
||||
f:SetVelocity(ply:EyeAngles():Forward()*2000+VectorRand()*10)
|
||||
f:SetAngles(ply:EyeAngles())
|
||||
f:Spawn()
|
||||
end,
|
||||
delay=.1
|
||||
},
|
||||
attack2={
|
||||
mode="trigger",
|
||||
func = pk_pills.common.melee,
|
||||
animCount=3,
|
||||
delay=.5,
|
||||
range=75,
|
||||
dmg=25
|
||||
},
|
||||
movePoseMode="yaw",
|
||||
moveSpeed={
|
||||
walk=200,
|
||||
run=500
|
||||
},
|
||||
jumpPower=400,
|
||||
health=300,
|
||||
noFallDamage=true
|
||||
})
|
||||
|
||||
pk_pills.register("ep2_antlion_worker",{
|
||||
parent="antlion",
|
||||
printName="Antlion Worker",
|
||||
model="models/antlion_worker.mdl",
|
||||
default_rp_cost=6000,
|
||||
options=false,
|
||||
reload= function(ply,ent)
|
||||
ent:PillAnim("spit",true)
|
||||
|
||||
timer.Simple(.5,function()
|
||||
if !IsValid(ply) then return end
|
||||
for i=1,5 do
|
||||
local n=math.random(3)
|
||||
local s = ents.Create("grenade_spit")
|
||||
s:SetPos(ply:GetShootPos()+ply:EyeAngles():Forward()*100+Vector(0,0,50))
|
||||
s:SetVelocity(ply:EyeAngles():Forward()*800+Vector(0,0,400)+VectorRand()*20)
|
||||
s:Spawn()
|
||||
if n==1 then
|
||||
s:SetModel("models/spitball_medium.mdl")
|
||||
elseif n==2 then
|
||||
s:SetModel("models/spitball_small.mdl")
|
||||
end
|
||||
end
|
||||
end)
|
||||
end,
|
||||
aim={nocrosshair=false},
|
||||
anims={
|
||||
default={
|
||||
spit="spit"
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
pk_pills.register("ep2_cturret",{
|
||||
parent="cturret",
|
||||
printName="Rebel Turret",
|
||||
side=false,
|
||||
default_rp_cost=3000,
|
||||
options=function() return {
|
||||
{visMat="models/combine_turrets/floor_turret/floor_turret_citizen"},
|
||||
{visMat="models/combine_turrets/floor_turret/floor_turret_citizen4"}
|
||||
} end,
|
||||
})
|
||||
|
||||
pk_pills.register("ep2_guardian",{
|
||||
parent="antlion_guard",
|
||||
printName="Ancient Guardian",
|
||||
default_rp_cost=11000,
|
||||
visMat="Models/antlion_guard/antlionGuard2",
|
||||
attack={
|
||||
dmg=100
|
||||
},
|
||||
charge={
|
||||
dmg=200
|
||||
}
|
||||
})
|
||||
|
||||
pk_pills.register("ep2_vort_scientist",{
|
||||
parent="vort",
|
||||
printName="Vortigaunt Scientist",
|
||||
model="models/vortigaunt_doctor.mdl",
|
||||
})
|
||||
|
||||
pk_pills.register("ep2_sniper",{
|
||||
parent="csoldier",
|
||||
printName="Combine Sniper",
|
||||
default_rp_cost=7000,
|
||||
//model="models/Combine_Super_Soldier.mdl",
|
||||
//ammo={AR2AltFire=6},
|
||||
//health=300
|
||||
loadout={"pill_wep_csniper"}
|
||||
})
|
||||
|
||||
pk_pills.register("ep2_inventor",{
|
||||
printName="The Inventor",
|
||||
type="ply",
|
||||
model="models/magnusson.mdl",
|
||||
default_rp_cost=10000,
|
||||
anims={
|
||||
default={
|
||||
idle="lineidle02",
|
||||
walk="walk_all",
|
||||
run="run_all",
|
||||
crouch="Crouch_idleD",
|
||||
crouch_walk="Crouch_walk_aLL",
|
||||
glide="jump_holding_glide",
|
||||
jump="jump_holding_jump",
|
||||
g_attack="gesture_shoot_smg1",
|
||||
g_reload="gesture_reload_smg1"
|
||||
},
|
||||
smg={
|
||||
idle="Idle_SMG1_Aim_Alert",
|
||||
walk="walkAIMALL1",
|
||||
run="run_alert_aiming_all",
|
||||
crouch="crouch_aim_smg1",
|
||||
crouch_walk="Crouch_walk_aiming_all"
|
||||
},
|
||||
ar2={
|
||||
idle="idle_angry_Ar2",
|
||||
walk="walkAIMALL1_ar2",
|
||||
run="run_aiming_ar2_all",
|
||||
crouch="crouch_aim_smg1",
|
||||
crouch_walk="Crouch_walk_aiming_all",
|
||||
g_attack="gesture_shoot_ar2",
|
||||
g_reload="gesture_reload_ar2"
|
||||
},
|
||||
shotgun={
|
||||
idle="Idle_Angry_Shotgun",
|
||||
walk="walkAIMALL1_ar2",
|
||||
run="run_aiming_ar2_all",
|
||||
crouch="crouch_aim_smg1",
|
||||
crouch_walk="Crouch_walk_aiming_all",
|
||||
g_attack="gesture_shoot_shotgun",
|
||||
g_reload="gesture_reload_ar2"
|
||||
}
|
||||
},
|
||||
aim={
|
||||
xPose="aim_yaw",
|
||||
yPose="aim_pitch"
|
||||
},
|
||||
moveSpeed={
|
||||
walk=60,
|
||||
run=200,
|
||||
ducked=40
|
||||
},
|
||||
loadout={"pill_wep_holstered","weapon_smg1","pill_wep_magnade"},
|
||||
ammo={SMG1=100},
|
||||
health=1000,
|
||||
validHoldTypes={"smg","ar2","shotgun","grenade"},
|
||||
movePoseMode="yaw"
|
||||
})
|
||||
|
||||
pk_pills.register("ep2_grub",{
|
||||
printName="Grub",
|
||||
side="antlion",
|
||||
type="ply",
|
||||
model="models/antlion_grub.mdl",
|
||||
default_rp_cost=400,
|
||||
camera={
|
||||
offset=Vector(0,0,5),
|
||||
dist=80
|
||||
},
|
||||
hull=Vector(30,30,15),
|
||||
anims={},
|
||||
moveSpeed={
|
||||
walk=30,
|
||||
run=60
|
||||
},
|
||||
jumpPower=0,
|
||||
health=20
|
||||
})
|
||||
|
||||
pk_pills.register("ep2_gnome",{
|
||||
printName="Garden Gnome",
|
||||
type="ply",
|
||||
model="models/props_junk/gnome.mdl",
|
||||
default_rp_cost=1000,
|
||||
camera={
|
||||
offset=Vector(0,0,15),
|
||||
dist=80
|
||||
},
|
||||
hull=Vector(10,10,30),
|
||||
anims={},
|
||||
moveSpeed={
|
||||
walk=60,
|
||||
run=120
|
||||
},
|
||||
attack={
|
||||
mode="trigger",
|
||||
func=function(ply,ent)
|
||||
ent:PillSound("laugh")
|
||||
end
|
||||
},
|
||||
sounds={
|
||||
laugh=pk_pills.helpers.makeList("vo/ravenholm/madlaugh0#.wav",4),
|
||||
laugh_pitch=140
|
||||
},
|
||||
noragdoll=true,
|
||||
jumpPower=150,
|
||||
health=80,
|
||||
noFallDamage=true
|
||||
})
|
||||
|
||||
pk_pills.register("ep2_advisor",{
|
||||
printName="Enhanced Advisor",
|
||||
parent="advisor",
|
||||
model="models/birdbrainswagtrain/episodic/advisor.mdl",
|
||||
default_rp_cost=10000,
|
||||
aim={},
|
||||
attack={
|
||||
mode="trigger",
|
||||
func=function(ply,ent)
|
||||
if ent:GetSequence()!=ent:LookupSequence("idle") then return end
|
||||
ent:PillAnim("melee",true)
|
||||
|
||||
timer.Simple(.7,function()
|
||||
if !IsValid(ent) then return end
|
||||
|
||||
local tr = util.TraceHull({
|
||||
start=ent:GetPos(),
|
||||
endpos=ent:GetPos()+ent:GetAngles():Forward()*200,
|
||||
filter={ent},
|
||||
mins=Vector(-25,-25,-25),
|
||||
maxs=Vector(25,25,25)
|
||||
})
|
||||
if IsValid(tr.Entity) then
|
||||
local dmg=DamageInfo()
|
||||
dmg:SetAttacker(ply)
|
||||
dmg:SetInflictor(ent)
|
||||
dmg:SetDamageType(DMG_SLASH)
|
||||
dmg:SetDamage(50)
|
||||
|
||||
tr.Entity:TakeDamageInfo(dmg)
|
||||
|
||||
ent:PillSound("hit")
|
||||
end
|
||||
end)
|
||||
timer.Simple(1.2,function()
|
||||
if !IsValid(ent) then return end
|
||||
ent:PillAnim("idle",true)
|
||||
end)
|
||||
end
|
||||
},
|
||||
attack2={
|
||||
mode="trigger",
|
||||
func=function(ply,ent)
|
||||
if ent:GetSequence()!=ent:LookupSequence("idle") then return end
|
||||
ent:PillAnim("grab",true)
|
||||
|
||||
timer.Simple(.7,function()
|
||||
if !IsValid(ent) then return end
|
||||
|
||||
local tr = util.TraceHull({
|
||||
start=ent:GetPos(),
|
||||
endpos=ent:GetPos()+ent:GetAngles():Forward()*200,
|
||||
filter={ent},
|
||||
mins=Vector(-25,-25,-25),
|
||||
maxs=Vector(25,25,25)
|
||||
})
|
||||
if IsValid(tr.Entity) and not tr.Entity:IsFlagSet(FL_GODMODE) then
|
||||
|
||||
local mdl_ent = pk_pills.getMappedEnt(tr.Entity) or tr.Entity
|
||||
|
||||
mdl_ent = mdl_ent.subModel or mdl_ent
|
||||
|
||||
mdl_ent = mdl_ent.GetPuppet and mdl_ent:GetPuppet() or mdl_ent
|
||||
|
||||
if mdl_ent:LookupBone("ValveBiped.Bip01_Spine4") then
|
||||
local mdl_name = mdl_ent:GetModel()
|
||||
|
||||
if tr.Entity:IsPlayer() then
|
||||
tr.Entity:KillSilent()
|
||||
else
|
||||
tr.Entity:Remove()
|
||||
end
|
||||
|
||||
local attachment=ents.Create("pill_attachment_body")
|
||||
attachment.model = mdl_name
|
||||
attachment:SetPos(ent:GetPos())
|
||||
attachment:SetParent(ent)
|
||||
attachment:Spawn()
|
||||
|
||||
ent.brainsucked=true
|
||||
else
|
||||
ent.brainsucked=false
|
||||
end
|
||||
else
|
||||
ent.brainsucked=false
|
||||
end
|
||||
|
||||
if !ent.brainsucked then
|
||||
ent:PillAnim("fail",true)
|
||||
end
|
||||
end)
|
||||
timer.Simple(2.3,function()
|
||||
if !IsValid(ent) or !ent.brainsucked then return end
|
||||
|
||||
ent:PillSound("brainsuck")
|
||||
|
||||
local effectdata = EffectData()
|
||||
|
||||
effectdata:SetOrigin(ent:LocalToWorld(Vector(75,0,-20)))
|
||||
effectdata:SetNormal(ent:GetAngles():Forward())
|
||||
effectdata:SetMagnitude(1)
|
||||
effectdata:SetScale(10)
|
||||
effectdata:SetColor(0)
|
||||
effectdata:SetFlags(3)
|
||||
|
||||
util.Effect("bloodspray",effectdata)
|
||||
end)
|
||||
timer.Simple(5,function()
|
||||
if !IsValid(ent) then return end
|
||||
ent:PillAnim("idle",true)
|
||||
end)
|
||||
end
|
||||
},
|
||||
reload=function(ply,ent)
|
||||
local traceres = util.QuickTrace(ent:GetPos(),ply:EyeAngles():Forward()*99999,{ply,ent})
|
||||
|
||||
local blast = ents.Create("pill_advisor_blast")
|
||||
blast:SetPos(traceres.HitPos)
|
||||
blast:SetOwner(ply)
|
||||
blast:Spawn()
|
||||
|
||||
ent:PillSound("blast")
|
||||
end,
|
||||
sounds={
|
||||
brainsuck="physics/flesh/flesh_squishy_impact_hard3.wav",
|
||||
blast="npc/advisor/advisor_blast1.wav"
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user