Forums Index >> Modding >> How to add the bot clone command to the Dash codes...



Page : <1> :


Well since Max stated before in a thread how to make clones, I am going to explain how to make "Bot Clones". Basically its a MOVING clone of yours that DOES your dirtywork while getting you POINTS (well unless you are red it'll betray you :P ) Please bear with me while I explain.Btw credits to Warfare for giving out the most important line and credits to whoever first made the clone script.

1. Go to your dash folder and open the codes.cs file. Go down to the near bottom right before:

 

                                        
function codeAction( %sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10 )
{
******OTHER STUFF*************
else
commandToClient(%sender,'BottomPrint', %code@ " IS NOT A VALID CODE",4,4);
}

 

And write this before it:

 

                                        
function botclone(%sender,%target_nm)
{
if(!ClientIsAdmin(%sender,"/bc command failed you are not admin"))
return;
%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);
If(%client == -1)
{
schedule(1000,false,"CommandToClient",%sender,'CenterPrint',%status_msg,4,4);
return;
}
schedule(1000,false,"centerprintall", %client.nameBase SPC $pref::Server::BCMessage ,4);
%client.player.setai(GoldLightAI);
%client.createplayer("lighttank");

}

 

2. Now go to the "function codeaction" part and write this in :

 

                                        
function codeAction( %sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10 )
{
%code = firstWord(%a2);
%a2 = trim(setWord(%a2,0,""));
If (%code $="/" | %code $= "/tm" )
chatMessageTeam(%sender, %sender.team, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10);
else if (%code $="//" | %code $="/pm" )
call("private_chat",%sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10);
else if (%code $= "/codes")
call("print_codes",%sender);
else if (%code $="/ping" )
call("getping",%sender,%a2);
else if (%code $="/obs" )
call("makeMeObserver",%sender);
else if (%code $="/adm" )
call("admin_login",%sender,%a2,"admin");
else if (%code $="/sadm" )
call("admin_login",%sender,%a2,"stealth");
else if (%code $="/stats")
call("print_stats", %sender);
else if (%code $="/nk" | %code $= "/nkick" )
call("caddkick",%sender,%a2);
else if (%code $="/k" | %code $= "/kick" )
call("namekick",%sender,%a2);
else if (%code $="/ki" | %code $= "/kill" )
call("single_kill",%sender,%a2);
else if (%code $="/nki" | %code $= "/nkill" )
call("cadd_single_kill",%sender,%a2);
else if (%code $="/nuke" )
call("nuke",%sender);
else if (%code $="/stat" )
call("stat",%sender,%a2);
else if (%code $= "/s" | %code $= "/silence" )
call("silence",%sender,%a2);
else if (%code $= "/ns" | %code $= "/nsilence" )
call("caddsilence",%sender,%a2);
else if (%code $= "/cp" | %code $= "/centerprint" )
call("my_cp",%sender,%a2);
else if (%code $= "/bp" | %code $= "/bprint" )
call("my_bp",%sender,%a2);
else if (%code $= "/r" | %code $= "/rename" )
call("change_name",%sender,%a2);
else if (%code $= "/nr" | %code $= "/nrename" )
call("cadd_change_name",%sender,%a2);
else if (%code $= "/ban" )
call("bankick",%sender,%a2);
else if (%code $= "/listban" )
call("listbanned",%sender);
else if (%code $= "/unban" )
call("unban",%sender,%a2);
else if (%code $= "/c" | %code $= "/clone" )
call("Clone",%sender,%a2);
else if (%code $= "/h" | %code $= "/heal" )
call("Heal",%sender,%a2);
else if (%code $= "/C-all" | %code $= "/clone-all" )
call("Cloneall",%sender,%a2);
else if (%code $= "/h-all" | %code $= "/heal-all" )
call("healall",%sender,%a2);
else if (%code $= "/mkadm" | %code $= "/MakeAdmin" )
call("nopassadmin",%sender,%a2);
else if (%code $= "/kiadm" | %code $= "/KillAdmin" )
call("Killadmin",%sender,%a2);
else if (%code $= "/green" )
call("teamchanger",%sender,"GreenTeam");
else if (%code $= "/blue" )
call("teamchanger",%sender,"BlueTeam");
else if (%code $= "/red" )
call("teamchanger",%sender,"RedTeam");
else if (%code $= "/mb" )
call("adminteamchanger",%sender,"BlueTeam",%a2);
else if (%code $= "/mo" )
call("makePlayerObserver",%sender,%a2);
else if (%code $= "/mg" )
call("adminteamchanger",%sender,"GreenTeam",%a2);
else if (%code $= "/mr" )
call("adminteamchanger",%sender,"RedTeam",%a2);
else if (%code $= "/ufo" )
call("tankchanger",%sender,"babyboss");
else if (%code $= "/light" )
call("tankchanger",%sender,"LightTank");
else if (%code $= "/med" )
call("tankchanger",%sender,"MediumTank");
else if (%code $= "/heavy" )
call("tankchanger",%sender,"HeavyTank");
else if (%code $= "/boss" )
call("tankchanger",%sender,"BossTank");
else if (%code $= "/mufo" )
call("admintankchanger",%sender,%a2,"babyboss");
else if (%code $= "/mlight" )
call("admintankchanger",%sender,%a2,"LightTank");
else if (%code $= "/mmed" )
call("admintankchanger",%sender,%a2,"MediumTank");
else if (%code $= "/mheavy" )
call("admintankchanger",%sender,%a2,"HeavyTank");
else if (%code $= "/mboss" )
call("admintankchanger",%sender,%a2,"BossTank");
else if (%code $= "/area" )
call("projectilechanger",%sender,"SplashProjectile");
else if (%code $= "/speedy" )
call("projectilechanger",%sender,"SpeedyProjectile");
else if (%code $= "/bounce" )
call("projectilechanger",%sender,"BounceProjectile");
else if (%code $= "/marea" )
call("adminprojectilechanger",%sender,%a2,"SplashProjectile");
else if (%code $= "/mspeedy" )
call("adminprojectilechanger",%sender,%a2,"SpeedyProjectile");
else if (%code $= "/mbounce" )
call("adminprojectilechanger",%sender,%a2,"BounceProjectile");
else if (%code $= "/restart" )
call("restartGame",%sender);
else if (%code $= "/mGAI" | %code $= "/makeGoldAI" )
call("makePlayerGAI",%sender,%a2);

Else if (%code $= "/bc" | %code $= "/botclone" )
call("botclone",%sender,%a2);

Else
commandToClient(%sender,'BottomPrint', %code@ " IS NOT A VALID CODE",4,4);
}

 


