2013-02-01 20:45:22 +00:00
//==============================================================================
// Admin Commands
//==============================================================================
// Command by Eolk. Modified by Blnukem.
function ccset ( % sender , % args )
{
% base = strlwr ( getword ( % args , 0 ));
% param = getword ( % args , 1 );
switch $ ( % base )
{
case " canzombie " :
if ( % sender . isAdmin )
{
if ( % param != 1 && % param != 0 )
{
messageClient ( % sender , " MsgNo " , " \ c2Invalid parameters. Use 1 for canZombie to be on, use 0 for canZombie to be off. " );
return ;
}
$Host :: canZombie = % param ;
messageAll ( 'MsgAdminForce' , " \ c1 " @% sender . nameBase @ " \ c2changed \ c5HUMAN ZOMBIES \ c2to \ c5 " @% param @ " \ c2. " );
export ( " $Host ::* " , " prefs/ServerPrefs.cs " , false );
echo ( " $Host ::canZombie (human zombies) changed by " @% sender . nameBase @ " ( " @% sender @ " ) to " @ $Host :: canZombie @ " via ccSet " );
}
case " joinpw " :
if ( % sender . isSuperAdmin )
{
if ( % param $ = " " )
{
messageClient ( % sender , " MsgNo " , " \ c2No Changes. You did not supply a value. Use \" remove \" to remove join pw. " );
return ;
}
if ( strlwr ( % param ) $ = " remove " )
$Host :: Password = " " ;
else
$Host :: Password = % param ;
messageAll ( 'MsgAdminForce' , " \ c1 " @% sender . nameBase @ " \ c2changed \ c5JOIN PASSWORD \ c2. " );
messageClient ( % sender , " MsgYes " , " \ c2Join password changed to " @ $Host :: Password );
export ( " $Host ::* " , " prefs/ServerPrefs.cs " , false );
echo ( " $Host ::Password (server password) changed by " @% sender . nameBase @ " ( " @% sender @ " ) to " @ $Host :: Password @ " via ccSet " );
}
case " maxplyrs " :
if ( !% sender . isSuperAdmin )
return ;
% failed = false ;
for ( % i = 0 ; % i < strlen ( % param ); % i ++ )
{
% temp = getsubstr ( % param , % i , 1 );
if ( % temp ! $ = " 1 " && % temp ! $ = " 2 " && % temp ! $ = " 3 " && % temp ! $ = " 4 " && % temp ! $ = " 5 " && % temp ! $ = " 6 " && % temp ! $ = " 7 " && % temp ! $ = " 8 " && % temp ! $ = " 9 " && % temp ! $ = " 0 " )
{
% failed = true ;
break ;
}
}
if ( % param < 0 )
% failed = true ;
if ( % failed == true )
{
messageClient ( % sender , " MsgNo " , " \ c2No changes. You supplied an invalid number. Must be over 0. " );
return ;
}
$Host :: MaxPlayers = % param ;
messageAll ( 'MsgAdminForce' , " \ c1 " @% sender . nameBase @ " \ c2changed \ c5MAX PLAYERS \ c2 to \ c5 " @ $Host :: MaxPlayers @ " \ c2. " );
export ( " $Host ::* " , " prefs/ServerPrefs.cs " , false );
echo ( " $Host ::MaxPlayers (maximum players allowed by the server) changed by " @% sender . nameBase @ " ( " @% sender @ " ) to " @ $Host :: MaxPlayers @ " via ccSet " );
case " restrict " :
if ( % sender . isAdmin )
{
% target = plnametocid ( % param );
if ( ! isObject ( % target ))
{
messageClient ( % sender , " MsgNo " , " \ c2Unable to find target. " );
return ;
}
if ( % target . isAdmin )
{
messageClient ( % sender , " MsgNo " , " \ c2Cannot do this to admins. " );
return ;
}
if ( !% target . CannotDeploy )
{
% target . CannotDeploy = 1 ;
messageClient ( % sender , " MsgYes " , " \ c2 " @% target . nameBase @ " 's ability to deploy things has been revoked.~wfx/misc/diagnostic_on.wav " );
echo ( % sender . namebase @ " ( " @% sender @ " ) disabled " @% target . nameBase @ " 's ( " @% target @ " ) ability to deploy objects " );
}
else
{
% target . CannotDeploy = 0 ;
messageClient ( % sender , " MsgYes " , " \ c2 " @% target . nameBase @ " is free to deploy things again.~wfx/misc/diagnostic_on.wav " );
echo ( % sender . namebase @ " ( " @% sender @ " ) enabled " @% target . nameBase @ " 's ( " @% target @ " ) ability to deploy objects " );
}
}
case " noinfection " :
if ( % sender . isAdmin )
{
if ( % param != 0 && % param != 1 )
{
messageClient ( % sender , " MsgNo " , " \ c2No changes. You supplied an invalid type. Use 1 for on, use 0 for off. " );
return ;
}
$Host :: NoInfection = % param ;
messageAll ( 'MsgAdminForce' , " \ c1 " @% sender . nameBase @ " \ c2changed \ c5NO INFECTION \ c2to \ c5 " @% param @ " \ c2. " );
export ( " $Host ::* " , " prefs/ServerPrefs.cs " , false );
echo ( " $Host ::NoInfection (no infection) changed by " @% sender . nameBase @ " ( " @% sender @ " ) to " @ $Host :: NoInfection @ " via ccSet " );
}
case " autosave " :
if ( % sender . isSuperAdmin ) // SA
{
if ( % param != 1 && % param != 0 )
{
messageClient ( % sender , " MsgNo " , " \ c2Invalid parameters. Input 1 for start, input 0 for end. " );
return ;
}
if ( % param == 1 )
if ( $SaveBuilding :: TimerEnabled )
{
saveBuildingTimerOn (); // This resets.
messageAll ( 'MsgAdminForce' , " \ c2 " @% sender . nameBase @ " has reset the autosave timer. " );
echo ( % sender . nameBase @ " ( " @% sender @ " ) has reset the autosave timer via ccSet " );
}
else
{
saveBuildingTimer ( 0 , 1 , 0 , 0 );
messageAll ( 'MsgAdminForce' , " \ c2 " @% sender . nameBase @ " has enabled the autosave timer. " );
echo ( % sender . nameBase @ " ( " @% sender @ " ) has enabled the autosave timer via ccSet " );
}
else
if ( $SaveBuilding :: TimerEnabled )
{
saveBuildingTimerOff ();
messageAll ( 'MsgAdminForce' , " \ c2 " @% sender . nameBase @ " has disabled the autosave timer. " );
echo ( % sender . nameBase @ " ( " @% sender @ " ) has disabled the autosave timer via ccSet " );
}
else
messageClient ( % sender , " " , " \ c2Cannot disable the autosave timer if it is already disabled! " );
}
case " lockedteams " :
if ( % sender . isAdmin )
{
if ( % param != 1 && % param != 0 )
{
messageClient ( % sender , " MsgNo " , " \ c2Invalid parameters. Input 1 for lock, input 0 for unlock. " );
return ;
}
$Host :: LockedTeams = % param ;
messageAll ( 'MsgAdminForce' , " \ c2 " @% sender . nameBase @ " has changed locked teams to " @% param @ " . " );
export ( " $Host ::* " , " prefs/ServerPrefs.cs " , false );
echo ( " $Host ::LockedTeams (locked, unchangeable teams) has been changed by " @% sender . nameBase @ " ( " @% sender @ " ) to " @ $Host :: LockedTeams @ " via ccSet " );
}
case " sapass " :
if ( % sender . isSuperAdmin )
{
$Host :: SuperAdminPassword = % param ;
messageClient ( % sender , " " , " \ c2Super admin password changed to " @% param );
export ( " $Host ::* " , " prefs/ServerPrefs.cs " , false );
echo ( " $Host ::SuperAdminPassword (super admin password or SAD) has been changed by " @% sender . nameBase @ " ( " @% sender @ " ) to " @ $Host :: SuperAdminPassword @ " via ccSet " );
}
case " apass " :
if ( % sender . isSuperAdmin )
{
$Host :: AdminPassword = % param ;
messageClient ( % sender , " " , " \ c2Admin password changed to " @% param );
export ( " $Host ::* " , " prefs/ServerPrefs.cs " , false );
echo ( " $Host ::AdminPassword (admin password or AD) has been changed by " @% sender . nameBase @ " ( " @% sender @ " ) to " @ $Host :: AdminPassword @ " via ccSet " );
}
case " fairteams " :
if ( % sender . isAdmin )
{
if ( % param != 1 && % param != 0 )
{
messageClient ( % sender , " MsgNo " , " \ c2Invalid parameters. Input 1 for enabled, input 0 for disable. " );
return ;
}
$Host :: FairTeams = % param ;
messageAll ( " " , " \ c2 " @% sender . nameBase @ " has changed Fair Teams to " @% param @ " . " );
export ( " $Host ::* " , " prefs/ServerPrefs.cs " , false );
echo ( " $Host ::FairTeams (unbalanced team preventer) has been changed by " @% sender . nameBase @ " ( " @% sender @ " ) to " @ $Host :: FairTeams @ " via ccSet " );
}
default :
messageClient ( % sender , " MsgNo " , " \ c2Invalid command. Valid commands are canzombie, zombieteam, joinpw, maxplyrs, restrict, zturrets " );
messageClient ( % sender , " MsgNo " , " \ c2noinfection, dir, lockedteams, sapass, apass, fairteams, and autosave " );
}
}
// Command by Eolk.
function ccA ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
for ( % i = 0 ; % i < ClientGroup . getCount (); % i ++ )
{
% cl = ClientGroup . getObject ( % i );
if ( % cl . isAdmin )
messageClient ( % cl , 'MsgYes' , " \ c3[A] \ c2 " @% sender . nameBase @ " : " @% args );
}
logEcho ( " [ADMIN CHAT]: " @% sender . nameBase @ " : " @% args );
}
// Command by Eolk (honestly, even though it looks like someone else's code).
function ccCancelVote ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
if ( Game . ScheduleVote $ = " " )
{
messageClient ( % sender , " MsgNo " , " \ c2There is no vote to cancel! " );
return ;
}
cancel ( Game . scheduleVote );
Game . votingArgs = " " ;
Game . scheduleVote = " " ;
Game . kickClient = " " ;
clearVotes ();
messageAll ( 'closeVoteHud' , " " );
if ( % client . team != 0 )
clearBottomPrint ( % client );
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2has cancelled the vote. " );
messageAll ( 'MsgVoteFailed' , " " );
logEcho ( % sender . nameBase @ " ( " @% sender @ " ) has cancelled the vote " );
}
// Command by Eolk.
function ccBottomPrint ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
if ( % args $ = " " )
{
messageClient ( % sender , 'MsgNo' , " \ c2Must supply text to display! " );
return ;
}
% print = % args ;
% wave = strstr ( % args , " ~w " );
if ( % wave != - 1 )
% print = getsubstr ( % args , 0 , % wave );
BottomprintAll ( % sender . nameBase @ " : " @% print , 10 , 3 );
messageAll ( " MsgAll " , " \ c2 " @ % sender . namebase @ " : \ c4 " @% print @ " ~wgui/objective_Notification.wav " );
logEcho ( " [BOTTOMPRINT] " @% sender . nameBase @ " ( " @% sender @ " ): " @% args );
}
// Command by Eolk. Modified by Blnukem
function ccCenterPrint ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
if ( % args $ = " " )
{
messageClient ( % sender , 'MsgNo' , " \ c2Must supply text to display! " );
return ;
}
% print = % args ;
% wave = strstr ( % args , " ~w " );
if ( % wave != - 1 )
% print = getsubstr ( % args , 0 , % wave );
CenterprintAll ( % sender . nameBase @ " : " @% print , 10 , 3 );
messageAll ( " MsgAll " , " \ c2 " @ % sender . namebase @ " : \ c4 " @% print @ " ~wgui/objective_Notification.wav " );
logEcho ( " [BOTTOMPRINT] " @% sender . nameBase @ " ( " @% sender @ " ): " @% args );
}
// Eolk
function ccJailPlayer ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
if ( ! $Host :: Prison :: Enabled )
{
messageClient ( % sender , " MsgNo " , " \ c2Prison is not enabled. " );
return ;
}
% target = plnametocid ( getword ( % args , 0 ));
% time = getword ( % args , 1 );
if ( ! isObject ( % target ))
{
messageClient ( % sender , " MsgNo " , " \ c2Target does not exist. " );
return ;
}
if ( ! isObject ( % target . player ))
{
messageClient ( % sender , " MsgNo " , " \ c2Target's player does not exist. " );
return ;
}
if (( % target . isAdmin && !% sender . isAdmin ) || % target . isSuperAdmin )
{
messageClient ( % sender , " MsgNo " , " \ c2You must outrank the target to jail them. " );
return ;
}
if ( % target == % sender && % target . isJailed && !% sender . isSuperAdmin )
{
messageClient ( % sender , " MsgNo " , " \ c2Can only unjail yourself if you are of super admin status. " );
return ;
}
if ( % time > 600 )
% time = 600 ;
% test = % target . isJailed ;
JailPlayer ( % target , % target . isJailed , % time );
if ( !% test )
{
messageClient ( % target , " MsgAdminForce " , " \ c2You have been sentenced to jail. " );
messageAllExcept ( % target , - 1 , " MsgAdminForce " , " \ c3 " @% target . nameBase @ " \ c2has been sentenced to jail. " );
logEcho ( % target . nameBase @ " ( " @% target @ " ) was sentenced to jail by " @% sender . nameBase @ " ( " @% sender @ " ) for " @% time @ " seconds " );
}
else
{
messageClient ( % target , " MsgAdminForce " , " \ c2You have had your jail sentence cut short. " , % sender . nameBase );
messageAllExcept ( % target , - 1 , " MsgAdminForce " , " \ c3 " @% target . nameBase @ " \ c2has had their jail sentence cut short. " );
logEcho ( % target . nameBase @ " ( " @% target @ " ) was released from jail by " @% sender . nameBase @ " ( " @% sender @ " ) " );
}
}
// Command by Eolk.
function ccMute ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
% target = plnametocid ( % args );
if ( ! isObject ( % target ))
{
messageClient ( % sender , " " , " \ c2No such person. " );
return ;
}
if (( % target . isAdmin && !% sender . isSuperAdmin ) || % target . isSuperAdmin )
{
messageClient ( % sender , " " , " \ c2Can't mute someone you don't outrank! " );
return ;
}
if ( !% target . isSilenced )
{
messageClient ( % target , " " , " \ c2You have been muted. " );
% target . isSilenced = 1 ;
messageClient ( % sender , " " , " \ c3 " @% target . nameBase @ " \ c2 has been muted. " );
logEcho ( % sender . nameBase @ " ( " @% sender @ " ) globally muted " @% target . nameBase @ " ( " @% target @ " ) " );
}
else
{
% target . isSilenced = 0 ;
messageClient ( % sender , " " , " \ c3 " @% target . nameBase @ " \ c2 has been unmuted. " );
logEcho ( % sender . nameBase @ " ( " @% sender @ " ) globally unmuted " @% target . nameBase @ " ( " @% target @ " ) " );
}
}
// Chat command by Eolk (special thanks to Krash for bug fixes!)
// <3
function ccaddteam ( % sender )
{
if ( !% sender . isAdmin )
return ;
if ( Game . numTeams >= 2 && $AddedMoreTeams != 1 )
{
messageClient ( % sender , 'MsgNo' , " \ c2There are already enough teams. " );
return ;
}
if ( ! $AddedMoreTeams )
{
Game . numTeams ++ ;
setSensorGroupCount ( Game . numTeams );
// clearVehicleCount(Game.numTeams + 1); // Not sure about this...
$AddedMoreTeams = 1 ;
$NewTeam = Game . numTeams ;
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2has added another team. " );
warn ( % sender . nameBase @ " ( " @% sender @ " ) has added another team " );
}
else
{
for ( % i = 0 ; % i < ClientGroup . getCount (); % i ++ )
{
% obj = ClientGroup . getObject ( % i );
if ( % obj . team == $NewTeam )
{
Game . forceObserver ( % obj , " AdminForce " );
messageClient ( % obj , 'MsgYes' , " \ c2You have been forced into observer due to being on the deleted team. " );
}
}
Game . numTeams -- ;
setSensorGroupCount ( Game . numTeams );
$AddedMoreTeams = 0 ;
$NewTeam = " " ;
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2has deleted the new team. All people have been forced into observer. " );
warn ( % sender . nameBase @ " ( " @% sender @ " ) has deleted the new team " );
}
}
// Eolk
function ccSummon ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
if ( % sender . isJailed )
{
messageclient ( % sender , " MsgNo " , " \ c2You cannot do this command while in jail! " );
return ;
}
if ( ! isObject ( % sender . player ))
{
messageclient ( % sender , " MsgNo " , " \ c2You must have a player object in order to do this. " );
return ;
}
% target = plnametocid ( % args );
if ( ! isObject ( % target ))
{
messageclient ( % sender , " MsgNo " , " \ c2Target does not exist. " );
return ;
}
if ( % target . isJailed )
{
messageclient ( % sender , " MsgNo " , " \ c2Target is jailed. " );
return ;
}
if ( ! isObject ( % target . player ))
{
messageclient ( % sender , " MsgNo " , " \ c2Your target has to have a player object in order to do this. " );
return ;
}
% x = getword ( % sender . player . position , 0 );
% y = getword ( % sender . player . position , 1 );
% z = getword ( % sender . player . position , 2 ) + 2.5 ;
% newpos = % x SPC % y SPC % z ;
% target . player . setPosition ( % newpos );
% target . player . setVelocity ( " 0 0 0 " );
messageClient ( % target , " MsgYes " , " \ c2You have been summoned by \ c3 " @% sender . namebase @ " \ c2. " );
messageClient ( % sender , " MsgYes " , " \ c2You have summoned \ c3 " @% target . namebase @ " \ c2. " );
}
// Blnukem/Eolk
function ccDesmurf ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
% target = plnametocid ( % args );
if ( ! isObject ( % target ))
{
messageClient ( % sender , " " , " \ c2Cannot find target. " );
return ;
}
if ( !% target . isSmurf )
messageClient ( % sender , " " , " \ c2No smurf name detected. " );
else
getRealName ( % target , % sender );
logEcho ( % sender . nameBase @ " ( " @% sender @ " ) requested non-smurf name of " @% target . nameBase @ " ( " @% target @ " ) " );
}
// Eolk
function ccGoto ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
if ( % sender . isJailed )
{
messageclient ( % sender , " MsgNo " , " \ c2You cannot do this command while in jail! " );
return ;
}
if ( ! isObject ( % sender . player ))
{
messageclient ( % sender , " MsgNo " , " \ c2You must have a player object in order to do this. " );
return ;
}
% target = plnametocid ( % args );
if ( ! isObject ( % target ))
{
messageclient ( % sender , " MsgNo " , " \ c2Target does not exist. " );
return ;
}
if ( % target . isJailed )
{
messageclient ( % sender , " MsgNo " , " \ c2Target is jailed. " );
return ;
}
if ( ! isObject ( % target . player ))
{
messageclient ( % sender , " MsgNo " , " \ c2Your target has to have a player object in order to do this. " );
return ;
}
% x = getword ( % target . player . position , 0 );
% y = getword ( % target . player . position , 1 );
% z = getword ( % target . player . position , 2 ) + 2.5 ;
% newpos = % x SPC % y SPC % z ;
% sender . player . setPosition ( % newpos );
% sender . player . setVelocity ( " 0 0 0 " );
messageClient ( % sender , " MsgYes " , " \ c2You have gone to \ c3 " @% target . namebase @ " 's \ c2location. " );
if ( % sender . isAdmin )
messageClient ( % target , " MsgYes " , " \ c3 " @% sender . nameBase @ " \ c2has come to you. " );
}
// Eolk
function ccMoveme ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
if ( getwordcount ( % args ) != 3 )
{
messageClient ( % sender , " MsgNo " , " \ c2Your movement was not specified in X Y Z format. " );
return ;
}
if ( % sender . isJailed )
{
messageclient ( % sender , " MsgNo " , " \ c2You cannot do this command while in jail! " );
return ;
}
% newpos = VectorAdd ( % sender . player . position , % args );
% sender . player . setPosition ( % newpos );
}
// Eolk
function ccmoveto ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
if ( getwordcount ( % args ) != 3 )
{
messageClient ( % sender , " MsgNo " , " \ c2Your movement was not specified in X Y Z format. " );
return ;
}
if ( % sender . isJailed )
{
messageclient ( % sender , " MsgNo " , " \ c2You cannot do this command while in jail! " );
return ;
}
% sender . player . setPosition ( % args );
}
// Blnukem/Eolk
function ccKill ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
% target = plnametocid ( % args );
if ( % target == % sender )
{
messageClient ( % sender , " " , " \ c2You cannot kill yourself. " );
return ;
}
if ( % target . isSuperAdmin )
{
messageClient ( % sender , " " , " \ c2You cannot kill Super Admins. " );
return ;
}
if ( ! isObject ( % target ))
{
messageClient ( % sender , " " , " \ c2Cannot find target. " );
return ;
}
if ( ! isObject ( % target . player ))
{
messageClient ( % sender , " " , " \ c2Cannot find target. " );
return ;
}
% target . player . scriptkill ( $DamageType :: Idiocy );
messageAll ( " " , " ~wfx/misc/bounty_completed.wav " );
warn ( % sender . nameBase @ " ( " @% sender @ " ) killed " @% target . nameBase @ " ( " @% target @ " ) using admin force " );
}
// Eolk
function ccForceTeamSpawn ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
% team = getword ( % args , 0 );
% sp = getword ( % args , 1 );
if ( % sp ! $ = " " )
% sp = % sp - 1 ; // Subtract one to have things make a little more sense.
if ( % team $ = " " )
{
messageClient ( % sender , " MsgNo " , " \ c2A team must be specified. " );
return ;
}
if ( % sp $ = " " )
{
$UseForcedTeamSpawn [ % team ] = 0 ;
$ForcedSpawn [ % team ] = " " ;
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2 has released the forced spawn for team \ c3 " @% team @ " \ c2. If you wish to not spawn at the point anymore, use /choosespawn to reset. " );
return ;
}
if ( ! isObject ( $teamSP [ % team , % sp ]))
{
messageClient ( % sender , " MsgNo " , " \ c2The spawnpoint specified doesn't exist. " );
return ;
}
if ( ! $teamSP [ % team , % sp ] . active )
{
messageClient ( % sender , " MsgNo " , " \ c2The spawnpoint specified is not powered. " );
return ;
}
$UseForcedTeamSpawn [ % team ] = 1 ;
$ForcedSpawn [ % team ] = $teamSP [ % team , % sp ];
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2 has forced team \ c3 " @% team @ " \ c2 to spawn at spawnpoint \ c3 " @% sp + 1 @ " \ c2. " );
warn ( % sender . nameBase @ " ( " @% sender @ " ) forced team " @% team @ " to spawn at spawn " @% sp );
}
// By Eolk
function ccSaveBuilding ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
% rad = getword ( % args , 0 );
% file = getword ( % args , 1 );
SaveBuilding ( % sender , % rad , % file , 1 , 0 );
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2 is saving the buildings with a radius of \ c3 " @% rad @ " \ c2. " );
messageClient ( % sender , " " , " \ c2Building saved to \ c3 " @ $SaveBuilding :: LastFile @ " \ c2. " );
warn ( % sender . nameBase @ " ( " @% sender @ " , GUID: " @% sender . guid @ " ) attempted save buildings within a radius of " @% radius @ " to file " @% file );
}
// Eolk
function ccLoadBuilding ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
LoadBuilding ( % args );
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2has loaded a building. " );
warn ( % sender . nameBase @ " ( " @% sender @ " , GUID: " @% sender . guid @ " ) loaded file " @% args );
}
// Blnukem
2013-03-18 03:06:58 +00:00
function ccTurrets ( % sender )
{
2013-02-01 20:45:22 +00:00
if ( !% sender . isAdmin )
return ;
2013-03-18 03:06:58 +00:00
if ( $TurretEnableOverride )
{
2013-02-01 20:45:22 +00:00
$TurretEnableOverride = 0 ;
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2 has disabled turrets. " );
}
2013-03-18 03:06:58 +00:00
else
{
2013-02-01 20:45:22 +00:00
$TurretEnableOverride = 1 ;
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2 has enabled turrets. " );
}
logEcho ( " $TurretEnableOverride (turrets work in purebuild) changed to " @ $TurretEnableOverride @ " by " @% sender . nameBase @ " ( " @% sender @ " ) using ccTurrets " );
}
// Blnukem
2013-03-18 03:06:58 +00:00
function ccBuySCG ( % sender )
{
2013-02-01 20:45:22 +00:00
if ( !% sender . isAdmin )
return ;
if ( ! isObject ( % sender . player ))
{
messageClient ( % sender , " " , " \ c2You must be playing in order to get a Super Chaingun. " );
return ;
}
messageClient ( % sender , " " , " \ c2A Super Chaingun has been added to your inventory. " );
% sender . player . setInventory ( SuperChaingun , 1 , true );
}
// Eolk
function ccChangeName ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
% target = plnametocid ( getword ( % args , 0 ));
if ( ! isObject ( % target ))
{
messageClient ( % sender , " " , " \ c2Invalid Target. " );
return ;
}
% name = getwords ( % args , 1 , getWordCount ( % args ) - 1 );
if ( % name $ = " " )
{
messageClient ( % sender , 'MsgNo' , " \ c2Need to supply a name! " );
return ;
}
if ( % name $ = " reset " )
{
ChangeName ( % target , " reset " );
messageClient ( % target , " " , " \ c2Your name has been reset. " );
warn ( % sender . nameBase @ " ( " @% sender @ " ) has reset " @% target . nameBase @ " 's ( " @% target @ " ) name " );
return ;
}
2013-03-31 16:54:31 +00:00
% name = collapseEscape ( % name );
2013-02-01 20:45:22 +00:00
ChangeName ( % target , % name );
messageClient ( % target , " " , " \ c2Your new name is \ c3 " @% name @ " \ c2. " );
warn ( % sender . nameBase @ " ( " @% sender @ " ) changed " @% target . nameBase @ " 's ( " @% target @ " ) name to " @% name );
}
// Eolk
function ccSavePlayer ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
% target = plnametocid ( getword ( % args , 0 ));
if ( ! isObject ( % target ))
{
messageClient ( % sender , " " , " \ c2Invalid target. " );
return ;
}
% name = getword ( % args , 1 );
if ( % name $ = " " )
{
messageClient ( % sender , " " , " \ c2Invalid name. " );
return ;
}
% folder = $SaveBuilding :: SaveFolder @ % name ; // I really don't know if we should check for invalid characters
new FileObject ( " Building " ); // or not. I think Tribes 2 does that automatically.
Building . openforwrite ( % folder );
Building . writeLine ( " // Saved by \" " @ getField ( % sender . nameBase , 0 ) @ " \" " );
Building . writeLine ( " // Created in mission \" " @ $MissionName @ " \" " );
Building . writeLine ( " // Construction " @ $ModVersion );
Building . writeLine ( " " );
% group = nameToID ( " MissionCleanup/Deployables " ); // We should really check isObject here... and we will!
if ( ! isObject ( % group ))
{
messageClient ( % sender , " " , " \ c2There are no deployables! " );
return ;
}
for ( % i = 0 ; % i < % group . getCount (); % i ++ )
{
% depl = % group . getObject ( % i );
if ( isObject ( % depl ) && % depl . getOwner () == % target )
{
% towrite = writeBuildingComponent ( % depl ); // This will return null if invalid.
if ( % towrite ! $ = " " )
Building . writeline ( % towrite );
}
}
Building . close ();
Building . delete ();
messageAll ( 'MsgAdminForce' , " \ c2 " @% sender . nameBase @ " is saving " @% target . nameBase @ " 's buildings. " );
messageClient ( % sender , " " , " \ c2Building saved to " @% folder @ " . " );
logEcho ( % sender . nameBase @ " ( " @% sender @ " ) saved " @% target . nameBase @ " 's pieces to file " @% name );
}
// Command made by Eolk.
function ccForceGivePieces ( % sender , % args )
{
if ( !% sender . isAdmin )
{
messageClient ( % sender , " " , " \ c2This is the admin give pieces. Regular clients have to use /givepieces target. " );
return ;
}
% from = ( getWord ( % args , 0 ) ! $ = " orphan " ? plnametocid ( getWord ( % args , 0 )) : " orphan " );
% to = plnametocid ( getWord ( % args , 1 ));
if ( % from ! $ = " orphan " && ! isObject ( % from ))
{
messageClient ( % sender , " " , " \ c2First argument - player doesn't exist. " );
return ;
}
if ( ! isObject ( % to ))
{
messageClient ( % sender , " " , " \ c2Second argument - player doesn't exist. " );
return ;
}
GivePieces ( % from , % to );
if ( % from ! $ = " orphan " )
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2 has forced \ c3 " @% from . nameBase @ " \ c2 to transfer " @ ( % from . sex $ = " Male " ? " his " : " her " ) @ " pieces to \ c3 " @% to . nameBase @ " \ c2. " );
else
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2 has given all orphans to \ c3 " @% to . nameBase @ " \ c2. " );
logEcho ( % sender . nameBase @ " ( " @% sender @ " ) gave " @ ( % from == " orphan " ? " all orphaned " : % from . nameBase @ " 's ( " @% from @ " ) " ) @ " pieces to " @% to . nameBase @ " ( " @% to @ " ) " );
}
// Eolk
function ccGiveClientPieces ( % sender , % args )
{
if ( !% sender . isAdmin )
{
messageClient ( % sender , " " , " \ c2This command is for admins only. " );
return ;
}
% from = getword ( % args , 0 );
% to = plnametocid ( getWord ( % args , 1 ));
if ( ! isObject ( % to ))
{
messageClient ( % sender , " " , " \ c2The receiving client doesn't exist. " );
return ;
}
GivePieces ( % from , % to );
messageAll ( 'MsgAdminForce' , " \ c3 " @% sender . nameBase @ " \ c2 has given all the pieces of client \ c3 " @% from @ " \ c2 to \ c3 " @% to . nameBase @ " . " );
logEcho ( % sender . nameBase @ " ( " @% sender @ " ) gave all pieces owned by client " @% from @ " to " @% to . nameBase @ " ( " @% to @ " ) " );
}
// Blnukem
function ccTest ( % sender , % args )
{
if ( !% sender . isAdmin ){
return ;
}
% x = getword ( % sender . player . position , 0 );
% y = getword ( % sender . player . position , 1 );
% z = getTerrainHeight ( % x SPC % y ) + 5 ;
% rot = " 0 0 1 " @ getRandom ( 1 , 360 );
% newpos = % x SPC % y SPC % z ;
if ( % args $ = " Raptor " )
{
% type = ScoutFlyer ;
} else if ( % args $ = " Airwing " )
{
% type = StrikeFlyer ;
} else if ( % args $ = " Superior " )
{
% type = SuperiorityFighter ;
}
if ( % args $ = " " )
{
MessageClient ( % sender , " Msg " , " \ c2Please specifiy the vehicle type. " );
} else if ( % args ! $ = " Raptor " && % args ! $ = " Airwing " && % args ! $ = " Superior " )
{
MessageClient ( % sender , " Msg " , " \ c3 " @% args @ " \ c2 is not a valid vehicle. " );
}
% veh = new FlyingVehicle ()
{
dataBlock = " " @% type @ " " ;
position = " " @% newpos @ " " ;
rotation = " " @% rot @ " " ;
team = % sender . team ;
};
MissionCleanUp . add ( % veh );
setTargetSensorGroup ( % veh . getTarget (), % sender . team );
commandToClient ( % sender , 'SetDefaultVehicleKeys' , true );
commandToClient ( % sender , 'SetPilotVehicleKeys' , true );
% veh . mountObject ( % sender . player , 0 );
% veh . playAudio ( 0 , MountVehicleSound );
% sender . player . mVehicle = % col ;
% datablock = % type ;
% datablock . playerMounted ( % veh , % sender . player , 0 );
}
// Eolk
function ccNoVote ( % sender , % args )
{
if ( !% sender . isAdmin )
return ;
% target = plnametocid ( % args );
if ( ! isObject ( % target ))
{
messageClient ( % sender , " " , " \ c2Target does not exist. " );
return ;
}
if ( % target . isAdmin )
{
messageClient ( % sender , " " , " \ c2This command does not affect admins. " );
return ;
}
if ( Game . scheduleVote ! $ = " " )
{
messageClient ( % sender , " " , " \ c2Cannot do this while a vote is in progress. " );
return ;
}
if ( % target . canVote )
{
messageClient ( % sender , " " , " \ c3 " @% target . nameBase @ " 's \ c2ability to vote has been taken away. " );
% target . canVote = false ;
}
else
{
messageClient ( % sender , " " , " \ c3 " @% target . nameBase @ " 's \ c2ability to vote has been given back. " );
% target . canVote = true ;
}
}