[Ajuda] Checkpoints Race
#1

Bom to criando um sistema de corrida por cp so que ao eu criar os cps e logo apos abrir a corrida, somente o 1 cp fica com a setinha, os outros fica no formato da bandeirinha e o ultimo cp buga, vai la pro meio do mapa

Code

pawn Код:
// topo

new CpsNormais = 255;
new CPFinal = 255;
new QueCP[MAX_PLAYERS];

// comandos

CMD:configevento(playerid, params[])
{
    if(CriandoEvento == 0) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Voce prescisar estar em modo de construзгo");
    if(EventoCriado == 1) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] ja existe um evento criado no momento. finalize - o");
    new IDConfig;
    if(sscanf(params, "d", IDConfig)) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Uso: /configevento [ 1 Terrestre e Nautico  |  2 Aereo ]");
    if(IDConfig < 1 || IDConfig > 2) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] ID Invбlido, Uso: /configevento [ 1 Terrestre e Nautico  |  2 Aereo ]");
    if(IDConfig == 1)
    {
        SendClientMessage(playerid, 0x9ACD32AA, "[ INFO ] Voce selecionou o modo 1 Terrestre / Nautico. A partir de agora apenas checkpoints serгo criados.");
        CpsNormais = 0;  // ID do cp da setinha
        CPFinal = 1;  // ID do cp da bandeirinha
        EventoConfig = 1;
        EventoCriado = 1;
        EventoDesbloqueado = 0;
        return 1;
    }
    else if(IDConfig == 2)
    {
        SendClientMessage(playerid, 0x9ACD32AA, "[ INFO ] Voce selecionou modo 2 Aereo. A partir de agora apenas checkpoints serгo criados.");
        CpsNormais = 3;  // ID do cp do arco
        CPFinal = 4;  // ID do cp da bandeirinha do arco
        EventoConfig = 1;
        EventoCriado = 1;
        EventoDesbloqueado = 0;
        return 1;
    }
    return 1;
}

CMD:criarcp(playerid)
{
    new vid = GetPlayerVehicleID(playerid);
    if(CriandoEvento == 0) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Voce prescisar estar em modo de construзгo");
    if(EventoConfig == 0) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Vocк prescisar configurar o evento primeiro /ConfigEvento");
    if(!IsPlayerInVehicle(playerid, vid)) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Vocк estar em algum veiculo para setar os checkpoints");
    new string[148];
    if(CheckPointSetado < MAX_RACE_CPS)
    {
        new CP[80], Float:GetX, Float:GetY, Float:GetZ;
        GetPlayerPos(playerid, GetX, GetY, GetZ);
        CheckPointSetado++;
        CheckpointCoord[0][CheckPointSetado] = GetX;
        CheckpointCoord[1][CheckPointSetado] = GetY;
        CheckpointCoord[2][CheckPointSetado] = GetZ;
        format(CP, sizeof( CP ), "~y~Checkpoint ~r~%d ~y~setado", CheckPointSetado);
        GameTextForPlayer(playerid, CP, 3000, 3);
        PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
    }
    else
    {
        format(string,sizeof(string),"[x] Voce excedeu o limite de checkpoint. Limite: %d",MAX_RACE_CPS);
        SendClientMessage(playerid,VERMELHO_ESCURO,string);
    }
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    if(CheckPointSetado > 0)
    {
        if(QueCP[playerid] == CheckPointSetado)
        {
            placement++;
            new string[128];
            if(placement == 1)
            {
                for(new eventocar = 0; eventocar < MAX_VEHEVENTO; eventocar++)
                {
                    if(IsPlayerInVehicle(playerid,VehEvento[eventocar]))
                    {
                        SendClientMessageToAll(VERMELHO_ESCURO, "______________________________________________________________________");
                        SendClientMessageToAll(VERMELHO_ESCURO, " ");
                        format(string, sizeof(string), " %s {FFFFFF}venceu o evento em 1є lugar", nome(playerid));
                        SendClientMessageToAll(VERMELHO_ESCURO, string);
                        SendClientMessageToAll(VERMELHO_ESCURO, " ");
                        SendClientMessageToAll(VERMELHO_ESCURO, "______________________________________________________________________");
                    }
                }
            }
            else if(placement == 2)
            {
                for(new eventocar = 0; eventocar < MAX_VEHEVENTO; eventocar++)
                {
                    if(IsPlayerInVehicle(playerid,VehEvento[eventocar]))
                    {
                        SendClientMessageToAll(VERMELHO_ESCURO, "______________________________________________________________________");
                        SendClientMessageToAll(VERMELHO_ESCURO, " ");
                        format(string, sizeof(string), " %s {FFFFFF}venceu o evento em 2є lugar", nome(playerid));
                        SendClientMessageToAll(VERMELHO_ESCURO, string);
                        SendClientMessageToAll(VERMELHO_ESCURO, " ");
                        SendClientMessageToAll(VERMELHO_ESCURO, "______________________________________________________________________");
                    }
                }
            }
            else if(placement == 3)
            {
                for(new eventocar = 0; eventocar < MAX_VEHEVENTO; eventocar++)
                {
                    if(IsPlayerInVehicle(playerid,VehEvento[eventocar]))
                    {
                        SendClientMessageToAll(VERMELHO_ESCURO, "______________________________________________________________________");
                        SendClientMessageToAll(VERMELHO_ESCURO, " ");
                        format(string, sizeof(string), " %s {FFFFFF}venceu o evento em 3є lugar", nome(playerid));
                        SendClientMessageToAll(VERMELHO_ESCURO, string);
                        SendClientMessageToAll(VERMELHO_ESCURO, " ");
                        SendClientMessageToAll(VERMELHO_ESCURO, "______________________________________________________________________");
                    }
                }
            }
            PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
            DisablePlayerRaceCheckpoint(playerid);
            QueCP[playerid] = 0;
            return 1;
        }
        else if(QueCP[playerid] == CheckPointSetado-1)
        {
            for(new eventocar = 0; eventocar < MAX_VEHEVENTO; eventocar++)
            {
                if(IsPlayerInVehicle(playerid,VehEvento[eventocar]))
                {
                    QueCP[playerid] += 1;
                    SetPlayerRaceCheckpoint(playerid, CpsNormais, CheckpointCoord[0][QueCP[playerid]], CheckpointCoord[1][QueCP[playerid]], CheckpointCoord[2][QueCP[playerid]], 0.0, 0.0, 0.0, 8.0);
                    PlayerPlaySound(playerid, 1137, 0.0, 0.0, 0.0);
                }
            }
        }
        PlayerPlaySound(playerid, 1137, 0.0, 0.0, 0.0);
        QueCP[playerid] += 1;
        SetPlayerRaceCheckpoint(playerid, CPFinal, CheckpointCoord[0][QueCP[playerid]], CheckpointCoord[1][QueCP[playerid]], CheckpointCoord[2][QueCP[playerid]], CheckpointCoord[0][QueCP[playerid]+1], CheckpointCoord[1][QueCP[playerid]+1], CheckpointCoord[2][QueCP[playerid]+1], 10.0);
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)