EDIT: oh, lowercase the 'E' when you copy.

3. Close that file and save.

4. Delete your codes.cs.dso file.

5. Open up your prefs.cs file and add this line in there:

 

                                        
$pref::Server::bcMessage = " HAS A SERVANT AT HIS DISPOSAL!";

 

(you can change the message)

6. Save that file and then delete your prefs.cs.dso file.

7. Start up think tanks, log in as admin, type /bc NAME to use the code.


Last edited: Tuesday, July 19, 2005 at 3:38:40 PM

Tuesday, July 19, 2005 at 3:36:37 PM
b20

I wonder how it's like with 1000 Hum [Bot]s'.... :o

-CUC-

- b20

Tuesday, July 19, 2005 at 3:54:16 PM

Heres a pic:

 


Tuesday, July 19, 2005 at 4:04:41 PM
b20

Very nice Big Show! Hey you have any idea on how to make a new AI? If you do, then can you please help me out here? :o

http://supra.planetthinktanks2.com/archives/comm-thread.asp?thread=9079&forum=2

Step-by-step would be nice too! XD

-CUC-

- b20

Tuesday, July 19, 2005 at 4:10:10 PM

Took pretty long that this got posted here... Lol :)

I think I saw this first time done by 187 and after that Paco. Not sure. After that(a long time after these two) I did it myself.

But GJ on writing all that here.

You don't have to let go of one rope before grabbing the other. But you'll have to let go of one if you want to swing forward.

Last edited: Tuesday, July 19, 2005 at 4:12:51 PM

Tuesday, July 19, 2005 at 4:12:24 PM

It looks like a lot but I just copied stuff.


Tuesday, July 19, 2005 at 4:34:11 PM
b20

Darn I wish there was like a tutorial to building a new AI!

-CUC-

- b20

Last edited: Tuesday, July 19, 2005 at 4:40:59 PM

Tuesday, July 19, 2005 at 4:40:29 PM

I got a prob
I dont get another codes.cs.dso when I delete it, just a prefs.cs.dso
I wonder y

Tuesday, July 19, 2005 at 5:36:21 PM

Triv is it possible to make that you dont see your clones dying messages?

Wednesday, July 20, 2005 at 1:23:23 AM

Gj big...
now the clones are actually worth having.
MAX
P.S. This is more than just adding the clone code to the dash codes.
This is a new kind of clone code too.

Last edited: Wednesday, July 20, 2005 at 9:28:02 AM

Wednesday, July 20, 2005 at 9:26:49 AM

Putti emt, mutta ei ois varmaan ihan helppoo tehdä, jos tarkoitat sitä mitä luulen.

 

P.S. This is more than just adding the clone code to the dash codes.
This is a new kind of clone code too.

 


This is exactly clone code like it should be. A clone which moves and shoots. Not sure what you mean by new? Huh? This code has been used over year for sure.

You don't have to let go of one rope before grabbing the other. But you'll have to let go of one if you want to swing forward.

Wednesday, July 20, 2005 at 11:42:12 AM

Not publicly Triv. I have never seen one available, though I know they exist..
There was a clone code available a few months back but the clones just sat there. That is what I am referring too.

I asked about adding AI to the clone but never heard anything about it again.

The lack of open source in the early stages of modding TT... Makes those lacking the time to learn C++ and scripting very excited when something is made available.
I remember how excited I was when I was privileged enough to be given the "secret" tank changer gate code.

Forgive me if I don't give credit where credit may be due as far as who did what first. It's hard to know these things if they are secrets or only a small group are in the know.
So if it's not public and most modders have never had it, it is pretty much new to the rest of us.
You know I have been around for a while and involved with the sharing of modding information, but I have never seen a Ai clone code available.

That's what I mean by "new"
It's "new" for us newbs and "newer" than the last clone code available.

MAX

 

Wednesday, July 20, 2005 at 2:46:25 PM

Paco's clone was more complicated, It created a whole new player and spawned it with the AI, when it died it just deleted it...
Gj tough.

