Files
wnsrc/lua/autorun/ppp_include/pill_fun3.lua
lifestorm 9c918c46e5 Upload
2024-08-04 23:12:27 +03:00

298 lines
8.1 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("parakeet", {
parent = "bird_pigeon",
printName = "Parakeet",
visColorRandom = true,
reload = function(ply, ent)
local egg = ents.Create("prop_physics")
egg:SetModel("models/props_phx/misc/egg.mdl")
local ang = ply:EyeAngles()
ang.p = 0
egg:SetPos(ply:EyePos() + ang:Forward() * 30)
egg:Spawn()
local phys = egg:GetPhysicsObject()
if IsValid(phys) then
phys:SetVelocity(ply:GetVelocity() + ply:EyeAngles():Forward() * 800 + (ply:IsOnGround() and Vector(0, 0, 600) or Vector()))
end
egg:Fire("FadeAndRemove", nil, 10)
end,
sounds = {
vocalize = pk_pills.helpers.makeList("ambient/levels/canals/swamp_bird#.wav", 6)
}
})
local dragon_attacks = {
function(ply, pos)
local thing = ents.Create("pill_proj_prop")
thing:SetModel(table.Random{"models/props_lab/monitor02.mdl", "models/props_junk/CinderBlock01a.mdl", "models/props_junk/sawblade001a.mdl", "models/props_junk/harpoon002a.mdl", "models/props_junk/watermelon01.mdl", "models/props_c17/FurnitureWashingmachine001a.mdl", "models/props_c17/FurnitureFridge001a.mdl", "models/props_c17/FurnitureBathtub001a.mdl", "models/props_wasteland/prison_toilet01.mdl", "models/props_vehicles/carparts_tire01a.mdl"})
thing:SetPos(pos)
thing:SetAngles(ply:EyeAngles())
thing:Spawn()
thing:SetPhysicsAttacker(ply)
end,
function(ply, pos)
local thing = ents.Create("prop_physics")
thing:SetModel(table.Random{"models/props_c17/oildrum001_explosive.mdl", "models/props_junk/propane_tank001a.mdl", "models/props_junk/gascan001a.mdl"})
thing:SetPos(pos)
thing:SetAngles(ply:EyeAngles())
thing:Spawn()
thing:SetPhysicsAttacker(ply)
thing:Ignite(100)
local phys = thing:GetPhysicsObject()
if IsValid(phys) then
phys:Wake()
phys:EnableGravity(false)
phys:EnableDrag(false)
phys:SetDamping(0, 0)
phys:SetVelocity(ply:EyeAngles():Forward() * 3000)
end
end,
function(ply, pos)
local thing = ents.Create("pill_proj_energy_grenade")
thing:SetPos(pos)
thing:SetAngles(ply:EyeAngles() + Angle(-50 + math.Rand(-10, 10), math.Rand(-10, 10), math.Rand(-10, 10)))
thing:Spawn()
thing:SetOwner(ply)
end,
function(ply, pos)
local rocket = ents.Create("rpg_missile")
rocket:SetPos(pos)
rocket:SetAngles(ply:EyeAngles())
rocket:SetSaveValue("m_flDamage", 200)
rocket:SetOwner(ply)
rocket:SetVelocity(ply:EyeAngles():Forward() * 1500)
rocket:Spawn()
end,
function(ply, pos)
local bomb = ents.Create("grenade_helicopter")
bomb:SetPos(pos)
bomb:SetAngles(Angle(math.Rand(-180, 180), math.Rand(-180, 180), math.Rand(-180, 180)))
bomb:Spawn()
bomb:SetPhysicsAttacker(ply)
bomb:GetPhysicsObject():AddVelocity(ply:EyeAngles():Forward() * 3000)
end,
function(ply, pos)
local nade = ents.Create("npc_grenade_frag")
nade:SetPos(pos)
nade:SetAngles(ply:EyeAngles())
nade:Spawn()
nade:SetOwner(ply)
nade:Fire("SetTimer", 3, 0)
nade:GetPhysicsObject():SetVelocity((ply:EyeAngles():Forward() + Vector(0, 0, .2)) * 3000)
end,
function(ply, pos)
local ball = ents.Create("prop_combine_ball")
ball:SetPos(pos)
ball:SetAngles(ply:EyeAngles())
ball:Spawn()
ball:SetOwner(ply)
ball:SetSaveValue('m_flRadius', 12)
ball:SetSaveValue("m_nState", 3)
ball:SetSaveValue("m_nMaxBounces", 10)
ball:GetPhysicsObject():SetVelocity(ply:EyeAngles():Forward() * 3000)
end
}
pk_pills.register("dagent", {
printName = "Dragon Agent",
side = "wild",
type = "ply",
default_rp_cost = 20000,
visColorRandom = true,
model = "models/player/combine_super_soldier.mdl",
aim = {
xPose = "aim_yaw",
yPose = "aim_pitch"
},
anims = {
default = {
idle = "idle_magic",
walk = "walk_magic",
run = "run_magic",
crouch = "cidle_magic",
crouch_walk = "cwalk_magic",
glide = "jump_magic",
jump = "jump_magic",
swim = "swimming_magic"
}
},
attack = {
mode = "auto",
delay = .2,
func = function(ply, ent)
ent:PillSound("attack", true)
table.Random(dragon_attacks)(ply, ply:GetShootPos() + ply:EyeAngles():Forward() * 100)
end
},
moveSpeed = {
walk = 60,
run = 600,
ducked = 60
},
sounds = {
attack = "weapons/gauss/fire1.wav"
},
jumpPower = 800,
movePoseMode = "xy",
health = 10000
})
pk_pills.register("dingus", {
printName = "Dingus",
side = "harmless",
type = "ply",
default_rp_cost = 1000,
visColorRandom = true,
model = "models/player/soldier_stripped.mdl",
visMat = "models/debug/debugwhite",
aim = {
xPose = "aim_yaw",
yPose = "aim_pitch"
},
camera = {
offset = Vector(0, 0, 50)
},
hull = Vector(15, 15, 50),
duckBy = 10,
anims = {
default = {
idle = "idle_magic",
walk = "walk_magic",
run = "run_magic",
crouch = "cidle_magic",
crouch_walk = "cwalk_magic",
glide = "jump_magic",
jump = "jump_magic",
swim = "swimming_magic"
}
},
attack = {
mode = "auto",
delay = .2,
func = function(ply, ent)
ent:PillSound("attack", true)
local ball = ents.Create("sent_ball")
ball:SetPos(ply:GetShootPos() + ply:EyeAngles():Forward() * 150)
ball:SetBallSize(100)
ball:Spawn()
local color = ent:GetPuppet():GetColor()
ball:SetBallColor(Vector(color.r / 255, color.g / 255, color.b / 255))
ball:GetPhysicsObject():SetVelocity(ply:EyeAngles():Forward() * 1000)
timer.Simple(5, function()
if IsValid(ball) then
ball:Remove()
end
end)
end
},
attack2 = {
mode = "auto",
delay = 1,
func = function(ply, ent)
ent:PillSound("donger")
end
},
moveSpeed = {
walk = 40,
run = 300,
ducked = 20
},
modelScale = .8,
sounds = {
attack = "weapons/physcannon/energy_bounce1.wav",
donger = pk_pills.helpers.makeList("birdbrainswagtrain/dingus#.wav", 9),
donger_pitch = 80
},
jumpPower = 400,
movePoseMode = "xy",
health = 80
})
pk_pills.register("error", {
printName = "ERROR",
side = "harmless",
type = "ply",
model = "models/error.mdl",
noragdoll = true,
default_rp_cost = 800,
camera = {
offset = Vector(0, 0, 25),
dist = 100
},
hull = Vector(80, 80, 80),
anims = {},
moveSpeed = {
walk = 200,
run = 400
},
jumpPower = 500,
health = 128
})
--[[
pk_pills.register("chicken",{
printName="Chicken",
side="harmless",
type="ply",
model="models/chicken/chicken.mdl",
options=function() return {
{skin=0},
{skin=1}
} end,
noragdoll=true,
default_rp_cost=800,
camera={
offset=Vector(0,0,5),
dist=80
},
hull=Vector(15,15,15),
anims={
default={
idle="idle01",
walk="walk01",
run="run01",
glide="flap_falling"
}
},
moveSpeed={
walk=20,
run=120
},
noFallDamage=true,
health=30
})
pk_pills.register("turbochicken",{
printName="Fubar's Little Helper",
parent="chicken",
attachments={"models/antlers/antlers.mdl"},
default_rp_cost=8000,
camera={
offset=Vector(0,0,40),
dist=300
},
hull=Vector(90,90,90),
modelScale=6,
moveSpeed={
walk=120,
run=800
},
jumpPower=800,
health=300
})
]]