public OnPlayerEnterRaceCheckpoint(playerid)
{
if(exam[playerid] == 1)
{
if(IsRaceRunning == true)
{
DisablePlayerRaceCheckpoint(playerid);
Driving1_CP[playerid]++;
if(sizeof(Driving1) - 1 == Driving1_CP[playerid])
{
SetPlayerRaceCheckpoint(playerid, 1,Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], 0.0, 0.0, 0.0, 3);
}
else
{
SetPlayerRaceCheckpoint(playerid, 0, Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], Driving1[Driving1_CP[playerid] + 1][0],Driving1[Driving1_CP[playerid] + 1][1],Driving1[Driving1_CP[playerid] + 1][2], 3);
}
}
if(Driving1_CP[playerid] == sizeof(Driving1))
{
exam[playerid] = 0;
IsRaceRunning = false;
KillTimer(timer[playerid]);
return 1;
}
}
return 1;
}
if(IsRaceRunning == true)
{
if(Driving1_CP[playerid] == sizeof(Driving1))
{
exam = 0;
IsRaceRunning = false;
KillTimer(timer[playerid]);
return 1;
}
//DisablePlayerRaceCheckpoint(playerid);
if(Driving1_CP[playerid] == sizeof(Driving1) - 1)
{
SetPlayerRaceCheckpoint(playerid, 1,Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], 0.0, 0.0, 0.0, 3);
}
else
{
Driving1_CP[playerid]++:
SetPlayerRaceCheckpoint(playerid, 0, Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], Driving1[Driving1_CP[playerid] + 1][0],Driving1[Driving1_CP[playerid] + 1][1],Driving1[Driving1_CP[playerid] + 1][2], 3);
}
}
Try:
pawn Код:
|
Mmh, have you tried to add the "DisablePlayerRaceCheckpoint(playerid);" at the code where you kill the timer?
![]() |
if(Driving1_CP[playerid] == sizeof(Driving1))
{
exam[playerid] = 0;
IsRaceRunning = false;
KillTimer(timer[playerid]);
return 1;
}
new Float:Driving1[3][3] =
{
{1589.3202,-1637.1918,13.2311},
{1526.8044,-1604.5043,13.1032},
{1571.1270,-1627.5754,13.1047}
};
MaxCheckpoints[playerid] = 3;
if(Driving1_CP[playerid] == MaxCheckpoints[playerid]-1)
{
exam[playerid] = 0;
IsRaceRunning = false;
KillTimer(timer[playerid]);
return 1;
}
else
{
Driving1_CP[playerid]++;
SetNextCheckpoint(playerid, Driving1_CP[playerid], MaxCheckpoints[playerid]);
}
stock SetNextCheckpoint(playerid, progress, totalchecks)
{
new checktype=0;
#define CHECK_SIZE 3.0
if(progress==totalchecks-1)
{
SetPlayerRaceCheckpoint(playerid,1,Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],CHECK_SIZE);}
}
else
{
SetPlayerRaceCheckpoint(playerid,checktype,Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],Driving1[progress+1][0],Driving1[progress+1][1],Driving1[progress+1][2],CHECK_SIZE);}
}
}
pawn Код:
|
new checktype = 0; #define CHECK_SIZE 3.0 if(progress==totalchecks-1) { SetPlayerRaceCheckpoint(playerid,1,Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],CHECK_SIZE);} } else