Advertisement
ipsBruno

(Pawn) ED Bot SA:MP

Dec 5th, 2012
740
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.49 KB | None | 0 0
  1. #include a_samp
  2.  
  3. // ===========================================================================
  4.  
  5.  
  6. #if !defined HTTP_ERROR_BAD_HOST
  7.  
  8.         #include a_http
  9.  
  10. #endif
  11.  
  12. #define function::%0(%1) forward %0(%1); public %0(%1)
  13.  
  14. // ===========================================================================
  15.  
  16. public OnFilterScriptInit() {
  17.  
  18.     printf("ED BOT em Pawn Carregado !!");
  19.     return true;
  20. }
  21.  
  22.  
  23. public OnPlayerSpawn(playerid) {
  24.  
  25.     SendClientMessage(playerid, -1, "[Info] Para conversar com um robo use /bot [frase] ..");
  26.  
  27.     return true;
  28. }
  29.  
  30.  
  31. public OnPlayerCommandText(playerid, cmdtext[])
  32. {
  33.  
  34.     if(!strcmp(cmdtext, "/bot", true, 4))
  35.     {
  36.        
  37.         if( !cmdtext[4] ) {
  38.             return SendClientMessage(playerid, -1, "[Erro] Use corretamente: /bot [frase]");
  39.         }
  40.  
  41.         RobotCheck(playerid, cmdtext[5]);
  42.         return true;
  43.     }
  44.  
  45.     return false;
  46. }
  47.  
  48.  
  49. // ===========================================================================
  50.  
  51. function::RobotCheck(playerid, texto[]) {
  52.  
  53.     new link[1024];
  54.  
  55.     format(link, 1024, "www.inbot.com.br/cgi-bin/bot_gateway.cgi?server=bot.insite.com.br:8085&charset=text&pure=1&js=1&admi=&msg=%s", urlencode(texto));
  56.     HTTP(playerid, HTTP_GET, link, "\0", "RobotResponse");
  57.  
  58.     return true;
  59. }
  60.  
  61.  
  62. function::RobotResponse(playerid, c, data[]) {
  63.  
  64.     if ( c ==  200  ) {
  65.  
  66.         removeLine(data);
  67.  
  68.         new mensagem[256];
  69.         format(mensagem, 256, "{FF0000}Robo:{FFFFFF} %s", data);
  70.  
  71.         SendClientMessage(playerid, -1, mensagem);
  72.  
  73.         print(data);
  74.  
  75.     }
  76.  
  77.     return true;
  78. }
  79.  
  80.  
  81. //
  82. //  Url encodes a specific string
  83. //  @param string string
  84. //  @author DracoBlue
  85. //
  86.  
  87. urlencode(string[]) {
  88.     new ret[1024];
  89.     ret[0] = 0;
  90.     new i = 0;
  91.     new p = 0;
  92.     new s = 0;
  93.     while (string[i] != 0) {
  94.         if  (
  95.         (string[i] >= 'A' && string[i] <='Z')
  96.         || (string[i] >= 'a' && string[i] <='z')
  97.         || (string[i] >= '0' && string[i] <='9')
  98.         || (string[i] == '-')
  99.         || (string[i] == '_')
  100.         || (string[i] == '.')
  101.         ) {
  102.             ret[p] = string[i];
  103.         } else {
  104.             //
  105.             ret[p] = '%';
  106.             p++;
  107.             s = (string[i] % 16); //
  108.             ret[p+1] = (s>9) ? (55+s) : (48+s); // 64 - 9 = 55
  109.             s = floatround((string[i] - s)/16);
  110.             ret[p] = (s>9) ? (55+s) : (48+s); // 64 - 9 = 55
  111.             p++;
  112.         }
  113.         p++;
  114.         i++;
  115.     }
  116.     return ret;
  117. }
  118.  
  119.  
  120. function::removeLine(texto[]) {
  121.  
  122.     for(new i, c; texto[i]; i++) {
  123.  
  124.         if(texto[i] == '\n') {
  125.             texto[i] = ' ';
  126.         }
  127.  
  128.         if(texto[i] == '<') {
  129.  
  130.             c = i;
  131.  
  132.             while(texto[++i]) {
  133.  
  134.                 if(texto[i] == '>') {
  135.                     strdel(texto, c, i+1);
  136.                     break;
  137.                 }
  138.             }
  139.         }
  140.     }
  141.     return true;
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement