Bonjour,
Pour commencer, tu n'es pas obligé d'utiliser des variables globales pour ce que tu souhaites faire. Les variables créées dans une callback sont locales et ne sont pas réutilisées (à moins d'être statiques).
Ensuite, le quatrième paramètre de la fonction strcmp() est la taille de la chaîne à comparer. Tu utilises une taille de 10, or 4 semble plus adéquat pour cette commande (car /nrg est composée de quatre caractères, en comptant le /).
Voici donc une version corrigée de la callback. Je code ça directement sur le forum, il se peut donc que ça ne compile pas du premier coup (ne m'en veux pas !).
// Lorsqu'un joueur utilise une commande
public OnPlayerCommandText(playerid, cmdtext[])
{
// Si la commande utilisée correspond à "/nrg"
if (strcmp("/nrg", cmdtext, true, 4) == 0)
{
// On crée les variables locales nécessaires à la commande
new fPosX = 0.0, fPosY = 0.0, fPosZ = 0.0, fPosAngle = 0.0;
new iVehicleID = 0;
// On récupère les informations nécessaires (positions X, Y et Z, puis l'angle)
GetPlayerPos(playerid, fPosX, fPosY, fPosZ);
GetPlayerFacingAngle(playerid, fPosAngle);
// On crée le véhicule et on récupère son ID, puis on place le joueur dedans
iVehicleID = CreateVehicle(522, fPosX, fPosY, fPosZ, fPosAngle, 0, 1, 60);
PutPlayerInVehicle(playerid, iVehicleID, 0);
// On retourne "true" (1) pour indiquer que les instructions sont terminées
return 1;
}
// On retourne "false" (0) si la commande est différente de "/nrg" ou des autres commandes proposées
return 0;
}
En espérant t'avoir aidé,
Bonne journée.