From 6f6cce0561c19e7af14bcc6e6b1c7de2d5efc530 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Fri, 29 Apr 2016 20:30:52 -0400 Subject: a halfway commit to show scott --- gamemode/server/entity_functions.lua | 2 -- gamemode/server/player_functions.lua | 44 ++++++++++++++++++++++++------------ 2 files changed, 30 insertions(+), 16 deletions(-) (limited to 'gamemode/server') diff --git a/gamemode/server/entity_functions.lua b/gamemode/server/entity_functions.lua index e5b91c1..4894ad1 100644 --- a/gamemode/server/entity_functions.lua +++ b/gamemode/server/entity_functions.lua @@ -53,8 +53,6 @@ function EntityMeta:DropToGround() self:SetPos( tr.HitPos ) end -GMS.LootableNPCs = { "npc_antlion", "npc_antlionguard", "npc_crow", "npc_seagull", "npc_pigeon", "npc_zombie" } - function EntityMeta:IsLootableNPC() return table.HasValue( GMS.LootableNPCs, self:GetClass() ) end diff --git a/gamemode/server/player_functions.lua b/gamemode/server/player_functions.lua index b4cc7c0..b335553 100644 --- a/gamemode/server/player_functions.lua +++ b/gamemode/server/player_functions.lua @@ -140,17 +140,39 @@ function PlayerMeta:DecXP( skill, int ) umsg.End() end +util.AddNetworkString( "gms_SetResource" ) + function PlayerMeta:SetResource( resource, int ) - resource = string.Capitalize( resource ) - if ( !self.Resources[resource] ) then self.Resources[resource] = 0 end + print("SetResource called!") + if(isstring(resource)) then + resource = GMS.GetResourceByName(resource) + end + PrintTable(resource) + print(int) + if ( !self.Resources[resource] ) then self.Resources[resource] = 0 end self.Resources[resource] = int - umsg.Start( "gms_SetResource", self ) - umsg.String( resource ) - umsg.Short( int ) - umsg.End() + if(net.Start("gms_SetResource",false)) then + net.WriteString(resource.Name) + if(resource.UniqueData) then + if(self.Resources[resource.Name] == nil) then + self.Resources[resource.Name] = {} + end + table.insert(self.Resources[resource.Name],resource.UniqueDataID,resource) + net.WriteTable(resource) + else + if(self.Resources[resource.Name] == nil) then + self.Resources[resource.Name] = 0 + end + self.Resources[resource.Name] = int + net.WriteInt(int, GMS.NETINT_BITCOUNT) + end + net.Send(self) + else + print("Error! could not send resource change data to client: " .. self:GetName()) + end end function PlayerMeta:GetResource( resource ) @@ -173,10 +195,7 @@ function PlayerMeta:IncResource( resource, int ) self.Resources[resource] = self.Resources[resource] + int end - umsg.Start( "gms_SetResource", self ) - umsg.String( resource ) - umsg.Short( self:GetResource( resource ) ) - umsg.End() + self:SetResource(resource, self:GetResource( resource )) end function PlayerMeta:DecResource( resource, int ) @@ -192,10 +211,7 @@ function PlayerMeta:DecResource( resource, int ) self:UpdateNeeds() end - umsg.Start( "gms_SetResource", self ) - umsg.String( resource ) - umsg.Short( self:GetResource( resource ) ) - umsg.End() + self:SetResource(resource, self:GetResource( resource )) end function PlayerMeta:GetAllResources() -- cgit v1.2.3-70-g09d2