Advertisement
Guest User

Untitled

a guest
Jul 19th, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.33 KB | None | 0 0
  1. /*
  2. ----- IRC Script -----
  3. Essencial pra quem deseja conectar um bot a dois canais simultaneamente.
  4. Para usar esse script serão necessários:
  5. - IRC Plugin: https://bitbucket.org/Thijn41/0.4-irc (Para a pasta plugins);
  6. - DLL ssleay32: https://www.dll-files.com/ssleay32.dll.html (Para a pasta principal do server);
  7. - DLL libeay32: https://pt.dll-files.com/libeay32.dll.html (Para a pasta principal do server).
  8. */
  9. g_IRC <- null;
  10.  
  11. // CHANGEME
  12. IRC_SERVER <- "irc.gtanet.com"; // Servidor de IRC a conectar (GTANet)
  13. IRC_ECHO_CHANNEL <- "#BRG"; // Canal #1
  14. IRC_STAFF_CHANNEL <- "#BRG-STAFF"; // Canal #2
  15. IRC_NICKNAME <- "BRG"; // Nick do bot
  16. IRC_PASS <- "8293711815"; // Senha do bot
  17. IRC_ECHO_PASS <- ""; // Senha do canal #1
  18. IRC_STAFF_PASS <- "BRG2018SOOSADMS"; // Senha do canal #2
  19.  
  20. const USER = 1;
  21. const VOICE = 2;
  22. const HALFOP = 3;
  23. const OP = 4;
  24. const SOP = 5;
  25. const OWNER = 6;
  26.  
  27. const IRC_COL_WHITE = "\x000300";
  28. const IRC_COL_BLACK = "\x000301";
  29. const IRC_COL_DARKBLUE = "\x000302";
  30. const IRC_COL_DARKGREEN = "\x000303";
  31. const IRC_COL_RED = "\x000304";
  32. const IRC_COL_BROWN = "\x000305";
  33. const IRC_COL_PURPLE = "\x000306";
  34. const IRC_COL_ORANGE = "\x000307";
  35. const IRC_COL_YELLOW = "\x000308";
  36. const IRC_COL_GREEN = "\x000309";
  37. const IRC_COL_AQUA = "\x000310";
  38. const IRC_COL_CYAN = "\x000311";
  39. const IRC_COL_BLUE = "\x000312";
  40. const IRC_COL_PINK = "\x000313";
  41. const IRC_COL_DARKGREY = "\x000314";
  42. const IRC_COL_LIGHTGREY = "\x000315";
  43. const IRC_COL = "\x0003";
  44. const IRC_COL_BOLD = "\x0002";
  45.  
  46.  
  47. function EchoMessage( out )
  48. {
  49. IRC_PrivMsg( g_IRC, IRC_ECHO_CHANNEL, out );
  50. }
  51.  
  52. function AdminMessage( string_text )
  53. {
  54. IRC_PrivMsg( g_IRC, IRC_STAFF_CHANNEL, string_text );
  55. }
  56.  
  57. function EMessage( text )
  58. {
  59. Message( text );
  60. EchoMessage( text );
  61. }
  62.  
  63. function GetIRCLevel( Level )
  64. {
  65. local Name = "User";
  66. switch( Level )
  67. {
  68. case 1:
  69. Name = "User";
  70. break;
  71. case 2:
  72. Name = "Voice";
  73. break;
  74. case 3:
  75. Name = "Half-Op";
  76. break;
  77. case 4:
  78. Name = "Op";
  79. break;
  80. case 5:
  81. Name = "Manager";
  82. break;
  83. case 6:
  84. Name = "Owner";
  85. break;
  86. }
  87. return Name;
  88. }
  89.  
  90. function IRC_onNumeric( irc, numeric, host, data )
  91. {
  92. if ( numeric == 001 )
  93. {
  94. // Entrar nos canais
  95. IRC_Join( irc, IRC_ECHO_CHANNEL, IRC_ECHO_PASS );
  96. IRC_Join( irc, IRC_STAFF_CHANNEL, IRC_STAFF_PASS );
  97. IRC_PrivMsg( irc, "NICKSERV", "IDENTIFY " + IRC_PASS );
  98. }
  99. }
  100.  
  101. function IRC_onPrivMsg( irc, host, channel, message )
  102. {
  103. local nick = split( host, "!:" )[0];
  104.  
  105. local cmd = split( message, " " )[0];
  106.  
  107. local L = IRC_GetUserModes( irc, channel, nick );
  108. local Level, level;
  109. if ( L.len() > 1 ) Level = L.slice( 0, 1 );
  110. else Level = L;
  111. if ( Level.find( "q" ) != null ) level = 6;
  112. else if ( Level.find( "a" ) != null ) level = 5;
  113. else if ( Level.find( "o" ) != null ) level = 4;
  114. else if ( Level.find( "h" ) != null ) level = 3;
  115. else if ( Level.find( "v" ) != null ) level = 2;
  116. else level = 1;
  117.  
  118. local
  119. player = nick,
  120. msg = message,
  121. idnet = irc, user = player, cmd = split( msg, " " )[0],
  122. text = split( msg," " ).len() > 1 ? msg.slice( msg.find( " " ) + 1 ) : null;
  123. cmd = cmd.tolower();
  124.  
  125. local plr, params, i;
  126. if ( text )
  127. {
  128. plr = FindPlayer( text );
  129. params = split( text, " " );
  130. i = params.len();
  131. }
  132.  
  133.  
  134. // ----- Comandos do canal público.
  135. if ( channel == IRC_ECHO_CHANNEL )
  136. {
  137. if ( cmd == "!players" || cmd == "!p" )
  138. {
  139. EchoMessage( GetPlayers() + " players online." );
  140. }
  141.  
  142. // Falar com .
  143. else if ( cmd.slice( 0, 1 ) == "." )
  144. {
  145. if ( text = msg.slice( msg.find( "." ) + 1 ) ) SendIRCMessage( player, level, text );
  146. }
  147. else if ( cmd == "!ping" )
  148. {
  149. if ( !text ) EchoNotice( user,"3[Sintaxe] - " + cmd + " <Nick/ID> " );
  150. else
  151. {
  152. local plr = GetPlayer( GetTok( text, " ", 1 ) );
  153. if ( !plr ) EchoNotice( user,"12[Erro] - Jogador Desconhecido" );
  154. else EchoMessage( "12Ping de " + plr.Name + ": [ " + plr.Ping + " ].");
  155. }
  156. }
  157.  
  158. }
  159.  
  160. // ----- Comandos para o canal administrativo.
  161. else if ( channel == IRC_STAFF_CHANNEL )
  162. {
  163. if ( cmd == "!banlist" )
  164. {
  165. if ( level < OP ) AdminMessage( "No, you are not allowed to use this command." );
  166. else
  167. {
  168. AdminMessage( "Fool! There are no banned players." );
  169. }
  170. }
  171. }
  172. else if ( cmd == "!lockserver" )
  173. {
  174. if ( level < 4 ) AdminMessage("[Erro] - Voce nao tem acesso a este comando.");
  175. else if ( !text ) AdminMessage("[Sintaxe] - !lockserver <senha>");
  176. else {
  177. SetPassword( text );
  178. MSG("Server Trancado");
  179. }
  180. }
  181.  
  182. else if ( cmd == "!unlockserver" )
  183. {
  184. if ( level < 4 ) AdminMessage("[Erro] - Voce nao tem acesso a este comando.");
  185. else {
  186. SetPassword( "" );
  187. MSG("Server Destrancado");
  188. }
  189. }
  190.  
  191.  
  192.  
  193. else if ( cmd == "!setpass" )
  194. {
  195. if ( level < 4 ) EchoMessage( "Voce nao tem acesso a este comando." );
  196. else if ( !text ) EchoMessage( cmd + " <Nick/ID> <Nova Senha>" );
  197. else
  198. {
  199. local plr = GetPlayer( GetTok( text, " ", 1 ) );
  200. if ( !plr ) EchoMessage( "Jogador Desconhecido." );
  201. else if ( Checar( player, plr ) ) return 0;
  202. else
  203. {
  204. local senha = GetTok( text, " ", 2);
  205. if ( !senha ) EchoMessage( cmd + " <Nick/ID> <Nova Senha>" );
  206. else
  207. {
  208. local pass = e(senha);
  209. QuerySQL( db, "UPDATE Contas SET Senha='" + pass + "' WHERE Nome='" + plr.Name + "'" );
  210. EchoMessage( "Voce mudou a senha de " + plr.Name + " para: " + senha );
  211. }
  212. }
  213. }
  214. }
  215.  
  216. else if ( cmd == "!uid" )
  217. {
  218. if ( level < 4 ) EchoMessage( "Voce nao tem acesso a este comando." );
  219. if ( !text ) EchoMessage( "!uid <nick/id>" );
  220. else
  221. {
  222. local plr = FindPlayer( text );
  223. if ( plr ) EchoMessage( "UID de " + plr.Name + ": " + plr.UniqueID );
  224. else EchoMessage( "Erro: Jogador não encontrado." );
  225. }
  226. }
  227.  
  228.  
  229. else if ( cmd == "!setlevel" )
  230. {
  231. if ( level < 6 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
  232. else if ( !text ) EchoMessage( "9[Sintaxe] - !setlevel <Nick/ID> <Level>");
  233. else
  234. {
  235. local plr = GetPlayer( GetTok( text, " ", 1 ) );
  236. if ( !plr ) EchoMessage("4Jogador Desconhecido." );
  237. else if ( status[ plr.ID ].Registrado == false ) EchoMessage( "4[Erro] - Este jogador nao esta registrado." );
  238. else if ( status[ plr.ID ].Registrado == true && status[ plr.ID ].Logado == false ) EchoMessage( "4[Erro] - Este jogador nao esta logado." );
  239. else
  240. {
  241. local lvl = GetTok( text, " ", 2 );
  242. if ( !lvl ) EchoMessage( "9[Sintaxe] - !setlevel <Nick/ID> <Level>");
  243. else if ( !IsNum( lvl ) ) EchoMessage( "4[Erro] - Use Numeros." );
  244. else
  245. {
  246. status[ plr.ID ].Level = lvl.tointeger();
  247. EchoNotice( user, "12Voce alterou o level de " + plr.Name + " para: " + lvl + " - " + LevelTag( plr ) + "." );
  248. I_MSG( "Admin " + user + " alterou seu level para: " + lvl + " - " + LevelTag( plr ) + ".", plr );
  249. }
  250. }
  251. }
  252. }
  253.  
  254. else if ( cmd == "!kick" )
  255. {
  256. if ( level < 3 ) AdminMessage( "4[Erro] - Voce nao tem acesso a este comando." );
  257. else if ( !text ) AdminMessage( "9[Sintaxe] - !kick <Nick/ID> <Motivo>");
  258. else
  259. {
  260. local plr = GetPlayer( GetTok( text, " ", 1 ) );
  261. if ( !plr ) AdminMessage("4Jogador Desconhecido." );
  262. else
  263. {
  264. local reason = GetTok( text, " ", 2, NumTok( text, " " ) );
  265. if ( reason == null ) reason = "4Nenhum";
  266. Kick( user, plr, reason );
  267. }
  268. }
  269. }
  270.  
  271. else if ( cmd == "!ban" )
  272. {
  273. if ( level < 3 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
  274. else if ( !text ) EchoMessage( "9[Sintaxe] - !ban <Nick/ID> <Motivo>");
  275. else
  276. {
  277. local plr = GetPlayer( GetTok( text, " ", 1 ) );
  278. if ( !plr ) EchoMessage("4Jogador Desconhecido." );
  279. else
  280. {
  281. local reason = GetTok( text, " ", 2, NumTok( text, " " ) );//Ban( plr, player, reason );
  282. if ( reason == null ) reason = "4Nenhum";
  283. Ban( user, plr, reason );
  284. }
  285. }
  286. }
  287.  
  288. else if ( cmd == "!unban" )
  289. {
  290. local q = QuerySQL(db, "SELECT * FROM Bans WHERE Nome='" + text + "'" );
  291. if ( level < 3 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
  292. else if ( !text ) EchoMessage( "9[Sintaxe] - !unban <Nick Completo>");
  293. else if ( GetSQLColumnData( q, 0 ) != text ) EchoMessage( "4[Erro] - " + text + " nao esta banido." );
  294. else
  295. {
  296. QuerySQL( db, "DELETE FROM Bans WHERE Nome LIKE '" + text + "'" );
  297. MSG( "Admin " + user + " desbaniu " + text + "." );
  298. }
  299. }
  300.  
  301.  
  302. else if ( cmd == "!banmac" )
  303. {
  304. if ( level < 4 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
  305. else if ( !text ) EchoMessage( "9[Sintaxe] - !ban <Nick/ID> <Motivo>");
  306. else
  307. {
  308. local plr = GetPlayer( GetTok( text, " ", 1 ) );
  309. if ( !plr ) EchoMessage("4Jogador Desconhecido." );
  310. else
  311. {
  312. local reason = GetTok( text, " ", 2, NumTok( text, " " ) );//Ban( plr, player, reason );
  313. if ( reason == null ) reason = "4Nenhum";
  314. //Ban( user, plr, reason );
  315. MBan( plr, player, reason );
  316. }
  317. }
  318. }
  319.  
  320. else if ( cmd == "!unbanmac" )
  321. {
  322. local q = QuerySQL(db, "SELECT * FROM Bans WHERE Nome='" + text + "'" );
  323. if ( level < 4 ) EchoMessage( "4[Erro] - Voce nao tem acesso a este comando." );
  324. else if ( !text ) EchoMessage( "9[Sintaxe] - !unban <Nick Completo>");
  325. else if ( GetSQLColumnData( q, 0 ) != text ) EchoMessage( "4[Erro] - " + text + " nao esta banido." );
  326. else
  327. {
  328. QuerySQL( db, "DELETE FROM MBans WHERE Name='" + banned + "'" );
  329. MSG( "Admin " + user + " desbaniu " + text + "." );
  330. }
  331. }
  332.  
  333.  
  334. else if( cmd == "!reload" )
  335. {
  336. if ( level < 3 ) AdminMessage( user, "4[Erro] - Voce nao tem acesso a este comando." );
  337. else Reload();
  338. }
  339.  
  340. else if( cmd == "!exe" )
  341. {
  342. if ( level < 6 ) AdminMessage( user, "4[Erro] - Voce nao tem acesso a este comando." );
  343. else if ( !text ) AdminMessage( user, "13[Sintaxe] - !exe <Codico SQ>" );
  344. else
  345. {
  346. try
  347. {
  348. local script = compilestring( text );
  349. if(script)
  350. {
  351. script();
  352. AdminMessage( "4Comando executado com sucesso." );
  353. }
  354. else AdminMessage( user, "4Erro!" );
  355.  
  356. }
  357. catch(e) AdminMessage( user, "Erro:" + e );
  358. }
  359. }
  360.  
  361. else if ( cmd == "!ip")
  362. {
  363. if( level < 2 ) AdminMessage( user, ICOL_RED + "4[Erro] - Voce nao tem acesso a este comando." );
  364. else if ( !text ) AdminMessage( user, ICOL_RED + "[Sintaxe] - !getip <Nick/ID>" );
  365. else
  366. {
  367. local plr = GetPlayer( GetTok( text, " ", 1 ) );
  368. if (!plr) AdminMessage( user, "[Erro] - Jogador Desconhecido." );
  369. else AdminMessage( user, ICOL_BLUE + "IP de " + plr.Name + ": [ " + plr.IP + " ]." );
  370. }
  371. }
  372.  
  373. else if ( ( cmd == "!acmds" ) || ( cmd == "!admincmds" ) )
  374. {
  375. if ( level < 2 ) EchoNotice( user, "4[Erro] - Voce nao tem acesso a este comando." );
  376. else EchoNotice( user, ICOL_ORANGE + "!exe, !ip, !kick, !lockserver, !unlockserver, !ban, !unban, !reload." );
  377. }
  378.  
  379.  
  380. }
  381.  
  382. function SendIRCMessage( nick, level, text )
  383. {
  384. local des_cp = level;
  385. if ( des_cp == OWNER ) des_cp = "Owner";
  386. else if ( des_cp == SOP ) des_cp = "Manager";
  387. else if ( des_cp == OP ) des_cp = "Admin";
  388. else if ( des_cp == HALFOP ) des_cp = "Moderator";
  389. else if ( des_cp == VOICE ) des_cp = "Voice";
  390. else if ( des_cp == USER ) des_cp = "User";
  391.  
  392. ClientMessageToAll( "> (" + des_cp + ") " + nick + ": " + text, 255, 0, 0 );
  393. EchoMessage( "12(" + des_cp + ") " + nick + ": " + text );
  394. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement