Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- __________________________________________________________________________
- | |
- | /| /| /¯¯¯¯¯¯¯¯¯¯/ |
- | | | | | | |¯¯¯¯¯¯¯¯ |
- | | | | | | ¯¯¯¯¯¯¯¯¯ \ /| /¯\ |
- | | ¯¯¯¯ | ¯¯¯¯¯¯¯¯¯| | \ / / | | | |
- | | |¯¯¯¯| | | | \ / | | | |
- | | | | | /¯¯¯¯¯¯¯¯¯ / \/ • | • \_/ |
- | |/ |/ ¯¯¯¯¯¯¯¯¯¯¯ |
- | |
- | Helper System - v. 1.0 ~ Created by Kon (Kon_BR) |
- | All Rights reserveds ® |
- | http://forum.sa-mp.com/member.php?u=158736 | | |
- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- */
- // Inicio !
- // Include
- #include <a_samp>
- // News
- new str[200]; // - New da string
- new nick[MAX_PLAYER_NAME]; // - New do nick (GetPlayerName)
- new tmp[256]; // - Função tmp ~ cmd
- new Helper[MAX_PLAYERS]; // - Definimos o Helper (Quem é e quem não é)
- // Defines
- #define DialogLoginHelper 1576 // - Define da Dialog
- public OnFilterScriptInit()
- {
- print("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
- print(" ");
- print(" • [ HS ] Helper System - V. 1.0 • ");
- print(" - ");
- print(" Created by Kon (Kon_BR) ");
- print(" ® All Rights reserveds . ");
- print(" ");
- print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- // - Ao player conectar, por precaução não bugar de Helper .
- Helper[playerid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- Helper[playerid] = 0;
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- // • Falar como Helper
- if( (text[0] == '*') && strlen(text) > 1)
- {
- new szPlayerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
- if(Helper[playerid] == 1)
- {
- format(str, 128, "* Helper %s: %s", szPlayerName, text[1]);
- for(new iPlayerID; iPlayerID < MAX_PLAYERS; iPlayerID++)
- {
- if(!IsPlayerConnected(iPlayerID)) continue;
- SendClientMessage(iPlayerID, 0xFFFF00FF, str);
- }
- }
- return 0;
- }
- // • Chat dos Helpers
- if((text[0] == '!') && (strlen(text) > 0))
- {
- if(Helper[playerid] == 1)
- GetPlayerName(playerid, nick, MAX_PLAYER_NAME);
- strdel(text, 0, 1);
- format(text,128,"{FFFF00}| CHAT HELPER |{FFFFFF} » %s : %s", nick, text);
- for(new x = 0, y = GetMaxPlayers(); x != y; x++)
- {
- if(Helper[playerid] == 1)
- {
- SendClientMessage(x, -1, text);
- }
- if(IsPlayerAdmin(playerid))
- {
- SendClientMessage(x, -1, text);
- }
- }
- return 0;
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- // Funções dos cmds
- new cmd[256];
- new idx;
- cmd = strtok(cmdtext, idx);
- // ===== Comandos normais =====
- // • Ver Helpers online !
- if(strcmp(cmd, "/helpers", true) == 0)
- {
- new Jogador[24];
- new count = 0;
- new msg[120];
- SendClientMessage(playerid, 0xFFFF00FF, "~ Helpers Online ~");
- for(new i=0; i<MAX_PLAYERS; i++){
- if(Helper[i] == 1)
- {
- if(IsPlayerConnected(i)){
- GetPlayerName(i,Jogador,24);
- format(msg,sizeof(msg),"{FFFFFF}» {FFFF00}%s", Jogador);
- SendClientMessage(playerid, -1, msg);
- count++;
- }
- }
- }
- if(count == 0){
- SendClientMessage(playerid, -1, "{C0C0C0}• Nenhum Helper online no momento !");
- }
- return 1;
- }
- // • Pedir ajuda aos helpers (mensagem enviada aos Helpers)
- if(strcmp(cmd, "/pedirajuda", true) == 0 || strcmp(cmd,"/pa", true) == 0)
- {
- new length = strlen(cmdtext);
- while ((idx < length) && (cmdtext[idx] <= ' '))
- {
- idx++;
- new offset = idx;
- new result[64];
- while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
- {
- result[idx - offset] = cmdtext[idx];
- idx++;
- }
- 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 !"); }
- result[idx - offset] = EOS;
- new nome[MAX_PLAYER_NAME];
- GetPlayerName(playerid, nome, sizeof(nome));
- // Função antiga , porem dá conflitos ... - for(new i;i<MAX_PLAYERS;i++)
- for(new i = 0, e = GetMaxPlayers(); i < e; i++) // para todos
- {
- if(Helper[i] == 1)
- {
- SendClientMessage(i,-1," ");
- SendClientMessage(i,-1,"{808000} • PEDIDO DE AJUDA •{FFFFFF}");
- format(str, sizeof(str), "{FFFF00} » {FFFFFF}Pedido de : {008080}%s .", nome);
- SendClientMessage(i,-1,str);
- format(str, sizeof(str), "{FFFF00} » {FFFFFF}Ocorrência : ' {FFFF00}%s{FFFFFF} ' .",(result));
- SendClientMessage(i,-1,str);
- SendClientMessage(i,-1," • ----------------------------- • ");
- SendClientMessage(i,-1," ");
- }
- }
- SendClientMessage(playerid, -1, "{FFFF00}| INFO | Seu pedido de ajuda foi enviado aos Helpers ! ");
- 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 .");
- }
- return 1;
- }
- // • Login de helper
- if(strcmp(cmd, "/logarhelper", true) == 0)
- {
- ShowPlayerDialog(playerid,DialogLoginHelper,DIALOG_STYLE_PASSWORD,"{FFFFFF}| {FFFF00}Login de Helper {FFFFFF}|","• Digite a senha !","Ok","Cancelar");
- return 1;
- }
- // ===== FIM - Comandos normais =====
- // ===== Comandos apenas logado de Helper ! =====
- // - Função de apenas Helpers poderem executar o comando !
- if(Helper[playerid] == 1)
- {
- // • Deslogar de helper
- if(strcmp(cmd, "/deslogarhelper", true) == 0)
- {
- SendClientMessage(playerid, -1, "{FFFF00}| INFO | Você deslogou seu Helper ! Para logar denovo digite /LogarHelper ! ");
- Helper[playerid] = 0;
- new kName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,kName,MAX_PLAYER_NAME);
- for(new i;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerAdmin(i))
- {
- format(str, sizeof(str), "{FFFF00}| INFO | O player %s deslogou como Helper !",kName);
- SendClientMessage(i,-1,str);
- }
- }
- return 1;
- }
- // • Ir até os jogadores !
- if(strcmp( cmd, "/hpir", true ) == 0)
- {
- tmp = strtok(cmdtext,idx);
- if(!strlen(tmp)) { return SendClientMessage(playerid, -1, "{FF0000}| ERRO | USE : /HPIr (ID do jogador)"); }
- new Float:X, Float:Y, Float:Z;
- new id = strval(tmp);
- if(!IsPlayerConnected(id)) {
- SendClientMessage(playerid,-1,"{FF0000}| ERRO | Player não conectado !");
- }
- if(IsPlayerConnected(id)) {
- if(GetPlayerVehicleID(playerid))
- {
- GetPlayerPos( strval(tmp), X, Y, Z );
- SetVehiclePos( GetPlayerVehicleID(playerid), X+2, Y+2, Z );
- } else {
- GetPlayerPos( strval(tmp), X, Y, Z );
- SetPlayerPos( playerid, X+2, Y+2, Z );
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
- format(str,sizeof str,"{FFFF00}| HELPER | O Helper %s foi até a sua posição !",pName);
- SendClientMessage(strval(tmp),-1,str);
- new tName[MAX_PLAYER_NAME];
- GetPlayerName(strval(tmp),tName,MAX_PLAYER_NAME);
- format(str,sizeof str,"{FFFF80}| INFO HELPER | Você foi até a posição de %s !",tName);
- SendClientMessage(playerid,-1,str);
- }
- }
- return 1;
- }
- // • Trazer o jogador
- if(strcmp(cmd, "/hptrazer", true) == 0)
- {
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) { return SendClientMessage(playerid, -1, "{FF0000}| ERRO | USE : /HPIr (ID do jogador)"); }
- new Float:X, Float:Y, Float:Z;
- new id = strval(tmp);
- if(!IsPlayerConnected(id)) {
- SendClientMessage(playerid,-1,"{FF0000}| ERRO | Player invalido/não conectado !");
- }
- if(IsPlayerConnected(id)) {
- if(GetPlayerVehicleID(strval(tmp)))
- {
- GetPlayerPos(playerid, X, Y, Z);
- SetVehiclePos(GetPlayerVehicleID(strval(tmp)), X+2, Y+2, Z);
- } else {
- GetPlayerPos(playerid, X, Y, Z);
- SetPlayerPos(strval(tmp), X+2, Y+2, Z);
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
- format(str,sizeof str,"{FFFF00}| HELPER | O Helper %s trouxe você à esta posição !",pName);
- SendClientMessage(strval(tmp),-1,str);
- new tName[MAX_PLAYER_NAME];
- GetPlayerName(strval(tmp),tName,MAX_PLAYER_NAME);
- format(str,sizeof str,"{FFFF80}| INFO HELPER | Você trouxe %s à esta posição !",tName);
- SendClientMessage(playerid,-1,str);
- }
- }
- return 1;
- }
- // • Ver comandos Helpers !
- if (strcmp(cmd, "/comandoshelper", true) == 0)
- {
- 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","");
- return 1;
- }
- }
- // ===== FIM - Comandos apenas logado de Helper ! =====
- // ===== Comandos de Administradores ! (Apenas logado na Rcon) =====
- // • Retirar Helper
- if(strcmp( cmd, "/retirarhelper", true ) == 0 && IsPlayerAdmin(playerid))
- {
- tmp = strtok(cmdtext,idx);
- if(!strlen(tmp)) { return SendClientMessage(playerid, -1, "{FF0000}| ERRO | USE : /RetirarHelper (ID do Helper)"); }
- new id = strval(tmp);
- if(!IsPlayerConnected(id)) {
- SendClientMessage(playerid,-1,"{FF0000}| ERRO | Player invalido/não conectado !");
- }
- if(IsPlayerConnected(id)) {
- Helper[id] = 0;
- new tName[MAX_PLAYER_NAME];
- GetPlayerName(strval(tmp),tName,MAX_PLAYER_NAME);
- format(str,sizeof str,"{FFFF00}| INFO | Você retirou o Helper de %s !",tName);
- SendClientMessage(playerid,-1,str);
- new gName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,gName,MAX_PLAYER_NAME);
- format(str,sizeof str,"{FFFF00}| INFO | Seu Helper foi retirado pelo Administrador %s !",gName);
- SendClientMessage(id,-1,str);
- }
- return 1;
- }
- // • Helper ON
- if(strcmp(cmd, "/helperon", true) == 0 && IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, -1, "{FFFF00}| INFO | Você 'ligou' seu Helper (Ganhou as funções do mesmo) ! ");
- Helper[playerid] = 1;
- return 1;
- }
- // • Helper OFF
- if(strcmp(cmd, "/helperoff", true) == 0 && IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, -1, "{FFFF00}| INFO | Você 'desligou' seu Helper ! ");
- Helper[playerid] = 0;
- return 1;
- }
- // ===== FIM - Comandos de Administradores ! =====
- return 0;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- // ===== DIALOG DE LOGIN DE HELPER =====
- new id = playerid;
- new nomep[MAX_PLAYER_NAME];
- if(dialogid == DialogLoginHelper)
- {
- if(!response) return SendClientMessage(playerid,-1,"{FFFF00}| INFO | Você cancelou o login de Helper ! .");
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DialogLoginHelper,DIALOG_STYLE_PASSWORD,"{FFFFFF}| {FFFF00}Login de Helper {FFFFFF}|","Digite a senha !","Ok","Cancelar");
- if(strcmp(inputtext,"suasenhaaqui",false)==0)
- {
- SendClientMessage(playerid,-1,"{FFFF00}| INFO | Logado como Helper com sucesso !");
- Helper[playerid] = 1;
- GetPlayerName(id, nomep, MAX_PLAYER_NAME);
- for(new i;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerAdmin(i))
- {
- format(str, sizeof(str), "{FFFF00}| INFO | O player %s logou como Helper com sucesso ! Com a senha : ' %s '",nomep,inputtext);
- SendClientMessage(i,-1,str);
- }
- }
- }
- else
- ShowPlayerDialog(playerid,DialogLoginHelper,DIALOG_STYLE_PASSWORD,"{FFFFFF}| {FFFF00}Login de Helper {FFFFFF}|","{FF0000}Senha incorreta {FFFFFF} - Digite novamente !","Ok","Cancelar");
- GetPlayerName(id, nomep, MAX_PLAYER_NAME);
- for(new i;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerAdmin(i))
- {
- format(str, sizeof(str), "{FFFF00}| INFO | O player %s tentou logar de Helper com a senha : ' %s '",nomep,inputtext);
- SendClientMessage(i,-1,str);
- }
- }
- }
- return 0;
- // ===== FIM - DIALOG DE LOGIN DE HELPER =====
- }
- // - Strtok
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement