0% found this document useful (0 votes)
54 views4 pages

TST

This document contains code for configuring player settings and behaviors in a game. It defines variables for movement speeds and creates convars for setting player colors. Functions are included for initializing player loadouts, models, and movement on spawn.

Uploaded by

o59fanemail
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views4 pages

TST

This document contains code for configuring player settings and behaviors in a game. It defines variables for movement speeds and creates convars for setting player colors. Functions are included for initializing player loadouts, models, and movement on spawn.

Uploaded by

o59fanemail
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

AddCSLuaFile()

DEFINE_BASECLASS( "player_default" )

if ( CLIENT ) then

CreateConVar( "cl_playercolor", "0.24 0.34 0.41", { FCVAR_ARCHIVE,


FCVAR_USERINFO, FCVAR_DONTRECORD }, "The value is a Vector - so between 0-1 - not
between 0-255" )
CreateConVar( "cl_weaponcolor", "0.30 1.80 2.10", { FCVAR_ARCHIVE,
FCVAR_USERINFO, FCVAR_DONTRECORD }, "The value is a Vector - so between 0-1 - not
between 0-255" )
CreateConVar( "cl_playerskin", "0", { FCVAR_ARCHIVE, FCVAR_USERINFO,
FCVAR_DONTRECORD }, "The skin to use, if the model has any" )
CreateConVar( "cl_playerbodygroups", "0", { FCVAR_ARCHIVE, FCVAR_USERINFO,
FCVAR_DONTRECORD }, "The bodygroups to use, if the model has any" )

end

local PLAYER = {}

PLAYER.DuckSpeed = 0.1 -- How fast to go from not ducking, to


ducking
PLAYER.UnDuckSpeed = 0.1 -- How fast to go from ducking, to
not ducking

--
-- Creates a Taunt Camera
--
PLAYER.TauntCam = TauntCamera()

--
-- See gamemodes/base/player_class/player_default.lua for all overridable variables
--
PLAYER.SlowWalkSpeed = 100
PLAYER.WalkSpeed = 200
PLAYER.RunSpeed = 400

--
-- Set up the network table accessors
--
function PLAYER:SetupDataTables()

BaseClass.SetupDataTables( self )

end

function PLAYER:Loadout()

self.Player:RemoveAllAmmo()

if ( cvars.Bool( "sbox_weapons", true ) ) then

self.Player:GiveAmmo( 256, "Pistol", true )


self.Player:GiveAmmo( 256, "SMG1", true )
self.Player:GiveAmmo( 5, "grenade", true )
self.Player:GiveAmmo( 64, "Buckshot", true )
self.Player:GiveAmmo( 32, "357", true )
self.Player:GiveAmmo( 32, "XBowBolt", true )
self.Player:GiveAmmo( 6, "AR2AltFire", true )
self.Player:GiveAmmo( 100, "AR2", true )

self.Player:Give( "weapon_crowbar" )
self.Player:Give( "weapon_pistol" )
self.Player:Give( "weapon_smg1" )
self.Player:Give( "weapon_frag" )
self.Player:Give( "weapon_physcannon" )
self.Player:Give( "weapon_crossbow" )
self.Player:Give( "weapon_shotgun" )
self.Player:Give( "weapon_357" )
self.Player:Give( "weapon_rpg" )
self.Player:Give( "weapon_ar2" )

-- The only reason I'm leaving this out is because


-- I don't want to add too many weapons to the first
-- row because that's where the gravgun is.
--pl:Give( "weapon_stunstick" )

end

self.Player:Give( "gmod_tool" )
self.Player:Give( "gmod_camera" )
self.Player:Give( "weapon_physgun" )

self.Player:SwitchToDefaultWeapon()

end

function PLAYER:SetModel()

BaseClass.SetModel( self )

local skin = self.Player:GetInfoNum( "cl_playerskin", 0 )


self.Player:SetSkin( skin )

local bodygroups = self.Player:GetInfo( "cl_playerbodygroups" )


if ( bodygroups == nil ) then bodygroups = "" end

local groups = string.Explode( " ", bodygroups )


for k = 0, self.Player:GetNumBodyGroups() - 1 do
self.Player:SetBodygroup( k, tonumber( groups[ k + 1 ] ) or 0 )
end

end

--
-- Called when the player spawns
--
function PLAYER:Spawn()

BaseClass.Spawn( self )

local plyclr = self.Player:GetInfo( "cl_playercolor" )


self.Player:SetPlayerColor( Vector( plyclr ) )

local wepclr = Vector( self.Player:GetInfo( "cl_weaponcolor" ) )


if ( wepclr:Length() < 0.001 ) then
wepclr = Vector( 0.001, 0.001, 0.001 )
end
self.Player:SetWeaponColor( wepclr )

end

--
-- Return true to draw local (thirdperson) camera - false to prevent - nothing to
use default behaviour
--
function PLAYER:ShouldDrawLocal()

if ( self.TauntCam:ShouldDrawLocalPlayer( self.Player,
self.Player:IsPlayingTaunt() ) ) then return true end

end

--
-- Allow player class to create move
--
function PLAYER:CreateMove( cmd )

if ( self.TauntCam:CreateMove( cmd, self.Player, self.Player:IsPlayingTaunt()


) ) then return true end

end

--
-- Allow changing the player's view
--
function PLAYER:CalcView( view )

if ( self.TauntCam:CalcView( view, self.Player,


self.Player:IsPlayingTaunt() ) ) then return true end

-- Your stuff here

end

--
-- Reproduces the jump boost from HL2 singleplayer
--
local JUMPING

function PLAYER:StartMove( move )

-- Only apply the jump boost in FinishMove if the player has jumped during
this frame
-- Using a global variable is safe here because nothing else happens between
SetupMove and FinishMove
if bit.band( move:GetButtons(), IN_JUMP ) ~= 0 and
bit.band( move:GetOldButtons(), IN_JUMP ) == 0 and self.Player:OnGround() then
JUMPING = true
end

end

function PLAYER:FinishMove( move )


-- If the player has jumped this frame
if ( JUMPING ) then
-- Get their orientation
local forward = move:GetAngles()
forward.p = 0
forward = forward:Forward()

-- Compute the speed boost

-- HL2 normally provides a much weaker jump boost when sprinting


-- For some reason this never applied to GMod, so we won't perform
-- this check here to preserve the "authentic" feeling
local speedBoostPerc = ( ( not self.Player:Crouching() ) and 0.5 ) or
0.1

local speedAddition = math.abs( move:GetForwardSpeed() * speedBoostPerc


)
local maxSpeed = move:GetMaxSpeed() * ( 1 + speedBoostPerc )
local newSpeed = speedAddition + move:GetVelocity():Length2D()

-- Clamp it to make sure they can't bunnyhop to ludicrous speed


if newSpeed > maxSpeed then
speedAddition = speedAddition - ( newSpeed - maxSpeed )
end

-- Reverse it if the player is running backwards


if move:GetVelocity():Dot( forward ) < 0 then
speedAddition = -speedAddition
end

-- Apply the speed boost


move:SetVelocity( forward * speedAddition + move:GetVelocity() )
end

JUMPING = nil

end

player_manager.RegisterClass( "player_sandbox", PLAYER, "player_default" )

You might also like