Salut,
nous arrivons maintenant à l'étape où il faut expliqué à ce très cher Rickersx à quoi correspond ce code:
if(strcmp(cmd, "/bmx", true) == 0)
La fonction strcmp permet de "comparé" deux string, en réalité, elle retourne une expression représentant la différence entre les deux string, ainsi s'ils sont pareils, la fonction retourne 0, les autres cas sont presque ou jamais utilisé sur sa-mp
if (GetPlayerState(playerid) == 2)
Ici, on vérifie dans quel état est le joueur (non pas sa vie mais son statut, s'il conduit, est passager, à pied etc....), dans le cas précédant, le 2 correspond au statut de conducteur, mais comment le retenir? Apprend plutôt les constantes suivantes:
#define PLAYER_STATE_NONE
#define PLAYER_STATE_ONFOOT
#define PLAYER_STATE_DRIVER
#define PLAYER_STATE_PASSENGER
#define PLAYER_STATE_WASTED
#define PLAYER_STATE_SPAWNED
#define PLAYER_STATE_SPECTATING
Ensuite, on sait que le joueur conduit un véhicule, que faire? Eh bien on lui apporte son véhicule!
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, Lacoordonnées ...);
On a donc récupérer le ID (numéro d'identification) de son véhicule dans une variable quelconque afin d'en changé la position, certains diront: il y a moyen d'optimiser ce code.
Effectivement, On peut optimiser ce code en employant directement le GetPlayerVehicleID dans le SetVehiclePos par contre, si plus tard on ajoute du code (pour en changer l'angle par exemple) il sera mieux d'utiliser une variable, dans le cas contraire:
SetVehiclePos(GetPlayerVehicleID(playerid), Lacoordonnées ...);
Dans le cas contraire(else), le joueur ne conduit donc pas un véhicule, ne téléportons que le joueur, puisque le véhicule n'est pas vraiment à lui...
SetPlayerPos(playerid, coordonnées..);
Donc ce code sert à modifier la position d'un joueur, on peut l'utiliser pour n'importe quel joueur, y placer un paramètre constant aurait également été possible
Enfin, on envoie un message de confirmation au joueur, suivit d'un envoie dans l'intérieur 1 (recommandé si vos joueurs peuvent aller dans des intérieurs, et en général, ils le peuvent) il y avait également une variable qui ne t'amènerais qu'à avoir des erreurs, je l'ai donc ici enlevée.
SendClientMessage(playerid, COLOR_GRAD1, " Te voila maintenant a : tonnomdeteleportation");
SetPlayerInterior(playerid,0);
return 1;
en espérant avoir fait comprendre quelques choses à certains d'entre vous...
++Sim++