[Ajuda]GPS
#1

Tenho o seguinte cmd de GPS, e queria saber como faz para quando o player passar por cima do circulo vermelho (que й criado) ele sumir

pawn Код:
if(strcmp(cmdtext, "/lanhouse", true) == 0) //comando aqui
    {
        if(IsPlayerConnected(playerid))
        {
            SetPlayerCheckpoint(playerid,972.5712,-1295.4747,13.5469,3.0);
            SendClientMessage(playerid, COLOR_YELLOW, "GPS Ligado Localizaзгo : Lan House.");
            TogglePlayerControllable(playerid, 1);
            return 1;
            }
        }
Reply
#2

pawn Код:
public OnPlayerEnterCheckpoint(playerid)
{
    DisablePlayerCheckpoint(playerid);
    return true;
}
Reply
#3

Valeu!
Reply
#4

Da erro, pois jб tenho essa public, uma public gigante aqui

pawn Код:
public OnPlayerEnterCheckpoint(playerid)
{
    new string[128];
    new name[MAX_PLAYER_NAME];
    if(TaxiCallTime[playerid] > 0 && TaxiAccepted[playerid] < 999)
    {
        TaxiAccepted[playerid] = 999;
        GameTextForPlayer(playerid, "~w~Destino completo", 5000, 1);
        TaxiCallTime[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    if(ServCopTime[playerid] > 0 && CopAcc[playerid] < 999)
    {
        CopAcc[playerid] = 999;
        GameTextForPlayer(playerid, "~w~Destino completo", 5000, 1);
        ServCopTime[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    if(GPSPos[playerid] == 1)
    {
        GPSPos[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    else if(PlayerToPoint(5.0,playerid,218.2851,-98.5317,1005.2578))
    {
          if(PlayerInfo[playerid][pMember] == 0)
          {
              ShowMenuForPlayer(Zip, playerid);
              SetPlayerPos(playerid, 218.2851,-98.5317,1005.2578);
              SetPlayerFacingAngle(playerid, 271.0125);
              TogglePlayerControllable(playerid, false);
              SetPlayerCameraPos(playerid, 216.5639,-99.6462,1005.2578);
              SetPlayerCameraLookAt(playerid, 218.6617,-98.5263,1005.2578);
              LimparChat(playerid);
              DisablePlayerCheckpoint(playerid);
          }
          if(PlayerInfo[playerid][pMember] == 23)
          {
              ShowMenuForPlayer(Zip, playerid);
              SetPlayerPos(playerid, 218.2851,-98.5317,1005.2578);
              SetPlayerFacingAngle(playerid, 271.0125);
              TogglePlayerControllable(playerid, false);
              SetPlayerCameraPos(playerid, 216.5639,-99.6462,1005.2578);
              SetPlayerCameraLookAt(playerid, 218.6617,-98.5263,1005.2578);
              LimparChat(playerid);
              DisablePlayerCheckpoint(playerid);
          }
          if(IsACop(playerid) && OnDuty[playerid] == 0)
          {
...
EDIT: Nao tem como por alguma funзгo no comando mesmo para remover o cp qndo o player chegar? pq dai seria mais rapido e nao daria bugs
Reply
#5

Quote:
Originally Posted by Felipe_Wesker
Посмотреть сообщение
Da erro, pois jб tenho essa public, uma public gigante aqui

pawn Код:
public OnPlayerEnterCheckpoint(playerid)
{
    new string[128];
    new name[MAX_PLAYER_NAME];
    if(TaxiCallTime[playerid] > 0 && TaxiAccepted[playerid] < 999)
    {
        TaxiAccepted[playerid] = 999;
        GameTextForPlayer(playerid, "~w~Destino completo", 5000, 1);
        TaxiCallTime[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    if(ServCopTime[playerid] > 0 && CopAcc[playerid] < 999)
    {
        CopAcc[playerid] = 999;
        GameTextForPlayer(playerid, "~w~Destino completo", 5000, 1);
        ServCopTime[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    if(GPSPos[playerid] == 1)
    {
        GPSPos[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    else if(PlayerToPoint(5.0,playerid,218.2851,-98.5317,1005.2578))
    {
          if(PlayerInfo[playerid][pMember] == 0)
          {
              ShowMenuForPlayer(Zip, playerid);
              SetPlayerPos(playerid, 218.2851,-98.5317,1005.2578);
              SetPlayerFacingAngle(playerid, 271.0125);
              TogglePlayerControllable(playerid, false);
              SetPlayerCameraPos(playerid, 216.5639,-99.6462,1005.2578);
              SetPlayerCameraLookAt(playerid, 218.6617,-98.5263,1005.2578);
              LimparChat(playerid);
              DisablePlayerCheckpoint(playerid);
          }
          if(PlayerInfo[playerid][pMember] == 23)
          {
              ShowMenuForPlayer(Zip, playerid);
              SetPlayerPos(playerid, 218.2851,-98.5317,1005.2578);
              SetPlayerFacingAngle(playerid, 271.0125);
              TogglePlayerControllable(playerid, false);
              SetPlayerCameraPos(playerid, 216.5639,-99.6462,1005.2578);
              SetPlayerCameraLookAt(playerid, 218.6617,-98.5263,1005.2578);
              LimparChat(playerid);
              DisablePlayerCheckpoint(playerid);
          }
          if(IsACop(playerid) && OnDuty[playerid] == 0)
          {
...
EDIT: Nao tem como por alguma funзгo no comando mesmo para remover o cp qndo o player chegar? pq dai seria mais rapido e nao daria bugs
Sу adicione dentro dessa public :

pawn Код:
DisablePlayerCheckpoint(playerid);
Como o Vini postou acima
Reply
#6

Nao da cara, pois ja tem varios desses lб em cada caso, se eu por ele lб encima, atй pode ser q funcione, mas tem perigo de acontecer isso com todos os CPs, e eu n sei se tem CPs q й preciso fazer isso.

Assim olha, eu vou por isso dai, mas uma duvida й se n tem como por o codigo de remover de alguma forma sу no comando lб, n tem? pq dai se n tiver eu vou ter q fazer dessa maneira msm
Reply
#7

Em public OnPlayerEnterCheckpoint(playerid)

PHP код:
    if(PlayerToPoint(3.0,playerid,972.5712,-1295.4747,13.5469))
    {
        
DisablePlayerCheckpoint(playerid);        
    } 
TENTA AEEW

@EDIT

E se quiser, voce pode colocar um GameTextForPlayer, assim:

pawn Код:
if(PlayerToPoint(3.0,playerid,972.5712,-1295.4747,13.5469))
    {
        GameTextForPlayer(playerid, "~w~Chegou ao seu Destino!", 5000, 1); // Troque pela mensagem que voce quiser ^^
        DisablePlayerCheckpoint(playerid);        
    }
Reply
#8

Pelo que eu vi no cуdigo, dentro de todos os if tem um DisablePlayerCheckpoint(playerid);

Ou seja, o checkpoint vai sumir de qualquer jeito.
Esse й um exemplo de desperdнcio de linhas.

Em vez de usar 10 DisablePlayerCheckpoint(playerid); por exemplo, basta utilizar apenas um no inicio/fim da public
; )
Reply
#9

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Pelo que eu vi no cуdigo, dentro de todos os if tem um DisablePlayerCheckpoint(playerid);

Ou seja, o checkpoint vai sumir de qualquer jeito.
Esse й um exemplo de desperdнcio de linhas.

Em vez de usar 10 DisablePlayerCheckpoint(playerid); por exemplo, basta utilizar apenas um no inicio/fim da public
; )
pela lуgica, isso й verdade '-'
Reply
#10

Entendi, valeu ai Vini e kratty! Funcionou aqui
+1 rep
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)