mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
494 lines
15 KiB
Lua
494 lines
15 KiB
Lua
--[[
|
|
| 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("dog", {
|
|
printName = "Dog",
|
|
type = "ply",
|
|
model = "models/dog.mdl",
|
|
default_rp_cost = 10000,
|
|
camera = {
|
|
dist = 300
|
|
},
|
|
hull = Vector(120, 120, 100),
|
|
anims = {
|
|
default = {
|
|
idle = "idle01",
|
|
walk = "walk_all",
|
|
run = "run_all",
|
|
melee = "throw"
|
|
}
|
|
},
|
|
sounds = {
|
|
melee = "npc/dog/dog_servo6.wav",
|
|
melee_hit = pk_pills.helpers.makeList("physics/metal/metal_box_impact_hard#.wav", 3),
|
|
step = pk_pills.helpers.makeList("npc/dog/dog_footstep#.wav", 4)
|
|
},
|
|
aim = {
|
|
xPose = "head_yaw",
|
|
yPose = "head_pitch"
|
|
},
|
|
reload = function(ply, ent)
|
|
pk_pills.common.melee(ply, ent, {
|
|
delay = .5,
|
|
range = 150,
|
|
dmg = 50
|
|
})
|
|
end,
|
|
movePoseMode = "yaw",
|
|
moveSpeed = {
|
|
walk = 150,
|
|
run = 500
|
|
},
|
|
jumpPower = 0,
|
|
loadout = {"weapon_physcannon"},
|
|
hideWeapons = true,
|
|
health = 1200
|
|
})
|
|
|
|
pk_pills.register("hero_infiltrator", {
|
|
printName = "The Infiltrator",
|
|
type = "ply",
|
|
model = "models/barney.mdl",
|
|
default_rp_cost = 10000,
|
|
anims = {
|
|
default = {
|
|
idle = "idle_angry",
|
|
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",
|
|
change = "helmet_reveal"
|
|
},
|
|
smg = {
|
|
idle = "Idle_SMG1_Aim_Alert",
|
|
walk = "walkAIMALL1",
|
|
run = "run_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_ar2", "weapon_shotgun", "weapon_smg1"},
|
|
ammo = {
|
|
AR2 = 100,
|
|
Buckshot = 100,
|
|
smg1 = 100
|
|
},
|
|
health = 1000,
|
|
validHoldTypes = {"smg", "ar2", "shotgun"},
|
|
movePoseMode = "yaw",
|
|
flashlight = function(ply, ent)
|
|
if not ply:IsOnGround() then return end
|
|
ent:PillAnim("change", true)
|
|
|
|
if ent.disguised then
|
|
ent.disguised = nil
|
|
|
|
timer.Simple(1, function()
|
|
if IsValid(ent.disguise_faceplate) then
|
|
ent.disguise_faceplate:Fire("setparentattachment", "faceplate_attachment", 0)
|
|
end
|
|
|
|
if IsValid(ent) then
|
|
pk_pills.setAiTeam(ply, "default")
|
|
end
|
|
end)
|
|
|
|
timer.Simple(2, function()
|
|
if IsValid(ent.disguise_faceplate) then
|
|
ent.disguise_faceplate:Remove()
|
|
end
|
|
|
|
if IsValid(ent.disguise_helmet) then
|
|
ent.disguise_helmet:Remove()
|
|
end
|
|
end)
|
|
else --helmet_attachment faceplate_attachment
|
|
ent.disguised = true
|
|
ent.disguise_faceplate = ents.Create("prop_dynamic")
|
|
ent.disguise_faceplate:SetModel("models/barneyhelmet_faceplate.mdl")
|
|
ent.disguise_faceplate:SetPos(ply:GetPos())
|
|
ent.disguise_faceplate:SetParent(ent:GetPuppet())
|
|
ent.disguise_faceplate:Spawn()
|
|
ent.disguise_faceplate:Fire("setparentattachment", "faceplate_attachment", 0)
|
|
ent.disguise_helmet = ents.Create("prop_dynamic")
|
|
ent.disguise_helmet:SetModel("models/barneyhelmet.mdl")
|
|
ent.disguise_helmet:SetPos(ply:GetPos())
|
|
ent.disguise_helmet:SetParent(ent:GetPuppet())
|
|
ent.disguise_helmet:Spawn()
|
|
ent.disguise_helmet:Fire("setparentattachment", "helmet_attachment", 0)
|
|
|
|
timer.Simple(1, function()
|
|
if IsValid(ent.disguise_faceplate) then
|
|
ent.disguise_faceplate:Fire("setparentattachment", "helmet_attachment", 0)
|
|
end
|
|
|
|
if IsValid(ent) then
|
|
pk_pills.setAiTeam(ply, "hl_infiltrator")
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
})
|
|
|
|
pk_pills.register("hero_monk", {
|
|
printName = "The Monk",
|
|
type = "ply",
|
|
model = "models/monk.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"
|
|
},
|
|
crossbow = {
|
|
idle = "Idle_SMG1_Aim_Alert",
|
|
walk = "walkAIMALL1_ar2",
|
|
run = "run_aiming_all",
|
|
crouch = "crouch_aim_smg1",
|
|
crouch_walk = "Crouch_walk_aiming_all",
|
|
g_attack = "gesture_shoot_ar2",
|
|
g_reload = "gesture_reload_ar2"
|
|
}
|
|
},
|
|
aim = {
|
|
xPose = "aim_yaw",
|
|
yPose = "aim_pitch"
|
|
},
|
|
moveSpeed = {
|
|
walk = 60,
|
|
run = 200,
|
|
ducked = 40
|
|
},
|
|
loadout = {"pill_wep_holstered", "weapon_shotgun", "pill_wep_annabelle"},
|
|
ammo = {
|
|
Buckshot = 100,
|
|
["357"] = 100
|
|
},
|
|
health = 1000,
|
|
validHoldTypes = {"smg", "ar2", "shotgun", "crossbow"},
|
|
movePoseMode = "yaw"
|
|
})
|
|
|
|
pk_pills.register("hero_overseer", {
|
|
printName = "The Overseer",
|
|
type = "ply",
|
|
model = "models/gman_high.mdl",
|
|
default_rp_cost = 20000,
|
|
anims = {
|
|
default = {
|
|
idle = "idle",
|
|
walk = "walk_all",
|
|
run = "sprint_all", --pace_all
|
|
crouch = "Crouch_idleD",
|
|
crouch_walk = "Crouch_walk_aLL",
|
|
glide = "jump_holding_glide",
|
|
jump = "jump_holding_jump",
|
|
melee = "swing",
|
|
cloak = "open_door_away",
|
|
teleport = "tiefidget"
|
|
}
|
|
},
|
|
sounds = {
|
|
--melee=pk_pills.helpers.makeList("npc/zombie/zo_attack#.wav",2),
|
|
melee_hit = pk_pills.helpers.makeList("npc/zombie/claw_strike#.wav", 3),
|
|
melee_miss = pk_pills.helpers.makeList("npc/zombie/claw_miss#.wav", 2),
|
|
cloak = "buttons/combine_button1.wav",
|
|
uncloak = "buttons/combine_button1.wav",
|
|
teleport = "ambient/machines/teleport4.wav"
|
|
},
|
|
cloak = {
|
|
max = -1
|
|
},
|
|
moveSpeed = {
|
|
walk = 100,
|
|
run = 1000,
|
|
ducked = 40
|
|
},
|
|
jumpPower = 1000,
|
|
movePoseMode = "yaw",
|
|
health = 10000,
|
|
noFallDamage = true,
|
|
attack = {
|
|
mode = "trigger",
|
|
func = function(a, b, c)
|
|
if not b.iscloaked then
|
|
pk_pills.common.melee(a, b, c)
|
|
end
|
|
end,
|
|
delay = .3,
|
|
range = 40,
|
|
dmg = 1000
|
|
},
|
|
attack2 = {
|
|
mode = "trigger",
|
|
func = function(ply, ent)
|
|
if not ply:OnGround() then return end
|
|
ent:PillAnim("cloak", true)
|
|
|
|
timer.Simple(1, function()
|
|
if not IsValid(ent) then return end
|
|
ent:ToggleCloak()
|
|
end)
|
|
end
|
|
},
|
|
--[[
|
|
if ent.cloaked then
|
|
ent.cloaked=nil
|
|
|
|
timer.Simple(1,function()
|
|
if !IsValid(ent) then return end
|
|
ent:PillSound("cloak")
|
|
ent:GetPuppet():SetMaterial()
|
|
ent:GetPuppet():DrawShadow(true)
|
|
pk_pills.setAiTeam(ply,"default")
|
|
end)
|
|
else
|
|
ent.cloaked=true
|
|
|
|
timer.Simple(1,function()
|
|
if !IsValid(ent) or !IsValid(ent:GetPuppet()) then return end
|
|
ent:PillSound("cloak")
|
|
ent:GetPuppet():SetMaterial("Models/effects/vol_light001")
|
|
ent:GetPuppet():DrawShadow(false)
|
|
pk_pills.setAiTeam(ply,"harmless")
|
|
end)
|
|
end]]
|
|
reload = function(ply, ent)
|
|
if not ply:OnGround() then return end
|
|
ent:PillAnim("teleport", true)
|
|
|
|
timer.Simple(1, function()
|
|
if not IsValid(ent) then return end
|
|
local tracein = {}
|
|
tracein.maxs = Vector(16, 16, 72)
|
|
tracein.mins = Vector(-16, -16, 0)
|
|
tracein.start = ply:EyePos()
|
|
tracein.endpos = ply:EyePos() + ply:EyeAngles():Forward() * 9999
|
|
tracein.filter = {ply, ent, ent:GetPuppet()}
|
|
local traceout = util.TraceHull(tracein)
|
|
ply:SetPos(traceout.HitPos)
|
|
ent:PillSound("teleport")
|
|
end)
|
|
end
|
|
})
|
|
|
|
pk_pills.register("hero_hacker", {
|
|
printName = "The Hacker",
|
|
type = "ply",
|
|
model = "models/alyx.mdl",
|
|
default_rp_cost = 10000,
|
|
anims = {
|
|
default = {
|
|
idle = "idle_angry",
|
|
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_aiming_all",
|
|
crouch = "crouch_aim_smg1",
|
|
crouch_walk = "Crouch_walk_aiming_all"
|
|
},
|
|
ar2 = {
|
|
idle = "idle_ar2_aim",
|
|
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_ar2_aim",
|
|
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"
|
|
},
|
|
pistol = {
|
|
idle = "Pistol_idle_aim",
|
|
walk = "walk_aiming_p_all",
|
|
run = "run_aiming_p_all"
|
|
}
|
|
},
|
|
sounds = {
|
|
hack = "buttons/blip1.wav",
|
|
nohack = "buttons/button2.wav"
|
|
},
|
|
aim = {
|
|
xPose = "aim_yaw",
|
|
yPose = "aim_pitch"
|
|
},
|
|
moveSpeed = {
|
|
walk = 60,
|
|
run = 200,
|
|
ducked = 40
|
|
},
|
|
loadout = {"pill_wep_holstered", "pill_wep_alyxgun", "weapon_shotgun"},
|
|
ammo = {
|
|
smg1 = 300
|
|
},
|
|
health = 1000,
|
|
validHoldTypes = {"pistol", "smg", "ar2", "shotgun"},
|
|
movePoseMode = "yaw",
|
|
flashlight = function(ply, ent)
|
|
local tr = ply:GetEyeTrace()
|
|
local hackables = {"npc_turret_floor", "npc_rollermine", "npc_manhack"}
|
|
|
|
if (tr.HitPos:Distance(tr.StartPos) < 100 and table.HasValue(hackables, tr.Entity:GetClass())) and pk_pills.getAiTeam(tr.Entity) ~= "default" then
|
|
pk_pills.setAiTeam(tr.Entity, "default")
|
|
ent:PillSound("hack")
|
|
|
|
if tr.Entity:GetClass() ~= "npc_turret_floor" then
|
|
tr.Entity:GetPhysicsObject():SetVelocity(ply:GetAimVector() * 100)
|
|
end
|
|
else
|
|
ent:PillSound("nohack")
|
|
end
|
|
end
|
|
})
|
|
|
|
pk_pills.register("hero_physicist", {
|
|
printName = "The Physicist",
|
|
type = "ply",
|
|
model = "models/Kleiner.mdl",
|
|
default_rp_cost = 10000,
|
|
anims = {
|
|
default = {
|
|
idle = "idle_angry",
|
|
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_aiming_all",
|
|
crouch = "crouch_aim_smg1",
|
|
crouch_walk = "Crouch_walk_aiming_all"
|
|
},
|
|
ar2 = {
|
|
idle = "idle_ar2_aim",
|
|
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_ar2_aim",
|
|
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_shotgun", "pill_wep_translocator"},
|
|
ammo = {
|
|
AR2 = 100,
|
|
Buckshot = 100,
|
|
smg1 = 100
|
|
},
|
|
health = 1000,
|
|
validHoldTypes = {"smg", "ar2", "shotgun"},
|
|
movePoseMode = "yaw"
|
|
})
|