Примерно так:
/*==============
SH-ЧАСТЬ
================*/
if CLIENT then
SWEP.PrintName = "Пример"
SWEP.Author = ""
SWEP.Purpose = ""
SWEP.Instructions = ""
SWEP.Slot = 1
SWEP.SlotPos = 4
SWEP.DrawAmmo = true
SWEP.DrawCrosshair = false
SWEP.ViewModelFOV = 48
SWEP.ViewModelFlip = false
end
SWEP.ViewModel = "models/weapons/v_pistol.mdl"
SWEP.WorldModel = "models/weapons/w_pistol.mdl"
SWEP.Category = "Пример"
SWEP.HoldType = "pistol" -- Если без рук, то normal
SWEP.Spawnable = false
SWEP.AdminOnly = true
SWEP.FiresUnderwater = true
SWEP.UseHands = true
SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = "none"
SWEP.Primary.Delay = 300 -- Задержка 5 минут
SWEP.Primary.Recoil = 0
SWEP.Primary.Spread = 0
SWEP.Primary.Force = 0
SWEP.Primary.Damage = 0
SWEP.Primary.NumberofShots = 0
SWEP.Secondary.Ammo = "none"
function SWEP:Initialize()
self:SetWeaponHoldType(self.HoldType)
end
-- ЛКМ
function SWEP:PrimaryAttack()
if ( !self:CanPrimaryAttack() ) then return end
if (SERVER) then
local owner = self:GetOwner()
if (timer.Exists("OnInvis_" .. owner:SteamID64())) then return end
-- Делаем игрока невидимым и не восприимчевым к НПС(они его не видят)
owner:SetNoDraw(true)
owner:SetNotSolid(true)
owner:DrawWorldModel(false)
owner:DrawShadow(false)
owner:SetNoTarget(true)
-- Создаем таймер на 2 минуты, чтобы сбросить невидимость
timer.Create("OnInvis_" .. owner:SteamID64(), 120, 1, function()
if (!IsValid(owner)) then return end
owner:SetNoDraw(false)
owner:SetNotSolid(false)
owner:DrawWorldModel(true)
owner:DrawShadow(true)
owner:SetNoTarget(false)
end)
end
self:SetNextPrimaryFire( CurTime() + self.Primary.Delay ) -- кликнуть ещё раз, можно через 5 минут
self:SetNextSecondaryFire( CurTime() + self.Primary.Delay )
end
-- ПКМ
function SWEP:SecondaryAttack()
end
weapon_example.lua (2,2 КБ)
Дальше думаю ты сам справишься?