Portal SAMP
[Ajuda] comando /consertar - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] comando /consertar (/showthread.php?tid=4394)



comando /consertar - UmNickBR - 08/01/2024

Boa tarde, gostaria de saber como faço para fazer com que o comando abaixo citado o(a) player tenha como aceitar / recusar.

Código PHP:
CMD:consertar(playeridparams[]){
    new idstr[128];
    if(PlayerInfo[playerid][pEmprego] != 4) return SendClientMessage(playeridVermelho"Você não é Mêcanico.");
    if((gettime() - consertar[playerid]) < 300return  SendClientMessage(playerid, -1"{FF0000}| ERRO | Você já executou o comando {B0C4DE}/Consertar {FF0000}Aguarde 5 minutos.");
    if(sscanf(params,"i",id)) return SendClientMessage(playeridCorErro,"| INFO | Erro, user: /Consertar [Id]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playeridCorErro"| INFO | Erro, jogador não está conectado");
    format(strsizeof(str),"{777777}O(A) Mêcanico {FFFFFF}%s  {777777}está lhe oferecendo conserto por {118C4F}600$",NomePlayer(playerid), NomeID(id));
    SendClientMessage(id, -1str);
    format(strsizeof(str),"{777777}Você enviou solicitação de conserto para o(a) jogador(a) {FFFFFF}%s",NomeID(id), id);
    SendClientMessage(playeridCinzaClarostr);
    GivePlayerMoney(playerid600);
    return 1;

Valeu.


RE: comando /consertar - DarkMode_. - 08/01/2024

Fiz um exemplo para você usando o comando acima que você mostrou, o resto das funções você mesmo adiciona. 
Código:
new Oferta[MAX_PLAYERS];
CMD:consertar(playerid, params[]){
    new id, str[128];
    if(PlayerInfo[playerid][pEmprego] != 4) return SendClientMessage(playerid, Vermelho, "Você não é Mêcanico.");
    if((gettime() - consertar[playerid]) < 300) return  SendClientMessage(playerid, -1, "{FF0000}| ERRO | Você já executou o comando {B0C4DE}/Consertar {FF0000}Aguarde 5 minutos.");
    if(sscanf(params,"i",id)) return SendClientMessage(playerid, CorErro,"| INFO | Erro, user: /Consertar [Id]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, CorErro, "| INFO | Erro, jogador não está conectado");
    format(str, sizeof(str),"{777777}O(A) Mêcanico {FFFFFF}%s  {777777}está lhe oferecendo conserto por {118C4F}600$",NomePlayer(playerid), NomeID(id));
    SendClientMessage(id, -1, str);
    format(str, sizeof(str),"{777777}Você enviou solicitação de conserto para o(a) jogador(a) {FFFFFF}%s",NomeID(id), id);
    SendClientMessage(playerid, CinzaClaro, str);
    GivePlayerMoney(playerid, 600);
    Oferta[id] = playerid;
    return 1;
}
CMD:aceitar(playerid)
{
    if(Oferta[playerid] == -1) return SendClientMessage(playerid, -1,"| ERRO | Você não recebeu nenhuma proposta..");
    SendClientMessage(playerid, -1, "Você aceitou.");
    Oferta[playerid] = -1;
    return 1;
}
CMD:recusar(playerid)
{
    if(Oferta[playerid] == -1) return SendClientMessage(playerid, -1,"| ERRO | Você não recebeu nenhuma proposta..");
    SendClientMessage(playerid, -1, "Você rejeitou.");
    Oferta[playerid] = -1;
    return 1;
}
/*No onplayerconnect recomendo você colocar isso:
Oferta[playerid] = -1;
*/



RE: comando /consertar - UmNickBR - 08/01/2024

Valeu DarkMode deu certo aq, reputado com sucesso!


RE: comando /consertar - UmNickBR - 08/01/2024

Aproveitando esse tópico para não ter que criar outro, como faço para verificar a distancia de um player ?se tal player está distante de outro player, não encontro no open.mp se for possível a documentação agradeço!


RE: comando /consertar - White_Blue - 08/01/2024

(08/01/2024 17:27)UmNickBR Escreveu: Aproveitando esse tópico para não ter que criar outro, como faço para verificar a distancia de um player ?se tal player está distante de outro player, não encontro no open.mp se for possível a documentação agradeço!

Você pode usar a função GetPlayerDistanceFromPoint que está disponível em ambos open.mp e SA-MP.

Exemplo:
Código PHP:
Float:GetDistanceBetweenPlayer(playeridtarget) {
      static 
Float:XFloat:YFloat:Z;

      
GetPlayerPos(targetXYZ);
      return 
GetPlayerDistanceFromPoint(playeridXYZ);




RE: comando /consertar - UmNickBR - 08/01/2024

Valeu White, reputado!