GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Sismix84 le 15 Octobre 2007, 19:19:52
-
bonsoir,
comme j'ai fait une zone DM où ont y rentre par le biais d'une téléportation, je voudrais pour y sortir de la même sorte mais faire en sorte que le personnage revienne a son tout premier spawn (quand il se connecte) pour chaqun des skins et je ne sais pas faire le SetPlayerPos.
Merci de m'aider svp.
-
Lu
Tu cree uen teleportation /back
exemple si la team groove est teleporter a l'airport de ls tu fai un /back qui teleporte a l'airport de ls pour la team groove
-
en fait c'est que j'ai 18 skins et j'ai pas trop envis de faire une commande pour chaque skins, j'aimerais en faire une seul.
-
Il existe une fonction qui s'appelle SpawnPlayer et qui sert justememt à faire ce que tu veux faire.
Attention toutefois, si le joueur est dans un intérieur, il faut le remettre dans l'intérieur 0 avant de forcer son spawn.
Voilà :
if (strcmp(cmdtext, "/back", true) == 0)
{
SetPlayerInterior (playerid, 0);
SpawnPlayer (playerid);
return 1;
}
++
Syg
-
merci Syg,e ne connaissait pas le SpawnPlayer, tu vient de m'aprendre un truc, merci
-
petit problème avec ta commande, si je suis dans une voiture la caméra reste sur la voiture. comment doit-je faire pour réparer ce bug ?
-
Tu est dans une voiture et la cam reste decu ?? Quand tu t'ais téléporté ?? Ou tu veu téléporter un caisse en même temps ??
-
Puisque tu veux que ton joueur soit re-spawné, tu le fais sortir de sa voiture juste avant :
if (strcmp(cmdtext, "/back", true) == 0)
{
RemovePlayerFromVehicle (playerid);
SetPlayerInterior (playerid, 0);
SpawnPlayer (playerid);
return 1;
}
Si tu es perfectionniste, tu peux tester si le joueur est bien dans un véhicule avant d'appeler RemovePlayerFromVehicle au moyen de la fonction IsPlayerInAnyVehicle.
Mais le RemovePlayerFromVehicle peut être fait même si le joueur est à pied.
++
Syg
-
Ouais parsque ça fais idiot si on est dans un AT-400 lol
-
C'était pas ça le problème, c'est que la caméra ne suit pas, elle reste sur le véhicule quand tu "respawnes" le joueur.
Mais bon, dans son cas, le véhicule n'est pas nécessaire donc on le vire.
++
Syg
-
Syg, donc avec la deuxième commande, le personnage sort de la voiture avant d'être téléporter ?
-
Oui, comme son nom l'indique, RemovePlayerFromVehicle enlève le joueur du véhicule dans lequel il se trouve (conducteur ou passager).
++
Syg
-
ok merci Syg
-
J'ai essayé et ça marche, mais quand le joueur et ejecter du vehicule, la camera reste quand même sur le vehicule
Comment faire?
-
Moi je préfère de créer le point de téléportation pour le player et la un autre a coter du player pour la voiture mes la ses impossible car la téléportation du skin ses sans la voiture la ses pas facile.
-
Effectivement, ça ne marche pas.
C'est du au fait que la fonction RemovePlayerFromVehicle n'ejecte pas le joueur du véhicule mais le force à sortir normallement. Et ceci prend un plus d'une seconde et demie.
Donc quand on fait le SpawnPlayer, le joueur est encore en train de sortir de son véhicule et ça merde. Il faut attendre que l'animation de sortie du véhicule soit finie pour pouvoir "spawner" le joueur.
Il existe une solution, que j'utilise souvent quand j'ai des problèmes chiants : Reporter l'appel à une fonction au moyen d'un timer.
Voici ce qu'il faut faire pour que ça marche :
http://pastebin.gtaonline.fr/pastebin.php?show=132
++
Syg