Advertisement
Chip7

[FS] FilterScript HS ~ Helper System

Jun 10th, 2012
913
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.30 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement