LUA:Pay Day Baton

From GMod Wiki

Jump to: navigation, search
Lua: Pay Day Baton
Page white text.png Description:How to create a pay day baton, requires DarkRP 2.3.7.
link=User:KillerLUA Original Author:KillerLUA
Calendar.png Created:March 13, 2010


Contents

Introduction

Welcome to the tutorial, in this tutorial. I will not only be showing you how to make a swep, I will be showing you one that uses custom meta functions!

Setting up the files

Addon

Create a new file called shared.lua inside YourAddon/lua/Weapons/pay_day_baton

Gamemode

Create a new file called shared.lua inside YourGamemode/entites/weapons/pay_day_baton

Coding it

Add the following code into shared.lua:

 
 
if SERVER then
	AddCSLuaFile("shared.lua")
end
 
if CLIENT then --Client stuff
	SWEP.PrintName = "Pay Day Baton" --Name
	SWEP.Slot = 1
	SWEP.SlotPos = 3
	SWEP.DrawAmmo = false --Draw ammo in bottom right corner
	SWEP.DrawCrosshair = false --Draw crosshair?
end
 
SWEP.Author = "KillerLUA" --Author
SWEP.Instructions = "Left or right click to give the player a pay day" --How to use
SWEP.Contact = "" --Contact
SWEP.Purpose = "Gives people paydays" --Purpose
 
SWEP.ViewModelFOV = 62
SWEP.ViewModelFlip = false
SWEP.AnimPrefix = "stunstick"
 
SWEP.Spawnable = false --Not spawnable by non-admin players
SWEP.AdminSpawnable = true --Only spawnable by admins!
 
SWEP.NextStrike = 0
 
SWEP.ViewModel = Model("models/weapons/v_stunstick.mdl") --The model while being held
SWEP.WorldModel = Model("models/weapons/w_stunbaton.mdl") --World model (on the ground)
 
SWEP.Sound = Sound("weapons/stunstick/stunstick_swing1.wav") --The sound
 
SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = 0
SWEP.Primary.Automatic = false 
SWEP.Primary.Ammo = ""
 
SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = 0
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = ""
 
function SWEP:Initialize()
	if SERVER then self:SetWeaponHoldType("normal") end --Set the hold type
end
 
function SWEP:PrimaryAttack()
	if CurTime() < self.NextStrike then return end
 
	if SERVER then
		self:SetWeaponHoldType("melee")
		timer.Simple(0.3, function(wep) if wep:IsValid() then wep:SetWeaponHoldType("normal") end end, self) --Checks that the swep hasn't quickly been switched
	end
	self.Owner:SetAnimation(PLAYER_ATTACK1)
	self.Weapon:EmitSound(self.Sound) ---Emit a sound, the stunstick wack
	self.Weapon:SendWeaponAnim(ACT_VM_HITCENTER)
 
	self.NextStrike = CurTime() + .4
 
	if CLIENT then return end --No clients past here
 
        local trace = self.Owner:GetEyeTrace()
 
        if !ValidEntity(trace.Entity) or trace.Entity:IsPlayer() != true then return end
	trace.Entity:PayDay() --Give them a payday
end
 
function SWEP:SecondaryAttack()
	self:PrimaryAttack() --Run Primary Attack
end
 
 

In this script we create the stunstick animation and run payday on our victim.

Yarin Kaul Icon ArrowSquare32.png Back to DarkRP Tutorials


Personal tools
Namespaces
Variants
Actions
Navigation
Lua Scripting
Functions
Hooks
Toolbox