Guest User

J.A.R.V.I.S [SA-MP]

a guest
May 2nd, 2013
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.96 KB | None | 0 0
  1.    
  2.  
  3.     /*
  4.                     J.A.R.V.I.S BOT
  5.      
  6.                             Creditos a Luís Gustavo Mike por explicar o uso do sscanf, e a Daniel Santos por desenvolver.
  7.                            
  8.                                                                                                                                                                                                                              */
  9.     #include <a_samp>
  10.     #include <sscanf2>
  11.      
  12.     new
  13.             Timer[3],
  14.             bool:admin[MAX_PLAYERS] = {true, ...},
  15.             bool:JarvisResponse = false
  16.     ;
  17.      
  18.     new strCallJarvis[3][26] = {
  19.             "Jarvis, está ai?",
  20.             "Jarvis.",
  21.             "Jarvis, faça-me um favor."
  22.     };
  23.      
  24.     new strJarvisCommands[3][24]= {
  25.             "Numero:",
  26.             "Desconecte o id:",
  27.             "Reinicie o servidor."
  28.     };
  29.      
  30.     public OnPlayerText(playerid, text[]) {
  31.             if((admin[playerid] == true) && ((text[0] == 'j') || (text[0] == 'J'))) {
  32.                     new
  33.                             slot
  34.                     ;
  35.                     while(slot < 3) {
  36.                             if(!strcmp(text, strCallJarvis[slot], true)) {
  37.                                     KillTimer(Timer[0]);
  38.                                     Timer[0] = SetTimerEx("OnJarvisResponse", 2000, false, "i", slot);
  39.                                     break;
  40.                             }
  41.                             slot++;
  42.                     }
  43.             }
  44.      
  45.             if((admin[playerid] == true) && (JarvisResponse == true)) {
  46.                     if(!strfind(text, strJarvisCommands[0], true)) { // Vazio, faz a mesma funcao abaixo(pegar um numero)
  47.                             new valor;
  48.                             if(!sscanf(text, "p<:>{s[144]}d", valor)) {
  49.      
  50.                             }
  51.                     }
  52.                     if(!strfind(text, strJarvisCommands[1], true)) { // Desconectar jogador.
  53.                             new valor;
  54.                             if(!sscanf(text, "p<:>{s[144]}d", valor)) {
  55.                                     KillTimer(Timer[0]);
  56.                                     Timer[0] = SetTimerEx("OnJarvisResponse", 2000, false, "i", 4);
  57.                                     KillTimer(Timer[1]);
  58.                             Timer[1] = SetTimerEx("OnJarvisExecuteCommand", 5000, false, "ii", 1, valor);
  59.      
  60.                             }
  61.                     }
  62.      
  63.                     if(!strfind(text, strJarvisCommands[2], true)) {
  64.                             KillTimer(Timer[0]);
  65.                             Timer[0] = SetTimerEx("OnJarvisResponse", 2000, false, "i", 5);
  66.                     }
  67.             }
  68.      
  69.             return 1;
  70.     }
  71.      
  72.     JarvisInactive(); public JarvisInactive() { JarvisResponse = false; return 1; }
  73.      
  74.     OnJarvisResponse(responseid); public OnJarvisResponse(responseid) {
  75.             if(responseid == 0) {
  76.                     SendClientMessageToAll(-1, "{4682B4}Jarvis: {FFFFFF}Para o senhor, sempre.");
  77.             JarvisResponse = true;
  78.                     KillTimer(Timer[2]);
  79.                     Timer[2] = SetTimer("JarvisInactive", 20*1000, false);
  80.             }
  81.             else if(responseid == 1) {
  82.                     SendClientMessageToAll(-1, "{4682B4}Jarvis: {FFFFFF}Diga senhor.");
  83.             JarvisResponse = true;
  84.                     KillTimer(Timer[2]);
  85.                     Timer[2] = SetTimer("JarvisInactive", 20*1000, false);
  86.      
  87.             }
  88.             else if(responseid == 2) {
  89.                     SendClientMessageToAll(-1, "{4682B4}Jarvis: {FFFFFF}Claro, é só dizer.");
  90.             JarvisResponse = true;
  91.                     KillTimer(Timer[2]);
  92.                     Timer[2] = SetTimer("JarvisInactive", 20*1000, false);
  93.             }
  94.             else if(responseid == 3) {
  95.                     SendClientMessageToAll(-1, "{4682B4}Jarvis: {FFFFFF}Irei alterar o minigame senhor.");
  96.                     KillTimer(Timer[1]);
  97.             Timer[1] = SetTimerEx("OnJarvisExecuteCommand", 3000, false, "i", 0);
  98.             }
  99.             else if(responseid == 4) {// kick jogador.
  100.                     SendClientMessageToAll(-1, "{4682B4}Jarvis: {FFFFFF}Um momento.");
  101.      
  102.             }
  103.             else if(responseid == 5) {
  104.                     SendClientMessageToAll(-1, "{4682B4}Jarvis: {FFFFFF}Certo, irei reiniciar o minigame.");
  105.                     KillTimer(Timer[1]);
  106.             Timer[1] = SetTimerEx("OnJarvisExecuteCommand", 3000, false, "i", 2);
  107.             }
  108.      
  109.             return 1;
  110.     }
  111.      
  112.     OnJarvisExecuteCommand(commandid, parameterid); public OnJarvisExecuteCommand(commandid, parameterid) {
  113.             if(commandid == 0) { // comando 1 (sem ação).
  114.      
  115.             }
  116.             else if(commandid == 1) {
  117.                     if(!IsPlayerConnected(parameterid)) return SendClientMessageToAll(-1, "{4682B4}Jarvis: {FFFFFF}Senhor, não há um(a) jogador(a) conectado(a) no momento com este id.");
  118.                     new msg[129];
  119.                     format(msg, sizeof(msg), "{FF7F00}* {4682B4}Jarvis {FF0000}desconectou {FFFFFF}o(a) jogador(a) {BEBEBE}%s.", GetName(parameterid));
  120.                     SendClientMessageToAll(-1, msg);
  121.                     KickDelay(parameterid, "{FF0000}Desconectado por {4682B4}Jarvis.");
  122.                     return 1;
  123.             }
  124.             if(commandid == 2) {
  125.                     SendRconCommand("gmx");
  126.             }
  127.             return 1;
  128.     }
  129.      
  130.     stock KickDelay(playerid, msg[]) {
  131.             SendClientMessage(playerid, -1, msg);
  132.             SetTimerEx("DesconectPlayer", 250, false, "i", playerid);
  133.             return 1;
  134.     }
  135.      
  136.     stock GetName(playerid) {
  137.             new a[25];
  138.             GetPlayerName(playerid, a, sizeof(a));
  139.             return a;
  140.     }
  141.      
  142.     DesconectPlayer(playerid); public DesconectPlayer(playerid) {
  143.             Kick(playerid);
  144.             return 1;
  145.     }
Advertisement
Add Comment
Please, Sign In to add comment