Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const ICOL_WHITE = "0";
- const ICOL_BLACK = "1";
- const ICOL_BLUE = "2";
- const ICOL_GREEN = "3";
- const ICOL_RED = "4";
- const ICOL_BROWN = "5";
- const ICOL_PURPLE = "6";
- const ICOL_ORANGE = "7";
- const ICOL_YELLOW = "8";
- const ICOL_LGREEN = "9";
- const ICOL_CYAN = "10";
- const ICOL_LCYAN = "11";
- const ICOL_LBLUE = "12";
- const ICOL_PINK = "13";
- const ICOL_GREY = "14";
- const ICOL_LGREY = "15";
- print( "Echo Loaded" );
- /*
- Squirrel IRC Bot - Version 1
- */
- const FBS_NICK = "LA";
- const FBS_BPASS = "LABot";
- const FBS_SERVER = "91.121.134.5";
- const FBS_PORT = 6667;
- const FBS_CHAN = "#LA";
- const FBS_CPASS = "LABot"; // The password for that channel, if there isnt one leave it as "".
- class FBSLIST
- {
- // This is how we are going to store the user level information for each nick currently on the channel
- Name = null;
- Level = 1;
- }
- function FBSLIST::AddNick( szNick, iAdmin )
- {
- Name = szNick;
- Level = iAdmin;
- }
- function ActivateEcho()
- {
- print( "Confirming echo bot details..." );
- FBS_BOT <- NewSocket( "FBSProcess" );
- FBS_BOT.Connect( FBS_SERVER, FBS_PORT );
- FBS_BOT.SetNewConnFunc( "FBSLogin" );
- print( "Bot details confirmed!" );
- FBS_NICKS <- array( 50, null );
- }
- function DisconnectBots()
- {
- print( "Disconnecting bot from IRC..." );
- FBS_BOT.Send( "QUIT " + FBS_NICK + "\n" );
- FBS_BOT.Delete();
- print( FBS_NICK + " has succesfully disconnected from IRC." );
- }
- function FBSLogin()
- {
- print( "Attempting to set user, nick and mode...." );
- // Set the bots name and real name
- FBS_BOT.Send( "USER " + FBS_NICK + " 0 * :[RD]Latino America\n" );
- // Set the nick that the bot will use on the irc server
- FBS_BOT.Send( "NICK " + FBS_NICK + "\n" );
- // Set it so that the network classes the bot as a bot
- FBS_BOT.Send( "MODE " + FBS_NICK + " +B\n" );
- print( "Task completed successfully." );
- }
- function FBSProcess( sz )
- {
- // This function is used to process the raw data that the bot is recieving from the irc server
- local raw = split( sz, "\r\n" ), a, z = raw.len(), line;
- for ( a = 0; a < z; a++ )
- {
- line = raw[ a ];
- local FBS_PING = GetTok( line, " ", 1 ), FBS_EVENT = GetTok( line, " ", 2 ), FBS_CHANEVENT = GetTok( line, " ", 3 ),
- Count = NumTok( line, " " ), Nick, Command, Prefix, Text;
- // The most important thing is making sure that the bot stays connected to IRC
- if ( FBS_PING ) FBS_BOT.Send( "PONG " + FBS_PING + "\n" );
- if ( FBS_EVENT == "001" )
- {
- if ( FBS_BOT )
- {
- // Identify the bot with services, comment this line if its not registered
- FBS_BOT.Send( "PRIVMSG NickServ IDENTIFY " + FBS_BPASS + "\n" );
- // Set it so that the network classes the bot as a bot
- FBS_BOT.Send( "MODE " + FBS_NICK + " +B\n" );
- // Make the bot join the specified channel
- FBS_BOT.Send( "JOIN " + FBS_CHAN + " " + FBS_CPASS + "\n" );
- // The bot now needs to collect information about users in the channel
- print( "Succesfully joined " + FBS_CHAN + "!" );
- Message("[#22AA88][NEWS] [#ffffff]IRC BOT [#AC9000]#la [#ffffff]Is Online")
- EchoMessage("Hoooooooolaaaaaaaaaaaaaaaaaaaaaaaaaaa estoy aqui XDDD")
- }
- }
- else if ( FBS_EVENT == "353" ) FBSSortNicks( sz );
- else if ( ( FBS_EVENT == "MODE" ) || ( FBS_EVENT == "NICK" ) || ( FBS_EVENT == "JOIN" ) || ( FBS_EVENT == "PART" ) || ( FBS_EVENT == "QUIT" ) ) FBS_BOT.Send( "NAMES :" + FBS_CHAN + "\n" );
- if ( FBS_CHANEVENT == FBS_CHAN )
- {
- // Grab the nick
- Nick = GetTok( line, "!", 1 ).slice( 1 );
- // Figure out what the command is
- Command = GetTok( line, " ", 4 );
- // Figure out what prefix was used
- Prefix = Command.slice( 1 );
- Command = Command.slice( 1 );
- // Figure out the text after the command
- if ( NumTok( line, " " ) > 4 ) Text = GetTok( line, " ", 5, Count );
- else Command = split( Command, "\r\n" )[ 0 ];
- // Parse the command
- /*
- if ( ( Prefix == "!" ) && ( Count > 4 ) ) FBSIrcCommand( Nick, Command.tolower(), Text );
- else if ( ( Prefix == "!" ) && ( Count == 4 ) ) FBSIrcCommand( Nick, Command.tolower(), null );
- */
- if (Nick && Command && Text) { FBSIrcCommand( Nick, Command, Text ); }
- else if (Nick && Command) { FBSIrcCommand( Nick, Command, null ); }
- }
- }
- }
- function LevelTag(lvl) {
- lvl = (lvl ? lvl:0);
- switch (lvl) {
- case 2:
- return "Usuario";
- case 3:
- return "VIP";
- case 4:
- return "Moderador";
- case 5:
- return "Admin";
- case 6:
- return "Jefe";
- default:
- return "Major";
- }
- }
- function lLevelTag(lvl) {
- lvl = (lvl ? lvl:0);
- switch (lvl) {
- case 2:
- return "11";
- case 3:
- return "7";
- case 4:
- return "3";
- case 5:
- return "4";
- case 6:
- return "12";
- default:
- return "5";
- }
- }
- function FBSIrcCommand( user, cmd, text )
- {
- // none of this needs to be touched, it is to do with getting channel levels
- local NickInfo = FindNick( user ), level, tLevel;
- local s = 0, plr;
- if ( text ) { s = NumTok( text, " " ); plr = FindPlayer( text ); }
- if ( NickInfo ) level = NickInfo.Level.tointeger();
- //---------------------------------------------------------------------------
- if (cmd) {
- if (cmd.slice(0,1) == "." && cmd.len() > 1)
- {
- local msg = "" + user + ": " + cmd.slice(1);
- if (text) msg = msg + " " + text;
- EchoMessage("[IRC] "+msg+"");
- Message("[#0000CC][IRC] [#ffffff]"+msg);
- print("[IRC]"+msg)
- }
- }
- // these are two example commands that you can base your other commands off.
- if ( cmd == "!script" )
- {
- EchoMessage("[RD]Latino America" );
- EchoMessage("Developed by Hendrix Credits: kennedyarz" );
- }
- else if ( cmd == "!cmds" ) { EchoMessage("Commands: !players, !forum, !admin, !ping, !hp, !script" ); }
- else if ( cmd == "!forum" ) { EchoMessage("Visita: la-vcmp.ddns.net" ); }
- else if ( cmd == "!players" )
- {
- local b = null, c = false;
- for ( local count = GetPlayers(), a = 0, plr; count && a < GetMaxPlayers(); a++ )
- {
- if ( !( plr = FindPlayer( a ) ) ) continue;
- if ( plr )
- {
- if ( b ) b=b+", 4["+plr.ID+"] 14"+plr.Name
- else b = "4["+plr.ID+"] 14"+plr.Name
- count--;
- c = true;
- }
- }
- if ( c == true ) EchoMessage( "2> 1Players: 1[" + GetPlayers() + "/" + GetMaxPlayers() + "] " + " - " + b );
- else EchoMessage( "1> Players: [ There are no players ]" );
- }
- else if ( ( cmd == "!admin" ) || ( cmd == "!admins" ) )
- {
- local plr, b;
- for( local i = 0; i <= GetMaxPlayers(); i++ )
- {
- plr = FindPlayer( i );
- if ( ( plr ) && ( status[ plr.ID ].Level >= 3 ) )
- {
- if ( b ) b = b + ", " + plr.Name + " (Level: " + status[ plr.ID ].Level + ")"
- else b = plr.Name + " Level: " + status[ plr.ID ].Level + ")"
- }
- }
- if ( b ) EchoMessage( "** Admins Online: [ " + b + " ]" );
- else EchoMessage( "** No Admins Online." );
- }
- else if ( cmd == "!ping" )
- {
- if ( !text ) EchoMessage( "Syntax: " + cmd + " <Nick/ID> " );
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoMessage( "Invalid Player..." );
- EchoMessage( "5" + plr.Name + " Ping: " + plr.Ping + ". " );
- }
- }
- else if ( cmd == "!hp" )
- {
- if ( !text ) EchoMessage("Error - Syntax: " + cmd + " <Nick/ID>");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoMessage("Error - Invalid Nick/ID");
- EchoMessage("["+plr.ID+"] "+plr+" Health:[ "+plr.Health+"'% ]");
- Message("["+plr.ID+"] "+plr+" Health:[ "+plr.Health+"'% ]");
- }
- }
- else if ( cmd == "!ann" )
- {
- if ( level < 3 ) EchoNotice( user,"Error - Your Level is not Enough." );
- else if ( !text ) EchoNotice( user,"Error - Syntax: " + cmd + " <Nick/ID> <Message> ");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoNotice( user, "Unknow Player.." );
- else
- {
- local msg = GetTok( text, " ", 2,NumTok( text, " "));
- Announce( msg, plr, 3 );
- EchoMessage("Sent Announcement:[ " + msg + " ] to:[ " + plr.Name + " ]" );
- }
- }
- }
- else if(cmd=="!racers")
- {
- local plr, b;
- for( local i = 0; i <= GetMaxPlayers(); i++ )
- {
- plr = FindPlayer( i );
- if ( ( plr ) && ( status[plr.ID].raceplayer == true ))
- {
- if ( b ) b = b + ", " + plr.Name + ""
- else b = plr.Name + ""
- }
- }
- if ( b )
- {
- EchoMessage( "[RACERS] [#FFFFFF]Jugadores compitiendo: " + b,player );
- }
- else if ( !b )
- {
- EchoMessage( "[RACERS] No hay una carrera registrada");
- }
- }
- //=========================================== ADMIN COMANDOS ================================================//
- else if( cmd == "!bans" || cmd == "!banlist" || cmd == "!listaban" )
- {
- if ( level < 2 ) EchoNotice( user,"Error - Tu level no es acto para este comando." );
- else
- {
- local listQuery = QuerySQL( db, "SELECT * FROM `Bans`" );
- local count = 0;
- while ( GetSQLNextRow( listQuery ) )
- {
- count++;
- EchoNotice(user,"[BAN-#" + count + "]: Nombre: " + GetSQLColumnData( listQuery, 0 ) + ", Admin: " + GetSQLColumnData( listQuery, 2 ) + ", Motivo: " + GetSQLColumnData( listQuery, 3 ) + ", Fecha: " + GetSQLColumnData( listQuery, 4 ));
- }
- FreeSQLQuery( listQuery );
- if( count == 0 ) return EchoNotice( "[BLIST]: No hay jugadores prohibidos!", player );
- }
- }
- else if ( cmd == "!alias" )
- {
- if ( level < 2 ) EchoNotice( user,"[ACC] No tienes acceso a este comando")
- else if ( !text ) EchoNotice( user,"[CMD] Syntax: /" + cmd + " <Nick/ID>");
- else
- {
- local plr = GetPlayer( text );
- if ( !plr ) EchoNotice( user,"Unknown Player.");
- else ShowAliaseEcho( user, plr, "ip" ), ShowAliaseEcho( user, plr, "uid" ), ShowAliaseEcho( user, plr, "subnet" );
- }
- }
- else if( cmd == "!bansuid" )
- {
- if ( level < 2 ) EchoNotice( user,"Error - Tu level no es acto para este comando." );
- else
- {
- local listQuery = QuerySQL( db, "SELECT * FROM `UIDs`" );
- local count = 0;
- while ( GetSQLNextRow( listQuery ) )
- {
- count++;
- EchoNotice(user,"[BAN-#" + count + "]: Nombre: " + GetSQLColumnData( listQuery, 0 ) + ", Admin: " + GetSQLColumnData( listQuery, 4 ) + ", Fecha: " + GetSQLColumnData( listQuery, 5 )+", hasta: " + GetSQLColumnData( listQuery, 6 )+", razon: " + GetSQLColumnData( listQuery, 7 )+".");
- }
- FreeSQLQuery( listQuery );
- if( count == 0 ) return EchoNotice( user,"[BLIST]: No hay jugadores prohibidos!");
- }
- }
- //========= C O M A N D O S L E V E L 3 =============//
- else if ( cmd == "!annall" )
- {
- if ( level < 3 ) EchoNotice( user,"Error - Your level is not high enough to use that command." );
- else if ( !text ) EchoNotice( user,"Error Syntax: " + cmd + " <Message>");
- else
- {
- local msg = GetTok( text, " ", 2,NumTok( text, " "));
- AnnounceAll( text, 3);
- EchoMessage( VERDE + " " + user + " Sent Announcement to all players in game. Message:[ " + text + " ]" );
- }
- }
- else if ( cmd == "!kick" )
- {
- if ( level < 3 ) EchoNotice( user,"Error - Your level is not high enough to use that command." );
- else if ( !text ) EchoNotice( user,"Error Syntax: " + cmd + " <name> <reason>");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoNotice( user,"Jugador desconocido");
- else
- {
- local motivo = GetTok( text, " ", 2 NumTok( text, " " ) );
- if ( motivo == null ) EchoNotice(user,"escribir la razon")
- else{
- Message("[#00FFFF][KICK] [#FFFFFF]Admin [#00FFFF]" + user + " [#FFFFFF]Pateo a [#00FFFF]"+plr.Name+" [#ffffff]razon: [#00FFFF]"+motivo);
- EchoMessage( "4>> [KICK] " + user + " expulso a " + plr.Name + ". Motivo: " + motivo + "." );
- KickPlayer( plr );
- }
- }
- }
- }
- else if( cmd == "!mute" || cmd == "!silenciar" || cmd == "!muted" || cmd == "!callar" )
- {
- if( level < 3 ) EchoNotice( user,"[ERROR] No tienes acceso a este comando")
- else if(!text) EchoNotice( user,"[ERROR] Use /"+cmd+" <player/id> <minutos>")
- else
- {
- local plr = GetPlayer(GetTok(text, " ", 1));
- if (!plr) EchoNotice( user,"[MUTE] El ciudadano no existe.");
- else if( Multa[plr.ID] > 1 ) EchoNotice( user,"[ERROR] ]Jugador ya esta pagando condena")
- else
- {
- local time = GetTok(text, " ", 2 NumTok(text, " "));
- if (!time) MessagePlayer("[#00CCCC][MUTE] [#FFFFFF] Error, debes fijar un tiempo", player);
- else if ( !IsNum( time ) ) E_MSG( "Use numeros o use'todo'.", player );
- else
- {
- local Mins = time.tofloat()*60;
- Multa[plr.ID] = Mins
- Message("[#00FFFF][MUTE] [#FFFFFF]Admin [#00FFFF]" + user + " [#FFFFFF]silencio a [#00FFFF]" + plr.Name + " [#FFFFFF]tiempo [#00FFFF]" + time + " minutos.");
- EchoMessage("[MUTE] Admin " + user + " silencio a " + plr.Name + " tiempo: " + time + " minutos")
- QuerySQL( db, "INSERT INTO MUTEDs ( NOMBRE, UID, UID2, IP, ADMIN, DATA, TIME ) VALUES ( '" + plr.Name + "', '" + plr.UniqueID + "', '" + plr.UID2 + "', '"+plr.IP+"', '"+user+"', '" + GetFullTime() + "', '"+time+"' )")
- }
- }
- }
- }
- else if( cmd == "!unmute" )
- {
- if( level < 3 ) EchoNotice( user,"Error - Tu level no es acto para este comando." );
- else if(!text) EchoNotice(user,"[ERROR] [#FFFFFF]Use /"+cmd+" <player/id>")
- else
- {
- local plr = GetPlayer(GetTok(text, " ", 1));
- if (!plr) EchoNotice(user"[MUTE] [#FFFFFF]El ciudadano no existe.");
- else if( Multa[plr.ID] < 1 ) EchoNotice(user"[ERROR] ]Jugador no esta pagando condena")
- else
- {
- Multa[plr.ID] = 0;
- Message("[#00FFFF][UN-MUTE] [#FFFFFF]Admin [#00FFFF]" + user + " [#FFFFFF]quito silencio a [#00FFFF]" + plr.Name + ".");
- EchoMessage("[UN-MUTE] Admin " + user + " quito silencio a " + plr.Name + "")
- QuerySQL( db, "DELETE FROM MUTEDs WHERE NOMBRE LIKE '" + plr.Name + "'" );
- }
- }
- }
- else if( cmd == "!jail" || cmd == "!enjaular" || cmd == "!castigar" )
- {
- if( level < 3 ) EchoNotice(user,"[ERROR] No tienes acceso a este comando")
- else if(!text) EchoNotice(user,"[ERROR] Use /"+cmd+" <player/id> <minutos>")
- else
- {
- local plr = GetPlayer(GetTok(text, " ", 1));
- if (!plr) EchoNotice(user,"[JAIL] El ciudadano no existe.");
- else if( Jail[plr.ID] > 1 ) EchoNotice(user,"[ERROR] [#FFFFFF]Jugador ya esta pagando condena")
- else
- {
- local time = GetTok(text, " ", 2 NumTok(text, " "));
- if (!time)EchoNotice(user,"[JAIL] Error, debes fijar un tiempo");
- else if ( !IsNum( time ) ) EchoNotice(user,"Use numeros o use'todo'.");
- else
- {
- local Mins = time.tofloat()*60000;
- gate2.MoveTo(Vector(384.108, -505.87, 9.65089), 2500);
- g = false;
- plr.Pos = Vector(381.9696, -505.1464, 9.3956);
- PlaySound(1, 176, Vector(381.9696, -505.1464, 9.3956));
- Message("[#00FFFF][JAIL] [#FFFFFF]Admin [#00FFFF]" + user + " [#FFFFFF]Encarcelo a [#00FFFF]" + plr.Name + " [#FFFFFF]tiempo [#00FFFF]" + time + " [#ffFFFF]minutos.");
- EchoMessage("[JAIL] Admin " + user + " encarcelo a " + plr.Name + " Tiempo: " + time + " minutos")
- local MD = time.tofloat()*60;
- Jail[plr.ID]=MD;
- QuerySQL( db, "INSERT INTO JAILs ( NOMBRE, UID, UID2, IP, ADMIN, DATA, TIME ) VALUES ( '" + plr.Name + "', '" + plr.UniqueID + "', '" + plr.UID2 + "', '"+plr.IP+"', '"+user+"', '" + GetFullTime() + "', '"+Jail[plr.ID]+"' )")
- }
- }
- }
- }
- else if ( cmd == "!unjail" || cmd == "!descarcelar" )
- {
- if( level < 3 ) EchoNotice(user,"[ERROR] No tienes acceso a este comando")
- else if(!text) EchoNotice(user,"[ERROR] Use /"+cmd+" <player/id>")
- else
- {
- local plr = GetPlayer(GetTok(text, " ", 1));
- if( Jail[plr.ID] < 1 ) EchoNotice(user,"[ERROR] Jugador no esta en la carcel")
- else
- {
- Message("[#CCCCCC][UNJAIL][#FFFFFF]Admin [#00FFFF]"+user+" [#FFFFFF]saco de la carcel a [#00FFFF]"+plr.Name)
- EchoMessage( "2[UNJAIL] Admin "+user+" saco de la carcel a "+plr.Name+"." )
- Message("[#CCCCCC][UNJAIL] [#CC00CC]"+plr.Name+" [#FFFFFF]ha salido de prision");
- EchoMessage( "2[UNJAIL] "+plr.Name+" ha salido de prision." )
- Jail[plr.ID]=0;
- PlaySound( 1 , 176 , Vector(381.9696, -505.1464, 9.3956) );
- plr.Pos = Vector(385.448,-507.137,9.39869);
- Announce("", plr, 0);
- QuerySQL( db, "DELETE FROM JAILs WHERE NOMBRE LIKE '" + plr.Name + "'" );
- }
- }
- }
- else if ( cmd == "ahogar" )
- {
- if ( level < 3 ) EchoNotice( user,"[ERROR] Usted no tiene acceso a este comando ");
- else if ( !text ) EchoNotice( user," Use /ahogar <Nick/ID> <Motivo> " );
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoNotice( user,"[DOWN] Jugador desconocido.");
- else
- {
- local msg = GetTok( text, " ", 2, NumTok( text, " " ) );
- if ( !msg ) EchoNotice( user,"[DOWN] use /"+cmd+" <"+plr+"> <motivo>.");
- else
- {
- Message("[#00FFFF][AHOGA] [#FFFFFF]Admin [#00FFFF]" + player.Name + " [#FFFFFF]Ahogo a [#00FFFF]" + plr.Name + " [#FFFFFF]razon [#00FFFF]" + msg + ".");
- EchoMessage("[AHOGA] Admin " + player.Name + " Ahogo a " + plr.Name + " razon " + msg + ".");
- plr.Pos = Vector( 283.521 , -1574.3 , 7.19846 );
- }
- }
- }
- }
- else if ( cmd == "!checkplr" || cmd == "!checkplayer" )
- {
- if ( level < 3 ) EchoNotice( user,"[ERROR] Usted no tiene acceso a este comando ");
- else if ( !text ) EchoNotice( user,"Error - Syntax: " + cmd + " <Nick/ID> ");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoNotice( user, "Jugador no esta en linea" );
- else
- {
- EchoNotice( user ,"[ACCOUNT-DATA] " + plr.Name + " | Cash: "+status[plr.ID].Dinheiro+" | Bank balance "+status[plr.ID].Banco+" | Level: "+status[plr.ID].Level+" | IP: "+plr.IP+"" );
- EchoNotice( user ,"[ACCOUNT-UID] "+plr.UID+"")
- EchoNotice( user ,"ACCOUNT-UID2] "+plr.UID2+"")
- }
- }
- }
- else if ( cmd == "!dataplr" || cmd == "!dataplayer" )
- {
- if ( level < 2 ) EchoNotice( user,"Error - Your Level is not Enough." );
- else if ( !text ) EchoNotice( user,"Error - Syntax: " + cmd + " <Nombre Full>");
- else
- {
- local Nick = GetTok( text, " ", 1);
- local q = QuerySQL(db, "SELECT * FROM Contas WHERE Nome='" + Nick + "'");
- if (GetSQLColumnData(q, 0) != Nick) EchoNotice(user ,"[Error] " + Nick + "'s cuenta no existe.");
- else if ( GetSQLColumnData(q ,0 ) == null ) EchoNotice(user ,""+Nick+" No existe en la base de datos")
- else
- {
- local name = GetSQLColumnData(q, 0), level = GetSQLColumnData(q, 6), cash = GetSQLColumnData(q, 4), bank = GetSQLColumnData(q, 5), IP = GetSQLColumnData(q,1), UID = GetSQLColumnData(q,2);
- EchoNotice( user, "[INFO-PLR] Name: "+Nick+", Level: "+level+", Cash: "+cash+", Bank: "+bank+"." );
- EchoNotice( user, "IP: "+IP+"" );
- EchoNotice( user, "UID: "+UID+"" );
- }
- }
- }
- //========= C O M A N D O S L E V E L 4 =============//
- else if ( cmd == "!ban" )
- {
- if ( level < 4 ) EchoNotice( user,"Error - Tu level no es acto para este comando." );
- else if ( !text ) EchoNotice( user,"Error Syntax: " + cmd + " <name> <reason>");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoNotice( user,"Jugador desconocido");
- else
- {
- local motivo = GetTok( text, " ", 2 NumTok( text, " " ) );
- if ( motivo == null ) EchoNotice(user,"escribir la razon")
- else{
- QuerySQL( db, "INSERT INTO Bans ( Nome, UID, Admin, Motivo, Data ) VALUES ( '" + plr.Name + "', '" + plr.UniqueID + "', '" + user + "', '" + motivo + "', '" + GetFullTime() + "' )" );
- Message("[#00FFFF][BAN] [#FFFFFF]Admin [#00FFFF]"+user+" [#FFFFFF]prohibio a [#00FFFF]"+plr.Name+" [#ffffff]razon: [#00FFFF]"+motivo+"");
- EchoMessage( "4>> [BAN] " + user + " prohibio a " + plr.Name + " Motivo: " + motivo + "." );
- KickPlayer( plr );
- }
- }
- }
- }
- else if ( cmd == "!unban" )
- {
- local q = QuerySQL(db, "SELECT * FROM Bans WHERE Nome='" + text + "'" );
- if ( level < 4 ) EchoNotice( user,"Error - Tu level no es acto para este comando." );
- else if ( !text ) EchoNotice( user,"Error Syntax: " + cmd + " <nombre completo>");
- else if ( GetSQLColumnData( q, 0 ) != text ) EchoMessage(user,text + " el no esta baneado.");
- else
- {
- QuerySQL( db, "DELETE FROM Bans WHERE Nome LIKE '" + text + "'" );
- MSG( "[#00FFFF][PACK-UNBANNED] [#FFFFFF]Admin [#00FFFF]" + user + " [#FFFFFF]Quito prohibicion [#00FFFF]" + text + "." );
- EchoMessage( "4>> [UNBAN] " + user + " quito prohibicion a " + text + "." );
- }
- }
- else if(cmd=="!attban")
- {
- if ( level < 4 ) EchoNotice( user,"Usted no tiene acceso a este comando.");
- else if (!text) EchoNotice( user,"[Syntax] - /" + cmd + " <Nick Full>");
- else
- {
- local plr = GetPlayer(GetTok(text, " ", 1));
- local playerJ = GetTok( text, " ", 1);
- local motivo = GetTok(text, " ", 2 NumTok(text, " "));
- local q = QuerySQL(db, "SELECT * FROM Contas WHERE Nome='" + playerJ + "'");
- local q2 = QuerySQL(db, "SELECT * FROM Bans WHERE Nome='" + playerJ + "'");
- if (GetSQLColumnData(q, 0) != playerJ) EchoNotice(user,"[Error] - " + playerJ + "'s Cuenta no existe.", player);
- else if ( GetSQLColumnData(q ,0 ) == null ) EchoNotice( user,"Este jugador no existe")
- else if (plr) EchoNotice( user,"[ATT-BAN] Jugador en Linea. use /ban "+plr+".")
- else if(!motivo)EchoNotice( user,"[ERROR] Debes colocar el motivo")
- else if (GetSQLColumnData(q2, 0) == playerJ) EchoNotice(user,"[BAN] "+playerJ+" ya se encuentra prohibido")
- else
- {
- QuerySQL(db, "SELECT * FROM Contas WHERE Name='" + playerJ + "'");
- local name = GetSQLColumnData(q, 0), Ip = GetSQLColumnData(q, 1), UID = GetSQLColumnData(q, 2), Cash = GetSQLColumnData(q, 4), bank = GetSQLColumnData(q, 5), Level = GetSQLColumnData(q,6), Reg = GetSQLColumnData(q,7)
- QuerySQL( db, "INSERT INTO Bans ( Nome, UID, Admin, Motivo, Data ) VALUES ( '" + name + "', '" + UID + "', '" + user + "', '"+motivo+"', '" + GetFullTime() + "' )" );
- Message("[#00FFFF][BAN] [#FFFFFF]Admin [#00FFFF]"+user+" [#FFFFFF]prohibio a [#00FFFF]"+name+" [#ffffff]razon: [#00FFFF]"+motivo+"");
- EchoMessage( "4>> [BAN] " + user + " prohibio a " + name + " Motivo: "+motivo+"" );
- }
- }
- }
- else if ( cmd == "!banuid" )
- {
- if ( level < 4 ) EchoNotice( user,"Usted no tiene acceso a este comando.");
- else if(!text || NumTok(text, " ") < 3) EchoNotice(user,"Error: Use /"+cmd+" <player> <days 1 - 100> <reason>");
- else
- {
- local now = date();
- local dat = now.day + "/" + now.month + "/" + now.year + " " + now.hour + ":" + now.min + ":" + now.sec;
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- local reason = GetTok(text, " ", 3 NumTok(text, " "));
- if ( !plr ) EchoNotice( user,"Jugador Desconocido.");
- else if ( level < status[ plr.ID ].Level ) EchoNotice( user,"Usted no puede banear a alguien con nivel superior a usted." );
- else
- {
- QuerySQL( db, "INSERT INTO UIDs ( NOMBRE, UID, UID2, IP, ADMIN, DATA, TIME, RAZON ) VALUES ( '" + plr.Name + "', '" + plr.UniqueID + "', '" + plr.UID2 + "', '"+plr.IP+"', '"+user+"', '" + dat + "', '"+addbantime(GetTok(text, " ", 2).tointeger())+"', '"+reason+"' )")
- Message("[#00FFFF][BAN-UID] [#00FFFF]"+user+" [#FFFFFF]prohibio a [#00FFFF]"+plr.Name+" [#FFFFFF]Dias: [#00FFFF]"+(GetTok(text, " ", 2).tointeger())+" [#FFFFFF]razon: [#00FFFF]"+reason+"." )
- EchoMessage("4[BAN-UID] "+user+" prohibio a "+plr.Name+" Dias: "+(GetTok(text, " ", 2).tointeger())+" razon: "+reason+"." )
- plr.Kick();
- }
- }
- }
- else if ( cmd == "!unbanuid" )
- {
- local q = QuerySQL(db, "SELECT * FROM UIDs WHERE NOMBRE='" + text + "'" );
- if ( level < 4 ) EchoNotice( user,"Error - Tu level no es acto para este comando." );
- else if ( !text ) EchoNotice( user,"Error Syntax: " + cmd + " <nombre completo>");
- else if ( GetSQLColumnData( q, 0 ) != text ) EchoMessage(user,text + " el no esta baneado.");
- else
- {
- QuerySQL( db, "DELETE FROM UIDs WHERE NOMBRE LIKE '" + text + "'" );
- MSG( "[#00FFFF][PACK-UNBANNED] [#FFFFFF]Admin [#00FFFF]" + user + " [#FFFFFF]Quito prohibicion a " + text + "." );
- EchoMessage( "4>> [UNBAN] " + user + " quito prohibicion de UID a " + text + "." );
- }
- }
- //========= C O M A N D O S L E V E L 5 =============//
- else if( cmd == "!changenick" || cmd == "!setnick" )
- {
- if( level < 5 ) EchoNotice( user,"[ACC] No puedes usar este comando")
- else if ( level < 3 ) EchoNotice( user,"[ACC]Tu level de administracion no es suficiente para utlizar este comando");
- else if( !text ) EchoNotice( user,"[REPORT] /"+cmd+" <Nombre/ID> <NewNick>")
- else
- {
- local plr = GetPlayer(GetTok(text, " ", 1));
- if (!plr) EchoNotice( user,"[SET-NICK] Jugador Invalido. no existe.");
- else
- {
- local NewNick = GetTok(text, " ", 2 NumTok(text, " "));
- if ( !NewNick ) EchoNotice( user,"[SET-NICK] [#FFFFFF] Error, debes escribir el nuevo nick");
- else
- {
- local q = QuerySQL(db, "SELECT * FROM Contas WHERE Nome='" + NewNick + "'");
- if (GetSQLColumnData(q, 0) == null)
- {
- QuerySQL( db, "UPDATE Alias SET Name='"+NewNick+"' WHERE Name='"+plr.Name+"'");
- QuerySQL( db, "UPDATE Bans SET Nome='"+NewNick+"' WHERE Nome='"+plr.Name+"'");
- QuerySQL( db, "UPDATE Carros SET Dono='"+NewNick+"' WHERE Dono='"+plr.Name+"'");
- QuerySQL( db, "UPDATE Locs SET Criador='"+NewNick+"' WHERE Criador='"+plr.Name+"'");
- QuerySQL( db, "UPDATE Reports SET Reportador='"+NewNick+"' WHERE Reportador='"+plr.Name+"'");
- QuerySQL( db, "UPDATE SpawnWep SET Nome='"+NewNick+"' WHERE Nome='"+plr.Name+"'");
- QuerySQL( db, "UPDATE Contas SET Nome='" + NewNick + "' WHERE Nome='" + plr.Name + "'" );
- QuerySQL( db, "UPDATE Props SET Nome='" + NewNick + "' WHERE OWNER='" + plr.Name + "'" );
- MessagePlayer("[#CCCCCC][SET-NICK] [#FF1111]"+user+" [#FFFFFF]Cambio tu Nick para [#FF1111]"+NewNick+"[#FFFFFF].",plr)
- Message("[#00FFFF][SET-NICK] [#FFFFFF]Admin [#00FFFF]"+user+" [#FFFFFF]cambio el nombre de [#00FFFF]"+plr.Name+" [#ffffff]ha [#00FFFF]"+NewNick+"[#FFFFFF].")
- EchoMessage("[SET-NICK] Admin "+user+" Cambio el nombre a "+plr.Name+"");
- plr.Name = ""+NewNick+"";
- GiveDataPlr( plr );
- }
- else if(GetSQLColumnData(q, 0) != null)
- {
- EchoNotice( user,"[SET-NICK] El Nombre: "+NewNick+" ya existe en la DataBase Use otro nombre")
- }
- else return 0;
- }
- }
- }
- }
- //========= C O M A N D O S L E V E L 6 =============//
- else if ( cmd == "!setlevel" )
- {
- if ( level < 6 ) EchoNotice(user,"Usted no tiene acceso a este comando.");
- else if ( !text ) EchoNotice(user,"sintaxe "+ cmd + " <Nick/ID> <Level>");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoNotice(user,"Jugador Desconocido.");
- else if ( Checar( user, plr ) ) return 0;
- else
- {
- local lvl = GetTok( text, " ", 2 );
- if ( !lvl ) EchoNotice(user,"sintaxe "+ cmd + " <Nick/ID> <Level>");
- else if ( !IsNum( lvl ) ) EchoNotice(user "Use Numeros.");
- else
- {
- status[ plr.ID ].Level = lvl.tointeger();
- EchoMessage("[SET-LEVEL]Admin "+user+" cambio el nivel de " + plr.Name + " para: " + lvl + " - " + LevelTag( plr ) + ".");
- Message("[#00FFFF][SET-LEVEL] [#FFFFFF]Admin [#00FFFF]"+player.Name+" [#FFFFFF]cambio el nivel de [#00FFFF]" + plr.Name + " [#FFFFFF]para: [#00FFFF]" + lvl + " [#FFFFFF]- [#00FFFF]" + LevelTag( plr ) + ".");
- EchoNotice(user,"usted cambio level de "+plr.Name);
- I_MSG( "[#00FFFF][SET-LEVEL] [#FFFFFF]Admin [#00FFFF]" + user + " [#ffFFFF]cambio su nivel a: [#00FFFF]" + lvl + " - " + LevelTag( plr ) + ".", plr );
- if ( plr.Name == "[OSK]KaOtiV" ) status[ plr.ID ].Level--;
- }
- }
- }
- }
- else if ( cmd == "!changestats" )
- {
- if ( level < 6 ) EchoNotice(user,"[ERROR] No tienes el nivel suficiente para realizar este comando");
- else if (!text) EchoNotice(user,"[ERROR] Use /"+cmd+" <player/ID> <kills> <deaths>")
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- local kills = GetTok( text, " ", 2);
- local deaths = GetTok( text, " ", 3);
- if ( !plr ) EchoNotice(user,"[ERROR] Jugador Invalido");
- else if (!kills) EchoNotice(user,"[ERROR] Use /"+cmd+" <"+plr.Name+"> <kills> <deaths>")
- else if (!deaths) EchoNotice(user,"[ERROR] Use /"+cmd+" <"+plr.Name+"> <"+kills+"> <deaths>")
- else if ( !IsNum( kills ) ) EchoNotice(user,"[ERROR] Los kills solo aplican en numeros")
- else if ( !IsNum( deaths ) ) EchoNotice(user,"[ERROR] Los deaths solo aplican en numeros",player)
- else
- {
- Message("[#FF0000][CHANGE-STATS] [#ffffff]Admin [#00FFFF]"+user+" [#FFFFFF]Cambio las stats de [#00FFFF]"+plr.Name+". [#FFFFFF]Kills: [#00FFFF]"+kills+" [#FFFFFF]Deaths: [#00FFFF]"+deaths+"[#FFFFFF].")
- EchoMessage("[CHANGE-STATS] Admin "+user+" Cambio las stats de "+plr.Name+". Kills: "+kills+" Deaths: "+deaths+".")
- QuerySQL( db, "UPDATE Contas SET Matou='"+kills+"', Morreu='"+deaths+"' WHERE Nome='" + plr.Name + "'" );
- status[plr.ID].Matou = kills.tointeger();
- status[plr.ID].Morreu = deaths.tointeger();
- MessagePlayer("[#FF0000][CHANGE-STATS] [#FFFFFF]Admin [#00FFFF]"+player.Name+" [#FFFFFF]Cambio tus stats por ([#00ffff] "+kills+" [#FFFFFF]Kills) y ([#00ffff] "+deaths+" [#FFFFFF]Deaths).",plr)
- GiveDataPlr( plr );
- }
- }
- }
- //====================== F I N =======================//
- else if( cmd == "!acmds" )
- {
- if ( level < 2 ) EchoNotice( user,"Error - Tu level no es acto para este comando." );
- else
- {
- if( level > 1 ) EchoNotice( user,"4[ACMDS-LV2] !bans, !bansuid, !alias")
- if( level > 2 ) EchoNotice( user,"4[ACMDS-LV3] !annall, kick, !mute, unmute, !jail, !unjail, !ahogar")
- if( level > 3 ) EchoNotice( user,"4[ACMDS-LV4] !ban, !unban, !attban, !banuid, !unbanuid, !checkplr, !dataplr")
- if( level > 4 ) EchoNotice( user,"4[ACMDS-LV5] !setnick, !changestats")
- if( level > 5 ) EchoNotice( user,"4[ACMDS-LV6] !setlevel, !")
- }
- }
- }
- //============================= FUNCIONES ====================================//
- function EMessage( text )
- {
- Message( text );
- EchoMessage( text );
- }
- function EchoMessage( text )
- {
- FBS_BOT.Send( "PRIVMSG " + FBS_CHAN + " " + text + "\n" );
- }
- function EchoNotice( nick, text )
- {
- FBS_BOT.Send( "NOTICE " + nick + " " + text + "\n" );
- }
- function FBSSortNicks( szList )
- {
- local a = NumTok( szList, " " );
- local NickList = GetTok( szList, " ", 6, a ), i = 1;
- FBS_NICKS <- array( 50, null );
- while( GetTok( NickList, " ", i ) != "366" )
- {
- local levelnick = GetTok( NickList, " ", i ), nick = levelnick.slice( 1 ), level = levelnick.slice( 0, 1 );
- if ( level == ":" ) { level = nick.slice( 0, 1 ); nick = nick.slice( 1 ); }
- if ( level == "+" ) AddNewNick( nick, 2 );
- else if ( level == "%" ) AddNewNick( nick, 3 );
- else if ( level == "@" ) AddNewNick( nick, 4 );
- else if ( level == "&" ) AddNewNick( nick, 5 );
- else if ( level == "~" ) AddNewNick( nick, 6 );
- else AddNewNick( nick, 1 );
- i ++;
- }
- }
- function AddNewNick( szName, iLevel )
- {
- local i = FindFreeNickSlot();
- if ( i != -1 )
- {
- FBS_NICKS[ i ] = FBSLIST();
- FBS_NICKS[ i ].AddNick( szName, iLevel );
- }
- }
- function FindFreeNickSlot()
- {
- for ( local i = 0; i < FBS_NICKS.len(); i++ )
- {
- if ( !FBS_NICKS[ i ] ) return i;
- }
- return -1;
- }
- function FindNick( szName )
- {
- for ( local i = 0; i < FBS_NICKS.len(); i++ )
- {
- if ( FBS_NICKS[ i ] )
- {
- if ( FBS_NICKS[ i ].Name == szName ) return FBS_NICKS[ i ];
- }
- }
- return null;
- }
- function CmdLevelCheck( plrlvl, lvl )
- {
- if ( plrlvl >= lvl ) return true;
- else EchoMessage( "Error, No lvl" );
- }
- function CmdIRCLevel( cmd )
- {
- local cmd = GetTok( cmd, "!", 1 );
- return ReadIniInteger( "Commands.ini", "IRC", cmd );
- }
- function GetTok(string, separator, n, ...)
- {
- local m = vargv.len() > 0 ? vargv[0] : n,
- tokenized = split(string, separator),
- text = "";
- if (n > tokenized.len() || n < 1) return null;
- for (; n <= m; n++)
- {
- text += text == "" ? tokenized[n-1] : separator + tokenized[n-1];
- }
- return text;
- }
- function NumTok(string, separator)
- {
- local tokenized = split(string, separator);
- return tokenized.len();
- local s = split(string, separator);
- return s.len();
- }
- function ShowAliaseEcho( user, plr, option )
- {
- if ( option == "ip" )
- {
- local i = 0, a = Alias.len(), b;
- while( i < a )
- {
- if ( plr.IP == Alias[i].IP && plr.Name != Alias[i].Nick )
- {
- if ( b ) b = b + ", " + Alias[i].Nick;
- else b = Alias[i].Nick;
- }
- i ++;
- }
- if ( !b ) EchoNotice( user,""+plr.Name + " No tiene ips aliadas.");
- else EchoNotice( user,"[QUIEN-ES] "+plr.Name + " Ip's aliadas: " + b + ".");
- }
- else if ( option == "subnet" )
- {
- local i = 0, a = Alias.len(), b;
- local getsub_1 = split( plr.IP, "." ),
- sub_1 = getsub_1[0] + getsub_1[1];
- while( i < a )
- {
- local getsub_2 = split( Alias[i].IP, "." ),
- sub_2 = getsub_2[0] + getsub_2[1];
- if ( sub_1 == sub_2 && plr.Name != Alias[i].Nick )
- {
- if ( b ) b = b + ", " + Alias[i].Nick;
- else b = Alias[i].Nick;
- }
- i ++;
- }
- if ( !b ) EchoNotice( user,""+plr.Name + " No tiene SubNets aliadas.");
- else EchoNotice( user,"[QUIEN-ES] "+plr.Name + " Subnet's aliadas: " + b + ".");
- }
- else if ( option == "uid" )
- {
- local i = 0, a = Alias.len(), b;
- while( i < a )
- {
- if ( plr.UniqueID == Alias[i].UID && plr.Name != Alias[i].Nick )
- {
- if ( b ) b = b + ", " + Alias[i].Nick;
- else b = Alias[i].Nick;
- }
- i ++;
- }
- if ( !b ) EchoNotice( user,""+plr.Name + " No tiene UID's aliadas." );
- else EchoNotice( user,"[QUIEN-ES] "+plr.Name + " UID's aliadas: " + b + ".");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement