• 04 Juin 2026, 14:05:44


Auteur Sujet: [RESOLUT]Commande qui change le model d'un véhicule IG  (Lu 1264 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Bonjour à tous, j'ai créé ceci

if(strcmp(cmd, "/amodel", true) == 0)
{
   if(IsPlayerConnected(playerid))
  {
new Float:x,Float:y,Float:z;
new Float:a;
GetPlayerName(playerid, playername, sizeof(playername));
GetVehiclePos(carid, x, y, z);
//GetPlayerFacingAngle(playerid, a);
GetVehicleZAngle(carid, a);
if(PlayerInfo[playerid][pAdmin] >= 1338)
{
   if(IsAnOwnableCar(carid))
{
   tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /amodel [model]");
return 1;
}
moneys = strval(tmp);
if(moneys < 400 || moneys > 603)
{
SendClientMessage(playerid, COLOR_GRAD1, "Modele de véhicule invalide, il doit etre compris entre 400 et 603");
return 1;
}
CarInfo[carid][cModel] = moneys;
format(string, sizeof(string), "Vous avez le modele du véhicule %d, son modele est désormais le %s", carid, PlayerVehicle[carid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "AdmCmd: %s le modele du véhicule %d, son modele est désormais le %s.", playername, carid, PlayerVehicle[carid]);
ABroadCast(COLOR_YELLOW,string,1);
    DestroyVehicle(carid);
    CreateVehicle(moneys,CarInfo[carid][cLocationx],CarInfo[carid][cLocationy],CarInfo[carid][cLocationz]+1.0,CarInfo[carid][cAngle],CarInfo[carid][cColorOne],CarInfo[carid][cColorTwo],60000);
    OnPropUpdate();
OnPlayerUpdate(playerid);
return 1;
}
else
{
    SendClientMessage(playerid, COLOR_GREY, "Ce véhicule ne peut pas étre changé de modele!");
    return 1;
}
}
else
{
   SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas autorisé a utilisé cette commande!");
   return 1;
}
}
return 1;
}

Le soucis s'est que quand je fait /amodel 500 ou un nombre entre 400 et 603, il me met serveur unknow command, je pense que ça vien de CarInfo[carid][cModel] = moneys; Mais je ne vois pas ce qui est faux. Merci de votre aide
« Modifié: 19 Mai 2010, 13:09:37 par scott1 »
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande qui change le model d'un véhicule IG
« Réponse #1 le: 08 Mai 2010, 17:21:15 »
Ceci arrive lorsque qu'une ligne du code qui est exécuté merde.
Pour déterminé quelle ligne pose problème, la solution la plus simple est de mettre des printf pour savoir où le script s'arrête.

Dans ton cas, le problème se situe dans le bout de code suivant :
CarInfo[carid][cModel] = moneys;
format(string, sizeof(string), "Vous avez le modele du véhicule %d, son modele est désormais le %s", carid, PlayerVehicle[carid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "AdmCmd: %s le modele du véhicule %d, son modele est désormais le %s.", playername, carid, PlayerVehicle[carid]);
ABroadCast(COLOR_YELLOW,string,1);
    DestroyVehicle(carid);
    CreateVehicle(moneys,CarInfo[carid][cLocationx],CarInfo[carid][cLocationy],CarInfo[carid][cLocationz]+1.0,CarInfo[carid][cAngle],CarInfo[carid][cColorOne],CarInfo[carid][cColorTwo],60000);
    OnPropUpdate();
OnPlayerUpdate(playerid);
return 1;

Il suffit que tu intercales de printf entre les lignes, que tu exécutes le code puis que tu regardes dans le log du serveur l'endroit où le bout de script s'est arrêté.
Ex :
CarInfo[carid][cModel] = moneys;
printf ("Avant format 1");
format(string, sizeof(string), "Vous avez le modele du véhicule %d, son modele est désormais le %s", carid, PlayerVehicle[carid]);
printf ("Avant SendClientMessage");
SendClientMessage(playerid, COLOR_YELLOW, string);
printf ("Avant format 2");
format(string, sizeof(string), "AdmCmd: %s le modele du véhicule %d, son modele est désormais le %s.", playername, carid, PlayerVehicle[carid]);
...

++
Syg
Courtesy of GtaManiac

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Commande qui change le model d'un véhicule IG
« Réponse #2 le: 18 Mai 2010, 01:24:51 »
Voila Syg j'ai suivit ton conseil e s'est bel et bien cette ligne qui foire

CarInfo[carid][cModel] = moneys;
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande qui change le model d'un véhicule IG
« Réponse #3 le: 19 Mai 2010, 10:56:44 »
Oui, pas étonnant, carid n'est pas initialisé (même si les variables sont normalement initialisées à 0 mais j'ai dit qu'il ne fallait pas compter dessus).
Il me semble qu'il manque un GetVehicleId au début de ta commande.

En tout cas, si c'est la ligne que tu montres qui plante, trace les valeurs de carid et cModel dans la log pour voir si elles ne sont pas hors des limites du tableau CarInfo.

++
Syg
Courtesy of GtaManiac

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Commande qui change le model d'un véhicule IG
« Réponse #4 le: 19 Mai 2010, 13:09:22 »
Bisart avec les print s'etait la ligne que je disait qui merdais, mais en fait s'etait les sendclientmessage
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Re : Commande qui change le model d'un véhicule IG
« Réponse #5 le: 19 Mai 2010, 23:29:31 »
Salut,

Oui, pas étonnant, carid n'est pas initialisé (même si les variables sont normalement initialisées à 0 mais j'ai dit qu'il ne fallait pas compter dessus).
Il me semble qu'il manque un GetVehicleId au début de ta commande.

En tout cas, si c'est la ligne que tu montres qui plante, trace les valeurs de carid et cModel dans la log pour voir si elles ne sont pas hors des limites du tableau CarInfo.

++
Syg

mais dans ce cas ça devrait bloquer au IsAnOwnableCar si la fonction est faite correctement....
un ID qui ne se retrouve pas dans le tableau devrait être bloqué dans la fonction...
bien sur il est possible que la fonction ne suive pas la logique

++Sim++





Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Re : Re : Commande qui change le model d'un véhicule IG
« Réponse #6 le: 20 Mai 2010, 00:03:56 »
mais dans ce cas ça devrait bloquer au IsAnOwnableCar si la fonction est faite correctement....
un ID qui ne se retrouve pas dans le tableau devrait être bloqué dans la fonction...
bien sur il est possible que la fonction ne suive pas la logique
[/quote]

C'est un larp ^^

La logique n'est pas le mot d'ordre dans ce " GM "



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog