114 lines
4.5 KiB
Lua
114 lines
4.5 KiB
Lua
-- ####################################################################################
|
|
-- ## ##
|
|
-- ## ##
|
|
-- ## CASUAL BANANAS CONFIDENTIAL ##
|
|
-- ## ##
|
|
-- ## __________________________ ##
|
|
-- ## ##
|
|
-- ## ##
|
|
-- ## Copyright 2014 (c) Casual Bananas ##
|
|
-- ## All Rights Reserved. ##
|
|
-- ## ##
|
|
-- ## NOTICE: All information contained herein is, and remains ##
|
|
-- ## the property of Casual Bananas. The intellectual and technical ##
|
|
-- ## concepts contained herein are proprietary to Casual Bananas and may be ##
|
|
-- ## covered by U.S. and Foreign Patents, patents in process, and are ##
|
|
-- ## protected by trade secret or copyright law. ##
|
|
-- ## Dissemination of this information or reproduction of this material ##
|
|
-- ## is strictly forbidden unless prior written permission is obtained ##
|
|
-- ## from Casual Bananas ##
|
|
-- ## ##
|
|
-- ## _________________________ ##
|
|
-- ## ##
|
|
-- ## ##
|
|
-- ## Casual Bananas is registered with the "Kamer van Koophandel" (Dutch ##
|
|
-- ## chamber of commerce) in The Netherlands. ##
|
|
-- ## ##
|
|
-- ## Company (KVK) number : 59449837 ##
|
|
-- ## Email : info@casualbananas.com ##
|
|
-- ## ##
|
|
-- ## ##
|
|
-- ####################################################################################
|
|
|
|
|
|
local pmeta = FindMetaTable("Player")
|
|
|
|
--[[ PLAYER CLASS SETTING ]]
|
|
local oldSetTeam=pmeta.SetTeam;
|
|
function pmeta:SetTeam(tm)
|
|
player_manager.SetPlayerClass( self, tm == TEAM_GUARD and "player_guard" or tm == TEAM_PRISONER and "player_prisoner" or "player_spectator");
|
|
oldSetTeam(self,tm);
|
|
end
|
|
|
|
--[[ PRISONER STATUS ]]
|
|
function pmeta:AddRebelStatus()
|
|
if self:Team() ~= TEAM_PRISONER or not self:Alive() then
|
|
return
|
|
end
|
|
|
|
self:SetRebel(true);
|
|
|
|
JB:BroadcastNotification(self:Nick().." is rebelling!");
|
|
|
|
self:SetPlayerColor(Vector(1,0,0));
|
|
self:SetWeaponColor(Vector(1,0,0));
|
|
end
|
|
function pmeta:RemoveRebelStatus()
|
|
if not self.SetRebel then
|
|
return
|
|
end
|
|
|
|
self:SetRebel(false);
|
|
|
|
self:SetPlayerColor(Vector(.9,.9,.9));
|
|
self:SetWeaponColor(Vector(.9,.9,.9));
|
|
end
|
|
|
|
--[[ WARDEN STATUS ]]
|
|
function pmeta:AddWardenStatus()
|
|
if self:Team() ~= TEAM_GUARD or not self:Alive() or not IsValid(JB.TRANSMITTER) then
|
|
return
|
|
end
|
|
|
|
self:SetModel("models/player/barney.mdl")
|
|
self:SetArmor(100)
|
|
JB.TRANSMITTER:SetJBWarden(self);
|
|
|
|
end
|
|
function pmeta:RemoveWardenStatus()
|
|
if not self:Alive() and IsValid(JB.TRANSMITTER) then return end
|
|
|
|
self:SetModel("models/player/police.mdl")
|
|
JB.TRANSMITTER:SetJBWarden(NULL);
|
|
end
|
|
function pmeta:SetupHands( ply )
|
|
if IsValid(ply) and ply ~= self then return end // we don't need in-eye spectator.
|
|
|
|
local oldhands = self:GetHands()
|
|
if ( IsValid( oldhands ) ) then
|
|
oldhands:Remove()
|
|
end
|
|
|
|
local hands = ents.Create( "gmod_hands" )
|
|
if ( IsValid( hands ) ) then
|
|
hands:DoSetup( self, ply )
|
|
hands:Spawn()
|
|
end
|
|
|
|
end
|
|
|
|
--[[ NOTIFICATIONS ]]
|
|
util.AddNetworkString("JB.SendNotification");
|
|
function pmeta:SendNotification(text)
|
|
net.Start("JB.SendNotification");
|
|
net.WriteString(text);
|
|
net.Send(self);
|
|
end
|
|
|
|
util.AddNetworkString("JB.SendQuickNotification");
|
|
function pmeta:SendQuickNotification(msg)
|
|
net.Start("JB.SendQuickNotification");
|
|
net.WriteString(msg);
|
|
net.Send(self);
|
|
end;
|