summaryrefslogtreecommitdiff
path: root/gamemode/server
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2016-04-16 12:56:24 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2016-04-16 12:56:24 -0400
commitae3407fe425a908344b281bd55e54a534445f20c (patch)
tree2554176fa060c1bd98603999415a821f666cdf20 /gamemode/server
parentc1c509db1c8d2a966915e089913bccd2a5546aaf (diff)
downloadgmstranded-ae3407fe425a908344b281bd55e54a534445f20c.tar.gz
gmstranded-ae3407fe425a908344b281bd55e54a534445f20c.tar.bz2
gmstranded-ae3407fe425a908344b281bd55e54a534445f20c.zip
Moved some more functions to player_functions.lua
Diffstat (limited to 'gamemode/server')
-rw-r--r--gamemode/server/player_functions.lua74
1 files changed, 73 insertions, 1 deletions
diff --git a/gamemode/server/player_functions.lua b/gamemode/server/player_functions.lua
index 51b7a63..093b20a 100644
--- a/gamemode/server/player_functions.lua
+++ b/gamemode/server/player_functions.lua
@@ -237,7 +237,7 @@ function PlayerMeta:CreateStructureBuildingSite( pos, angle, model, class, cost,
"models/props_lab/reciever_cart.mdl",
"models/props_trainstation/trainstation_clock001.mdl"
}
-
+
local rep = ents.Create( "gms_buildsite" )
local str = ":"
for k, v in pairs( cost ) do
@@ -516,3 +516,75 @@ function PlayerMeta:Wakeup()
self:SendMessage( "Ah, nothing like a good nights sleep!", 5, Color( 255, 255, 255, 255 ) )
end
end
+
+function PlayerMeta:UpdatePlayerColor()
+ local col = self:GetInfo( "cl_playercolor" )
+ if ( GetConVarNumber( "gms_TeamColors" ) > 0 ) then
+ local tcol = team.GetColor( self:Team() )
+ col = tcol.r / 255 .. " " .. tcol.g / 255 .. " " .. tcol.b / 255
+ end
+ self:SetPlayerColor( Vector( col ) )
+end
+
+function PlayerMeta:ResetCharacter()
+
+ self.Skills = {}
+ self.Resources = {}
+ self.Experience = {}
+ self.FeatureUnlocks = {}
+
+ self:SetSkill( "Survival", 0 )
+ self:SetXP( "Survival", 0 )
+ self.MaxResources = 25
+
+ self:SaveCharacter()
+
+ umsg.Start( "gms_ResetPlayer", ply )
+ umsg.End()
+
+end
+
+function PlayerMeta:SaveCharacter()
+ if ( !file.IsDir( "gmstranded", "DATA" ) ) then file.CreateDir( "gmstranded" ) end
+ if ( !file.IsDir( "gmstranded/saves", "DATA" ) ) then file.CreateDir( "gmstranded/saves" ) end
+ if ( !self.Loaded ) then
+ print( "Player " .. self:Name() .. " tried to save before he has loaded!" )
+ self:SendMessage( "Character save failed: Not yet loaded!", 3, Color( 255, 50, 50, 255 ) )
+ return
+ end
+
+ local tbl = {}
+ tbl["date"] = os.date( "%A %m/%d/%y" )
+ tbl["name"] = self:Nick()
+
+ tbl["skills"] = self.Skills
+ tbl["experience"] = self.Experience
+ tbl["unlocks"] = self.FeatureUnlocks
+
+ tbl["resources"] = {}
+ tbl["weapons"] = {}
+ tbl["ammo"] = {}
+
+ for k, v in pairs( self.Resources ) do
+ if ( v > 0 ) then tbl["resources"][ k ] = v end
+ end
+
+ for id, wep in pairs( self:GetWeapons() ) do
+ if ( wep:GetClass() != "gms_fists" || wep:GetClass() != "weapon_physgun" || wep:GetClass() != "weapon_physcannon" ) then
+ table.insert( tbl[ "weapons" ], wep:GetClass() )
+ end
+ end
+
+ local ammo_types = { "ar2", "smg1", "pistol", "buckshot", "357", "grenade", "alyxgun", "xbowbolt", "AlyxGun", "RPG_Round","SMG1_Grenade", "SniperRound",
+ "SniperPenetratedRound", "Grenade", "Thumper", "Gravity", "Battery", "GaussEnergy", "CombineCannon", "AirboatGun", "StriderMinigun", "StriderMinigunDirect",
+ "HelicopterGun", "AR2AltFire", "Grenade", "Hopwire", "CombineHeavyCannon", "ammo_proto1"
+ }
+
+ for id, str in pairs( ammo_types ) do
+ local ammo = self:GetAmmoCount( str )
+ if ( ammo > 0 ) then tbl[ "ammo" ][ str ] = ammo end
+ end
+
+ file.Write( "gmstranded/saves/" .. self:UniqueID() .. ".txt", util.TableToJSON( tbl ) )
+ self:SendMessage( "Saved character!", 3, Color( 255, 255, 255 ) )
+end