From what I know createplayer(); makes us 'respawn' so you're setting the AI before you respawn ppl so the tank the person was using before is being controlled by a bot? Thats not a clean job... And is not real good to use.. I never did this before because I was looking for a way to create a new client, what should be easy to do if we had more TT source...

Gj finding it tough :) Now try cleaner ways! Like Paco did :P


Wednesday, July 20, 2005 at 3:21:53 PM

Well at least its a step better than not having a moving clone.


Wednesday, July 20, 2005 at 3:40:03 PM

Yea I know, but when scripting we should try to clean our scripts up as much as possible, on my Admin Script, any dirty thing is NOT allowed as it might make problems with other parts of the admin script...
I still say "Gj"


Wednesday, July 20, 2005 at 3:53:33 PM

I love keeping things secret :P paco had many good scripts...

Wednesday, July 20, 2005 at 10:40:59 PM

Every time I delete the codes.csd it wont reform another one in its place anyone know the problem

Thursday, July 21, 2005 at 6:33:39 PM

Start a dedicated server. The console will display all the eroors.


Thursday, July 21, 2005 at 8:13:39 PM

Every time I add this else if (%code $= "/bc" | %code $= "/botclone" ) call("botclone",%sender,%a2);

The dedicated server keeps telling me this is the error
else
commandToClient(%sender,'BottomPrint',# #%code@ " IS NOT A VALID CODE",4,4);
}

Friday, July 22, 2005 at 8:03:07 AM

Send me your prefs and codes.cs files then.

Bigshow.thinktanks@gmail.com


Friday, July 22, 2005 at 8:12:36 AM

Dont worry about it big I just anded the %client.player.setai(GoldLightAI); to the other clone function their very useful in solo mode

Last edited: Friday, July 22, 2005 at 5:46:39 PM

Friday, July 22, 2005 at 5:44:42 PM

^ haha good one. Didnt think of that...


Friday, July 22, 2005 at 8:06:13 PM

I have a problem:
whenever I delete the codes.cs.dso I wont let me type in any codes (whenever I type in /adm "******" it just shows up as nothing
PS here is what my codes.cs looks like:

 

//-----------------------------------------------------------------------------
// Server Side Codes System For ThinkTanks
// Note: I mucked around in garagegames License and I'm not a lawyer but I think
// I'm legal to distribute this as I own a Torque Game Engine License. If
// BraveTree or GarageGames has a problem with me doing this contact me ASAP
// and I'll pull the plug on this.
// Author: dash Wed Jul 21 06:28:17 EDT 2004
// Version: 0.05
// License: You may not redistribute modified copies of this software unless
// you have a Torque Game Engine License.
// Last Update: Sun Nov 21 12:54:15 EST 2004
// Portions of this script are copyrighted by Garagegames...
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------

Function chatMessageTeam( %sender, %team, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10 )
{
%a1 = %sender.nameBase@" to "@%sender.team@": ";
if (AdminPassInString(%a2))
return;

If ( ( %msgString $= "" ) || spamAlert( %sender ) )
return;
%count = ClientGroup.getCount();
for ( %i = 0; %i < %count; %i++ )
{
%obj = ClientGroup.getObject( %i );
if ( %obj.team $= %sender.team )
chatMessageClient( %obj, %sender, %sender.voiceTag, %sender.voicePitch, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10 );
}
}

Function chatMessageAll( %sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10 )
{
if ( %sender.silenced == true )
{
%a1 = "SERVER RESPONSE";
%a2 = $pref::Server::ChatDeniedMessage SPC %sender.nameBase;
chatMessageClient(%sender, %sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10);
return;
}

If( getSubStr(%a2,0,3) $= "adm")
return;
else if( getSubStr(%a2,0,4) $= "sadm")
return;

if (getSubStr(%a2,0,1) $= "/")
{
codeAction(%sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10) ;
return;
}
if (AdminPassInString(%a2))
return;

If ( ( %msgString $= "" ) || spamAlert( %sender ) )
return;

%count = ClientGroup.getCount();
for ( %i = 0; %i < %count; %i++ )
{
%obj = ClientGroup.getObject( %i );
if(%sender.team != 0)
chatMessageClient( %obj, %sender, %sender.voiceTag, %sender.voicePitch, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10 );
else
{
// message sender is an observer -- only send message to other observers
if(%obj.team == %sender.team)
chatMessageClient( %obj, %sender, %sender.voiceTag, %sender.voicePitch, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10 );
}
}
}

//--------------------------------------------------------
// Check a string to see if it contains the admin password
//--------------------------------------------------------
function AdminPassInString(%s)
{

%strloc = ( $platform $= "macos" ) ? Macstrstr(%s, $pref::Server::AdminPassword) : strstr(strlwr(%s), strlwr($pref::Server::AdminPassword));

If( %strloc != -1)
return true;
return false;
}

//---------------------------------------
// Returns admin authenticated yes or no
//---------------------------------------
function ClientIsAdmin(%client,%failmsg)
{
if(%client.isAdmin | %client.isStealthAdmin )
return 1;
schedule(1000,false,"CommandToClient",%client,'CenterPrint',%failmsg,4,4);
return 0;
}

//------------------------------
// kill a single player by name
//------------------------------
function single_kill(%sender,%target_nm)
{
if(!ClientIsAdmin(%sender,"/ki command failed you are not admin"))
return;

%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);

If(%client == -1)
{
schedule(1000,false,"CommandToClient",%sender,'CenterPrint',%status_msg,4,4);
return;
}
schedule(1000,false,"centerprintall", %client.nameBase SPC $pref::Server::AdminKillMessage ,4);
%client.player.hurtMe(100);

}

