• 05 Juin 2026, 16:10:50


Auteur Sujet: [Tuto] Téléportations  (Lu 1408 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne GzupScripter

  • *
  • Criminel
  • Messages: 28
    • Voir le profil
[Tuto] Téléportations
« le: 31 Juillet 2009, 03:51:29 »
Bonjour a vous,

Aujourd'hui je vais vous montrez comment faire un petit script facile et simple d'utilisation.
Ce script permettra de Téléporter votre personnage & sa voiture ou seulement le personnage (Pour les zones DM).


_____________________ Index _________________________
1- Introduction et Explications
2- Créations du Script (1/2 : TP du Personnage seulement)
3- Créations du Script (2/2 : TP du Personnage et Vehicule)
4- Le Script au complet
_____________________________________________________



Première Partie :
Introduction et Explications
______________________
Nous allons commencez par le nom du joueur avec un new et ensuite analyser et sauvegarder le nom du joueur. Nous allons par la suite , définir quelques autre objets ou id. Après nous allons regarder si le joueur est dans un vehicle , si oui , téléporter le joueur et le vehicules ensemble a la position choisi, et si le joueur n'a pas de vehicule , téléporter le joueur seulement. Et en options nous allons envoyer un message au joueur pour lui dire qu'il a bien été téléporter.


Deuxième Partie :
Créations du Script 1/2
______________________
Je vais faire le script en 2 partie , la premiere partie sera de définir les objets et id et de regarder si le joueur est dans un véhicule ou non.

Dans la public OnPlayerCommandText(playerid, cmdtext[])

Citation de:  Code PAWN
if(strcmp(cmdtext, "/commande", true)==0) // /commande représente la commande utiliser pour exécuter le script.
{
new vehicleid = GetPlayerVehicleID(playerid); // vehicleid va équivaloire le ID du Véhicule du Joueur et on sauvegarde le ID du Véhicule(Pas id comme 411=Infernus)
new State = GetPlayerState(playerid); // on définie State comme étant l'état du joueur (si il est ou non dans une voiture)
if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER) // si le joueur est dans un véhicule et si il est conducteur
{




Troisième Partie :
Créations du Script 2/2
______________________
Dans cette partie du script , nous allons téléporter le véhicules et le joueur au coordonées choisi, et nous allons lui envoyer un message de bienvenue.
Citation de:  Code PAWN
   return SetVehiclePos(vehicleid,2027.6072,1008.1482,10.8203),  // Ici seront les coordonnés de l'endroit ou le véhicule se téléportera
    GameTextForPlayer(playerid, "~w~Teleporter avec Succes!", 5000, 5); // message envoyer aux joueur si il s'est belle et bien téléporter
  }
  SetPlayerPos(playerid,2027.6072,1008.1482,10.8203);  // Ici seront les coordonnés de l'endroit ou le joueur se téléportera
  GameTextForPlayer(playerid, "~w~Teleporter avec Succes!", 5000, 5); // message envoyer aux joueur si il s'est belle et bien téléporter
return 1;
}



Quatrième Partie :
Le Script au complet
______________________
Pour les paresseux qui veulent copier/coller le voici ;)
Citer

if(strcmp(cmdtext, "/commande", true)==0) // /commande représente la commande utiliser pour exécuter le script.
{
new vehicleid = GetPlayerVehicleID(playerid); // vehicleid va équivaloire le ID du Véhicule du Joueur et on sauvegarde le ID du Véhicule(Pas id comme 411=Infernus)
new State = GetPlayerState(playerid); // on définie State comme étant l'état du joueur (si il est ou non dans une voiture)
if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER) // si le joueur est dans un véhicule et si il est conducteur
{
 return SetVehiclePos(vehicleid,2027.6072,1008.1482,10.8203),  // Ici seront les coordonnés de l'endroit ou le véhicule se téléportera
    GameTextForPlayer(playerid, "~w~Teleporter avec Succes!", 5000, 5); // message envoyer aux joueur si il s'est belle et bien téléporter
  }
  SetPlayerPos(playerid,2027.6072,1008.1482,10.8203);  // Ici seront les coordonnés de l'endroit ou le joueur se téléportera
  GameTextForPlayer(playerid, "~w~Teleporter avec Succes!", 5000, 5); // message envoyer aux joueur si il s'est belle et bien téléporter
return 1;
}

Cordialement, GzupScripter / Pure'Exode
Pour les questions , dans la section aide & support !
« Modifié: 01 Août 2009, 18:23:58 par GzupScripter »

Hors ligne Azz45

  • Good Player
  • *
  • Mafioso
  • RolePlay Player
  • Messages: 2809
    • Voir le profil
