09/02/2023 17:06
(09/02/2023 16:35)fearsa Escreveu:(09/02/2023 16:24)White_Blue Escreveu:Esse sistema usa o MAX_POINT para atualizar os checkpoint.. se eu remover teria que remover isso:(09/02/2023 15:55)fearsa Escreveu:(09/02/2023 15:34)White_Blue Escreveu: Você não precisa definir o tamanho da array, assim fica mais prático, você não precisa se preocupar com as células da array.
Teste assim e veja se funciona:
Código PHP:new Float:corridacheckpoint[MAX_RACE_POINTS][] = {
{
// Suas coordenadas aqui
};
fiz assim:
Código:new Float:corridacheckpoint[MAX_RACE_POINTS][] =
{
{2141.4910,-1944.1877,13.2044,269.4679},
{
2268.5332,-1732.6592,13.0400,244.4372},
{
2393.3335,-1659.2001,13.0402,270.9162},
{
2483.0596,-1788.7537,13.2108,274.0847},
{
2457.1860,-1658.2914,12.9620,91.1243},
{
2369.7346,-1524.1077,23.4853,264.1595},
{
2392.4204,-1424.9104,23.4892,0.3905},
{
2344.9822,-1300.7600,23.6593,89.3894},
{
2197.8601,-1641.4114,14.9699,170.0614},
{
2079.7043,-1809.4922,13.0409,120.9189},
{
1912.9556,-1753.5867,13.0402,107.3336},
{
1820.0884,-1867.4813,13.0746,180.9134},
{
1946.3507,-1957.8975,13.2043,268.7086},
{
1990.6389,-1901.0647,13.2097,225.8071}
};
Porém no sublimetext ficou [Finished in 2.0s]
Não compila o gamemode direito..
Retire o macro MAX_RACE_POINTS da array.
Você apenas deve usar o macro se quiser que a array tenha tamanho definido. Caso contrário, não faz sentido usar o macro na array.
Assim deve resolver:
Código PHP:new Float:corridacheckpoint[][] =
{
{2141.4910,-1944.1877,13.2044,269.4679},
{
2268.5332,-1732.6592,13.0400,244.4372},
{
2393.3335,-1659.2001,13.0402,270.9162},
{
2483.0596,-1788.7537,13.2108,274.0847},
{
2457.1860,-1658.2914,12.9620,91.1243},
{
2369.7346,-1524.1077,23.4853,264.1595},
{
2392.4204,-1424.9104,23.4892,0.3905},
{
2344.9822,-1300.7600,23.6593,89.3894},
{
2197.8601,-1641.4114,14.9699,170.0614},
{
2079.7043,-1809.4922,13.0409,120.9189},
{
1912.9556,-1753.5867,13.0402,107.3336},
{
1820.0884,-1867.4813,13.0746,180.9134},
{
1946.3507,-1957.8975,13.2043,268.7086},
{
1990.6389,-1901.0647,13.2097,225.8071}
};
ele tipo starta o checkpoint
Código:new Float:checkpoints[MAX_POINTS][23] = {
{1984.8774,-1896.1720,13.2096,223.5686}
};
E ISSO:
Código:new checkpointType[MAX_POINTS] = {
TT_START
};
Código:public OnPlayerEnterRaceCheckpoint(playerid)
{
new sec = Mototime[playerid]%60;
new mins = (Mototime[playerid]/60)%60;
if(MotoGP[playerid] == 1)
{
MotoGate[playerid]++;
new one = MAX_RACE_POINTS-1;
new two = MAX_RACE_POINTS;
if(MotoGate[playerid] < one)
{
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid,0,corridacheckpoint[MotoGate[playerid]][0],corridacheckpoint[MotoGate[playerid]][1],corridacheckpoint[MotoGate[playerid]][2],corridacheckpoint[MotoGate[playerid]+1][0],corridacheckpoint[MotoGate[playerid]+1][1],corridacheckpoint[MotoGate[playerid]+1][2],10);
}
if(MotoGate[playerid] == one)
{
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid,1,corridacheckpoint[MotoGate[playerid]][0],corridacheckpoint[MotoGate[playerid]][1],corridacheckpoint[MotoGate[playerid]][2],corridacheckpoint[0][0],corridacheckpoint[0][1],corridacheckpoint[0][2],10);
}
if(MotoGate[playerid] == two)
{
new TimeRec;
new Timestr[200];
new driver[24];
GetPlayerName(playerid,driver,sizeof(driver));
format(Timestr,sizeof(Timestr),"%s {FFFFFF}Acabou a corrida ilegal [{FFF68F}%d {FFFFFF} Minutos, {FFF68F}%d {FFFFFF} Segundos] e ganhou {FFF68F}$2,000 {FFF68F}+5 Score",driver,mins,sec);
SendClientMessageToAll(0x375FFFFF,Timestr);
GivePlayerMoney(playerid,2000);
SetPlayerScore(playerid, GetPlayerScore(playerid) + 5);
SendClientMessage(playerid,Amarelo,"Você pode ver {FFF68F} 5 melhores tempos {FFFFFF}Digitando: {FFF68F}/Crank {FFFFFF}.");
printf(Timestr);
TimeRec=Mototime[playerid];
MotoGP[playerid] = 0;
MotoGate[playerid] = 0;
DisablePlayerRaceCheckpoint(playerid);
Mototime[playerid]=0;
UpdateList(playerid,TimeRec);
SetPlayerVirtualWorld(playerid, 0);
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), 0);
KillTimer(relogiotime[playerid]);
nacorrida[playerid]=0;
}
}
return 1;
}
Se eu remover MAX_POINT vai dar merda no resto do sistema??
Em primeiro lugar, é uma array apenas para armazenar as coordenadas. Em segundo lugar, não sei se você está confundindo array com enumerador, mas são duas coisas distintas, enquanto array é um vetor que serve para armazenar uma sequência de dados um enumerador serve para armazenar um conjunto de dados constantes pré-definidos. Então se você quiser utilizar um enumerador, você pode utilizar o MAX_POINTS na array que dá acesso aos dados previamente definidos no enumerador.
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.