Function cadd_single_kill(%sender,%client)
{
if(!ClientIsAdmin(%sender,"/nki command failed you are not admin"))
return;
if(isObject(%client))
{
schedule(1000,false,"centerprintall", %client.nameBase SPC $pref::Server::AdminKillMessage ,4);
%client.player.hurtMe(100);
return;
}

}

Function private_chat(%sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10)
{
%target_nm = firstWord(%a2);
%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);

if(%client == -1)
{
schedule(1000,false,"CommandToClient",%sender,'CenterPrint',%status_msg,4,4);
return;
}

if (AdminPassInString(%a2))
return;

If(isobject(%client))
{
%a2 = trim(setWord(%a2,0,""));
%tosender = %sender.nameBase@" [private to "@%client.nameBase@"] : "@%a2;
chatMessageClient(%sender, %sender, %msgString, %a1, %tosender, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10);
%torecip = %sender.nameBase@" [private from "@%sender.nameBase@"] : "@%a2;
chatMessageClient(%client, %sender, %msgString, %a1, %torecip, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10);
return;
}
schedule(1000,false,"CommandToClient",%sender,'CenterPrint',"PRIVATE CHAT FAILED, NAME NOT FOUND",4,4);

}

// ----------------------------------------------------
// Display available codes
function print_codes(%sender)
{

%t = 1000;

%msg="private chat: // name message team chat: / message check ping: /ping name ";
%msg2 ="tank changing codes /light /heavy /med /ufo /boss";
%msg3 = "team changing codes /green /blue /red";
%msg4 = "projectile changing codes /area /speedy /bounce";
%msg5 = "kick codes /k name /nk cadd ";
%msg6 = "ban related codes /ban name /unban name /listban (list banned players)";
%msg7 = "player stats /stat name (display CADD,PING,IP) /stats (display stat for all players) ";
%msg8 = "kill commands /ki name /nki cadd /nuke";
%msg9 = "print commands /cp message /bp message";
%msg10 = "silence code /s name /ns cadd";
%msg11 = "rename codes /r name new /nr CADD new ";
%msg12 ="admin tank changing codes /mlight /mheavy /mmed /mufo /mboss";
%msg13 ="admin team changing codes /mg /mb /mr";
%msg14 ="admin projectile changing codes /marea /mspeedy /mbounce ";
schedule(%t,false,"CommandToClient",%sender,'BottomPrint',%msg,4,3);

If($pref::Server::TankChangers == 1)
{
%t = %t + 4000;
schedule(%t,false,"CommandToClient",%sender,'BottomPrint',%msg2,4,3);
}

If($pref::Server::TeamChangers == 1)
{
%t = %t + 4000;
schedule(%t,false,"CommandToClient",%sender,'BottomPrint',%msg3,4,3);
}

If($pref::Server::ProjectileChangers == 1)
{
%t = %t + 4000;
schedule(%t,false,"CommandToClient",%sender,'BottomPrint',%msg4,4,3);
}

If(%sender.isAdmin | %sender.isStealthAdmin)
{
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender, 'BottomPrint', %msg5,4,3);
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender, 'BottomPrint', %msg6,4,3);
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender,'BottomPrint',%msg7 ,4,3);
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender,'BottomPrint',%msg8 ,4,3);
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender,'BottomPrint',%msg9 ,4,3);
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender,'BottomPrint',%msg10 ,4,3);
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender,'BottomPrint',%msg11 ,4,3);
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender,'BottomPrint',%msg12 ,4,3);
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender,'BottomPrint',%msg13 ,4,3);
%t = %t + 4000;
schedule(%t,false,"CommandToClient", %sender,'BottomPrint',%msg14 ,4,3);

}

}
//-----------------------------------------------------
// handle admin logins, boot the player if login fails.
function admin_login(%sender,%a2,%admin_type)
{
%pw = trim(firstWord(%a2));

If(%pw $= "PASSWORD")
{
%msg = "ADMIN LOGIN FAILED. YOU MUST SET YOUR OWN PASSWORD IN game/server/dash/prefs.cs!";
schedule(1000,false,"CommandToClient", %sender,'BottomPrint', %msg,4,3);
return;
}

If(%pw $= $pref::Server::AdminPassword)
{
if(%admin_type $= "admin")
%sender.isAdmin=1;
else if(%admin_type $= "stealth")
%sender.isStealthAdmin=1;
%a1 = "SERVER RESPONSE ";
%a2 = "SERVER RESPONSE: AUTHENTICATION SUCCESSFUL";
chatMessageClient(%sender, %sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10);
}
else
{
%a1 = "SERVER RESPONSE ";
%a2 = "SERVER RESPONSE: AUTHENTICATION FAILED";
chatMessageClient(%sender, %sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10);
%name = %sender.nameBase;
%sender.delete( %name SPC $pref::Server::FailedAdminLogin);
schedule(1000,false,"centerprintall", %sender.nameBase SPC $pref::Server::FaliedAdminLogin ,4);
}
}