Re : [Tuto] Téléportations
« Réponse #1 le: 31 Juillet 2009, 04:03:36 »
GG, mais explique a ceux qui savent pas ou placer ce code là, quel callback ?

Sinon, +1

~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~


~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~~•~  ~•~  ~•~  ~•~
Avancement du GM : 3%
~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~
~•Merci Kloken, pour la vidéo lors de mon anniversaire•~

Hors ligne GzupScripter

  • *
  • Criminel
  • Messages: 28
    • Voir le profil
Re : Re : [Tuto] Téléportations
« Réponse #2 le: 31 Juillet 2009, 04:49:42 »
GG, mais explique a ceux qui savent pas ou placer ce code là, quel callback ?

Sinon, +1

Premier post éditer ;)

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : [Tuto] Téléportations
« Réponse #3 le: 31 Juillet 2009, 11:30:21 »
Trois petites remarques concernant la présentation :
1) Il serait bien que tu mettes les commentaires au dessus de la ligne qu'ils concernent et non à la suite.
Ceci évite les lignes trop longues et permet de mieux voir le commentaires (surtout dans un script s'adressant à des débutant).
2) Indente ton script correctement, ceci augmentera la lisibilité.
3) Fais attention à l'orthographe.

Concernant le code en lui-même, il y a une faute gênante :
La ligne
GameTextForPlayer(playerid, "~w~Teleporter avec Succes!", 5000, 5)se trouve après
return SetVehiclePos(vehicleid,2027.6072,1008.1482,10.8203)et devrait normalement produire l'erreur disant qu'elle n'est pas accessible.
Par chance, tu as fait l'erreur de mettre une virgule (,) au lieu d'un point-virgule( ; ) à la fin de
return SetVehiclePos(vehicleid,2027.6072,1008.1482,10.8203)ce qui fait que ton GameTextForPlayer est quand même exécuté.

Soit tu n'as pas fait exprès, soit tu n'as trouvé que cette solution pour que ça fonctionne.
Dans les deux cas, ce n'est absolument pas une bonne habitude.

Je me suis donc permis de corriger ton bout de script (sans correction de l'orthographe) :
if(strcmp(cmdtext, "/commande", true)==0) // /commande représente la commande utiliser pour exécuter le script.
{
   // vehicleid va équivaloire le ID du Véhicule du Joueur et on sauvegarde le ID du Véhicule(Pas id comme 411=Infernus)
   new vehicleid = GetPlayerVehicleID(playerid);

   // on définie State comme étant l'état du joueur (si il est ou non dans une voiture)
   new State = GetPlayerState(playerid);

   // si le joueur est dans un véhicule et si il est conducteur
   if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
   {
      // message envoyer aux joueur si il s'est belle et bien téléporter
      GameTextForPlayer(playerid, "~w~Teleporter avec Succes!", 5000, 5);

      // Ici seront les coordonnés de l'endroit ou le véhicule se téléportera
      return SetVehiclePos(vehicleid,2027.6072,1008.1482,10.8203);
   }

   // Ici seront les coordonnés de l'endroit ou le joueur se téléportera
   SetPlayerPos(playerid,2027.6072,1008.1482,10.8203);

   // message envoyer aux joueur si il s'est belle et bien téléporter
   GameTextForPlayer(playerid, "~w~Teleporter avec Succes!", 5000, 5);
   return 1;
}

++
Syg
Courtesy of GtaManiac

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : [Tuto] Téléportations
« Réponse #4 le: 31 Juillet 2009, 11:38:55 »
le mieux est de regarder ce topic et de comprendre pourquoi la factoristion démontrer par Syg sur le topic et plus simple car on peu ajouter des teleportation en 3 ligne seulement il peu egualement etre plus complet en ajoutant les interieures dans la factorisation mais sa je vous laisse chercher


http://www.gtaonline.fr/forums/index.php/topic,6250.0.html


PS: le code tel quel comporte une erreure se qui je pense est fait expres de la part de syg (il n'aime pas donner des code tout pret :p) afin que vous chercher par vous meme un peu;j'utilise cette methode depuis deja plus de six mois en ayant ajouter les interieures et il me faut 25 secondes pour ajouter une teleportation a vos pawn
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne GzupScripter

  • *
  • Criminel
  • Messages: 28
    • Voir le profil
Re : [Tuto] Téléportations
« Réponse #5 le: 31 Juillet 2009, 13:42:51 »
Merci a toi Syg ;)

Je suis pas de ton niveau x) et je ne savais pas que mon truc avait un erreur car il y avais 0 warnings et 0 erreurs quand je compilais ^^