Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ----- IRC Script -----
- Essencial pra quem deseja conectar um bot a dois canais simultaneamente.
- Para usar esse script serão necessários:
- - IRC Plugin: https://bitbucket.org/Thijn41/0.4-irc (Para a pasta plugins);
- - DLL ssleay32: https://www.dll-files.com/ssleay32.dll.html (Para a pasta principal do server);
- - DLL libeay32: https://pt.dll-files.com/libeay32.dll.html (Para a pasta principal do server).
- */
- g_IRC <- null;
- // CHANGEME
- IRC_SERVER <- "irc.gtanet.com"; // Servidor de IRC a conectar (GTANet)
- IRC_ECHO_CHANNEL <- "#BRG"; // Canal #1
- IRC_STAFF_CHANNEL <- "#BRG-STAFF"; // Canal #2
- IRC_NICKNAME <- "BRG"; // Nick do bot
- IRC_PASS <- "8293711815"; // Senha do bot
- IRC_ECHO_PASS <- ""; // Senha do canal #1
- IRC_STAFF_PASS <- "BRG2018SOOSADMS"; // Senha do canal #2
- const USER = 1;
- const VOICE = 2;
- const HALFOP = 3;
- const OP = 4;
- const SOP = 5;
- const OWNER = 6;
- const IRC_COL_WHITE = "\x000300";
- const IRC_COL_BLACK = "\x000301";
- const IRC_COL_DARKBLUE = "\x000302";
- const IRC_COL_DARKGREEN = "\x000303";
- const IRC_COL_RED = "\x000304";
- const IRC_COL_BROWN = "\x000305";
- const IRC_COL_PURPLE = "\x000306";
- const IRC_COL_ORANGE = "\x000307";
- const IRC_COL_YELLOW = "\x000308";
- const IRC_COL_GREEN = "\x000309";
- const IRC_COL_AQUA = "\x000310";
- const IRC_COL_CYAN = "\x000311";
- const IRC_COL_BLUE = "\x000312";
- const IRC_COL_PINK = "\x000313";
- const IRC_COL_DARKGREY = "\x000314";
- const IRC_COL_LIGHTGREY = "\x000315";
- const IRC_COL = "\x0003";
- const IRC_COL_BOLD = "\x0002";
- function EchoMessage( out )
- {
- IRC_PrivMsg( g_IRC, IRC_ECHO_CHANNEL, out );
- }
- function AdminMessage( string_text )
- {
- IRC_PrivMsg( g_IRC, IRC_STAFF_CHANNEL, string_text );
- }
- function EMessage( text )
- {
- Message( text );
- EchoMessage( text );
- }
- function GetIRCLevel( Level )
- {
- local Name = "User";
- switch( Level )
- {
- case 1:
- Name = "User";
- break;
- case 2:
- Name = "Voice";
- break;
- case 3:
- Name = "Half-Op";
- break;
- case 4:
- Name = "Op";
- break;
- case 5:
- Name = "Manager";
- break;
- case 6:
- Name = "Owner";
- break;
- }
- return Name;
- }
- function IRC_onNumeric( irc, numeric, host, data )
- {
- if ( numeric == 001 )
- {
- // Entrar nos canais
- IRC_Join( irc, IRC_ECHO_CHANNEL, IRC_ECHO_PASS );
- IRC_Join( irc, IRC_STAFF_CHANNEL, IRC_STAFF_PASS );
- IRC_PrivMsg( irc, "NICKSERV", "IDENTIFY " + IRC_PASS );
- }
- }
- function IRC_onPrivMsg( irc, host, channel, message )
- {
- local nick = split( host, "!:" )[0];
- local cmd = split( message, " " )[0];
- local L = IRC_GetUserModes( irc, channel, nick );
- local Level, level;
- if ( L.len() > 1 ) Level = L.slice( 0, 1 );
- else Level = L;
- if ( Level.find( "q" ) != null ) level = 6;
- else if ( Level.find( "a" ) != null ) level = 5;
- else if ( Level.find( "o" ) != null ) level = 4;
- else if ( Level.find( "h" ) != null ) level = 3;
- else if ( Level.find( "v" ) != null ) level = 2;
- else level = 1;
- local
- player = nick,
- msg = message,
- idnet = irc, user = player, cmd = split( msg, " " )[0],
- text = split( msg," " ).len() > 1 ? msg.slice( msg.find( " " ) + 1 ) : null;
- cmd = cmd.tolower();
- local plr, params, i;
- if ( text )
- {
- plr = FindPlayer( text );
- params = split( text, " " );
- i = params.len();
- }
- // ----- Comandos do canal público.
- if ( channel == IRC_ECHO_CHANNEL )
- {
- if ( cmd == "!players" || cmd == "!p" )
- {
- EchoMessage( GetPlayers() + " players online." );
- }
- // Falar com .
- else if ( cmd.slice( 0, 1 ) == "." )
- {
- if ( text = msg.slice( msg.find( "." ) + 1 ) ) SendIRCMessage( player, level, text );
- }
- else if ( cmd == "!ping" )
- {
- if ( !text ) EchoNotice( user,"3[Sintaxe] - " + cmd + " <Nick/ID> " );
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoNotice( user,"12[Erro] - Jogador Desconhecido" );
- else EchoMessage( "12Ping de " + plr.Name + ": [ " + plr.Ping + " ].");
- }
- }
- }
- // ----- Comandos para o canal administrativo.
- else if ( channel == IRC_STAFF_CHANNEL )
- {
- if ( cmd == "!banlist" )
- {
- if ( level < OP ) AdminMessage( "No, you are not allowed to use this command." );
- else
- {
- AdminMessage( "Fool! There are no banned players." );
- }
- }
- }
- else if ( cmd == "!lockserver" )
- {
- if ( level < 4 ) AdminMessage("[Erro] - Voce nao tem acesso a este comando.");
- else if ( !text ) AdminMessage("[Sintaxe] - !lockserver <senha>");
- else {
- SetPassword( text );
- MSG("Server Trancado");
- }
- }
- else if ( cmd == "!unlockserver" )
- {
- if ( level < 4 ) AdminMessage("[Erro] - Voce nao tem acesso a este comando.");
- else {
- SetPassword( "" );
- MSG("Server Destrancado");
- }
- }
- else if ( cmd == "!setpass" )
- {
- if ( level < 4 ) EchoMessage( "Voce nao tem acesso a este comando." );
- else if ( !text ) EchoMessage( cmd + " <Nick/ID> <Nova Senha>" );
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoMessage( "Jogador Desconhecido." );
- else if ( Checar( player, plr ) ) return 0;
- else
- {
- local senha = GetTok( text, " ", 2);
- if ( !senha ) EchoMessage( cmd + " <Nick/ID> <Nova Senha>" );
- else
- {
- local pass = e(senha);
- QuerySQL( db, "UPDATE Contas SET Senha='" + pass + "' WHERE Nome='" + plr.Name + "'" );
- EchoMessage( "Voce mudou a senha de " + plr.Name + " para: " + senha );
- }
- }
- }
- }
- else if ( cmd == "!uid" )
- {
- if ( level < 4 ) EchoMessage( "Voce nao tem acesso a este comando." );
- if ( !text ) EchoMessage( "!uid <nick/id>" );
- else
- {
- local plr = FindPlayer( text );
- if ( plr ) EchoMessage( "UID de " + plr.Name + ": " + plr.UniqueID );
- else EchoMessage( "Erro: Jogador não encontrado." );
- }
- }
- else if ( cmd == "!setlevel" )
- {
- if ( level < 6 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
- else if ( !text ) EchoMessage( "9[Sintaxe] - !setlevel <Nick/ID> <Level>");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoMessage("4Jogador Desconhecido." );
- else if ( status[ plr.ID ].Registrado == false ) EchoMessage( "4[Erro] - Este jogador nao esta registrado." );
- else if ( status[ plr.ID ].Registrado == true && status[ plr.ID ].Logado == false ) EchoMessage( "4[Erro] - Este jogador nao esta logado." );
- else
- {
- local lvl = GetTok( text, " ", 2 );
- if ( !lvl ) EchoMessage( "9[Sintaxe] - !setlevel <Nick/ID> <Level>");
- else if ( !IsNum( lvl ) ) EchoMessage( "4[Erro] - Use Numeros." );
- else
- {
- status[ plr.ID ].Level = lvl.tointeger();
- EchoNotice( user, "12Voce alterou o level de " + plr.Name + " para: " + lvl + " - " + LevelTag( plr ) + "." );
- I_MSG( "Admin " + user + " alterou seu level para: " + lvl + " - " + LevelTag( plr ) + ".", plr );
- }
- }
- }
- }
- else if ( cmd == "!kick" )
- {
- if ( level < 3 ) AdminMessage( "4[Erro] - Voce nao tem acesso a este comando." );
- else if ( !text ) AdminMessage( "9[Sintaxe] - !kick <Nick/ID> <Motivo>");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) AdminMessage("4Jogador Desconhecido." );
- else
- {
- local reason = GetTok( text, " ", 2, NumTok( text, " " ) );
- if ( reason == null ) reason = "4Nenhum";
- Kick( user, plr, reason );
- }
- }
- }
- else if ( cmd == "!ban" )
- {
- if ( level < 3 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
- else if ( !text ) EchoMessage( "9[Sintaxe] - !ban <Nick/ID> <Motivo>");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoMessage("4Jogador Desconhecido." );
- else
- {
- local reason = GetTok( text, " ", 2, NumTok( text, " " ) );//Ban( plr, player, reason );
- if ( reason == null ) reason = "4Nenhum";
- Ban( user, plr, reason );
- }
- }
- }
- else if ( cmd == "!unban" )
- {
- local q = QuerySQL(db, "SELECT * FROM Bans WHERE Nome='" + text + "'" );
- if ( level < 3 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
- else if ( !text ) EchoMessage( "9[Sintaxe] - !unban <Nick Completo>");
- else if ( GetSQLColumnData( q, 0 ) != text ) EchoMessage( "4[Erro] - " + text + " nao esta banido." );
- else
- {
- QuerySQL( db, "DELETE FROM Bans WHERE Nome LIKE '" + text + "'" );
- MSG( "Admin " + user + " desbaniu " + text + "." );
- }
- }
- else if ( cmd == "!banmac" )
- {
- if ( level < 4 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
- else if ( !text ) EchoMessage( "9[Sintaxe] - !ban <Nick/ID> <Motivo>");
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if ( !plr ) EchoMessage("4Jogador Desconhecido." );
- else
- {
- local reason = GetTok( text, " ", 2, NumTok( text, " " ) );//Ban( plr, player, reason );
- if ( reason == null ) reason = "4Nenhum";
- //Ban( user, plr, reason );
- MBan( plr, player, reason );
- }
- }
- }
- else if ( cmd == "!unbanmac" )
- {
- local q = QuerySQL(db, "SELECT * FROM Bans WHERE Nome='" + text + "'" );
- if ( level < 4 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
- else if ( !text ) EchoMessage( "9[Sintaxe] - !unban <Nick Completo>");
- else if ( GetSQLColumnData( q, 0 ) != text ) EchoMessage( "4[Erro] - " + text + " nao esta banido." );
- else
- {
- QuerySQL( db, "DELETE FROM MBans WHERE Name='" + banned + "'" );
- MSG( "Admin " + user + " desbaniu " + text + "." );
- }
- }
- else if( cmd == "!reload" )
- {
- if ( level < 3 ) AdminMessage( user, "4[Erro] - Voce nao tem acesso a este comando." );
- else Reload();
- }
- else if( cmd == "!exe" )
- {
- if ( level < 6 ) AdminMessage( user, "4[Erro] - Voce nao tem acesso a este comando." );
- else if ( !text ) AdminMessage( user, "13[Sintaxe] - !exe <Codico SQ>" );
- else
- {
- try
- {
- local script = compilestring( text );
- if(script)
- {
- script();
- AdminMessage( "4Comando executado com sucesso." );
- }
- else AdminMessage( user, "4Erro!" );
- }
- catch(e) AdminMessage( user, "Erro:" + e );
- }
- }
- else if ( cmd == "!ip")
- {
- if( level < 2 ) AdminMessage( user, ICOL_RED + "4[Erro] - Voce nao tem acesso a este comando." );
- else if ( !text ) AdminMessage( user, ICOL_RED + "[Sintaxe] - !getip <Nick/ID>" );
- else
- {
- local plr = GetPlayer( GetTok( text, " ", 1 ) );
- if (!plr) AdminMessage( user, "[Erro] - Jogador Desconhecido." );
- else AdminMessage( user, ICOL_BLUE + "IP de " + plr.Name + ": [ " + plr.IP + " ]." );
- }
- }
- else if ( ( cmd == "!acmds" ) || ( cmd == "!admincmds" ) )
- {
- if ( level < 2 ) EchoNotice( user, "4[Erro] - Voce nao tem acesso a este comando." );
- else EchoNotice( user, ICOL_ORANGE + "!exe, !ip, !kick, !lockserver, !unlockserver, !ban, !unban, !reload." );
- }
- }
- function SendIRCMessage( nick, level, text )
- {
- local des_cp = level;
- if ( des_cp == OWNER ) des_cp = "Owner";
- else if ( des_cp == SOP ) des_cp = "Manager";
- else if ( des_cp == OP ) des_cp = "Admin";
- else if ( des_cp == HALFOP ) des_cp = "Moderator";
- else if ( des_cp == VOICE ) des_cp = "Voice";
- else if ( des_cp == USER ) des_cp = "User";
- ClientMessageToAll( "> (" + des_cp + ") " + nick + ": " + text, 255, 0, 0 );
- EchoMessage( "12(" + des_cp + ") " + nick + ": " + text );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement