GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: mistery031 le 19 Juin 2009, 17:46:56

Titre: /veh réglage
Posté par: mistery031 le 19 Juin 2009, 17:46:56
Bonjour . Je voulais savoir Si on peut m'aider pour réglé une commande qui est très importante pour mon serveur il s'agit de la commande /veh pour faire apparaitre des véhicule devant soie . La commande marche mais pour que sa marche il faut mettre /veh L'id de la voirture et color1 & color2 or moi j'aimerais faire plus court /veh "le nom de la voiture .
       
Voila la commande.


//Veh
   }
    if(strcmp(cmd, "/veh", true) == 0)
   {
   if(IsPlayerConnected(playerid))

   tmp = strtok(cmdtext, idx);
   if(!strlen(tmp))
   {
   SendClientMessage(playerid, COLOR_WHITE,"USAGE: /veh [carid] [color1] [color2]");
   return 1;
   }
   new car;
   car = strval(tmp);
   if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "Vehicule compris entre 400 et 611 !"); return 1; }
   tmp = strtok(cmdtext, idx);
   if(!strlen(tmp))
   {
   SendClientMessage(playerid, COLOR_WHITE,"USAGE: /veh [carid] [color1] [color2]");
   return 1;
   }
   new color1;
   color1 = strval(tmp);
   if(color1 < 0 || color1 > 300) { SendClientMessage(playerid, COLOR_WHITE,"couleur comprises entre 0 et 300!"); return 1; }
   tmp = strtok(cmdtext, idx);
   if(!strlen(tmp))
   {
   SendClientMessage(playerid, COLOR_WHITE,"USAGE: /veh [carid] [color1] [color2]");
   return 1;
   }
   new color2;
   color2 = strval(tmp);
   if(color2 < 0 || color2 > 300) { SendClientMessage(playerid, COLOR_WHITE,"Color Number can't be below 0 or above 300!"); return 1; }
   new Float:X,Float:Y,Float:Z;
   GetPlayerPos(playerid, X,Y,Z);
   new carid = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 83);
   format(string, sizeof(string), "   Vehicule %d creer.", carid);
   SendClientMessage(playerid, COLOR_WHITE, string);
   return 1;
   }
Titre: Re : /veh réglage
Posté par: GTK_Xt4Zii3 le 19 Juin 2009, 18:04:35
Il y'a moyen mais si jamais tu trouve pas tu peux laisser comme c'est ça n'est pas ci dramatique que ça ^^ Retiens juste les id de caisse que tu préfère ...
Titre: Re : /veh réglage
Posté par: MrFredo le 19 Juin 2009, 18:10:33
Va voir dans le topic des script utiles dans le showroom si mes souvenir sont bon j'ai poster une fonction qui retourne l'id du vehicule selon le nom (ou une partie du nom)
Titre: Re : /veh réglage
Posté par: S!m le 20 Juin 2009, 00:37:12
Salut,

et je me suis forcé à en faire une dans mon script d'admin pour rien? arg...
si tu veut la commande /newveh (ligne 5984) de ce script accepte le nom et l'ID du véhicule (mais pas les couleurs) (voir signature)

++Sim++
Titre: Re : /veh réglage
Posté par: Matrix-boom le 21 Juin 2009, 02:42:39
Salut  :)

Euh bon voila j'ai ce que tu veux déjà crée  :-[

if(strcmp(cmd, "/veh", true) == 0)
{
new tmp[256];
new tmp2[256];
new string[256];
new color1;
new color2;
tmp = strtok(cmdtext, idx);
tmp2 = strtok(cmdtext, idx);
if(!strlen(tmp) && IsPlayerAdmin(playerid) == 1)
{
SendClientMessage(playerid, vert, "USAGE: /veh [Color1] [Color2]");
return 1;
}
color1 = strval(tmp);
color2 = strval(tmp2);
if(IsPlayerAdmin(playerid) == 1)
{
format(string, sizeof(string), "Tes nouvelles couleurs sont: #1 = %d, #2 = %d", color1, color2);
SendClientMessage(playerid, jaune, string);
ChangeVehicleColor(GetPlayerVehicleID(playerid), color1, color2);
return 1;
}
else
{
SendClientMessage(playerid, rouge, "Tu n'es pas admin!");
return 1;
}
}

