• 04 Juin 2026, 17:27:49


Auteur Sujet: SetPlayerRaceCheckpoint  (Lu 7096 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne kev375

  • *
  • Tueur en série
  • Crab eater
  • Messages: 197
    • Voir le profil
SetPlayerRaceCheckpoint
« le: 01 Juillet 2007, 23:33:15 »
Bonsoir, j'aimerais savoir si on peut créer des courses avec SetPlayerRaceCheckpoint et comment en créer  :laugh

Voilà  :lock
« Modifié: 03 Juillet 2007, 14:55:57 par kev375 »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #1 le: 03 Juillet 2007, 00:43:31 »
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.

++
Courtesy of GtaManiac

Hors ligne kev375

  • *
  • Tueur en série
  • Crab eater
  • Messages: 197
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #2 le: 03 Juillet 2007, 14:59:31 »
Mec, franchement, j'ai absolument rien compris, tu peux me donner des exemples,  ça pourrait m'aider.  :happy
Merci d'avance.
« Modifié: 03 Juillet 2007, 15:03:03 par kev375 »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #3 le: 03 Juillet 2007, 22:23:34 »
Je pense que j'ai été clair, du moins si tu as les bases PAWN.
Si ce n'est pas le cas vas voir là :
http://wiki.sa-mp.com/wiki/Main_Page
Par contre, tout est en anglais.

++
Courtesy of GtaManiac

Hors ligne kev375

  • *
  • Tueur en série
  • Crab eater
  • Messages: 197
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #4 le: 06 Juillet 2007, 17:04:25 »
En gros, j'ai tout compris, mais la seule chose que j'ai à moitié compris, c'est le "tableau".
Ce ne serais pas un truc du genre :
new Float:CHECK[11][4] = { // Tableau de stockage des coordonnés des checks
{0.0,0.0,0.0,0.0}, // Laisser vide
{X,Y,Z,DIAM}, // Coordonnées Check 1
{X,Y,Z,DIAM}, // Coordonnées Check 2
{X,Y,Z,DIAM}, // Coordonnées Check 3
{X,Y,Z,DIAM}, // Coordonnées Check 4
{X,Y,Z,DIAM}, // Coordonnées Check 5
{X,Y,Z,DIAM}, // Coordonnées Check 6
{X,Y,Z,DIAM}, // Coordonnées Check 7
{X,Y,Z,DIAM}, // Coordonnées Check 8
{X,Y,Z,DIAM}, // Coordonnées Check 9
{X,Y,Z,DIAM} // Coordonnées Check 10
};


Alors? c'est sa ???

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #5 le: 06 Juillet 2007, 22:35:52 »
Oui, c'est ça, il ne te reste plus qu'à remplacer chaque triplet (X, Y, Z) par des coordonnées différentes qui donneront le parcours de ta course.
Pour les avoir, soit tu les récupères sur le net (si tu en trouves) soit tu prends un véhicule (lorsque tu es connecté à ton serveur) et tu parcours ta course en faisant des commandes /save aux endroits que tu juges judicieux pour placer les checkpoints.

Par contre, les valeurs DIAMS, je ne vois pas à quoi elle peuvent te servir. A priori tu n'en a pas besoin.

Autre chose (mais tu as peut-être déjà vu ça), la fonction SetPlayerRaceCheckpoint admet deux triplets (x, y, z). Le premier triplet correspond au checkpoint que tu affiches, le deuxième permet d'orienter la flèche à l'intérieur du check point.
Donc la ligne :
SetPlayerRaceCheckpoint (playerid, 0, CHECK[cp][0], CHECK[cp][1], CHECK[cp][2], CHECK[cp+1][0], CHECK[cp+1][1], CHECK[cp+1][2], 8.0);
affiche le checkpoint numero cp et fait pointer la flèche à l'intérieur du checkpoint vers le checkpoint suivant (cp+1).

Dernière chose, si le deuxième triplet est (0.0, 0.0, 0.0) alors le checkpoint affiché est celui avec le damier (fin de la course) :
SetPlayerRaceCheckpoint (playerid, 0, CHECK[Lastcp][0], CHECK[Lastcp][1], CHECK[Lastcp][2], 0.0, 0.0, 0.0, 8.0);

Voilà.
++
Courtesy of GtaManiac

Hors ligne kev375

  • *
  • Tueur en série
  • Crab eater
  • Messages: 197
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #6 le: 07 Juillet 2007, 09:57:15 »
Merci mec !

Hors ligne kev375

  • *
  • Tueur en série
  • Crab eater
  • Messages: 197
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #7 le: 07 Juillet 2007, 23:34:52 »
Juste une petite précision, tu vois : CHECK[cp][0], CHECK[cp][1], CHECK[cp][2]  ?

ça désigne quoi ? La première ligne du tableau ??
« Modifié: 07 Juillet 2007, 23:37:16 par kev375 »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #8 le: 07 Juillet 2007, 23:37:56 »
les coordonnées du checkpoint que tu veux afficher (en l'occurence, le checkpoint numéro cp).
CHECK[cp][0] = X
CHECK[cp][1] = Y
CHECK[cp][2] = Z

++
Courtesy of GtaManiac

Hors ligne kev375

  • *
  • Tueur en série
  • Crab eater
  • Messages: 197
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #9 le: 07 Juillet 2007, 23:51:26 »
Donc si j'ai bien compris, "SetPlayerRaceCheckpoint (playerid, 0, CHECK[cp][0], CHECK[cp][1], CHECK[cp][2], CHECK[cp+1][0], CHECK[cp+1][1], CHECK[cp+1][2], 8.0);" définis les positions X,Y,Z de tout le tableau ?
« Modifié: 07 Juillet 2007, 23:55:05 par kev375 »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #10 le: 09 Juillet 2007, 10:14:40 »
Désolé, j'ai pas eu le temps de te répondre ce week-end.

Donc, résumons tout depuis le début.
Tu dois avoir un tableau avec des triplets de coordonnées :

*Editer : utilise le pastebin*

En fin de course, il faut faire un DisablePlayerRaceCheckpoint
++
« Modifié: 09 Juillet 2007, 11:22:30 par spykerc8 »
Courtesy of GtaManiac

Hors ligne kev375

  • *
  • Tueur en série
  • Crab eater
  • Messages: 197
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #11 le: 09 Juillet 2007, 17:18:31 »
Super, merci, ma course marche !Mais j'ai deux petits problèmes :

1 - Pourquoi le 1er checkpoint se trouve à la campagne ?

2 - Pourquoi le dernier checkpoint ne 'apparait pas ?  :blink

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #12 le: 09 Juillet 2007, 22:28:05 »
Le premier checkpoint a surement les coordonnées (0.0, 0.0, 0.0) -> le centre de la carte (qui se trouve à la campagne).
Pour corriger ce problème, vires la première ligne de ton tableau de checkpoint ou bien commence commence à l'élément numéro 1 et pas 0.

Pour le dernier checkpoint, vérifies que tu n'essaies pas d'afficher un checkpoint de trop parce que si c'est le cas, tu va essayer d'afficher un checkpoint avec des coordonnées indéfinies (ça peut donc faire n'impote quoi).

++
Courtesy of GtaManiac

Hors ligne kev375

  • *
  • Tueur en série
  • Crab eater
  • Messages: 197
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #13 le: 10 Juillet 2007, 20:54:04 »
cool ! sa marche ! merci de mavoir aidé ! :happy :D

Hors ligne bni@

  • *
  • Criminel
  • Messages: 42
    • Voir le profil
Re : SetPlayerRaceCheckpoint
« Réponse #14 le: 21 Juillet 2007, 00:57:09 »
slt  :)
voici le message d'error que je recoit quelqu'un pourait t'il me dire la definition svp

C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\sftdm.pwn(155) : error 018: initialization data exceeds declared size

qrand merci :D
a+