Initial Commit
This commit is contained in:
210
gamemode/core/sv_player_commands.lua
Normal file
210
gamemode/core/sv_player_commands.lua
Normal file
@@ -0,0 +1,210 @@
|
||||
-- ####################################################################################
|
||||
-- ## ##
|
||||
-- ## ##
|
||||
-- ## 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 undroppableWeapons = {"weapon_physcannon", "weapon_physgun", "gmod_camera", "gmod_tool", "weapon_jb_fists"}
|
||||
local drop = function( ply, cmd, args )
|
||||
if (table.HasValue(JB.LastRequestPlayers,ply) and JB.LastRequestTypes[JB.LastRequest] and not JB.LastRequestTypes[JB.LastRequest]:GetCanDropWeapons() ) then return end
|
||||
|
||||
JB:DebugPrint(ply:Nick().." dropped his/her weapon");
|
||||
|
||||
local weapon = ply:GetActiveWeapon()
|
||||
|
||||
for k, v in pairs(undroppableWeapons) do
|
||||
if IsValid(weapon) then
|
||||
if v == weapon:GetClass() then return false end
|
||||
end
|
||||
end
|
||||
|
||||
if IsValid(weapon) then
|
||||
JB:DamageLog_AddPlayerDrop( ply,weapon:GetClass() )
|
||||
|
||||
weapon.IsDropped = true;
|
||||
weapon.BeingPickedUp = false;
|
||||
ply:DropWeapon(weapon)
|
||||
end
|
||||
end
|
||||
concommand.Add("jb_dropweapon", drop)
|
||||
JB.Util.addChatCommand("drop",drop);
|
||||
|
||||
local pickup = function(p)
|
||||
local e = p:GetEyeTrace().Entity
|
||||
|
||||
if (table.HasValue(JB.LastRequestPlayers,p) and JB.LastRequestTypes[JB.LastRequest] and not JB.LastRequestTypes[JB.LastRequest]:GetCanPickupWeapons() ) then
|
||||
return;
|
||||
end
|
||||
|
||||
if IsValid(e) and p:Alive() and p:CanPickupWeapon( e ) then
|
||||
e.BeingPickedUp = p;
|
||||
JB:DamageLog_AddPlayerPickup( p,e:GetClass() )
|
||||
end
|
||||
|
||||
end
|
||||
concommand.Add("jb_pickup",pickup)
|
||||
JB.Util.addChatCommand("pickup",pickup);
|
||||
|
||||
local function teamSwitch(p,cmd)
|
||||
if !IsValid(p) then return end
|
||||
|
||||
if cmd == "jb_team_select_guard" and JB:GetGuardsAllowed() > #team.GetPlayers(TEAM_GUARD) and p:Team() ~= TEAM_GUARD then
|
||||
p:SetTeam(TEAM_GUARD);
|
||||
p:KillSilent();
|
||||
p:SendNotification("Switched to guards");
|
||||
|
||||
hook.Call("JailBreakPlayerSwitchTeam",JB.Gamemode,p,p:Team());
|
||||
|
||||
p:SetFrags(0);
|
||||
p:SetDeaths(0);
|
||||
elseif cmd == "jb_team_select_prisoner" and p:Team() ~= TEAM_PRISONER then
|
||||
p:SetTeam(TEAM_PRISONER);
|
||||
p:KillSilent();
|
||||
p:SendNotification("Switched to prisoners");
|
||||
|
||||
hook.Call("JailBreakPlayerSwitchTeam",JB.Gamemode,p,p:Team());
|
||||
|
||||
p:SetFrags(0);
|
||||
p:SetDeaths(0);
|
||||
elseif cmd == "jb_team_select_spectator" and p:Team() ~= TEAM_SPECTATOR then
|
||||
p:SetTeam(TEAM_SPECTATOR);
|
||||
p:Spawn();
|
||||
p:SendNotification("Switched to spectator mode");
|
||||
|
||||
hook.Call("JailBreakPlayerSwitchTeam",JB.Gamemode,p,p:Team());
|
||||
|
||||
p:SetFrags(0);
|
||||
p:SetDeaths(0);
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
concommand.Add("jb_team_select_prisoner",teamSwitch);
|
||||
concommand.Add("jb_team_select_guard",teamSwitch);
|
||||
concommand.Add("jb_team_select_spectator",teamSwitch);
|
||||
JB.Util.addChatCommand("guard",function(p)
|
||||
p:ConCommand("jb_team_select_guard");
|
||||
end);
|
||||
JB.Util.addChatCommand("prisoner",function(p)
|
||||
p:ConCommand("jb_team_select_prisoner");
|
||||
end);
|
||||
JB.Util.addChatCommand("spectator",function(p)
|
||||
p:ConCommand("jb_team_select_spectator");
|
||||
end);
|
||||
|
||||
local teamswap = function(p)
|
||||
if p:Team() == TEAM_PRISONER then
|
||||
p:ConCommand("jb_team_select_guard");
|
||||
else
|
||||
p:ConCommand("jb_team_select_prisoner");
|
||||
end
|
||||
end
|
||||
JB.Util.addChatCommand("teamswap",teamswap);
|
||||
JB.Util.addChatCommand("swap",teamswap);
|
||||
JB.Util.addChatCommand("swapteam",teamswap);
|
||||
|
||||
concommand.Add("jb_admin_swap",function(p,c,a)
|
||||
|
||||
if not IsValid(p) or not p:IsAdmin() then return end
|
||||
|
||||
local steamid = a[1];
|
||||
|
||||
if not steamid then return end
|
||||
|
||||
for k,v in ipairs(player.GetAll())do
|
||||
if v:SteamID() == steamid then
|
||||
if v:Team() == TEAM_GUARD then
|
||||
v:SetTeam(TEAM_PRISONER);
|
||||
v:KillSilent();
|
||||
v:SendNotification("Forced to prisoners");
|
||||
|
||||
hook.Call("JailBreakPlayerSwitchTeam",JB.Gamemode,p,p:Team());
|
||||
else
|
||||
v:SetTeam(TEAM_GUARD);
|
||||
v:KillSilent();
|
||||
v:SendNotification("Forced to guards");
|
||||
|
||||
hook.Call("JailBreakPlayerSwitchTeam",JB.Gamemode,p,p:Team());
|
||||
end
|
||||
|
||||
for k,it in ipairs(player.GetAll())do
|
||||
it:ChatPrint(p:Nick().." has force swapped "..v:Nick()..".");
|
||||
end
|
||||
|
||||
return;
|
||||
end
|
||||
end
|
||||
|
||||
p:ChatPrint("User not found! " ..steamid)
|
||||
end)
|
||||
concommand.Add("jb_admin_swap_spectator",function(p,c,a)
|
||||
|
||||
if not IsValid(p) or not p:IsAdmin() then return end
|
||||
|
||||
local steamid = a[1];
|
||||
|
||||
if not steamid then return end
|
||||
|
||||
for k,v in ipairs(player.GetAll())do
|
||||
if v:SteamID() == steamid then
|
||||
v:SetTeam(TEAM_SPECTATOR)
|
||||
v:Kill()
|
||||
for k,it in ipairs(player.GetAll())do
|
||||
it:ChatPrint(p:Nick().." has made "..v:Nick().." a spectator.");
|
||||
end
|
||||
return;
|
||||
end
|
||||
end
|
||||
|
||||
p:ChatPrint("User not found! "..steamid)
|
||||
end)
|
||||
concommand.Add("jb_admin_revive",function(p,c,a)
|
||||
|
||||
if not IsValid(p) or not p:IsAdmin() then return end
|
||||
|
||||
local steamid = a[1];
|
||||
|
||||
if not steamid then return end
|
||||
|
||||
for k,v in ipairs(player.GetAll())do
|
||||
if v:SteamID() == steamid then
|
||||
v._jb_forceRespawn=true
|
||||
v:Spawn()
|
||||
|
||||
for k,it in ipairs(player.GetAll())do
|
||||
it:ChatPrint(p:Nick().." has revived "..v:Nick()..".")
|
||||
end
|
||||
|
||||
return;
|
||||
end
|
||||
end
|
||||
|
||||
p:ChatPrint("User not found! "..steamid)
|
||||
end)
|
||||
Reference in New Issue
Block a user