Mais ça si t'es dans la véhicule mais pour faire avec les ID je vais Essayé d'en Scripté pour toi  :king

Merci !

Amicalement Matrix  ???
Titre: Re : /veh réglage
Posté par: S!m le 21 Juin 2009, 14:28:46
Salut,

ce code n'as comme lien que les couleurs des véhicules, surtout qu'après relecture du poste il semble vouloir éliminer les paramètres de couleur....

sinon, matrix-bloom tu devrais lire ceci (http://forum.sa-mp.com/index.php?topic=78026.0) même si c'est en anglais car ton code comporte une grande quantité de variables que tu pourrais aisément réduire

regarde plutôt le code de mon script d'admin:

dcmd_newveh(playerid, params[])
{
    if(GetAdminLevel(playerid) >= LEVEL_PROPRIO)
    {
        if(!params[0])
        {
            SendTypoMessage(playerid, "/newveh [modèle]");
            return 1;
        }
        new vmodel;
        if(IsNumeric(params))
        {
vmodel = strval(params);
        }
        else
        {
            vmodel = GetVehicleModelByName(params);
        }
        if(IsValidModel(vmodel))
        {
            new Float:X, Float:Y, Float:Z, Float:angle;
            GetPlayerPos(playerid, X, Y, Z);
            new vehid;
if((vehid = GetPlayerVehicleID(playerid)))
{
    GetVehicleZAngle(vehid, angle);
}
else
{
    GetPlayerFacingAngle(playerid, angle);
}
            GetPosInFrontOfAngle(X, Y, angle, 5.0);
            vehid = CreateVehicle(vmodel, X, Y, Z, angle+90, -1, -1, 120);
            new tmp[128];
            format(tmp, sizeof(tmp), TAG"Vehicule modèle %s (ID: %d) créé.", GetVehicleName(vmodel), vehid);
print(tmp);
            SendAInfoMessage(playerid, tmp);
        }
        else
        {
            SendErrorMessage(playerid, TAG"Modèle invalide!");
}
    }
    else
    {
        SendClientMessage(playerid, COLOR_RED, "Vous n'êtes pas admin!");
    }
    return 1;
}

regarde bien le script afin de t'assurer que tu as toutes les données nécessaire (le tableau contenant les noms de véhicules etc...)

++Sim++
Titre: Re : /veh réglage
Posté par: Atlas le 21 Juin 2009, 14:44:53
Re  8)

Bon je pensais qu'il veux une commande pour changé des couleur

Amicalement Atlas  ;)
Titre: Re : /veh réglage
Posté par: mistery031 le 09 Juillet 2009, 16:09:25
Mercii Pour Vous Aide !!!!!Non Je Ve Plus Choisir La Couleur Et Svp La Derniere Comande Comment On Fait Pour Ke Ce Soit Les Joueur Ki L'utilise?
Titre: Re : /veh réglage
Posté par: Atlas le 09 Juillet 2009, 17:28:45
Re  :)

Voila pour les Administrateurs :  

if(strcmp(cmd, "/veh", true) == 0)
{
if(IsPlayerConnected(playerid))
    {
if(IsPlayerAdmin(playerid) == 1)
    {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, blanc, "Tapez /veh [Vehicle Model] [Couleur 1] [Couleur 2]");
return 1;
}
new VehicleModel;
VehicleModel = strval(tmp);
if(VehicleModel < 400 || VehicleModel > 611)
{
SendClientMessage(playerid, blanc, "Modèle du véhicule doit être entre 400 et 611 !");
  return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, blanc, "Tapez /veh [Vehicle Model] [Couleur 1] [Couleur 2]");
return 1;
}
new Color1;
Color1 = strval(tmp);
if(Color1 < 0 || Color1 > 126)
{
SendClientMessage(playerid, blanc, "Couleurs du véhicule doit être entre 0 et 126 ! (Couleur1)");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, blanc, "Tapez /veh [Vehicle Model] [Couleur 1] [Couleur 2]");
return 1;
}
new Color2;
Color2 = strval(tmp);
if(Color2 < 0 || Color2 > 126)
{
SendClientMessage(playerid, blanc, "Couleurs du véhicule doit être entre 0 et 126 ! (Couleur2)");
return 1;
}
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid, X,Y,Z);
CreateVehicle(VehicleModel, X,Y,Z+5, 0.0, Color1, Color2, 300000);//Spawn apres 5 Minutes.
SendClientMessage(playerid, jaune, "Vehicle Spawned.");
}
else
{
SendClientMessage(playerid, rouge, "Vous n'etes pas un Admin !");
return 1;
        }
}
return 1;
}

