Oui, on peut créer des courses avec SetPlayerRaceCheckpoint.
Tout d'abord, tu définis les coordonnées (x, y, z) de tous les checkpoints de la course, dans un tableau, c'est mieux.
Pour que la course commence, tu fais un SetPlayerRaceCheckpoint sur les premières coordonnées de ton tableau.
A chaque fois que le joueur passe un checkpoint, la callback OnPlayerEnterRaceCheckpoint est appelée. Dans cette callback, tu pointes sur l'élément suivant de ton tableau de coordonnées (sauf si le joueur vient de passer le dernier checkpoint) et tu rappelles SetPlayerRaceCheckpoint avec les nouvelles coordonnées et ainsi de suite jusqu'à la fin du tableau.
++
Voilà mon code:
new Float:Checkpoints[18][3] =
{
{-1989.3558,134.6403,27.3777},
{-2002.1536,381.3080,34.8562},
{-1996.6072,603.2065,34.8487},
{-1820.1544,595.5750,35.0109},
{-1716.3942,613.7697,24.6100},
{-1710.8257,724.4195,24.5732},
{-1547.2211,730.1569,6.8768},
{-1569.7294,659.0913,7.0252},
{-1746.2830,313.5947,6.8687},
{-1857.3145,412.6102,16.8461},
{-2010.2242,346.5118,34.8544},
{-2324.1519,315.2696,39.0774},
{-2700.9624,159.0070,4.1108},
{-2699.7109,-215.1799,4.0920},
{-2419.0166,-176.2380,35.0103},
{-2419.2097,-64.8774,35.0979},
{-2010.1089,-73.1647,35.0048},
{-2004.0931,99.6179,27.3774}
};
Maintenant, comment faire pour
A chaque fois que le joueur passe un checkpoint, la callback OnPlayerEnterRaceCheckpoint est appelée. Dans cette callback, tu pointes sur l'élément suivant de ton tableau de coordonnées (sauf si le joueur vient de passer le dernier checkpoint) et tu rappelles SetPlayerRaceCheckpoint avec les nouvelles coordonnées et ainsi de suite jusqu'à la fin du tableau.