2014-10-02 08:49:54 +08:00
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 )
2014-11-10 07:28:31 +08:00
GAMEMODE.MedicalAura = true
2014-10-02 08:49:54 +08:00
end
return true
end
function SWEP : Holster ( )
if CLIENT then
hook.Remove ( " PostPlayerDraw " , " PostPlayerDrawMedical " )
2014-11-10 07:28:31 +08:00
GAMEMODE.MedicalAura = false
2014-10-02 08:49:54 +08:00
end
return true
end
2014-11-21 15:28:59 +08:00
function SWEP : OnRemove ( )
if CLIENT and self.Owner == LocalPlayer ( ) then
hook.Remove ( " PostPlayerDraw " , " PostPlayerDrawMedical " )
GAMEMODE.MedicalAura = false
end
end