GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: dixon 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é :
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 :
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 ...
-
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
-
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 !!!!
-
- 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
-
http://lesfractales.nomades.ch/mandelbrot1.html (http://lesfractales.nomades.ch/mandelbrot1.html) <=fractale de Mandelbrot
http://www.linternaute.com/femmes/prenoms/prenom/1007/julia/ (http://www.linternaute.com/femmes/prenoms/prenom/1007/julia/) <= julia :lmao
-
Benoit Mandelbort et Gaston Julia sont des mathématiciens -> http://lesfractales.nomades.ch (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 (http://lesfractales.nomades.ch/julia1.html)
++
Syg
-
ah je comprend mieu le theoreme c' est du niveau que je quelifirais de trop trop trop haut pour moi lol
-
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