Portal SAMP
[Ajuda] corrija meu codigo - 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] corrija meu codigo (/showthread.php?tid=3279)



corrija meu codigo - LOS_SANTOS - 02/02/2023

fiz esse codigo na minha gm so que nao esta bem feito queira assim se possivel quando eu usase o comando 

Código:
CMD:carregar(playerid, params[]){
      if(Profissao[playerid] == 3)
      {
      if(!IsPlayerInRangeOfPoint(playerid, 1.0, 2460.5332,-2105.4783,14.5654))//nao esta indo aq , eu uso esse comando em qualquer lugar nao e pra ser assim
      {
      if(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
      SetPlayerCheckpoint(playerid, 1945.5638,-1771.4941,14.4585, 3.0);//LOCAL QUE VAI DESCARREGAR, MUDE PARA OQUE QUISER
      CheckCaminhoneiro[playerid] = true;
      SendClientMessage(playerid,0x03FF35FF,"|INFO|:Voce carregou seu caminhao, siga o checkpoint para descarregar!");
      }
      }
      else
      {
  SendClientMessage(playerid,0x03FF35FF,"|ERRO|:Voce nao tem um trailer anexado a seu veiculo ou nao esta em um local de carregar");
  }
      return 1;
}


e aqui gostaria de quando o player chegase ao check point final o trailer sumise do caminhao pois oq consegui fazer foi assim

new bool:CheckCaminhoneiro[MAX_PLAYERS];

public OnPlayerEnterCheckpoint(playerid)
{
    if(CheckCaminhoneiro[playerid] == true)
    {
        CheckCaminhoneiro[playerid] = false;
        SendClientMessage(playerid, 0x33AA33AA,"Voce descarregou o caminhao e recebeu 1000. volte ao HQ para carregar novamente");
        SetPlayerCheckpoint(playerid, 1194.9236,-889.0463,43.0533, 3.0);
        GivePlayerMoney(playerid, 1000);
        DisablePlayerCheckpoint(playerid);
        DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));//aq so desengata do caminhao mas gostaria que o trailer sumise dando a intencao que o trailer foi entregue no local
        SendClientMessage(playerid,amarelo,"|INFO|:use /hqcaminhoneiro!");
    }
    return 1;
}



RE: corrija meu codigo - João Pedro Alves - 02/02/2023

Tá, pera lá. Antes de qualquer coisa: qual o problema do seu código? O que está acontecendo? Qual é o comportamento que você quer de cada comando?

Seja mais claro...


RE: corrija meu codigo - LOS_SANTOS - 02/02/2023

o primeiro erro e que eu coloquei o isplayerrangeofpoint para usar o /carregar e nao ta funcionando tipo eu consigo usar /carregar em qualquer local esee e o erro
e o outro e quando chego no checkpoint final queria que o trailer atachado no caminhao sumise ao invez de so ser solto so isso mesmo nao sei como fazer isso

(02/02/2023 14:28)João Pedro Alves Escreveu: Tá, pera lá. Antes de qualquer coisa: qual o problema do seu código? O que está acontecendo? Qual é o comportamento que você quer de cada comando?

Seja mais claro...

o primeiro erro e que eu coloquei o isplayerrangeofpoint para usar o /carregar e nao ta funcionando tipo eu consigo usar /carregar em qualquer local esee e o erro

e o outro e quando chego no checkpoint final queria que o trailer atachado no caminhao sumise ao invez de so ser solto so isso mesmo nao sei como fazer isso


RE: corrija meu codigo - xbruno1000x - 02/02/2023

Citar:if(!IsPlayerInRangeOfPoint(playerid, 1.0, 2460.5332,-2105.4783,14.5654))//nao esta indo aq , eu uso esse comando em qualquer lugar nao e pra ser assim

Você usou !. ! significa que você quer o oposto do que escreveu. Então no caso desse código, você está pegando qualquer posição, exceto a desejada.

Corrigido:
Código:
if(IsPlayerInRangeOfPoint(playerid, 1.0, 2460.5332,-2105.4783,14.5654))

2° Problema:
Código:
DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
Para deletar um Trailer, não basta dar detach. Você precisa também pegar o ID do trailer e deletá-lo usando DestroyVehicle.


RE: corrija meu codigo - LOS_SANTOS - 02/02/2023

(02/02/2023 14:54)xbruno1000x Escreveu:
Citar:if(!IsPlayerInRangeOfPoint(playerid, 1.0, 2460.5332,-2105.4783,14.5654))//nao esta indo aq , eu uso esse comando em qualquer lugar nao e pra ser assim

Você usou !. ! significa que você quer o oposto do que escreveu. Então no caso desse código, você está pegando qualquer posição, exceto a desejada.

Corrigido:
Código:
if(IsPlayerInRangeOfPoint(playerid, 1.0, 2460.5332,-2105.4783,14.5654))

2° Problema:
Código:
DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
Para deletar um Trailer, não basta dar detach. Você precisa também pegar o ID do trailer e deletá-lo usando DestroyVehicle.
OBG SER NOOB NESSA LINGUAGEM E HORRIVEL PRINCIPALMENTE QUANDO NAO SE TEM ALGUEM Q ENSINE AI QUEBRAMOS ACABECA E FICAMOS DEPENDENTES DE TODOS Q JA SABE OBG PELA AJUDA ESPERO UM DIA NAO PRECISAR MAIS DE AJUDA E SIM AJUDAR QUEM PRECISA IGUAL A VCS