Salut,
tu devrais commencer par une meilleure compréhension de l'utilisation des fonctions, si tu clique sur le nom de la fonction dans la liste à droite (dans pawno), les paramètres de cette fonction apparaissent au bas de pawno, ainsi tu peut deviner le nombre de paramètre que requiert une fonction et connaitre leur correspondance, quelques exemples:
Playerid - ID (numéro d'identification) du joueur auquel on applique une fonction (de façon générale)
vehicleid - ID du véhicule auquel on applique la fonction (de façon générale)
modelid - numéro de modèle d'un véhicule ou objet (en général)
...
Ainsi, pour la fonction
ChangeVehicleColor(vehicleid, color1, color2); tu peut deviner la correspodance de chaque paramètre:
vehicleid - le véhicule auquel nous changeons la couleur
color1 - première couleur (principale)
color2 - Deuxième couleur (secondaire, parfois non-affichée (dépend du modèle du véhicule))
par contre tu doit mettre une valeur dans ces paramètre (ici ce sont tous des entiers), comme tes vehicleid, color1, color2 ne sont pas déclarés, ils n'existent pas et correspondent à absolument rien
ce qui veut dire que tu doit :
- tester si le joueur est dans un véhicule (IsPlayerInAnyVehicle)
- récupérer le ID de ce véhicule (GetPlayerVehicleID)
- récupérer les numéro de couleurs entrés par le joueur (que je n'expliquerai pas, un peu trop long, de plus que le sujet a été à peu près abordé il y a peu :
ICI)
donc on arrive rapidement à ce code:
if(IsPlayerInAnyVehicle(playerid))//test si le joueur est en véhicule, il est important de noter l'absence de ; à la fin d'un if, qui est plutôt suivit d'une accolade d'ouverture {
{
new vehicleid = GetPlayerVehicleID(playerid);//création de la variable 'vehicleid' + récupération du ID du véhicule qui est stocké dans la variable
ChangeVehicleColor(vehicleid, color1, color2);//on change la couleur du véhicule, malheureusement les couleurs n'ont pas été récupérés
}
Pour récupérer les variables:
en général, on a tendance à utiliser un strtok (fonction qui permet de récupérer une partie d'un basé sur un caractère, généralement un espace) au début de la callback OnPlayerCommandText puis , dans ce cas, deux strtok dans la commande, ce qui donne a peu près ceci:
if(IsPlayerInAnyVehicle(playerid))//test si le joueur est en véhicule, il est important de noter l'abscence de ; à la fin d'un if, qui est plutôt suivit d'une accolade d'ouverture {
{
new vehicleid = GetPlayerVehicleID(playerid);//création de la variable 'vehicleid' + récupération du ID du véhicule qui est stocké dans la variable
new color1 = strval(strtok(cmdtext, idx));//idx est une variable déclaré au début de la callback, strval permet de récupérer la valeur du texte séparé via strtok, puis on stock le tout dans la nouvelle variable
new color2 = strval(strtok(cmdtext, idx));//il est à remarquer que l'on utilise strtok de la même façon même si l'on désire récupérer une partie différente du string, ceci causé par le changement de valeur de idx (voir topic indiqué)
ChangeVehicleColor(vehicleid, color1, color2);//on change la couleur du véhicule, couleurs maintenant récupérées
}
ainsi tu as maintenant un bout de code qui devrait normalement fonctionner, par contre assure toi de bien comprendre sa façon de fonctionner et DE NE PAS TOUT COPIER BÊTEMENT, si tu trouve révoltant l'idée de lire ce texte, pense à ceux qui les écrivent...
++Sim++