Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254730 Messages dans 14037 Fils de discussion- par 6623 Membres - Dernier membre: Magicien

24 Mai 2012 à 15:45:09
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)Probléme checkpoint qui repette deux fois le sendclientmessage ...
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Probléme checkpoint qui repette deux fois le sendclientmessage ...  (Lu 342 fois)
0 Membres et 1 Invité sur ce fil de discussion.
dixon
Hors ligne Hors ligne


Banni
Tueur en série
*

Jamais Je n'abandonnerai

Messages: 163


WWWDiX0NeLiTe360

« le: 02 Novembre 2009 à 21:53:43 »

Salut, tous, voilà je suis en plein action sur mon nouveau GM qui est un RPG mais Zombie ect...

Le probléme c'est quand je met plusieur checkpoint pour chaque commande ex: /livre1 /livre2 /livre3 chaque commande est constitué un checkpoint qui s'affiche quand on tape la commande ainsi de suite, mais le probleme c'est quand on arrive au 3 checkpoit c'est a dire /livre3 il remet le messahe du checkpoint n°2, je sais que la limite est de 2 checkpoint en même temps mais sa ne peut pas être sa qui bloque, voilà le code de comment j'ai procedé :

Code:
if (strcmp(cmd, "/livre", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
if(PlayerToPoint(50,playerid,836.0416,-1101.9009,24.3040)) // Livre Checkpoint
{
                        SendClientMessage(playerid, COLOR_PURPLE, "!---------------------------------------------------------------------------------!");
SendClientMessage(playerid, COLOR_LIGHTRED, "INCONNU dit: Ce livre dit que un virus a devaster toute la ville !");
SendClientMessage(playerid, COLOR_LIGHTRED, "INCONNU dit: Il me fraudrai peut-être plus d'information concernant ce virus  !");
SendClientMessage(playerid, COLOR_LIGHTRED, "INCONNU dit: Avançon plus loin, cette endroit me fiche la trouille  !");
SendClientMessage(playerid, COLOR_PURPLE, "!---------------------------------------------------------------------------------!");
SetPlayerCheckpoint(playerid, 954.4911,-1103.8608,23.8029, 3.0);
}
}
return 1;
}
if (strcmp(cmd, "/livre2", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
if(PlayerToPoint(50,playerid,954.4911,-1103.8608,23.8029)) // Livre Checkpoint2
{
SetPlayerCheckpoint(playerid, 954.4911,-1103.8608,23.8029, 3.0);
            SendClientMessage(playerid, COLOR_YELLOW, "!---------------------------------------------------------------------------------!");
SendClientMessage(playerid, COLOR_RED, "INCONNU dit: C'est un vrai carnage, je me demande ce qui est bien pus ce passé?");
SendClientMessage(playerid, COLOR_RED, "INCONNU dit: J'ai entendu un bruit par là-bas allon voir !");
SendClientMessage(playerid, COLOR_YELLOW, "!---------------------------------------------------------------------------------!");
}
}
return 1;
}
if (strcmp(cmd, "/livre3", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
if(PlayerToPoint(50,playerid,999.7227,-1141.3674,23.8057)) // Livre Checkpoint3
{
            SendClientMessage(playerid, COLOR_PURPLE, "!---------------------------------------------------------------------------------!");
SendClientMessage(playerid, COLOR_LIGHTRED, "INCONNU dit: Cette page me dit comment survivre au Zombie de Type B Armée, il parle peut-être du la chose devant ?");
SendClientMessage(playerid, COLOR_LIGHTRED, "INCONNU dit: Quand vous verez un prototype tirer avec une minigun vous serez contraint de trouvé une autre issue !");
SendClientMessage(playerid, COLOR_LIGHTRED, "INCONNU dit: Va vraiment faloir que je trouve un véhicule, il est pas question de faire demi-tour, où je vais y passé !!!");
SendClientMessage(playerid, COLOR_PURPLE, "!---------------------------------------------------------------------------------!");
   DisablePlayerCheckpoint(playerid);
}
}
return 1;
}

Et le OnPlayerEnterCheckpoint :

Code:
public OnPlayerEnterCheckpoint(playerid)
{
if(PlayerToPoint(50,playerid,836.0416,-1101.9009,24.3040))
    {
    SendClientMessage(playerid, COLOR_RED,"INCONNU dit: Quesque, ce livre par terre ? /livre pour le lire");
    DisablePlayerCheckpoint(playerid);
}
    else if(PlayerToPoint(50,playerid,954.4911,-1103.8608,23.8029))
    {
    SendClientMessage(playerid, COLOR_RED,"INCONNU dit: Je devrai peut être lire la suite ? /livre2 pour la suite"); // c'est ici qu'il me le mais quand on rentre dans checkpoint du /livre3
    DisablePlayerCheckpoint(playerid);
}
else if(PlayerToPoint(50,playerid,999.7227,-1141.3674,23.8057))
{
SendClientMessage(playerid, COLOR_RED,"INCONNU dit: Il y a quelq'un la-bas, Il est bizzare ? /livre3 pour continuer");
DisablePlayerCheckpoint(playerid);
}
return 1;
}

