SHARE
TWEET

[FS] FilterScript HS ~ Helper System

Chip7 Jun 10th, 2012 411 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*VISITE NOSSO SITE: http://www.sampknd.com/
  2.   SAMP KND MELHOR BLOG DE SAMP DO BRASIL
  3. */
  4.                                                                                                */
  5. // Inicio !
  6.  
  7. // Include
  8. #include <a_samp>
  9.  
  10. // News
  11.  
  12. new str[200]; // - New da string
  13. new nick[MAX_PLAYER_NAME]; // - New do nick (GetPlayerName)
  14. new tmp[256]; // - Função tmp ~ cmd
  15. new Helper[MAX_PLAYERS]; // - Definimos o Helper (Quem é e quem não é)
  16.  
  17. // Defines
  18.  
  19. #define DialogLoginHelper 1576 // - Define da Dialog
  20.  
  21. public OnFilterScriptInit()
  22. {
  23.         print("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  24.         print(" ");
  25.         print(" • [ HS ] Helper System - V. 1.0 •    ");
  26.         print("                -                     ");
  27.     print("             Created by Kon (Kon_BR)  ");
  28.     print("             ®    All Rights reserveds .  ");
  29.         print(" ");
  30.         print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
  31.         return 1;
  32. }
  33.  
  34. public OnFilterScriptExit()
  35. {
  36.         return 1;
  37. }
  38.  
  39. public OnPlayerConnect(playerid)
  40. {
  41.         // - Ao player conectar, por precaução não bugar de Helper .
  42.         Helper[playerid] = 0;
  43.    
  44.         return 1;
  45. }
  46.  
  47. public OnPlayerDisconnect(playerid, reason)
  48. {
  49.  
  50.     Helper[playerid] = 0;
  51.  
  52.         return 1;
  53. }
  54.  
  55. public OnPlayerText(playerid, text[])
  56. {
  57.         // • Falar como Helper
  58.         if( (text[0] == '*') && strlen(text) > 1)
  59.         {
  60.         new szPlayerName[MAX_PLAYER_NAME];
  61.         GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  62.  
  63.         if(Helper[playerid] == 1)
  64.                 {
  65.                     format(str, 128, "* Helper %s: %s", szPlayerName, text[1]);
  66.  
  67.                         for(new iPlayerID; iPlayerID < MAX_PLAYERS; iPlayerID++)
  68.                         {
  69.                                 if(!IsPlayerConnected(iPlayerID)) continue;
  70.                             SendClientMessage(iPlayerID, 0xFFFF00FF, str);
  71.                         }
  72.                 }
  73.  
  74.         return 0;
  75.         }
  76.        
  77.         // • Chat dos Helpers
  78.         if((text[0] == '!') && (strlen(text) > 0))
  79.     {
  80.         if(Helper[playerid] == 1)
  81.         GetPlayerName(playerid, nick, MAX_PLAYER_NAME);
  82.         strdel(text, 0, 1);
  83.         format(text,128,"{FFFF00}| CHAT HELPER |{FFFFFF} » %s : %s", nick, text);
  84.         for(new x = 0, y = GetMaxPlayers(); x != y; x++)
  85.         {
  86.             if(Helper[playerid] == 1)
  87.             {
  88.             SendClientMessage(x, -1, text);
  89.             }
  90.            
  91.                 if(IsPlayerAdmin(playerid))
  92.                 {
  93.                 SendClientMessage(x, -1, text);
  94.                 }
  95.  
  96.         }
  97.         return 0;
  98.     }
  99.  
  100.         return 1;
  101. }
  102.  
  103. public OnPlayerCommandText(playerid, cmdtext[])
  104. {
  105.  
  106.         // Funções dos cmds
  107.         new cmd[256];
  108.         new idx;
  109.         cmd = strtok(cmdtext, idx);
  110.  
  111.         // ===== Comandos normais =====
  112.  
  113.         // • Ver Helpers online !
  114.         if(strcmp(cmd, "/helpers", true) == 0)
  115.         {
  116.         new Jogador[24];
  117.         new count = 0;
  118.         new msg[120];
  119.         SendClientMessage(playerid, 0xFFFF00FF, "~ Helpers Online ~");
  120.         for(new i=0; i<MAX_PLAYERS; i++){
  121.         if(Helper[i] == 1)
  122.         {
  123.         if(IsPlayerConnected(i)){
  124.         GetPlayerName(i,Jogador,24);
  125.         format(msg,sizeof(msg),"{FFFFFF}» {FFFF00}%s", Jogador);
  126.         SendClientMessage(playerid, -1, msg);
  127.         count++;
  128.         }
  129.         }
  130.         }
  131.         if(count == 0){
  132.         SendClientMessage(playerid, -1, "{C0C0C0}• Nenhum Helper online no momento !");
  133.         }
  134.         return 1;
  135.         }
  136.  
  137.         // • Pedir ajuda aos helpers (mensagem enviada aos Helpers)
  138.         if(strcmp(cmd, "/pedirajuda", true) == 0 || strcmp(cmd,"/pa", true) == 0)
  139.     {
  140.         new length = strlen(cmdtext);
  141.                 while ((idx < length) && (cmdtext[idx] <= ' '))
  142.                 {
  143.                 idx++;
  144.                 new offset = idx;
  145.                 new result[64];
  146.                 while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  147.                 {
  148.                 result[idx - offset] = cmdtext[idx];
  149.                 idx++;
  150.                 }
  151.                 if(!strlen(result)) { return SendClientMessage(playerid, -1, "{FF0000}| ERRO | Use : /PedirAjuda - /PA (Texto) *Obs : não envie pedidos de ajudas que não tenham nada em relação, os mesmos serão ignorados !"); }
  152.                 result[idx - offset] = EOS;
  153.         new nome[MAX_PLAYER_NAME];
  154.                 GetPlayerName(playerid, nome, sizeof(nome));
  155.                 // Função antiga , porem dá conflitos ... - for(new i;i<MAX_PLAYERS;i++)
  156.                 for(new i = 0, e = GetMaxPlayers(); i < e; i++) // para todos
  157.                 {
  158.                 if(Helper[i] == 1)
  159.                 {
  160.                 SendClientMessage(i,-1," ");
  161.                 SendClientMessage(i,-1,"{808000}        • PEDIDO DE AJUDA •{FFFFFF}");
  162.                 format(str, sizeof(str), "{FFFF00} » {FFFFFF}Pedido de : {008080}%s .", nome);
  163.                 SendClientMessage(i,-1,str);
  164.                 format(str, sizeof(str), "{FFFF00} » {FFFFFF}Ocorrência : ' {FFFF00}%s{FFFFFF} ' .",(result));
  165.                 SendClientMessage(i,-1,str);
  166.                 SendClientMessage(i,-1,"        • ----------------------------- •  ");
  167.                 SendClientMessage(i,-1," ");
  168.                 }
  169.         }
  170.         SendClientMessage(playerid, -1, "{FFFF00}| INFO | Seu pedido de ajuda foi enviado aos Helpers ! ");
  171.         SendClientMessage(playerid, -1, "* Caso seu pedido seja 'inutil' ou não tenha nada em relação, será ignorado. E caso continue mandando o mesmo terá providências .");
  172.         }
  173.             return 1;
  174.         }
  175.  
  176.         // • Login de helper
  177.         if(strcmp(cmd, "/logarhelper", true) == 0)
  178.     {
  179.     ShowPlayerDialog(playerid,DialogLoginHelper,DIALOG_STYLE_PASSWORD,"{FFFFFF}| {FFFF00}Login de Helper {FFFFFF}|","• Digite a senha !","Ok","Cancelar");
  180.         return 1;
  181.         }
  182.        
  183.         // ===== FIM - Comandos normais =====
  184.    
  185.         // ===== Comandos apenas logado de Helper ! =====
  186.        
  187.         // - Função de apenas Helpers poderem executar o comando !
  188.         if(Helper[playerid] == 1)
  189.     {
  190.    
  191.     // • Deslogar de helper
  192.         if(strcmp(cmd, "/deslogarhelper", true) == 0)
  193.     {
  194.     SendClientMessage(playerid, -1, "{FFFF00}| INFO | Você deslogou seu Helper ! Para logar denovo digite /LogarHelper ! ");
  195.         Helper[playerid] = 0;
  196.         new kName[MAX_PLAYER_NAME];
  197.         GetPlayerName(playerid,kName,MAX_PLAYER_NAME);
  198.         for(new i;i<MAX_PLAYERS;i++)
  199.         {
  200.         if(IsPlayerAdmin(i))
  201.         {
  202.         format(str, sizeof(str), "{FFFF00}| INFO | O player %s deslogou como Helper !",kName);
  203.         SendClientMessage(i,-1,str);
  204.         }
  205.         }
  206.         return 1;
  207.         }
  208.    
  209.     // • Ir até os jogadores !
  210.         if(strcmp( cmd, "/hpir", true ) == 0)
  211.         {
  212.             tmp = strtok(cmdtext,idx);
  213.             if(!strlen(tmp)) { return SendClientMessage(playerid, -1, "{FF0000}| ERRO | USE : /HPIr (ID do jogador)"); }
  214.                 new Float:X, Float:Y, Float:Z;
  215.                 new id = strval(tmp);
  216.                 if(!IsPlayerConnected(id)) {
  217.                 SendClientMessage(playerid,-1,"{FF0000}| ERRO | Player não conectado !");
  218.                 }
  219.                 if(IsPlayerConnected(id)) {
  220.             if(GetPlayerVehicleID(playerid))
  221.             {
  222.                     GetPlayerPos( strval(tmp), X, Y, Z );
  223.                     SetVehiclePos( GetPlayerVehicleID(playerid), X+2, Y+2, Z );
  224.             } else {
  225.                     GetPlayerPos( strval(tmp), X, Y, Z );
  226.                     SetPlayerPos( playerid, X+2, Y+2, Z );
  227.  
  228.                 new pName[MAX_PLAYER_NAME];
  229.                         GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  230.                         format(str,sizeof str,"{FFFF00}| HELPER | O Helper %s foi até a sua posição !",pName);
  231.                         SendClientMessage(strval(tmp),-1,str);
  232.  
  233.                         new tName[MAX_PLAYER_NAME];
  234.                         GetPlayerName(strval(tmp),tName,MAX_PLAYER_NAME);
  235.                         format(str,sizeof str,"{FFFF80}| INFO HELPER | Você foi até a posição de %s !",tName);
  236.                         SendClientMessage(playerid,-1,str);
  237.  
  238.             }
  239.             }
  240.             return 1;
  241.         }
  242.        
  243.         // • Trazer o jogador
  244.         if(strcmp(cmd, "/hptrazer", true) == 0)
  245.         {
  246.             tmp = strtok(cmdtext, idx);
  247.  
  248.             if(!strlen(tmp)) { return SendClientMessage(playerid, -1, "{FF0000}| ERRO | USE : /HPIr (ID do jogador)"); }
  249.  
  250.             new Float:X, Float:Y, Float:Z;
  251.  
  252.                 new id = strval(tmp);
  253.                 if(!IsPlayerConnected(id)) {
  254.                 SendClientMessage(playerid,-1,"{FF0000}| ERRO | Player invalido/não conectado !");
  255.                 }
  256.         if(IsPlayerConnected(id)) {
  257.             if(GetPlayerVehicleID(strval(tmp)))
  258.             {
  259.                     GetPlayerPos(playerid, X, Y, Z);
  260.                     SetVehiclePos(GetPlayerVehicleID(strval(tmp)), X+2, Y+2, Z);
  261.             } else {
  262.                     GetPlayerPos(playerid, X, Y, Z);
  263.                     SetPlayerPos(strval(tmp), X+2, Y+2, Z);
  264.  
  265.                 new pName[MAX_PLAYER_NAME];
  266.                         GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  267.                         format(str,sizeof str,"{FFFF00}| HELPER | O Helper %s trouxe você à esta posição !",pName);
  268.                         SendClientMessage(strval(tmp),-1,str);
  269.  
  270.                         new tName[MAX_PLAYER_NAME];
  271.                         GetPlayerName(strval(tmp),tName,MAX_PLAYER_NAME);
  272.                         format(str,sizeof str,"{FFFF80}| INFO HELPER | Você trouxe %s à esta posição !",tName);
  273.                         SendClientMessage(playerid,-1,str);
  274.  
  275.             }
  276.             }
  277.  
  278.             return 1;
  279.         }
  280.        
  281.         // • Ver comandos Helpers !
  282.         if (strcmp(cmd, "/comandoshelper", true) == 0)
  283.     {
  284.     ShowPlayerDialog(playerid,1713,DIALOG_STYLE_MSGBOX,"{FFFFFF}|{FFFF00} Comandos de Helper {FFFFFF}| ","\n\n{ABCDEF} • * (Texto) - Falar como Helper no chat \n • ! (Texto) - Falar no chat entre Helpers \n • /HPIr (ID) - Ir até o jogador que quer ajuda ! \n • /HPTrazer (ID) - Trazer o jogador que quer ajuda até a sua pos.HTTP \n • /DeslogarHelper - Deslogin de helper !\n\n\n    {FFFFFF}[ {FFFF00}HS{FFFFFF} ] Helper System by {008000}Kon_BR","Fechar","");
  285.         return 1;
  286.     }
  287.        
  288.         }
  289.        
  290.         // ===== FIM - Comandos apenas logado de Helper ! =====
  291.        
  292.         // ===== Comandos de Administradores ! (Apenas logado na Rcon) =====
  293.        
  294.         // • Retirar Helper
  295.         if(strcmp( cmd, "/retirarhelper", true ) == 0 && IsPlayerAdmin(playerid))
  296.         {
  297.             tmp = strtok(cmdtext,idx);
  298.             if(!strlen(tmp)) { return SendClientMessage(playerid, -1, "{FF0000}| ERRO | USE : /RetirarHelper (ID do Helper)"); }
  299.                 new id = strval(tmp);
  300.                 if(!IsPlayerConnected(id)) {
  301.                 SendClientMessage(playerid,-1,"{FF0000}| ERRO | Player invalido/não conectado !");
  302.                 }
  303.                 if(IsPlayerConnected(id)) {
  304.         Helper[id] = 0;
  305.             new tName[MAX_PLAYER_NAME];
  306.                 GetPlayerName(strval(tmp),tName,MAX_PLAYER_NAME);
  307.         format(str,sizeof str,"{FFFF00}| INFO | Você retirou o Helper de %s !",tName);
  308.                 SendClientMessage(playerid,-1,str);
  309.                 new gName[MAX_PLAYER_NAME];
  310.                 GetPlayerName(playerid,gName,MAX_PLAYER_NAME);
  311.         format(str,sizeof str,"{FFFF00}| INFO | Seu Helper foi retirado pelo Administrador %s !",gName);
  312.                 SendClientMessage(id,-1,str);
  313.                
  314.                 }
  315.            
  316.             return 1;
  317.         }
  318.        
  319.         // • Helper ON
  320.         if(strcmp(cmd, "/helperon", true) == 0 && IsPlayerAdmin(playerid))
  321.     {
  322.     SendClientMessage(playerid, -1, "{FFFF00}| INFO | Você 'ligou' seu Helper (Ganhou as funções do mesmo) ! ");
  323.         Helper[playerid] = 1;
  324.         return 1;
  325.         }
  326.        
  327.         // • Helper OFF
  328.         if(strcmp(cmd, "/helperoff", true) == 0 && IsPlayerAdmin(playerid))
  329.     {
  330.     SendClientMessage(playerid, -1, "{FFFF00}| INFO | Você 'desligou' seu Helper ! ");
  331.         Helper[playerid] = 0;
  332.         return 1;
  333.         }
  334.        
  335.         // ===== FIM - Comandos de Administradores ! =====
  336.        
  337.         return 0;
  338. }
  339.  
  340. public OnRconCommand(cmd[])
  341. {
  342.         return 1;
  343. }
  344.  
  345. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  346. {
  347.                 // ===== DIALOG DE LOGIN DE HELPER =====
  348.                
  349.                 new id = playerid;
  350.                 new nomep[MAX_PLAYER_NAME];
  351.  
  352.         if(dialogid == DialogLoginHelper)
  353.                 {
  354.         if(!response) return SendClientMessage(playerid,-1,"{FFFF00}| INFO | Você cancelou o login de Helper ! .");
  355.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DialogLoginHelper,DIALOG_STYLE_PASSWORD,"{FFFFFF}| {FFFF00}Login de Helper {FFFFFF}|","Digite a senha !","Ok","Cancelar");
  356.         if(strcmp(inputtext,"suasenhaaqui",false)==0)
  357.         {
  358.                 SendClientMessage(playerid,-1,"{FFFF00}| INFO | Logado como Helper com sucesso !");
  359.                 Helper[playerid] = 1;
  360.                         GetPlayerName(id, nomep, MAX_PLAYER_NAME);
  361.                         for(new i;i<MAX_PLAYERS;i++)
  362.                         {
  363.                         if(IsPlayerAdmin(i))
  364.                         {
  365.                         format(str, sizeof(str), "{FFFF00}| INFO | O player %s logou como Helper com sucesso ! Com a senha : ' %s '",nomep,inputtext);
  366.                         SendClientMessage(i,-1,str);
  367.                         }
  368.                         }
  369.                 }
  370.         else
  371.                 ShowPlayerDialog(playerid,DialogLoginHelper,DIALOG_STYLE_PASSWORD,"{FFFFFF}| {FFFF00}Login de Helper {FFFFFF}|","{FF0000}Senha incorreta {FFFFFF} - Digite novamente !","Ok","Cancelar");
  372.                 GetPlayerName(id, nomep, MAX_PLAYER_NAME);
  373.                 for(new i;i<MAX_PLAYERS;i++)
  374.                 {
  375.                 if(IsPlayerAdmin(i))
  376.                 {
  377.                 format(str, sizeof(str), "{FFFF00}| INFO | O player %s tentou logar de Helper com a senha : ' %s '",nomep,inputtext);
  378.                 SendClientMessage(i,-1,str);
  379.                 }
  380.                 }
  381.                 }
  382.                 return 0;
  383.                
  384.                 // ===== FIM - DIALOG DE LOGIN DE HELPER =====
  385. }
  386.  
  387. // - Strtok
  388. strtok(const string[], &index)
  389. {
  390.     new length = strlen(string);
  391.     while ((index < length) && (string[index] <= ' '))
  392.     {
  393.         index++;
  394.     }
  395.  
  396.     new offset = index;
  397.     new result[20];
  398.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  399.     {
  400.         result[index - offset] = string[index];
  401.         index++;
  402.     }
  403.     result[index - offset] = EOS;
  404.     return result;
  405. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top