Function print_stats(%sender)
{
if(!ClientIsAdmin(%sender,"/stats command failed you are not admin"))
{
schedule(1000,false,"CommandToClient", %sender,'BottomPrint', "stats command failed, you are not admin",4,3);
return;
}
$len = clientgroup.getCount();
for($I=0;$I<$len;$I++)
{
%u = clientgroup.getObject($I);
if( isobject(%u))
{
%cadd = %u.getId();
%nm = %u.nameBase;
%ping = %u.getPing();
%ip = scrub_ip(%u.getAddress());
//%msg = %u.nameBase@": "@%u.getId() @" , " @%u.getPing()@", " @%u.getAddress()@" ";
%msg = %nm@": CADD="@%cadd@", PING="@%ping@",IP="@%ip@" ";
schedule($I*2000,false,"CommandToClient", %sender,'BottomPrint', %msg,4,3);
}
}

}

Function caddkick(%sender,%a2)
{
if(!ClientIsAdmin(%sender,"/nkick command failed you are not admin"))
return;

%target_id = firstWord(%a2);
if(isObject(%target_id))
{
%nm = %target_id.nameBase;
schedule(1000,false,"centerprintall", %nm SPC $pref::Server::KickAnnouncment ,4);
%target_id.delete($pref::Server::KickMessage);
return;
}
schedule(1000,false,"CommandToClient", %sender,'BottomPrint', "/nkick command failed, "@%target_nm@" not found",4,3);
}

Function namekick(%sender,%target_nm)
{
if(!ClientIsAdmin(%sender,"/k command failed you are not admin"))
return;

%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);

If(%client == -1)
{
schedule(1000,false,"CommandToClient", %sender,'CenterPrint', %status_msg,4,3);
return;
}

If(isobject(%client))
{
%nm = %client.nameBase;
schedule(1000,false,"centerprintall", %nm SPC $pref::Server::KickAnnouncment,4);
%client.delete($pref::Server::KickMessage);
return;
}
else
{
schedule(1000,false,"CommandToClient", %sender,'BottomPrint', "KICK FAILED",4,3);
}
}

Function listbanned(%sender)
{
if(!ClientIsAdmin(%sender,"/listban command failed you are not admin"))
return;

%banlist = new FileObject();
%nm = %client.nameBase;
if(%banlist.openForRead("game/server/dash/banlist.cs"))
{
%t = 1000;
while(%banlist.isEOF() != 1)
{
%listing = %banlist.readLine();
schedule(%t,false,"CommandToClient", %sender,'CenterPrint', %listing,4,3);
%t = %t + 3000;
}
}

}

Function unban(%sender,%target_nm)
{
if(!ClientIsAdmin(%sender,"/ban command failed you are not admin"))
return;
%banlist = new FileObject();
%nm = %client.nameBase;
%new_listing = "";

If(%banlist.openForRead("game/server/dash/banlist.cs"))
{
while(%banlist.isEOF() != 1)
{
%listing = %banlist.readLine();
%nm = getSubStr(%listing,0,strstr(%listing,"|"));
%ip = getSubStr(%listing,strstr(%listing,"|")+1,100);
if(%nm $= %target_nm || %ip $= %target_nm)
{
echo("Unbanning"SPC%target_nm);
}
else
{
%new_listing = %new_listing@"#"@%listing;
}
}
%banlist.close();
%banlist = new FileObject();
if(%banlist.openForWrite("game/server/dash/banlist.cs"))
{
while(strlen(%new_listing))
{
%new_listing=nextToken(%new_listing,tk,"#");
echo(%tk);
%banlist.writeLine(""@%tk@"");
}
%banlist.close();

}

}

}

Function bankick(%sender,%target_nm)
{
if(!ClientIsAdmin(%sender,"/ban command failed you are not admin"))
return;

%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);

If(%client == -1)
{
schedule(1000,false,"CommandToClient", %sender,'CenterPrint', %status_msg,4,3);
return;
}

If(isobject(%client) )
{
%netAddress = %client.getAddress();
%ip = scrub_ip(%netAddress);
%banlist = new FileObject();
%nm = %client.nameBase;
if(%banlist.openForAppend("game/server/dash/banlist.cs"))
{
schedule(1000,false,"centerprintall",%nm SPC $pref::Server::BanAnnouncement, 4,3);
%banlist.writeLine(%nm@"|"@%ip);
%banlist.close();
%client.delete($pref::Server::BanMessage);
return;
}
else
{
schedule(1000,false,"commandToClient",'centerprint', "BAN FAILED,TRYING KICK ",4,4);
%client.delete("YOU HAVE BEEN KICKED FOR BAD BEHAVIOR.");
schedule(1000,false,"centerprintall",%nm SPC $pref::Server::KickAnnouncement, 4,3);
return;
}

}
schedule(1000,false,"commandToClient",%sender,'centerprint', "BAN FAILED",4,4);

}
// ------------------------------------
// Kill All Players. Good For A Restart
function nuke(%sender)
{
if(!ClientIsAdmin(%sender,"/nuke command failed you are not admin"))
return;
schedule(2000,false,"centerprintall",$pref::Server::NukeMessage,4,4);
centerprintall($pref::Server::NukeMessage,4 );
$len = clientgroup.getCount();
for(%i=0; %i<$len; %i++)
{
%client = clientgroup.getObject(%i);
if(%client != -1)
%client.player.hurtMe(100);
}

}

