• 04 Mai 2025, 03:13:47


Auteur Sujet: Commande /vcolor  (Lu 1035 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne [DaD]Kizo

  • *
  • Nouveau
  • Messages: 15
    • Voir le profil
Commande /vcolor
« le: 28 Avril 2009, 00:02:42 »
Bonjour à tous :)

Voila donc je vous explique, je débute en script (on est tous passé par la :P) et j'essaie de faire mes commandes (tout seul si j'y arrive :) ) mais la je bloque :( .

Donc j'ai déja essayer en faisant ça:

   //commande /vcolor
if(strcmp(cmdtext,"/vcolor", true) == 0)
{
   SetVehiclePos(GetPlayerVehicleID(playerid);
   if(IsPlayerInAnyVehicle(playerid));
   {
      ChangeVehicleColor(vehicleid, color1, color2);
}
return 1;
}

Mais je sais pas du tout quoi faire ;D

Les erreurs:

D:\GTA San Andreas\GTA San Andreas\gamemodes\DaDtest.pwn(540) : error 001: expected token: ",", but found ";"
D:\GTA San Andreas\GTA San Andreas\gamemodes\DaDtest.pwn(541) : error 036: empty statement
D:\GTA San Andreas\GTA San Andreas\gamemodes\DaDtest.pwn(543) : error 017: undefined symbol "vehicleid"
D:\GTA San Andreas\GTA San Andreas\gamemodes\DaDtest.pwn(545) : warning 217: loose indentation
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


3 Errors.

Un peu d'aide de votre serait super gentil :D

Je vous remercie d'avance. :P

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Commande /vcolor
« Réponse #1 le: 28 Avril 2009, 01:36:31 »
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++





Hors ligne Dark4ng3L

  • *
  • Bandit
  • Messages: 480
    • Voir le profil
    • DecaWeb.ch - L'informatique comme vous ne l'avez jamais vu!
Re : Re : Commande /vcolor
« Réponse #2 le: 28 Avril 2009, 11:09:51 »
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)
Lien mort ....
++
[L2K]lugia
Cordialement Dark4ng3L aussi connu sous le nom de Mathias_Martinez, Matthias_Angelo et lugia !




Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : Commande /vcolor
« Réponse #3 le: 28 Avril 2009, 12:29:04 »
Je pense que Sim voulait te donner ce lien : http://www.gtaonline.fr/forums/index.php/topic,2568.0.html

PS : Trouvé en 10 seconde avec la fonction rechercher.

++
MrT®

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne [DaD]Kizo

  • *
  • Nouveau
  • Messages: 15
    • Voir le profil
Re : Commande /vcolor
« Réponse #4 le: 28 Avril 2009, 18:12:42 »
Merci a toi Sim,

J'ai essayer de faire comme tu as fait, j'ai essayé de définir idx (il me le demandait) en faisant cela:

new idx = 0;

Mais quand j'essaye la commande sur le jeux, la voiture devient noir en faisant simplement /vcolor et en essayant une couleur après, la commande ne marche pas. Est-ce que je doit déterminer les couleurs?

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Commande /vcolor
« Réponse #5 le: 28 Avril 2009, 19:02:15 »
Salut,

désolé, j'ai écrit le [url.... sans aller chercher l'adresse voulant aller la chercher après avoir tout écrit mais j'ai malheureusement oublié ... ::)

sinon MrT, je pensais plutôt à Celui-ci

++Sim++