GTAOnline.net
San Andreas Multiplayer (sa:mp) => Problèmes et bugs => Discussion démarrée par: inbox le 16 Mai 2008, 11:09:03
-
Bonjour,
j'ai fait un petit race histoire de m'apprendre comment m'en servir
seulement ca bug quand je touche le 2eme checkpoint
voici mon code
public OnPlayerEnterCheckpoint(playerid)
{
if (Check1) // CheckPoint pour la banque
{
SendClientMessage(playerid, COLOR_RED, "--------------------------------------------------------");
SendClientMessage(playerid, COLOR_WHITE, "[/ajouter] Permet de mettre de l'argent sur le compte");
SendClientMessage(playerid, COLOR_WHITE, "[/prendre] Permet de prendre de l'argent de votre compte");
SendClientMessage(playerid, COLOR_WHITE, "[/total] Voir combien vous avez sur votre compte");
SendClientMessage(playerid, COLOR_RED, "--------------------------------------------------------");
}
if (Check2) // CheckPoint pour le Race 1 (CheckPoint N° 1)
{
GameTextForPlayer(playerid,"~w~Touche le 2eme Chechpoint", 4000,3);
SendClientMessage(playerid, COLOR_RED, "--------------------------------------------------------");
SendClientMessage(playerid, COLOR_WHITE, "Bravo tu as eu le 1er Chechpoint");
SendClientMessage(playerid, COLOR_WHITE, "Touche le dernier pour avoir 500$");
SendClientMessage(playerid, COLOR_RED, "--------------------------------------------------------");
KillTimer(compteur);
countd = 20;
compteur = SetTimer("Count", 1000,1);
Check2 = DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid, -505.8576,2592.8159,53.4223, 7);
}
if (Check3) // CheckPoint pour le Race 1 (CheckPoint N° 2)
{
GameTextForPlayer(playerid,"~w~Tu as gagner", 3000,3);
SendClientMessage(playerid, COLOR_RED, "--------------------------------------------------------");
SendClientMessage(playerid, COLOR_WHITE, "Bravo tu as eu le 2eme Chechpoint");
SendClientMessage(playerid, COLOR_WHITE, "Tu as reçu 500$ sur ton compte");
SendClientMessage(playerid, COLOR_RED, "--------------------------------------------------------");
//GivePlayerMoney(playerid, 500);
KillTimer(compteur);
Check3 = DisablePlayerCheckpoint(playerid);
}
return 1;
}
Quand je touche le 1er checkPoint ca me dit de toucher l'autre pour prend fin au race
ce qui est normal mais arriver au 2eme ca m'affiche le message du 1er check et ne désactive pas le 2eme CheckPoint
Je sait pas trop si vous avez compris
moi meme j'ai assez de mal sur les CheckPoints
Pourtant pourla Banque ca marche tres bien ya que sur mes races que ca bug
Avez vous une petit idées s'il vous plait ?
Merci
Cordialement,
-
Il faut que tu mettes un compteur de checkpoints.
Quand le joueur commence la course, ce compteur est à 0.
Tu mets en place le 1° CP.
Dans la callback OnPlayerEnterRaceCheckpoint :
Si le compteur est à 0, tu mets en place le 2° CP et tu incrémentes le compteur
Si le compteur est à 1, tu mets en place le 3° CP et tu incrémentes le compteur
...
Si le compteur est égal au nombre de CP de ta course -1 , la course est finie.
++
Syg
-
Salut,
Le compteur marche tres bien
mon problème vient juste des messages qui s'affiche
Exemple de mon code
Je touche le 1er CheckPoint le compteur s'arrete et redemarre pour le prochaine checkpoint
Pour mon problème c'est que quand je touche le 1er CheckPoint mon message s'affiche bien du 1er Check
mais une fois que j'arrive sur le 2eme check il s'etein pas et me donne le message du 1er checkpoint au lieu du 2eme
Tu vois se que je veux dire ?
Merci pour ton aide
Cordialement,
-
Salut,
Désolé pour le double sujet mais je bloque vraiment sur le script
Vous avez pas une petite idée s'il vous plait ?
Merci a vous
-
La solution est dans mon premier post.
Dans la tienne, tu fais des test sur check1 check2 et check3 mais ces variables ne correspondent à rien.
Un joueur ne peut avoir QU'UN SEUL checkpoint à la fois (il n'a d'ailleurs même pas de numéro je pense).
Ta solution ressemble à un bout de code qu'on utilise pour les pickups (où chaque pickup à effectivement un numéro différent) mais elle ne peut pas marcher pour les CP pour la raison citée ci-dessus..
Donc dans ton cas, quel que soit le checkpoint affiché (1°, 2°, ... , n°), tu passeras toujours par le premier test sur check1 et donc tu afficheras toujours le même message. C'est donc à toi de savoir par quel CP passe le joueur (c'est le but du compteur dont je parle dans mon premier post).
Si tu n'a pas compris la solution que je donne de mon post précédent, dis le moi, j'essaierais d'être plus clair.
++
Syg