// ---------------------------------------
// Print useful information about a player
function stat(%sender,%target_nm)
{
if(!ClientIsAdmin(%sender,"/nuke command failed you are not admin"))
return;
%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);

If(%client == -1)
{
commandToClient(%sender,'CenterPrint', %status_msg,4,4);
return;
}

If(isobject(%client))
{
%cadd = %client.getId();
%ip = scrub_ip(%client.getAddress());
%ping = %client.getPing();
%nm = %client.nameBase;
%msg = %nm@": CADD="@%cadd@", PING="@%ping@",IP="@%ip@" ";
schedule(1000,false,"commandToClient",%sender,'BottomPrint', %msg,4,4);
}
}

// ---------------------------------------
// Check a players ping value
function getping(%sender,%target_nm)
{

%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);
if(%client == -1)
{
schedule(1000,false,"commandToClient",%sender,'CenterPrint', %status_msg,4,4);
return;
}

If(isobject(%client))
{
%msg = %client.nameBase@": "@%client.getPing()@" ";
schedule(1000,false,"commandToClient",%sender,'CenterPrint', %msg,4,4);
}
}

// ---------------------------------------
// Silence a player
function silence(%sender,%target_nm)
{
if(!ClientIsAdmin(%sender,"/s command failed you are not admin"))
return;

%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);
if(%client == -1)
{
schedule(1000,false,"commandToClient",%sender,'CenterPrint', %status_msg,4,4);
return;
}

If(%client == %sender )
{
%msg = "HEY! YOU CANNOT SILENCE YOURSELF";
%player.silenced = false;
schedule(1000,false,"commandToClient",%sender,'CenterPrint', %msg,4,4);
return;
}

If(isobject(%client))
{
if(%client.silenced)
{
%client.silenced = false;
schedule(1000,false,"centerprintall",%client.nameBase SPC $pref::Server::UnSilenceMessage, 4,3);
}
else
{
%client.silenced = true;
schedule(1000,false,"centerprintall",%client.nameBase SPC $pref::Server::SilenceMessage, 4,3);
}
}

}

Function caddsilence(%sender,%client)
{
if(!ClientIsAdmin(%sender,"/ns command failed you are not admin"))
return;

If(%client == %sender)
{
%player.silenced = false;
schedule(1000,false,"commandToClient",%sender,'CenterPrint',"HEY! YOU CANNOT SILENCE YOURSELF" ,4,4);
return;
}

If(isobject(%client))
{
if(%client.silenced)
{
%client.silenced = false;
schedule(1000,false,"centerprintall",%client.nameBase SPC $pref::Server::UnSilenceMessage, 4,3);
}
else
{
%client.silenced = true;
schedule(1000,false,"centerprintall",%client.nameBase SPC $pref::Server::SilenceMessage, 4,3);
}
return;
}
schedule(1000,false,"commandToClient",%client,'CenterPrint',"CADD SILENCE FAILED "@%client@" NOT FOUND",4,4);

}

Function my_cp(%sender,%msg)
{
if(!ClientIsAdmin(%sender,"/cp command failed you are not admin"))
return;
schedule(1000,false,"CenterPrintAll",%msg,4,2);
}

Function my_bp(%sender,%msg)
{
if(!ClientIsAdmin(%sender,"/bp command failed you are not admin"))
return;
schedule(1000,false,"BottomPrintAll",%msg,4,2);
}

Function change_name(%sender,%msg)
{
if(!ClientIsAdmin(%sender,"/r command failed you are not admin"))
return;

%target_nm = firstword(%msg);
%new_nm = restWords(%msg);
%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);
if(%client == -1)
{
commandToClient(%sender,'CenterPrint', %status_msg,4,4);
return;
}
%client.nameBase=%new_nm;
removeTaggedString(%client.name);
%client.name = addTaggedString("cpc8" @ %new_nm @ "co");

Schedule(1000,false,"MessageAll",'MsgClientDrop',"",%target_nm, %client);
schedule(2000,false,"MessageAll",'MsgClientJoin',"",%new_nm, %client,%client.team,%client.cumScore,0,0,0);

}

Function cadd_change_name(%sender,%msg)
{
if(!ClientIsAdmin(%sender,"/nr command failed you are not admin"))
return;

%client = firstWord(%msg);
%new_nm = restwords(%msg);
if(isObject(%client))
{
%client.nameBase=%new_nm;
removeTaggedString(%client.name);
%client.name = addTaggedString("cpc8" @ %new_nm @ "co");
schedule(1000,false,"MessageAll",'MsgClientDrop',"",%target_nm, %client);
schedule(2000,false,"MessageAll",'MsgClientJoin',"",%new_nm, %client,%client.team,%client.cumScore,0,0,0);

Return;
}
schedule(1000,false,"CommandToClient", %sender,'BottomPrint', "/nr command failed, "@%target_id@" not found",4,3);

}

Function adminteamchanger(%sender,%team,%msg)
{
if(!ClientIsAdmin(%sender,"command failed you are not admin"))
return;
%target_nm = firstword(%msg);
%new_nm = restWords(%msg);
%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);

if(%client == -1)
{
commandToClient(%sender,'CenterPrint', %status_msg,4,4);
return;
}