J'ai essayer plusieur solution aucune d'elle ne marche, je vous remercient d'avance pour votre d'aide ...
« Dernière édition: 02 Novembre 2009 à 22:19:26 par dixon » Journalisée

Modern Sensation RP, Du RP comme vous en avez jamais VU
En Construction | Ouverture Beta Bientôt
Syg
Expert programmeur C/C++/PAWN
Hors ligne Hors ligne


Administrateur
GTAOnline Legend
*

The GTAOnline Jesus

Messages: 3760


« Répondre #1 le: 03 Novembre 2009 à 11:32:18 »

Le problème est très simple, tes CP 2 et 3 sont trop près les uns des autres.
Ta fonction PlayerToPoint à un rayon de 50 mètres et il y a surement moins de 50 mètres entre le CP 2 et le CP 3.
Donc quand tu rentres dans le CP 3, le test PlayerToPoint du CP 2 reste valable et il t'affiche le message du CP 2.

Il y a plusieurs solutions (de la plus simple à la plus compliquée) :
- Diminuer le rayon dans le fonction PlayerToPoint (je pense que 6 mètres devrait suffire car tes CP ont un rayon de 3 mètres),
- Ne pas utiliser PlayerToPoint pour détecter où est le joueur mais utiliser une variable,
- Afficher une fractale de Mandelbrot puis sélectionné l'ensemble de Julia le plus proche du joueur pour en déduire le message à afficher.

++
Syg
Journalisée

Courtesy of GtaManiac
dixon
Hors ligne Hors ligne


Banni
Tueur en série
*

Jamais Je n'abandonnerai

Messages: 163


WWWDiX0NeLiTe360

« Répondre #2 le: 03 Novembre 2009 à 12:29:53 »

Salut syg, je pense que je vais me reférer sur la première solution, je pense que c'est la plus facile   happy

Merci, vous pouvez lock  :lock !!!!
Journalisée

Modern Sensation RP, Du RP comme vous en avez jamais VU
En Construction | Ouverture Beta Bientôt
Ssk
Développeur d'Open SA-MP
Hors ligne Hors ligne


Sous-admin
GTAOnline Legend
*

Open-SA-MP - Unlimited Experience

Messages: 3731


WWW



sasuke78200

« Répondre #3 le: 03 Novembre 2009 à 12:41:14 »

Citation
- Afficher une fractale de Mandelbrot puis sélectionné l'ensemble de Julia le plus proche du joueur pour en déduire le message à afficher.


O_o j' ai pas compris ce que c' etait lol
Journalisée






Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #4 le: 03 Novembre 2009 à 13:00:50 »

http://lesfractales.nomades.ch/mandelbrot1.html   <=fractale de Mandelbrot

http://www.linternaute.com/femmes/prenoms/prenom/1007/julia/  <= julia  lmao
Journalisée

Syg
Expert programmeur C/C++/PAWN
Hors ligne Hors ligne


Administrateur
GTAOnline Legend
*

The GTAOnline Jesus

Messages: 3760


« Répondre #5 le: 03 Novembre 2009 à 15:08:36 »

Benoit Mandelbort et Gaston Julia sont des mathématiciens -> http://lesfractales.nomades.ch.

Pour Mandelbrot, le premier lien de cristab est correct.
Pour Julia, sur le même site : http://lesfractales.nomades.ch/julia1.html

++
Syg
Journalisée

Courtesy of GtaManiac
Ssk
Développeur d'Open SA-MP
Hors ligne Hors ligne


Sous-admin
GTAOnline Legend
*

Open-SA-MP - Unlimited Experience

Messages: 3731


WWW



sasuke78200

« Répondre #6 le: 03 Novembre 2009 à 19:17:26 »

ah je comprend mieu le theoreme c' est du niveau que je quelifirais de trop trop trop haut pour moi lol
Journalisée






Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog
Syg
Expert programmeur C/C++/PAWN
Hors ligne Hors ligne


Administrateur
GTAOnline Legend
*

The GTAOnline Jesus

Messages: 3760


« Répondre #7 le: 03 Novembre 2009 à 23:51:21 »

Ma troisième solution reste quand même une connerie, c'était de l'humour.

Même si il est vrai qu'à chaque point de l'ensemble de Mandelbrot il existe un ensemble de Julia.

++
Syg
Journalisée

Courtesy of GtaManiac
Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.204 secondes avec 22 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact