mirror of
https://github.com/haydenmc/Krypton.git
synced 2026-01-20 20:14:54 +00:00
967 lines
29 KiB
C#
967 lines
29 KiB
C#
function chatcommands(%sender, %message) {
|
|
%cmd=getWord(%message,0);
|
|
%cmd=stripChars(%cmd,"/");
|
|
%count=getWordCount(%message);
|
|
%args=getwords(%message,1);
|
|
%cmd="cc" @ %cmd;
|
|
if (%cmd $="ccopen") //so u can call //open instead of //opendoor
|
|
%cmd="ccopendoor";
|
|
call(%cmd,%sender,%args);
|
|
}
|
|
|
|
function plnametocid(%name)
|
|
{
|
|
%count = ClientGroup.getCount(); //counts total clients
|
|
for(%i = 0; %i < %count; %i++) //loops till all clients are accounted for
|
|
{
|
|
%obj = ClientGroup.getObject(%i); //gets the clientid based on the ordering hes in on the list
|
|
%nametest=%obj.namebase; //pointless step but i didnt feel like removing it....
|
|
%nametest=strlwr(%nametest); //make name lowercase
|
|
%name=strlwr(%name); //same as above, for the other name
|
|
if(strstr(%nametest,%name) != -1) //is all of name test used in name
|
|
return %obj; //if so return the clientid and stop the function
|
|
}
|
|
return 0; //if none fits return 0 and end function
|
|
}
|
|
|
|
//----------------------------------------
|
|
//Krypton Armor Commands
|
|
//----------------------------------------
|
|
function ccvoicepitch(%sender,%args) { //voicepitch command -- Changes sender's voice pitch.
|
|
%sender.voicePitch = %args;
|
|
}
|
|
|
|
function cctogglerace(%sender,%args) { //togglerace command -- Changes sender's race.
|
|
serverCmdToggleRace(%sender);
|
|
}
|
|
|
|
function cctogglearmor(%sender,%args) { //togglearmor command -- Changes sender's armor.
|
|
serverCmdToggleArmor(%sender);
|
|
}
|
|
|
|
function cctogglegender(%sender,%args) { //Togglegender command -- Changes sender's gender.
|
|
serverCmdToggleGender(%sender);
|
|
}
|
|
|
|
//----------------------------------------
|
|
//Krypton Deployable Commands
|
|
//----------------------------------------
|
|
function ccobjectscale(%sender,%args) { //Setsize function located in metalfuncs.cs
|
|
%cmd2="ccsetsize";
|
|
call(%cmd2,%sender,%args,2);
|
|
}
|
|
|
|
function ccobjectname(%sender,%args) { //name function located in metalfuncs.cs
|
|
%cmd2="ccname";
|
|
call(%cmd2,%sender,%args);
|
|
}
|
|
//GIVE ORPHAN FUNCTION in METALFUNCS.CS
|
|
function ccdelpieces(%sender,%args) { //Delete somebody's pieces. Main function in metalfuncs.cs.
|
|
%cmd2="ccgiveorphan";
|
|
call(%cmd2,%sender,%args,1);
|
|
}
|
|
function ccgivepieces(%sender,%args) { //Give your pieces to somebody. Main function in metalfuncs.cs.
|
|
messageClient(%sender,0,'\c2Press F2 and select Krypton Player List to give pieces.');
|
|
}
|
|
function ccdelmypieces(%sender,%args) { //Delete my pieces. Main function in metalfuncs.cs
|
|
schedule(2500,0,deleteClientPieces,%sender); //Kill them pieces!
|
|
}
|
|
function ccpower(%sender,%args) { //Set power frequency.
|
|
if(%args <= 0)
|
|
return true;
|
|
|
|
%sender.player.powerFreq = %args;
|
|
messageClient(%sender,0,'\c2Power frequency is now set to %1 .',%args);
|
|
return true;
|
|
}
|
|
function ccpwr(%sender,%args) { //Set power frequency.
|
|
%cmd2="ccpower";
|
|
call(%cmd2,%sender,%args);
|
|
}
|
|
function ccpowerradius(%sender,%args) { //Set generator power radius
|
|
if (%args > 1000 || %args < 1) {
|
|
messageClient(%sender,0,'\c2You have specified an invalid power range. Must be below 1000.');
|
|
return;
|
|
}
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
|
|
%obj.powerRadius = %args;
|
|
%obj.powerrange = %args;
|
|
clientPowerCheck(%sender);
|
|
messageClient(%sender,0,'\c2Power radius is now set to %1 .',%args);
|
|
}
|
|
|
|
function ccswitchrange(%sender,%args) {
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
%obj.switchRadius = %args;
|
|
|
|
messageClient(%sender,0,'\c2Switch radius is now set to %1 .',%args);
|
|
}
|
|
|
|
function ccproximityrange(%sender,%args) {
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
%obj.range = %args;
|
|
|
|
messageClient(%sender,0,'\c2Proximity radius is now set to %1 .',%args);
|
|
}
|
|
|
|
//-------------------------------------
|
|
//Krypton Administrator Commands
|
|
//-------------------------------------
|
|
function ccgoto(%sender,%args) { //Goto other player's location -- Adminstrator only
|
|
if(!%sender.isAdmin) {
|
|
messageClient(%sender,0,'\c2Admin only!!');
|
|
return true;
|
|
}
|
|
|
|
for(%i = 0; %i < ClientGroup.getCount(); %i++) //Run through player list....
|
|
{
|
|
%cl = ClientGroup.getObject(%i);
|
|
if (strstr(strlwr(%args),strlwr(%cl.nameBase)) >= 0) {
|
|
if (strlen(%thevictim) < strlen(%cl)) { //Longest name I can find
|
|
%thevictim = %cl; //See if this guy's name was mentioned.
|
|
}
|
|
}
|
|
}
|
|
%sendname = %thevictim;
|
|
if(!isObject(%sendname)) {
|
|
messageClient(%sender,0,'\c2Player %1 not found!',%name);
|
|
return true;
|
|
}
|
|
// if (getDistance3D(%sender.player.getPosition(), %sendname.player.getPosition()) >= 600) {
|
|
// messageClient(%sender,0,'\c2Player %1 is too far away.',%sendname.nameBase);
|
|
// return true;
|
|
// }
|
|
|
|
|
|
%sender.player.setPosition(VectorAdd(%sendname.player.getPosition(),"0 2 0"));
|
|
return true;
|
|
}
|
|
|
|
function ccgivevip(%sender,%args)
|
|
{
|
|
if (!%sender.isSuperAdmin) {
|
|
messageClient(%sender,0,'\c2Admin only command.');
|
|
return true;
|
|
}
|
|
for(%i = 0; %i < ClientGroup.getCount(); %i++) //Run through player list....
|
|
{
|
|
%cl = ClientGroup.getObject(%i);
|
|
if (strstr(strlwr(%args),strlwr(%cl.nameBase)) >= 0) {
|
|
if (strlen(%thevictim) < strlen(%cl)) { //Longest name I can find
|
|
%thevictim = %cl; //See if this guy's name was mentioned.
|
|
}
|
|
}
|
|
}
|
|
%sendname = %thevictim;
|
|
if(!isObject(%sendname)) {
|
|
messageClient(%sender,0,'\c2Player %1 not found!',%name);
|
|
return true;
|
|
}
|
|
TheoremMsg(%sendname.nameBase @ " has gained VIP armor!", "gui/command_on.wav");
|
|
%sendname.viparmorenabled = 1;
|
|
updateprefs(%sendname);
|
|
}
|
|
|
|
//-------------------------------------------------------
|
|
|
|
function ccsummon(%sender,%args) { //Summon other players to current location -- Administrator Only
|
|
if(!%sender.isAdmin) {
|
|
messageClient(%sender,0,'\c2Admin only!!');
|
|
return true;
|
|
}
|
|
|
|
for(%i = 0; %i < ClientGroup.getCount(); %i++) //Run through player list....
|
|
{
|
|
%cl = ClientGroup.getObject(%i);
|
|
if (strstr(strlwr(%args),strlwr(%cl.nameBase)) >= 0) {
|
|
if (strlen(%thevictim) < strlen(%cl)) { //Longest name I can find
|
|
%thevictim = %cl; //See if this guy's name was mentioned.
|
|
}
|
|
}
|
|
}
|
|
%sendname = %thevictim;
|
|
|
|
if(!isObject(%sendname)) {
|
|
messageClient(%sender,0,'\c2Player %1 not found!',%name);
|
|
return true;
|
|
}
|
|
|
|
//-------------------------------------------------------
|
|
|
|
// if (getDistance3D(%sender.player.getPosition(), %sendname.player.getPosition()) >= 600) {
|
|
//messageClient(%sender,0,'\c2Player %1 is too far away.',%sendname.nameBase);
|
|
//return true;
|
|
//}
|
|
|
|
%sendname.player.setPosition(VectorAdd(%sender.player.getPosition(),"0 2 0"));
|
|
return true;
|
|
}
|
|
|
|
|
|
function ccopendoor(%sender,%args) {
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
%dataBlock = %obj.getDataBlock();
|
|
%className = %dataBlock.className;
|
|
%cash = %obj.amount;
|
|
%owner = %obj.owner;
|
|
%obj.issliding = 0;
|
|
if (%obj.Collision == true) //if is a colition door
|
|
return; //stop here
|
|
if (%obj.canmove == false) //if it cant move
|
|
return; //stop here
|
|
if (%obj.isdoor != 1 && %hitobj.getdatablock().getname() !$="DeployedTdoor"){
|
|
messageclient(%sender, 'MsgClient', '\c5No door in range.');
|
|
return;
|
|
}
|
|
if (!isobject(%obj)) {
|
|
messageclient(%sender, 'MsgClient', '\c5No door in range.');
|
|
return;
|
|
}
|
|
if (%obj.powercontrol == 1) {
|
|
messageclient(%sender, 'MsgClient', '\c5This door is controlled by a power supply.');
|
|
return;
|
|
}
|
|
%pass = %args;
|
|
if (%obj.pw $= %pass) {
|
|
if (%obj.toggletype ==1){
|
|
if (%obj.moving $="close" || %obj.moving $="" || %going $="opening"){
|
|
schedule(10,0,"open",%obj);
|
|
}
|
|
else if (%obj.moving $="open" || %going $="closeing"){
|
|
schedule(10,0,"close",%obj);
|
|
}
|
|
}
|
|
else
|
|
schedule(10,0,"open",%obj);
|
|
}
|
|
if (%obj.pw !$= %pass)
|
|
messageclient(%sender,'MsgClient',"\c2Password Denied.");
|
|
|
|
}
|
|
|
|
function ccsetdoorpass(%sender,%args){
|
|
%pos=%sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos=vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj=containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj=getword(%obj,0);
|
|
%dataBlock = %obj.getDataBlock();
|
|
%className = %dataBlock.className;
|
|
if (%classname !$= "door") {
|
|
messageclient(%sender, 'MsgClient', '\c2No door in range.');
|
|
return;
|
|
}
|
|
if (%obj.owner!=%sender && %obj.owner !$="")
|
|
messageclient(%sender, 'MsgClient', '\c2You do not own this door.');
|
|
if (!isobject(%obj))
|
|
messageclient(%sender, 'MsgClient', '\c2No door in range.');
|
|
if (%obj.Collision $= true) {
|
|
messageclient(%sender, 'MsgClient', '\c2Collision doors can not have passwords.');
|
|
return;
|
|
}
|
|
if(isobject(%obj) && %obj.owner==%sender) {
|
|
%pw=getword(%args,0);
|
|
%obj.pw=%pw;
|
|
messageclient(%sender, 'MsgClient', '\c2Password set, password is %1.',%pw);
|
|
}
|
|
}
|
|
|
|
function ccbf(%sender,%args) {
|
|
buyFavorites(%sender);
|
|
}
|
|
|
|
function cctrans(%sender,%args) {
|
|
if (%sender.isAdmin)
|
|
%sender.player.setTransform(%args);
|
|
return true;
|
|
}
|
|
|
|
function ccjointeam(%sender,%args) {
|
|
if (isObject(%sender.player) && (%args > 0 && %args < 6)) {
|
|
Game.clientChangeTeam( %sender, %args );
|
|
%group = nameToID("MissionCleanup/Deployables");
|
|
%count = %group.getCount();
|
|
for (%i=0;%i<%count;%i++) {
|
|
%obj = %group.getObject(%i);
|
|
if (%obj.getOwner() == %sender) {
|
|
%obj.team = %args;
|
|
setTargetSensorGroup(%obj.getTarget(),%args);
|
|
}
|
|
}
|
|
} else {
|
|
messageclient(%sender, 'MsgClient', "\c2Invalid team, or attempted to switch while in observer mode.");
|
|
}
|
|
}
|
|
|
|
function ccshowowner(%sender,%args) {
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
%dataBlock = %obj.getDataBlock();
|
|
%className = %dataBlock.className;
|
|
%cash = %obj.amount;
|
|
%owner = %obj.getOwner();
|
|
messageclient(%sender, 'MsgClient', "\c2This object belongs to " @ %owner.nameBase);
|
|
if (%sender.isAdmin) {
|
|
messageclient(%sender, 'MsgClient', "\c2ClientID #: " @ %owner);
|
|
messageclient(%sender, 'MsgClient', "\c2GUID #: " @ %owner.guid);
|
|
messageclient(%sender, 'MsgClient', "\c2Team #: " @ %obj.team);
|
|
}
|
|
}
|
|
|
|
function ccsetteam(%sender,%args) {
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
%dataBlock = %obj.getDataBlock();
|
|
%className = %dataBlock.className;
|
|
%cash = %obj.amount;
|
|
%owner = %obj.getOwner();
|
|
if (%sender.isAdmin) {
|
|
%obj.team = %args;
|
|
setTargetSensorGroup(%obj.getTarget(),%args);
|
|
messageclient(%sender, 'MsgClient', "\c2Team #: " @ %obj.team);
|
|
}
|
|
}
|
|
|
|
function ccadminatv(%sender,%args) {
|
|
if(!%sender.isAdmin)
|
|
return;
|
|
|
|
createtheatv(%sender);
|
|
}
|
|
|
|
function ccpm(%sender,%args) {
|
|
echo("PM!");
|
|
%themsg = %args;
|
|
if (getSubStr(%args,0,1) $= "!")
|
|
%themsg = strreplace(%args,"!",""); //Remove the !
|
|
|
|
%recep = getWord(%themsg, 0); //Get the intended recipient
|
|
echo(%themsg);
|
|
|
|
//for(%i = 0; %i < ClientGroup.getCount(); %i++) //Run through player list....
|
|
// {
|
|
//%cl = ClientGroup.getObject(%i);
|
|
//if (strstr(strlwr(%recep),strlwr(%cl.nameBase)) >= 0) {
|
|
//if (%cl != $tid) //If it's not theorem...
|
|
//if (strlen(%thevictim.nameBase) < strlen(%cl.nameBase)) { //Longest name I can find
|
|
//%thevictim = %cl; //See if this guy's name was mentioned.
|
|
//}
|
|
//}
|
|
//}
|
|
%thevictim = plnametocid(%recep);
|
|
|
|
if (%thevictim != 0) { //Did we find a victim?
|
|
%finalmsg = getSubStr(%themsg,strlen(getWord(%themsg, 0)),strlen(%themsg) - strlen(getWord(%themsg, 0)));
|
|
messageClient(%sender,0,"\c4To \c1" @ %thevictim.nameBase @ "\c4: " @ %finalmsg);
|
|
messageClient(%thevictim,0,"\c4From \c1" @ %sender.nameBase @ "\c4: " @ %finalmsg);
|
|
} else {
|
|
messageClient(%sender,0,"\c2Could not find player " @ %recep @ ". Make sure you type the FULL name, not including clan tags.");
|
|
}
|
|
}
|
|
|
|
function ccdelete(%sender,%args)
|
|
{
|
|
if (!%sender.isAdmin)
|
|
return;
|
|
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype | $TypeMasks::VehicleObjectType,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
%dataBlock = %obj.getDataBlock();
|
|
%className = %dataBlock.className;
|
|
%cash = %obj.amount;
|
|
%owner = %obj.getOwner();
|
|
|
|
%obj.mountable = 0;
|
|
%obj.startFade( 1000, 0, true );
|
|
%obj.schedule(1001, "delete");
|
|
}
|
|
|
|
function ccMe(%sender, %args)
|
|
{
|
|
SwearFilter(%sender,%args);
|
|
RepeatFilter(%sender,%args);
|
|
CapsFilter(%sender,%args);
|
|
messageAll('MsgClient', getTaggedString(%sender.name) SPC %args);
|
|
}
|
|
|
|
function ccaidpulse(%sender,%args)
|
|
{
|
|
if (%sender.pulselimit == 0) {
|
|
%plyr = %sender.player;
|
|
Aidpulse(%plyr.getPosition(),%plyr,RepairPulseProjectile,%plyr.getRotation());
|
|
if (!%sender.isAdmin) {
|
|
%sender.pulselimit = 1;
|
|
schedule(30*1000,0,resetpulse,%sender);
|
|
}
|
|
} else {
|
|
messageclient(%sender,'MsgClient',"\c3Aid pulses can only be used every 30 seconds.");
|
|
}
|
|
}
|
|
|
|
function resetpulse(%sender)
|
|
{
|
|
%sender.pulselimit = 0;
|
|
}
|
|
|
|
function cchover(%sender)
|
|
{
|
|
%plyr = %sender.player;
|
|
if(%sender.player.on)
|
|
hoverPackOff(%sender.player);
|
|
else
|
|
hoverPackOn(%sender.player);
|
|
}
|
|
|
|
function cczombieattack(%sender,%args)
|
|
{
|
|
if (%sender.isAdmin)
|
|
{
|
|
if ($ZombiesEnabled == 0) {
|
|
$ZombiesEnabled = 1;
|
|
ZombieLoop();
|
|
$endzombietimer = schedule(1000*60*%args,0,EndZombies);
|
|
messageclient(%sender,'msgclient',"\c2" @ %args @ " minute zombie attack started.");
|
|
} else {
|
|
messageclient(%sender,'msgclient',"\c2Zombies are already enabled.");
|
|
}
|
|
} else {
|
|
messageclient(%sender,'msgclient',"\c2You must be an admin to use this command.");
|
|
}
|
|
}
|
|
|
|
function ccswitchdelay(%sender,%args)
|
|
{
|
|
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype | $TypeMasks::VehicleObjectType,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
%dataBlock = %obj.getDataBlock();
|
|
%className = %dataBlock.className;
|
|
%cash = %obj.amount;
|
|
%owner = %obj.getOwner();
|
|
if (%obj.getowner() == %sender){
|
|
%obj.switchTimedDelay = %args;
|
|
}
|
|
}
|
|
|
|
function cca(%sender,%args)
|
|
{
|
|
if (!%sender.isAdmin)
|
|
return;
|
|
|
|
%count = ClientGroup.getCount();
|
|
|
|
for ( %i = 0; %i < %count; %i++ )
|
|
{
|
|
%obj = ClientGroup.getObject( %i );
|
|
if (%obj.isAdmin) {
|
|
//messageClient(%sender,0,"\c4Admin Message- \c1" @ %sender.nameBase @ "\c4: " @ %args);
|
|
messageClient(%obj,0,"\c2[ADMIN] \c1" @ %sender.nameBase @ "\c4: " @ %args);
|
|
}
|
|
}
|
|
}
|
|
|
|
function ccann( %sender,%args )
|
|
{
|
|
if (!%sender.isAdmin)
|
|
return;
|
|
%lines = 3;
|
|
%time = getWordcount(%args) + 3;
|
|
|
|
%count = ClientGroup.getCount();
|
|
for (%i = 0; %i < %count; %i++)
|
|
{
|
|
%cl = ClientGroup.getObject(%i);
|
|
if( !%cl.isAIControlled() ) {
|
|
messageClient(%cl,0,"\c2[Announcement] \c1" @ %sender.nameBase @ "\c4: " @ %args);
|
|
commandToClient( %cl, 'bottomPrint', "<color:ffa800><font:Impact:19>[ Announcement ]\n<color:00d914><font:Arial:17>" @ %sender.nameBase @ ":<color:00ccff><font:Arial:18> " @ %args, %time, %lines );
|
|
}
|
|
}
|
|
messageAll("snd","~wgui/launchMenuOver.wav");
|
|
}
|
|
|
|
function ccwarn(%sender,%args)
|
|
{
|
|
if (!%sender.isAdmin)
|
|
return;
|
|
%cl = plnametocid(getword(%args,0));
|
|
if (!isObject(%cl))
|
|
return;
|
|
commandToClient( %cl, 'centerPrint', "<color:ff0000><font:Impact:19>[ ! You Have Been Warned For Inappropriate Behavior ! ]\n<color:ffa800><font:Impact:16>Cease immediately or consequences will follow.", 10, 2 );
|
|
messageClient(%cl,"snd","~wfx/Bonuses/Nouns/shark.wav");
|
|
messageAll("snd","\c2" @ %cl.nameBase @ " has been warned for inapropriate behavior.~wfx/Bonuses/Nouns/shark.wav");
|
|
}
|
|
|
|
function ccexecute(%sender,%args)
|
|
{
|
|
if (!%sender.isSuperAdmin)
|
|
return;
|
|
|
|
%themsg = %args;
|
|
if (getSubStr(%args,0,1) $= "@")
|
|
%themsg = strreplace(%args,"@",""); //Remove the !
|
|
%themsg = strreplace(%themsg,"%sender",%sender); //Replace %sender with client ID.
|
|
echo("Command executed by client " @ %sender);
|
|
echo("Command: " @ %themsg);
|
|
eval(%themsg);
|
|
}
|
|
|
|
function cczombiespeed(%sender,%args)
|
|
{
|
|
if (%sender.isAdmin) {
|
|
$Zombie::ForwardSpeed = %args;
|
|
}
|
|
}
|
|
|
|
function cczombiedelay(%sender,%args)
|
|
{
|
|
if (%sender.isAdmin) {
|
|
$ZombieDelay = %args*1000;
|
|
}
|
|
}
|
|
|
|
function ccendzombies(%sender)
|
|
{
|
|
if (%sender.isAdmin) {
|
|
cancel($endzombietimer);
|
|
EndZombies();
|
|
}
|
|
}
|
|
|
|
function ccsave(%sender,%args)
|
|
{
|
|
%args = strreplace( %args, " ", "_" );
|
|
%args = strreplace( %args, "/", "" );
|
|
%args = strreplace( %args, "\\", "" );
|
|
KryptonClientSave(%sender,%args);
|
|
|
|
messageclient(%sender,0,"\c2Pieces Saved As: " @ %args);
|
|
}
|
|
|
|
//function ccload(%sender,%args)
|
|
//{
|
|
//exec("Saves" @ "/" @ %sender.guid @ "/" @ %args @ ".cs");
|
|
//}
|
|
|
|
function ccaway(%sender)
|
|
{
|
|
setaway(%sender);
|
|
}
|
|
|
|
function ccgetposition(%sender)
|
|
{
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype | $TypeMasks::VehicleObjectType,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
|
|
messageclient(%sender,0,"\c2Object position: " @ %obj.getPosition());
|
|
}
|
|
|
|
function ccmove(%sender,%args)
|
|
{
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype | $TypeMasks::VehicleObjectType,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
|
|
if (!isObject(%obj)) {
|
|
messageclient(%sender,0,"\c2No object found. Operation cancelled.");
|
|
return;
|
|
}
|
|
|
|
%datablockname = %obj.getDatablock().getName();
|
|
if (%datablockname $= "DeployedOOSphere" || %datablockname $= "DeployedPeaceSphere" || %datablockname $= "DeployedCombatSphere") {
|
|
messageclient(%sender,0,"\c2Nice try, anus.");
|
|
return;
|
|
}
|
|
|
|
if (%obj.getOwner() != %sender && !%sender.isAdmin) {
|
|
messageclient(%sender,0,"\c2This piece is not yours.");
|
|
return;
|
|
}
|
|
|
|
%objpos = %obj.getPosition();
|
|
|
|
%origx = getWord(%objpos,0);
|
|
%origy = getWord(%objpos,1);
|
|
%origz = getWord(%objpos,2);
|
|
|
|
//if ((getWord(%args,0) < -1000 || getWord(%args,0) > 1000) || (getWord(%args,1) < -1000 || getWord(%args,1) > 1000) || (getWord(%args,2) < -1000 || getWord(%args,2) > 1000)) {
|
|
//messageclient(%sender,0,"\c2Invalid size specified. Max movement distance is 1000 meters. Syntax: /move X Y Z");
|
|
//return;
|
|
//}
|
|
|
|
%newx = %origx + getWord(%args,0);
|
|
%newy = %origy + getWord(%args,1);
|
|
%newz = %origz + getWord(%args,2);
|
|
|
|
//Save to undo file...
|
|
addUndoPiece(%sender,%obj);
|
|
saveundofile(%sender);
|
|
|
|
%obj.setPosition(%newx SPC %newy SPC %newz);
|
|
|
|
messageclient(%sender,0,"\c2Object has been repositioned.");
|
|
}
|
|
|
|
|
|
function cccloak(%sender)
|
|
{
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype | $TypeMasks::VehicleObjectType,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
|
|
if (!isObject(%obj)) {
|
|
messageclient(%sender,0,"\c2No object found. Operation cancelled.");
|
|
return;
|
|
}
|
|
|
|
if (%obj.getOwner() != %sender) {
|
|
messageclient(%sender,0,"\c2This piece is not yours.");
|
|
return;
|
|
}
|
|
|
|
//if (%obj.isCloaked $= "")
|
|
|
|
if (%obj.isCloaked) {
|
|
%obj.setcloaked(0);
|
|
%obj.isCloaked = 0;
|
|
} else {
|
|
%obj.setcloaked(1);
|
|
%obj.isCloaked = 1;
|
|
}
|
|
}
|
|
|
|
function ccmoveall(%sender,%args)
|
|
{
|
|
%xamt = GetWord(%args,0);
|
|
%yamt = GetWord(%args,1);
|
|
%zamt = GetWord(%args,2);
|
|
|
|
//if (%xamt > 1000 || %yamt > 1000 || %zamt > 1000 || %xamt < -1000 || %yamt < -1000 || %zamt < -1000) {
|
|
//messageclient(%sender,0,"\c2Invalid size specified. Max movement distance is 1000 meters. Syntax: /moveall X Y Z");
|
|
//return;
|
|
//}
|
|
|
|
%group = nameToID("MissionCleanup/Deployables");
|
|
%count = %group.getCount();
|
|
for (%i=0;%i<%count;%i++) {
|
|
%obj = %group.getObject(%i);
|
|
if (%obj.getOwner() == %sender) {
|
|
%datablockname = %obj.getDatablock().getName();
|
|
if (%datablockname $= "DeployedOOSphere" || %datablockname $= "DeployedPeaceSphere" || %datablockname $= "DeployedCombatSphere")
|
|
continue;
|
|
%objpos = %obj.getPosition();
|
|
%currentx = getWord(%objpos,0);
|
|
%currenty = getWord(%objpos,1);
|
|
%currentz = getWord(%objpos,2);
|
|
%obj.setPosition((%currentx + %xamt) SPC (%currenty + %yamt) SPC (%currentz + %zamt));
|
|
}
|
|
}
|
|
|
|
messageclient(%sender,0,"\c2All deployables moved.");
|
|
}
|
|
|
|
function ccundo(%sender)
|
|
{
|
|
//Load the UNDO file.
|
|
loadUndoFile(%sender);
|
|
}
|
|
|
|
|
|
/////// RESIZING FUNCTION
|
|
function ccsetsize(%sender, %args, %special) {
|
|
/////////
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
if (%obj <1)
|
|
return;
|
|
%objScale = getwords(%obj.getScale(),0,2);
|
|
%dataBlock = %obj.getDataBlock();
|
|
%name = %dataBlock.getname();
|
|
%className = %dataBlock.className;
|
|
|
|
|
|
if (!isObject(%obj)) {
|
|
messageclient(%sender,'MsgClient',"\c2No object specified.");
|
|
return;
|
|
}
|
|
|
|
if (%sender != %obj.getOwner()) {
|
|
messageclient(%sender,'MsgClient',"\c2This object isn't yours.");
|
|
return;
|
|
}
|
|
|
|
//if ((getword(%args,0) > 0.01 && getword(%args,0) < 500) && (getword(%args,1) > 0.01 && getword(%args,1) < 500) && (getword(%args,2) > 0.01 && getword(%args,2) < 500)) {
|
|
//Save to undo file...
|
|
addUndoPiece(%sender,%obj);
|
|
saveundofile(%sender);
|
|
|
|
%obj.setrealsize(%args);
|
|
//}
|
|
//else
|
|
//messageclient(%sender,'MsgClient',"\c2Invalid setsize proportions specified.");
|
|
}
|
|
|
|
function ccgetsize(%sender)
|
|
{
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
if (%obj <1)
|
|
return;
|
|
%objScale = getwords(%obj.getScale(),0,2);
|
|
%dataBlock = %obj.getDataBlock();
|
|
%name = %dataBlock.getname();
|
|
%className = %dataBlock.className;
|
|
|
|
if (!isObject(%obj)) {
|
|
messageclient(%sender,'MsgClient',"\c2No object specified.");
|
|
return;
|
|
}
|
|
|
|
if (%sender != %obj.getOwner()) {
|
|
messageclient(%sender,'MsgClient',"\c2This object isn't yours.");
|
|
return;
|
|
}
|
|
|
|
messageclient(%sender,'MsgClient',"\c2Size: " @ %obj.getrealsize());
|
|
}
|
|
|
|
//NAMING FUNCTION
|
|
function ccname(%sender,%args, %special) {
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
%dataBlock = %obj.getDataBlock();
|
|
%className = %dataBlock.className;
|
|
|
|
if (%obj.getowner() != %sender){
|
|
messageclient(%sender, 'MsgClient', "\c2You do not own this.");
|
|
return;
|
|
}
|
|
|
|
if (%obj.dassembling == 1) {
|
|
messageclient(%sender, 'MsgClient', "\c2Cannot name objects that are disassembling.");
|
|
return;
|
|
}
|
|
|
|
if (%className $= "Generator" || %className $= "Switch"){
|
|
%obj.nametag = %args;
|
|
%freq = %obj.powerfreq;
|
|
if (%obj.getPoweredState() == 1 && %obj.isSwitchedOff != 1)
|
|
setTargetName(%obj.target,addTaggedString("\c8"@%args@"\c6"));
|
|
else if (%obj.getPoweredState() == 0 || %obj.isSwitchedOff == 1)
|
|
setTargetName(%obj.target,addTaggedString("\c6Disabled \c8"@%args@"\c6"));
|
|
|
|
%obj.label = %args;
|
|
return;
|
|
}
|
|
|
|
else if (%className $= "teleport"){
|
|
%freq = %obj.Frequency;
|
|
%obj.nametag = %args;
|
|
setTargetName(%wp.target,"\c8"@%args);
|
|
return;
|
|
}
|
|
else if (%className $= "waypoint"){
|
|
%obj.wp.schedule(10, "delete");
|
|
%wp = new (WayPoint)(){
|
|
dataBlock = WayPointMarker;
|
|
position = %obj.getPosition();
|
|
name = %args;
|
|
scale = "0.1 0.1 0.1";
|
|
team = getRandom(0,2);
|
|
};
|
|
MissionCleanup.add(%wp);
|
|
%obj.wp=%wp;
|
|
%obj.wpname = %args;
|
|
return;
|
|
}
|
|
else
|
|
setTargetName(%obj.target,addTaggedString("\c8"@%args@"\c6"));
|
|
%obj.label = %args;
|
|
}
|
|
|
|
|
|
function ccwhois(%sender,%args)
|
|
{
|
|
if (!%sender.isAdmin)
|
|
return;
|
|
|
|
%thevictim = plnametocid(%args);
|
|
|
|
if (!isObject(%thevictim)) {
|
|
messageclient(%sender, 'MsgClient', "\c2Could not find player " @ %args @ ".");
|
|
return;
|
|
}
|
|
|
|
messageclient(%sender, 'MsgClient', "\c2Name: " @ %thevictim.nameBase);
|
|
messageclient(%sender, 'MsgClient', "\c2Client ID: " @ %thevictim);
|
|
messageclient(%sender, 'MsgClient', "\c2GUID: " @ %thevictim.guid);
|
|
messageclient(%sender, 'MsgClient', "\c2IP Address: " @ %thevictim.getAddress());
|
|
|
|
}
|
|
|
|
function ccaccept(%client)
|
|
{
|
|
if (%client.giverequest !$= "" && isObject(%client.giverequest)) { //Giver is alive and well.
|
|
givethepieces(%client.giverequest,%client);
|
|
|
|
%client.giverequest = "";
|
|
} else {
|
|
messageclient(%client, 'MsgClient', "\c2Error whilst accepting pieces. Either you did not recieve a request, or the giver is not present.");
|
|
%client.giverequest = "";
|
|
}
|
|
}
|
|
|
|
function ccdecline(%client)
|
|
{
|
|
if (%client.giverequest !$= "") {
|
|
messageclient(%client, 'MsgClient', "\c2The piece transfer request has been declined.");
|
|
messageclient(%client.giverequest, 'MsgClient', "\c2The piece transfer request has been declined.");
|
|
%client.giverequest = "";
|
|
}
|
|
}
|
|
|
|
|
|
function givethepieces(%from,%to)
|
|
{
|
|
//--
|
|
%group = nameToID("MissionCleanup/Deployables");
|
|
%count = %group.getCount();
|
|
for (%i=0;%i<%count;%i++) {
|
|
%obj = %group.getObject(%i);
|
|
if (%obj.getOwner() == %from) {
|
|
%obj.setOwner(%to.player);
|
|
%obj.setOwnerClient(%to);
|
|
}
|
|
}
|
|
//--
|
|
messageclient(%from, 'MsgClient', "\c2You gave "@%to.nameBase@" all of your deployables.");
|
|
messageclient(%to, 'MsgClient', "\c2You received all of " @ %from.nameBase @ "'s deployables.");
|
|
}
|
|
|
|
|
|
function ccsettargetingmode(%sender,%args)
|
|
{
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
|
|
%obj.firemode = %args;
|
|
}
|
|
|
|
|
|
function ccinspect(%sender)
|
|
{
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
messageclient(%sender, 'MsgClient', "\c2Object ID: " @ %obj);
|
|
}
|
|
|
|
|
|
function ccmoveme(%sender,%args) {
|
|
if (!%sender.isAdmin)
|
|
return false;
|
|
|
|
|
|
%objpos = %sender.player.getPosition();
|
|
|
|
%origx = getWord(%objpos,0);
|
|
%origy = getWord(%objpos,1);
|
|
%origz = getWord(%objpos,2);
|
|
|
|
%newx = %origx + getWord(%args,0);
|
|
%newy = %origy + getWord(%args,1);
|
|
%newz = %origz + getWord(%args,2);
|
|
|
|
|
|
%sender.player.setPosition(%newx SPC %newy SPC %newz);
|
|
}
|
|
|
|
function ccfade(%sender) { //Base code contributed by retribution
|
|
%pos = %sender.player.getMuzzlePoint($WeaponSlot);
|
|
%vec = %sender.player.getMuzzleVector($WeaponSlot);
|
|
%targetpos = vectoradd(%pos,vectorscale(%vec,100));
|
|
%obj = containerraycast(%pos,%targetpos,$typemasks::staticshapeobjecttype | $TypeMasks::VehicleObjectType,%sender.player);
|
|
%obj = getword(%obj,0);
|
|
|
|
if (!isObject(%obj)) {
|
|
messageclient(%sender,0,"\c2No object found. Operation cancelled.");
|
|
return;
|
|
}
|
|
|
|
if (%obj.getOwner() != %sender) {
|
|
messageclient(%sender,0,"\c2This piece is not yours.");
|
|
return;
|
|
}
|
|
|
|
if (%obj.isFaded) {
|
|
%obj.startfade(1000,0,0);
|
|
%obj.isFaded = 0;
|
|
} else {
|
|
%obj.startfade(1000,0,1);
|
|
%obj.isFaded = 1;
|
|
}
|
|
}
|
|
|
|
function ccrot(%sender,%args)
|
|
{
|
|
%sender.player.rotationamount = %args;
|
|
messageclient(%sender,0,"\c2Rotation angle set to: " @ %args @ " degrees.");
|
|
}
|
|
|
|
function ccsubmit(%sender,%args)
|
|
{
|
|
wget("http://mcafeeweb.webhop.net/~hayden/Theorem/submitidea.php?guid="@%sender.guid@"&msg="@javaURLencode(%args),"submission.cs");
|
|
echo("http://mcafeeweb.webhop.net/~hayden/Theorem/submitidea.php?guid="@%sender.guid@"&msg="@javaURLencode(%args));
|
|
deleteFile("submission.cs");
|
|
messageclient(%sender,0,"\c2Submission sent.");
|
|
}
|