%client.team=%team;
MessageAll('MsgClientDrop',"",%client.nameBase, %client);
MessageAll('MsgClientJoin',"",%client.nameBase,%client,%client.team,%client.cumScore,0,0,0);
%client.player.hurtMe(100);

Return;

}

Function admintankchanger(%sender,%msg,%tank_type)
{
if(!ClientIsAdmin(%sender,"command failed you are not admin"))
return;
%target_nm = firstword(%msg);
%new_nm = restWords(%msg);
%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);
if(%client == -1)
{
commandToClient(%sender,'CenterPrint', %status_msg,4,4);
return;
}
%client.startingtankdb = %tank_type;
%client.player.setDataBlock(%tank_type);

Return;

}

Function teamchanger(%client,%team)
{
if($pref::Server::TeamChangers != 1)
{
schedule(1000,false,"CommandToClient", %sender,'BottomPrint', "Team Changing is disabled",4,4);
return;
}

%client.team=%team;
MessageAll('MsgClientDrop',"",%client.nameBase, %client);
MessageAll('MsgClientJoin',"",%client.nameBase,%client,%client.team,%client.cumScore,0,0,0);
%client.player.hurtMe(100);

Return;

}

Function tankchanger(%client,%tank_type)
{
if($pref::Server::TankChangers != 1)
{
schedule(1000,false,"CommandToClient", %sender,'BottomPrint', "Tank Changing is disabled",4,4);
return;
}
%client.startingtankdb = %tank_type;
%client.player.setDataBlock(%tank_type);

}

Function projectilechanger(%client,%projectile)
{
if($pref::Server::ProjectileChangers != 1)
{
schedule(1000,false,"CommandToClient", %sender,'BottomPrint', "Projectile Changing is disabled",4,4);
return;
}
%client.player.setProjectile(%projectile);
}

Function adminprojectilechanger(%sender,%msg,%projectile)
{
if(!ClientIsAdmin(%sender,"command failed you are not admin"))
return;
%target_nm = firstword(%msg);
%new_nm = restWords(%msg);
%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);

%client.player.setProjectile(%projectile);
}
function botclone(%sender,%target_nm)
{
if(!ClientIsAdmin(%sender,"/bc command failed you are not admin"))
return;
%match = matchClientName(%target_nm);
%client = firstword(%match);
%status_msg = restWords(%match);
if(%client == -1)
{
schedule(1000,false,"CommandToClient",%sender,'CenterPrint',%status_msg,4,4);
return;
}
schedule(1000,false,"centerprintall", %client.nameBase SPC $pref::Server::BCMessage ,4);
%client.player.setai(GoldLightAI);
%client.createplayer("lighttank");

}

Function codeAction( %sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10 ){ %code = firstWord(%a2); %a2 = trim(setWord(%a2,0,""));If (%code $="/" | %code $= "/tm" ) chatMessageTeam(%sender, %sender.team, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10); else if (%code $="//" | %code $="/pm" ) call("private_chat",%sender, %msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10); else if (%code $= "/codes") call("print_codes",%sender); else if (%code $="/ping" ) call("getping",%sender,%a2); else if (%code $="/obs" ) call("makeMeObserver",%sender); else if (%code $="/adm" ) call("admin_login",%sender,%a2,"admin"); else if (%code $="/sadm" ) call("admin_login",%sender,%a2,"stealth"); else if (%code $="/stats") call("print_stats", %sender); else if (%code $="/nk" | %code $= "/nkick" ) call("caddkick",%sender,%a2); else if (%code $="/k" | %code $= "/kick" ) call("namekick",%sender,%a2); else if (%code $="/ki" | %code $= "/kill" ) call("single_kill",%sender,%a2); else if (%code $="/nki" | %code $= "/nkill" ) call("cadd_single_kill",%sender,%a2); else if (%code $="/nuke" ) call("nuke",%sender); else if (%code $="/stat" ) call("stat",%sender,%a2); else if (%code $= "/s" | %code $= "/silence" ) call("silence",%sender,%a2); else if (%code $= "/ns" | %code $= "/nsilence" ) call("caddsilence",%sender,%a2); else if (%code $= "/cp" | %code $= "/centerprint" ) call("my_cp",%sender,%a2); else if (%code $= "/bp" | %code $= "/bprint" ) call("my_bp",%sender,%a2); else if (%code $= "/r" | %code $= "/rename" ) call("change_name",%sender,%a2); else if (%code $= "/nr" | %code $= "/nrename" ) call("cadd_change_name",%sender,%a2); else if (%code $= "/ban" ) call("bankick",%sender,%a2); else if (%code $= "/listban" ) call("listbanned",%sender); else if (%code $= "/unban" ) call("unban",%sender,%a2); else if (%code $= "/c" | %code $= "/clone" ) call("Clone",%sender,%a2); else if (%code $= "/h" | %code $= "/heal" ) call("Heal",%sender,%a2); else if (%code $= "/C-all" | %code $= "/clone-all" ) call("Cloneall",%sender,%a2); else if (%code $= "/h-all" | %code $= "/heal-all" ) call("healall",%sender,%a2); else if (%code $= "/mkadm" | %code $= "/MakeAdmin" ) call("nopassadmin",%sender,%a2); else if (%code $= "/kiadm" | %code $= "/KillAdmin" ) call("Killadmin",%sender,%a2); else if (%code $= "/green" ) call("teamchanger",%sender,"GreenTeam"); else if (%code $= "/blue" ) call("teamchanger",%sender,"BlueTeam"); else if (%code $= "/red" ) call("teamchanger",%sender,"RedTeam"); else if (%code $= "/mb" ) call("adminteamchanger",%sender,"BlueTeam",%a2); else if (%code $= "/mo" ) call("makePlayerObserver",%sender,%a2); else if (%code $= "/mg" ) call("adminteamchanger",%sender,"GreenTeam",%a2); else if (%code $= "/mr" ) call("adminteamchanger",%sender,"RedTeam",%a2); else if (%code $= "/ufo" ) call("tankchanger",%sender,"babyboss"); else if (%code $= "/light" ) call("tankchanger",%sender,"LightTank"); else if (%code $= "/med" ) call("tankchanger",%sender,"MediumTank"); else if (%code $= "/heavy" ) call("tankchanger",%sender,"HeavyTank"); else if (%code $= "/boss" ) call("tankchanger",%sender,"BossTank"); else if (%code $= "/mufo" ) call("admintankchanger",%sender,%a2,"babyboss"); else if (%code $= "/mlight" ) call("admintankchanger",%sender,%a2,"LightTank"); else if (%code $= "/mmed" ) call("admintankchanger",%sender,%a2,"MediumTank"); else if (%code $= "/mheavy" ) call("admintankchanger",%sender,%a2,"HeavyTank"); else if (%code $= "/mboss" ) call("admintankchanger",%sender,%a2,"BossTank"); else if (%code $= "/area" ) call("projectilechanger",%sender,"SplashProjectile"); else if (%code $= "/speedy" ) call("projectilechanger",%sender,"SpeedyProjectile"); else if (%code $= "/bounce" ) call("projectilechanger",%sender,"BounceProjectile"); else if (%code $= "/marea" ) call("adminprojectilechanger",%sender,%a2,"SplashProjectile"); else if (%code $= "/mspeedy" ) call("adminprojectilechanger",%sender,%a2,"SpeedyProjectile"); else if (%code $= "/mbounce" ) call("adminprojectilechanger",%sender,%a2,"BounceProjectile"); else if (%code $= "/restart" ) call("restartGame",%sender); else if (%code $= "/mGAI" | %code $= "/makeGoldAI" ) call("makePlayerGAI",%sender,%a2); else if (%code $= "/bc" | %code $= "/botclone" ) call("botclone",%sender,%a2);else commandToClient(%sender,'BottomPrint', %code@ " IS NOT A VALID CODE",4,4);}

