Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AddCSLuaFile()
- DEFINE_BASECLASS( "player_default" )
- local PLAYER = {}
- PLAYER.DisplayName = "Horror Story player"
- PLAYER.WalkSpeed = 200 -- How fast to move when not running
- PLAYER.RunSpeed = 400 -- How fast to move when running
- PLAYER.CrouchedWalkSpeed = 0.3 -- Multiply move speed by this when crouching
- PLAYER.DuckSpeed = 0.3 -- How fast to go from not ducking, to ducking
- PLAYER.UnDuckSpeed = 0.3 -- How fast to go from ducking, to not ducking
- PLAYER.JumpPower = 200 -- How powerful our jump should be
- PLAYER.CanUseFlashlight = false -- Can we use the flashlight
- PLAYER.MaxHealth = 100 -- Max health we can have
- PLAYER.StartHealth = 100 -- How much health we start with
- PLAYER.StartArmor = 0 -- How much armour we start with
- PLAYER.DropWeaponOnDie = false -- Do we drop our weapon when we die
- PLAYER.TeammateNoCollide = false -- Do we collide with teammates or run straight through them
- PLAYER.AvoidPlayers = true -- Automatically swerves around other players
- PLAYER.UseVMHands = true -- Uses viewmodel hands
- PLAYER.SelectableModels = {
- "models/player/guard_pack/guard_01.mdl",
- "models/player/guard_pack/guard_02.mdl",
- "models/player/guard_pack/guard_03.mdl",
- "models/player/guard_pack/guard_04.mdl",
- "models/player/guard_pack/guard_05.mdl",
- "models/player/guard_pack/guard_06.mdl",
- "models/player/guard_pack/guard_07.mdl",
- "models/player/guard_pack/guard_08.mdl",
- "models/player/guard_pack/guard_09.mdl"
- }
- PLAYER.SelectedWeapons = {
- "weapon_doom3_flashlight",
- "taser",
- "weapon_baton",
- "weapon_empty_hands"
- }
- PLAYER.DefaultWeapon = "weapon_doom3_flashlight"
- --
- -- Name: PLAYER:SetupDataTables
- -- Desc: Set up the network table accessors
- -- Arg1:
- -- Ret1:
- --
- function PLAYER:SetupDataTables()
- self.Player:NetworkVar( "String", 0, "HSModel" );
- end
- --
- -- Name: PLAYER:Init
- -- Desc: Called when the class object is created (shared)
- -- Arg1:
- -- Ret1:
- --
- function PLAYER:Init()
- end
- function PLAYER:SetModel()
- if self.Player:GetHSModel() == "" then
- self.Player:SetHSModel( table.Random( self.SelectableModels ) )
- end
- self.Player:SetModel( self.Player:GetHSModel() )
- end
- --
- -- Name: PLAYER:Spawn
- -- Desc: Called serverside only when the player spawns
- -- Arg1:
- -- Ret1:
- --
- function PLAYER:Spawn()
- local oldhands = self.Player:GetHands();
- if ( IsValid( oldhands ) ) then
- oldhands:Remove()
- end
- local hands = ents.Create( "gmod_hands" )
- if ( IsValid( hands ) ) then
- hands:DoSetup( self.Player )
- hands:Spawn()
- end
- self.Player:SetCollisionGroup( COLLISION_GROUP_WEAPON )
- end
- --
- -- Name: PLAYER:Loadout
- -- Desc: Called on spawn to give the player their default loadout
- -- Arg1:
- -- Ret1:
- --
- function PLAYER:Loadout()
- for _, wep in pairs( self.SelectedWeapons ) do
- self.Player:Give( wep )
- end
- self.Player:SelectWeapon( self.DefaultWeapon )
- end
- -- Clientside only
- function PLAYER:CalcView( view ) end -- Setup the player's view
- function PLAYER:CreateMove( cmd ) end -- Creates the user command on the client
- function PLAYER:ShouldDrawLocal() end -- Return true if we should draw the local player
- -- Shared
- function PLAYER:StartMove( cmd, mv ) end -- Copies from the user command to the move
- function PLAYER:Move( mv ) end -- Runs the move (can run multiple times for the same client)
- function PLAYER:FinishMove( mv ) end -- Copy the results of the move back to the Player
- --
- -- Name: PLAYER:ViewModelChanged
- -- Desc: Called when the player changes their weapon to another one causing their viewmodel model to change
- -- Arg1: Entity|viewmodel|The viewmodel that is changing
- -- Arg2: string|old|The old model
- -- Arg3: string|new|The new model
- -- Ret1:
- --
- function PLAYER:ViewModelChanged( vm, old, new )
- end
- --
- -- Name: PLAYER:PreDrawViewmodel
- -- Desc: Called before the viewmodel is being drawn (clientside)
- -- Arg1: Entity|viewmodel|The viewmodel
- -- Arg2: Entity|weapon|The weapon
- -- Ret1:
- --
- function PLAYER:PreDrawViewModel( vm, weapon )
- end
- --
- -- Name: PLAYER:PostDrawViewModel
- -- Desc: Called after the viewmodel has been drawn (clientside)
- -- Arg1: Entity|viewmodel|The viewmodel
- -- Arg2: Entity|weapon|The weapon
- -- Ret1:
- --
- function PLAYER:PostDrawViewModel( vm, weapon )
- if ( weapon.UseHands || !weapon:IsScripted() ) then
- local hands = self.Player:GetHands()
- if ( IsValid( hands ) ) then
- hands:DrawModel()
- end
- end
- end
- --
- -- Name: PLAYER:GetHandsModel
- -- Desc: Called on player spawn to determine which hand model to use
- -- Arg1:
- -- Ret1: table|info|A table containing model, skin and body
- --
- function PLAYER:GetHandsModel()
- -- return { model = "models/weapons/c_arms_cstrike.mdl", skin = 1, body = "0100000" }
- local cl_playermodel = self.Player:GetHSModel()
- return player_manager.TranslatePlayerHands( cl_playermodel )
- end
- player_manager.RegisterClass( "player_horrorstory", PLAYER, "player_default" )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement