Advertisement
Kon_BR

HS ~ Helper System 1.0 - By Twist (Kon_BR)

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