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 <- "#script.br"; // Canal #1
- IRC_STAFF_CHANNEL <- "#script.staff"; // Canal #2
- IRC_NICKNAME <- "ScriptBOT"; // Nick do bot
- IRC_PASS <- "botpassword"; // Senha do bot
- IRC_ECHO_PASS <- ""; // Senha do canal #1
- IRC_STAFF_PASS <- ""; // 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 onScriptLoad()
- {
- g_IRC <- IRC_Init();
- IRC_SetIP( g_IRC, IRC_SERVER );
- IRC_SetPort( g_IRC, 6667 );
- IRC_SetNick( g_IRC, IRC_NICKNAME );
- IRC_SetUser( g_IRC, IRC_NICKNAME );
- IRC_SetRealname( g_IRC, IRC_NICKNAME );
- IRC_Connect( g_IRC, false );
- }
- function EchoMessage( out )
- {
- IRC_PrivMsg( g_IRC, IRC_ECHO_CHANNEL, out );
- }
- function EchoNotice( nick, out )
- {
- IRC_Notice( g_IRC, nick, 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" )
- {
- EchoMessage( GetPlayers() + " players online." );
- }
- else if ( cmd == "!ping" )
- {
- if ( !text ) EchoNotice( user,"Syntax: " + cmd + " <player> " );
- else
- {
- local plr = IsNum( text ) ? FindPlayer( text.tointeger() ) : FindPlayer( text );
- if ( !plr ) EchoNotice( user,"Error: Unknown player." );
- else EchoMessage( plr.Name + "'s Ping: " + plr.Ping );
- }
- }
- // Falar com .
- else if ( cmd.slice( 0, 1 ) == "." )
- {
- if ( text = msg.slice( msg.find( "." ) + 1 ) ) SendIRCMessage( player, level, text );
- }
- }
- // ----- 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 < OP ) AdminMessage( "No, you are not allowed to use this command." );
- else if ( !text ) AdminMessage( "Syntax: " + cmd + " [password]" );
- else
- {
- SetPassword( text );
- AdminMessage( "Server locked!" );
- }
- }
- }
- }
- 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