zombiesurvival-evolved/gamemodes/zombiesurvival/entities/weapons/weapon_zs_medicgun.lua

110 lines
3.9 KiB
Lua

AddCSLuaFile()
if CLIENT then
SWEP.PrintName = "'Savior' Medic Gun"
SWEP.Description = "Fires medical darts which can heal at a range. Although less potent than a full medical kit, it can be fired rapidly and used at a range."
SWEP.Slot = 4
SWEP.SlotPos = 0
SWEP.ViewModelFlip = false
SWEP.ViewModelFOV = 60
SWEP.HUD3DBone = "ValveBiped.square"
SWEP.HUD3DPos = Vector(1.1, 0.25, -2)
SWEP.HUD3DScale = 0.015
SWEP.WElements = {
["base"] = { type = "Model", model = "models/healthvial.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(8.5, 2, -3.701), angle = Angle(0, -90, -8), size = Vector(0.5, 0.5, 0.5), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} },
["2"] = { type = "Model", model = "models/airboatgun.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "base", pos = Vector(0, -3, 0), angle = Angle(0, 90, 180), size = Vector(0.25, 0.25, 0.25), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} },
["2+"] = { type = "Model", model = "models/airboatgun.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "base", pos = Vector(0, -3, 0), angle = Angle(0, 90, 180), size = Vector(0.25, 0.25, 0.25), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} }
}
SWEP.VElements = {
["base"] = { type = "Model", model = "models/healthvial.mdl", bone = "ValveBiped.square", rel = "", pos = Vector(0, 0.5, 3), angle = Angle(0, 0, 90), size = Vector(0.5, 0.5, 0.5), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} },
["2"] = { type = "Model", model = "models/airboatgun.mdl", bone = "ValveBiped.Bip01_Spine4", rel = "base", pos = Vector(0, -3, 0), angle = Angle(0, 90, 180), size = Vector(0.25, 0.25, 0.25), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} },
["2+"] = { type = "Model", model = "models/airboatgun.mdl", bone = "ValveBiped.Bip01_Spine4", rel = "base", pos = Vector(0, -3, 0), angle = Angle(0, 90, 180), size = Vector(0.25, 0.25, 0.25), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} }
}
end
SWEP.Base = "weapon_zs_base"
SWEP.HoldType = "pistol"
SWEP.ViewModel = "models/weapons/c_pistol.mdl"
SWEP.WorldModel = "models/weapons/w_pistol.mdl"
SWEP.UseHands = true
SWEP.CSMuzzleFlashes = false
SWEP.ReloadSound = Sound("Weapon_Pistol.Reload")
SWEP.Primary.Delay = 0.25
SWEP.Primary.ClipSize = 25
SWEP.Primary.DefaultClip = 150
SWEP.Primary.Ammo = "Battery"
SWEP.RequiredClip = 5
SWEP.WalkSpeed = SPEED_NORMAL
SWEP.NoMagazine = true
SWEP.ConeMax = 0.005
SWEP.ConeMin = 0.005
SWEP.IronSightsPos = Vector(-5.95, 3, 2.75)
SWEP.IronSightsAng = Vector(-0.15, -1, 2)
function SWEP:ShootBullets(dmg, numbul, cone)
local owner = self.Owner
self:SendWeaponAnimation()
owner:DoAttackEvent()
if CLIENT then return end
local aimvec = owner:GetAimVector()
local ent = ents.Create("projectile_healdart")
if ent:IsValid() then
ent:SetPos(owner:GetShootPos())
ent:SetAngles(aimvec:Angle())
ent:SetOwner(owner)
ent:Spawn()
ent.Heal = math.ceil(ent.Heal * (owner.HumanHealMultiplier or 1))
local phys = ent:GetPhysicsObject()
if phys:IsValid() then
phys:Wake()
phys:SetVelocityInstantaneous(aimvec * 2000)
end
end
end
function SWEP:Deploy()
gamemode.Call("WeaponDeployed", self.Owner, self)
self.IdleAnimation = CurTime() + self:SequenceDuration()
if CLIENT then
hook.Add("PostPlayerDraw", "PostPlayerDrawMedical", GAMEMODE.PostPlayerDrawMedical)
GAMEMODE.MedicalAura = true
end
return true
end
function SWEP:Holster()
if CLIENT then
hook.Remove("PostPlayerDraw", "PostPlayerDrawMedical")
GAMEMODE.MedicalAura = false
end
return true
end
function SWEP:OnRemove()
if CLIENT and self.Owner == LocalPlayer() then
hook.Remove("PostPlayerDraw", "PostPlayerDrawMedical")
GAMEMODE.MedicalAura = false
end
end