add sborka
This commit is contained in:
226
garrysmod/addons/tfa_antitank/lua/weapons/weapon_sw_rpg26.lua
Normal file
226
garrysmod/addons/tfa_antitank/lua/weapons/weapon_sw_rpg26.lua
Normal file
@@ -0,0 +1,226 @@
|
||||
-- Variables that are used on both client and server
|
||||
SWEP.Gun = ("weapon_sw_rpg26") -- must be the name of your swep but NO CAPITALS!
|
||||
SWEP.Category = "FT | Antitank" --Category where you will find your weapons
|
||||
SWEP.MuzzleAttachment = "1" -- Should be "1" for CSS models or "muzzle" for hl2 models
|
||||
SWEP.ShellEjectAttachment = "1" -- Should be "2" for CSS models or "1" for hl2 models
|
||||
SWEP.Author = "Shtormer, Scripty"
|
||||
SWEP.Contact = ""
|
||||
SWEP.Purpose = ""
|
||||
SWEP.Manufacturer = "FT_Scripty"
|
||||
SWEP.Instructions = ""
|
||||
SWEP.PrintName = "RPG-26" -- Weapon name (Shown on HUD)
|
||||
SWEP.Slot = 4 -- Slot in the weapon selection menu
|
||||
SWEP.SlotPos = 4 -- Position in the slot
|
||||
SWEP.DrawAmmo = true -- Should draw the default HL2 ammo counter
|
||||
SWEP.DrawWeaponInfoBox = false -- Should draw the weapon info box
|
||||
SWEP.BounceWeaponIcon = false -- Should the weapon icon bounce?
|
||||
SWEP.DrawCrosshair = true -- set false if you want no crosshair
|
||||
SWEP.Weight = 89 -- rank relative ot other weapons. bigger is better
|
||||
SWEP.AutoSwitchTo = true -- Auto switch to if we pick it up
|
||||
SWEP.AutoSwitchFrom = true -- Auto switch from if you pick up a better weapon
|
||||
SWEP.HoldType = "rpg" -- how others view you carrying the weapon
|
||||
-- normal melee melee2 fist knife smg ar2 pistol rpg physgun grenade shotgun crossbow slam passive
|
||||
-- you're mostly going to use ar2, smg, shotgun or pistol. rpg makes for good sniper rifles
|
||||
|
||||
SWEP.ViewModelFOV = 70
|
||||
SWEP.ViewModelFlip = false
|
||||
SWEP.ViewModel = "models/weapons/fas2/view/explosives/rpg26.mdl"
|
||||
SWEP.WorldModel = "models/weapons/fas2/world/explosives/rpg26.mdl"
|
||||
SWEP.ShowWorldModel = true
|
||||
SWEP.Base = "tfa_bash_base" --the Base this weapon will work on. PLEASE RENAME THE BASE!
|
||||
SWEP.Spawnable = true
|
||||
SWEP.AdminSpawnable = true
|
||||
SWEP.FiresUnderwater = false
|
||||
SWEP.UseHands = true
|
||||
SWEP.Type = "Man-Portable Anti-Tank Weapon"
|
||||
SWEP.IronSightTime = 0.5
|
||||
SWEP.Primary.Sound = Sound("weapons/at4/at4_fp.wav") -- This is the sound of the weapon, when you shoot.
|
||||
SWEP.Primary.RPM = 325 -- This is in Rounds Per Minute
|
||||
SWEP.Primary.ClipSize = 1 -- Size of a clip
|
||||
SWEP.Primary.DefaultClip = 1 -- Bullets you start with
|
||||
SWEP.Primary.KickUp = 2.25 -- Maximum up recoil (rise)
|
||||
SWEP.Primary.KickDown = 1.75 -- Maximum down recoil (skeet)
|
||||
SWEP.Primary.KickHorizontal = 1.45 -- Maximum up recoil (stock)
|
||||
SWEP.Primary.Automatic = false -- Automatic = true; Semi Auto = false
|
||||
SWEP.Primary.Ammo = "rpg_round" -- pistol, 357, smg1, ar2, buckshot, slam, SniperPenetratedRound, AirboatGun
|
||||
SWEP.Primary.StaticRecoilFactor = 1.3
|
||||
|
||||
SWEP.SelectiveFire = false
|
||||
|
||||
SWEP.Secondary.BashInterrupt = false -- Do you need to be in a "ready" status to bash?
|
||||
SWEP.Secondary.BashDelay = 0.1
|
||||
SWEP.Secondary.BashLength = 52
|
||||
SWEP.Secondary.BashEnd = 2.25 -- Override bash sequence length easier
|
||||
SWEP.Secondary.BashDamage = 56
|
||||
|
||||
SWEP.Secondary.IronFOV = 50 -- How much you 'zoom' in. Less is more!
|
||||
|
||||
SWEP.data = {} --The starting firemode
|
||||
|
||||
SWEP.Primary.Damage = 225 -- Base damage per bullet
|
||||
SWEP.Primary.Spread = .021 -- Define from-the-hip accuracy 1 is terrible, .0001 is exact)
|
||||
SWEP.Primary.IronAccuracy = .008 -- Ironsight accuracy, should be the same for shotguns
|
||||
|
||||
-- Enter iron sight info and bone mod info below
|
||||
SWEP.IronSightsPos = Vector(-2, -1, -1)
|
||||
SWEP.IronSightsAng = Vector(0.65, -0.02, 0)
|
||||
SWEP.IronSightsPos_Pgo7 = Vector(-2.5, -1, 0.6)
|
||||
SWEP.IronSightsAng_Pgo7 = Vector(0, 0, 0)
|
||||
|
||||
SWEP.RunSightsPos = Vector(4.762, -4.238, -0.717)
|
||||
SWEP.RunSightsAng = Vector(-6.743, 46.284, 0)
|
||||
SWEP.InspectPos = Vector(7.76, -2, 0.016)
|
||||
SWEP.InspectAng = Vector(1, 37.277, 3.2)
|
||||
|
||||
SWEP.Offset = {
|
||||
Pos = {
|
||||
Up = -2.5,
|
||||
Right = 1.1,
|
||||
Forward = 8.295
|
||||
},
|
||||
Ang = {
|
||||
Up = -1.043,
|
||||
Right = 0,
|
||||
Forward = 180,
|
||||
},
|
||||
Scale = 1.0
|
||||
} --Procedural world model animation, defaulted for CS:S purposes.
|
||||
|
||||
SWEP.VElements = {
|
||||
|
||||
}
|
||||
|
||||
SWEP.Attachments = {
|
||||
|
||||
|
||||
}
|
||||
SWEP.WElements = {
|
||||
|
||||
}
|
||||
SWEP.Sights_Mode = TFA.Enum.LOCOMOTION_HYBRID -- ANI = mdl, HYBRID = lua but continue idle, Lua = stop mdl animation
|
||||
SWEP.Idle_Mode = TFA.Enum.IDLE_BOTH --TFA.Enum.IDLE_DISABLED = no idle, TFA.Enum.IDLE_LUA = lua idle, TFA.Enum.IDLE_ANI = mdl idle, TFA.Enum.IDLE_BOTH = TFA.Enum.IDLE_ANI + TFA.Enum.IDLE_LUA
|
||||
|
||||
SWEP.Sprint_Mode = TFA.Enum.LOCOMOTION_LUA -- ANI = mdl, HYBRID = ani + lua, Lua = lua only
|
||||
SWEP.RunSightsPos = Vector(0, -5, 0) --Change this, using SWEP Creation Kit preferably
|
||||
SWEP.RunSightsAng = Vector(20, 0, 0) --Change this, using SWEP Creation Kit preferably
|
||||
SWEP.SprintBobMult = 1.3
|
||||
SWEP.SprintAnimation = {
|
||||
["loop"] = {
|
||||
["type"] = TFA.Enum.ANIMATION_SEQ, --Sequence or act
|
||||
["value"] = "base_sprint", --Number for act, String/Number for sequence
|
||||
["is_idle"] = true
|
||||
}
|
||||
}
|
||||
SWEP.Entities = {}
|
||||
function SWEP:PrimaryAttack()
|
||||
if not SERVER then return end
|
||||
if self._NextFire and self._NextFire > CurTime() then return end
|
||||
if self:Clip1() <= 0 then
|
||||
self:Reload()
|
||||
return
|
||||
end
|
||||
|
||||
self._NextFire = CurTime() + 5.5 -- Запрет на стрельбу во время перезарядки
|
||||
self:FireShot()
|
||||
self:TakePrimaryAmmo(1)
|
||||
|
||||
local ply = self:GetOwner()
|
||||
if not IsValid(ply) then return end
|
||||
|
||||
local shootPos = ply:GetShootPos()
|
||||
local shootAng = ply:EyeAngles()
|
||||
|
||||
-- Эффект вылета тубуса (через 0.2с после выстрела)
|
||||
timer.Simple(0.2, function()
|
||||
if not IsValid(ply) then return end
|
||||
|
||||
local ent = ents.Create("prop_physics")
|
||||
if not IsValid(ent) then return end
|
||||
|
||||
ent:SetModel("models/weapons/fas2/world/explosives/rpg26.mdl")
|
||||
ent:SetPos(shootPos + shootAng:Forward() * -20)
|
||||
ent:SetAngles(shootAng)
|
||||
|
||||
ent:Spawn()
|
||||
ent:Activate()
|
||||
|
||||
timer.Simple(3, function()
|
||||
if IsValid(ent) then ent:Remove() end
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
function SWEP:FireShot()
|
||||
if SERVER then
|
||||
local ply = self:GetOwner()
|
||||
if not IsValid(ply) then return end
|
||||
|
||||
local safetyDist = 3
|
||||
local tr = util.TraceLine({
|
||||
start = ply:EyePos(),
|
||||
endpos = ply:EyePos() + ply:EyeAngles():Forward() * (safetyDist * 52.49),
|
||||
filter = ply
|
||||
})
|
||||
|
||||
if tr.Hit then
|
||||
ply:EmitSound("weapons/rpg/rocketclose.wav")
|
||||
|
||||
local inert = ents.Create("prop_physics")
|
||||
if IsValid(inert) then
|
||||
inert:SetModel("models/weapons/fas2/world/explosives/rpg26/rocket.mdl")
|
||||
inert:SetPos(ply:EyePos() + ply:EyeAngles():Forward() * 10)
|
||||
inert:SetAngles(ply:EyeAngles())
|
||||
inert:Spawn()
|
||||
inert:Activate()
|
||||
|
||||
local phys = inert:GetPhysicsObject()
|
||||
if IsValid(phys) then
|
||||
phys:SetVelocity(ply:EyeAngles():Forward() * 300)
|
||||
end
|
||||
|
||||
timer.Simple(10, function()
|
||||
if IsValid(inert) then inert:Remove() end
|
||||
end)
|
||||
end
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
local pos = ply:EyePos()
|
||||
local ang = ply:EyeAngles()
|
||||
|
||||
local missile = ents.Create("lvs_missile")
|
||||
if not IsValid(missile) then return end
|
||||
|
||||
missile:SetPos(pos)
|
||||
missile:SetAngles(ang)
|
||||
missile:Spawn()
|
||||
missile:Activate()
|
||||
|
||||
missile:SetDamage(1000) -- урон
|
||||
missile:SetRadius(120) -- радиус поражения
|
||||
missile:SetForce(60000) -- сила взрыва
|
||||
missile:SetAttacker(ply)
|
||||
missile:SetEntityFilter({ply})
|
||||
missile:SetTurnSpeed(0)
|
||||
missile:SetSpeed(1500) -- скорость полёта
|
||||
missile:Enable()
|
||||
|
||||
ParticleEffect("ins_weapon_rpg_frontblast", pos, ang, ply)
|
||||
ParticleEffect("ins_weapon_rpg_backblast", pos - ang:Forward()*80, ang - Angle(0,180,0), ply)
|
||||
|
||||
local phys = ply:GetPhysicsObject()
|
||||
if IsValid(phys) then
|
||||
phys:ApplyForceOffset(-ang:Forward() * 2000, pos)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
SWEP.SequenceRateOverrideScaled = {
|
||||
[ACT_VM_PRIMARYATTACK] = 0.85,
|
||||
[ACT_VM_PRIMARYATTACK_1] = 0.85
|
||||
}
|
||||
|
||||
SWEP.ProjectileVelocity = 7150 * 12 / 10
|
||||
SWEP.DisableChambering = true
|
||||
|
||||
Reference in New Issue
Block a user