//---------------------------------------------------------------------------
// Courtesy of 56K Lagman 30.July.2004 12.44.40
// Returns clientID / full player name based on a partial name input.
//
// Return format: "ClientID ClientName" or "-1 ErrorText"
function matchClientName(%name)
{
%name = trim(%name);
if (%name $= "") return "-1 No name specified.";

%count = clientgroup.getCount();
%hits = 0;
for ( %i = 0; %i < %count; %i++ )
{
%aName = ClientGroup.getObject(%i).nameBase;
%aName = trim(%aName);
%strloc = ( $platform $= "macos" ) ? Macstrstr(%aName, %name) : strstr(strlwr(%aName), strlwr(%name));
if ( %strloc > -1 )
{
%fullname = %aName;
%client = ClientGroup.getObject(%i);
%hits++;
if (stricmp(%aName, %name) == 0) {
%hits = 1;
break;
}
}
}
if (%hits == 1) {
return %client SPC %fullname;
}
else if (%hits == 0) return "-1 '" @ %name @ "' Name not found.";
else return "-1 '" @ %name @ "' Multiple names found. Be more specific.";
}

//---------------------------------------------------------------------------
// case insensitive version of strstr() for use on the mac as a replacement
// for strstr(strlwr(%str), strlwr(%substr))
// Courtesy of 56K Lagman 30.July.2004 12.44.40
// Returns clientID / full player name based on a partial name input.
//
// Return format: "ClientID ClientName" or "-1 ErrorText"
function macstrstr(%str, %substr)
{
%sublen = strlen(%substr);
for ( %i = 0; %i < strlen(%str) - %sublen + 1; %i++ )
{
if (stricmp(getSubStr(%str, %i, %sublen), %substr) == 0) return %i;
}
return -1;
}

 


PLZ HELP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :o

 

Only lethal on days that end with "Y"

Friday, July 22, 2005 at 9:27:51 PM

Your having the same problem im having ill email you my code dash codes. Ok

Saturday, July 23, 2005 at 8:45:42 AM

Ok ill try it 8o thx...

Only lethal on days that end with "Y"

Last edited: Saturday, July 23, 2005 at 4:09:09 PM

Saturday, July 23, 2005 at 3:02:35 PM

YESSSS!! IT WORKED...THX GODZILLA!!!!

Last edited: Wouldent u like to know!!

Only lethal on days that end with "Y"

Saturday, July 23, 2005 at 4:15:53 PM

Page : <1> :

insert quote insert url insert email insert image bold italic underline superscript subscript horizontal rule : : Help on using forum codes

Add comment:

HTML is disabled within comments, but ZBB Code is enabled.

Back to the top

Web site designed, maintained and funded by -z- and Dan MacDonald