Et Voila pour les joueurs :[/color][/u]

if(strcmp(cmd, "/veh", true) == 0)
{
if(IsPlayerConnected(playerid))
    {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, blanc, "Tapez /veh [Vehicle Model] [Couleur 1] [Couleur 2]");
return 1;
}
new VehicleModel;
VehicleModel = strval(tmp);
if(VehicleModel < 400 || VehicleModel > 611)
{
SendClientMessage(playerid, blanc, "Modèle du véhicule doit être entre 400 et 611 !");
  return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, blanc, "Tapez /veh [Vehicle Model] [Couleur 1] [Couleur 2]");
return 1;
}
new Color1;
Color1 = strval(tmp);
if(Color1 < 0 || Color1 > 126)
{
SendClientMessage(playerid, blanc, "Couleurs du véhicule doit être entre 0 et 126 ! (Couleur1)");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, blanc, "Tapez /veh [Vehicle Model] [Couleur 1] [Couleur 2]");
return 1;
}
new Color2;
Color2 = strval(tmp);
if(Color2 < 0 || Color2 > 126)
{
SendClientMessage(playerid, blanc, "Couleurs du véhicule doit être entre 0 et 126 ! (Couleur2)");
return 1;
}
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid, X,Y,Z);
CreateVehicle(VehicleModel, X,Y,Z+5, 0.0, Color1, Color2, 300000);//Spawn apres 5 Minutes.
SendClientMessage(playerid, jaune, "Vehicle Spawned.");
}
return 1;
}

Atlas  ;)
Titre: Re : /veh réglage
Posté par: ghm94 le 09 Juillet 2009, 17:41:36
J'ai pas regarder ton code Atlas mais juste pour dire que c'est pas obligatoire de mettre :

if(IsPlayerAdmin(playerid) == 1)
tu peut mettre directement :

if(IsPlayerAdmin(playerid))
Mais bon les deux marche et puis pas il ne veut pas que l'ont puisse choisir les couleurs donc ton code ne correspond pas a ce qu'il demande.
Titre: Re : /veh réglage
Posté par: /cartman le 09 Juillet 2009, 19:54:42
il est clair que si tu est admin tu aura 2 vehicule spawner  :bangin
Titre: Re : /veh réglage
Posté par: mistery031 le 09 Juillet 2009, 22:57:05
Mercii Pour Cette Réponse!!!!!!! C Possible D'avoir La Commande Sans Avoir A Taper La Couleur Svp C'est Tres Urgent (Exemple : Pour Le Momment Faut Que Je Face /veh 411[Pour LA Infernus] 2 4 Alors Que Moi Je Ve Juste Faire /veh Infernus).
Titre: Re : /veh réglage
Posté par: ghm94 le 09 Juillet 2009, 23:12:36
Il me semble que ici on ne donne pas de code mais on aide alors si ta des questions pose les mais ici on fait pas les codes pour les autres.
Titre: Re : /veh réglage
Posté par: mistery031 le 10 Juillet 2009, 15:50:19
Ouii Je Sais Maiis Je Ne N'y Arrive Pas Car Quand J'enleve LA Couleur Biin La Cmd Marche lus
Titre: Re : /veh réglage
Posté par: S!m le 11 Juillet 2009, 16:30:31
Salut,

arrête les majuscules à chaque mot, pour les couleurs, la commande que j'ai donné ne les demande pas, inspire toi-s'en

++Sim++