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
-
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;
}
-
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 ...
-
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)
-
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++
-
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 ???
-
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++
-
Re 8)
Bon je pensais qu'il veux une commande pour changé des couleur
Amicalement Atlas ;)
-
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?
-
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 ;)
-
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.
-
il est clair que si tu est admin tu aura 2 vehicule spawner :bangin
-
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).
-
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.
-
Ouii Je Sais Maiis Je Ne N'y Arrive Pas Car Quand J'enleve LA Couleur Biin La Cmd Marche lus
-
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++