Difference between revisions of "LUA:Pay Day Baton"

From Official DarkRP Wiki
Jump to navigation Jump to search
m
(Introduction)
Line 10: Line 10:
 
==Introduction==
 
==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!
+
Welcome to the tutorial, in this tutorial, I will show you how to demote a player asoon as they die.
  
 
==Setting up the files==
 
==Setting up the files==

Revision as of 06:48, 17 August 2013

Lua: Pay Day Baton
Page white text.png Description:How to create a pay day baton.
User.png Original Author:KillerLUA
Calendar.png Created:March 13, 2010


Introduction

Welcome to the tutorial, in this tutorial, I will show you how to demote a player asoon as they die.

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.