GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Tutoriels et références SA:MP => Discussion démarrée par: scott1 le 26 Mars 2010, 23:32:54
-
Comme je vois beaucoup de personne qui rame à ajouter un véhicule dans le LARP, voici un petit tuto.
Tout d'abord, vous allez avoir besoin de CTRL + F et de F3.
Premiere méthode:(plus compliquée)
Alors appuiez sur CTRL +F et rechercher CarInfo
Vous devez trouver new CarInfo[268][cInfo];
Vous remplacez le 268 par votre nouveau nombre de véhicule
Exemple je veux ajouter 3 véhicule j'obtiendrais new CarInfo[271][cInfo] ( 268 + 3 = 271 )
Ensuite vous allez chercher "IsAnOwnableCar" ( CTRL +F ) jusqu'a obtenir
public IsAnOwnableCar(vehicleid)
{
if(vehicleid >= 184 && vehicleid <= 268) { return 1; }
return 0;
}
comme j'ai décidé d'ajouté 3 véhicules, je remplace le 268 par 271
public IsAnOwnableCar(vehicleid)
{
if(vehicleid >= 184 && vehicleid <= 271) { return 1; }
return 0;
}
Ensuite il y a des commande qui utilise les IDdes véhicules, la premiere:
if(strcmp(cmd, "/respawnallcars", true) == 0 || strcmp(cmd, "/rac", true) == 0) // by Ellis
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] < 3)
{
SendClientMessage(playerid, COLOR_GRAD1, " you are not authorized to use that command!");
return 1;
}
new bool:unwanted[CAR_AMOUNT];
for(new player=0; player<MAX_PLAYERS; player++)
{
if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
}
for(new car = 1; car <= 268; car++)
{
if(!unwanted[car]) SetVehicleToRespawn(car);
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "SERVER: All unused cars respawned by %s.", sendername);
BroadCast(COLOR_WHITE,string);
}
return 1;
}
Vous allez remplacer le 268 par le nombre de véhicule, dans mon exemple 271
if(strcmp(cmd, "/respawnallcars", true) == 0 || strcmp(cmd, "/rac", true) == 0) // by Ellis
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] < 3)
{
SendClientMessage(playerid, COLOR_GRAD1, " you are not authorized to use that command!");
return 1;
}
new bool:unwanted[CAR_AMOUNT];
for(new player=0; player<MAX_PLAYERS; player++)
{
if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
}
for(new car = 1; car <= 271; car++)
{
if(!unwanted[car]) SetVehicleToRespawn(car);
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "SERVER: All unused cars respawned by %s.", sendername);
BroadCast(COLOR_WHITE,string);
}
return 1;
}
Il y a aussi d'autre commande qui utilise l'id des véhicule je vous conseille donc a la fin, de faire une recherche ( CTRL + F) et de rechercher le nombre " 268 ", s'ets un peux long, mais il vous permettra de repasser le script voir si vous ne devez pas remplacer certain nombre par VOTRENOMBREDEVEHICULE car il ont un rapport avec les voiture.
Biensur il ne faut pas oublié d'ajouter les lignes au car.cfg, dans mon exemple, trois, donc
ce serait521,-52.633228,-213.272125,4.995388,171.074829,250,1,Concession,FCR-900,1000000,,0,0,0,1
521,-54.147354,-212.913497,4.979084,176.502365,2,2,Concession,FCR-900,1000000,,0,0,0,1
522,-44.810615,-230.437698,5.000422,270.172210,0,3,Lola_Eazy,NRG-500,600000,,1,0,0,0
Deuxième méthode:(plus facile)(merci syg)
Avant d'ajouté un véhicule on va vous rendre le travail plus facile,
Ajoutez en dessous des autre #define
#define NOMBRE_DE_VEHICULES 267// Nombre de véhicule sur le serveur
pourquoi 267 alors que sur mon CarInfo il y a 268? Car 267 est le nombre réel de véhicule sur le serveur. Si vous voulez, dans le CarInfo vous aviez 267 véhicule.
Alors appuiez sur CTRL +F et rechercher CarInfo
Vous devez trouver new CarInfo[268][cInfo];
Vous remplacez le 268 NOMBRE_DE_VEHICULES+1
(pourquoi +1? car si vous laisser NOMBRE_DE_VEHICULES, vous aurez 266 véhicule ( le dernier est fictif) donc vous mettez plus 1 pour bien avoir les 267
Ensuite vous allez chercher "IsAnOwnableCar" ( CTRL +F ) jusqu'a obtenir
public IsAnOwnableCar(vehicleid)
{
if(vehicleid >= 184 && vehicleid <= 268) { return 1; }
return 0;
}
vous allez remplacer le 268 par NOMBRE_DE_VEHICULES
public IsAnOwnableCar(vehicleid)
{
if(vehicleid >= 184 && vehicleid <= NOMBRE_DE_VEHICULES) { return 1; }
return 0;
}
Ensuite il y a des commande qui utilise les IDdes véhicules, la premiere:
if(strcmp(cmd, "/respawnallcars", true) == 0 || strcmp(cmd, "/rac", true) == 0) // by Ellis
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] < 3)
{
SendClientMessage(playerid, COLOR_GRAD1, " you are not authorized to use that command!");
return 1;
}
new bool:unwanted[CAR_AMOUNT];
for(new player=0; player<MAX_PLAYERS; player++)
{
if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
}
for(new car = 1; car <= 268; car++)
{
if(!unwanted[car]) SetVehicleToRespawn(car);
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "SERVER: All unused cars respawned by %s.", sendername);
BroadCast(COLOR_WHITE,string);
}
return 1;
}
Vous allez remplacer le 268 par NOMBRE_DE_VEHICULES
if(strcmp(cmd, "/respawnallcars", true) == 0 || strcmp(cmd, "/rac", true) == 0) // by Ellis
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] < 3)
{
SendClientMessage(playerid, COLOR_GRAD1, " you are not authorized to use that command!");
return 1;
}
new bool:unwanted[CAR_AMOUNT];
for(new player=0; player<MAX_PLAYERS; player++)
{
if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
}
for(new car = 1; car <= NOMBRE_DE_VEHICULES; car++)
{
if(!unwanted[car]) SetVehicleToRespawn(car);
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "SERVER: All unused cars respawned by %s.", sendername);
BroadCast(COLOR_WHITE,string);
}
return 1;
}
Il y a aussi d'autre commande qui utilise l'id des véhicule je vous conseille donc a la fin, de faire une recherche ( CTRL + F) et de rechercher le nombre " 268 ", s'ets un peux long, mais il vous permettra de repasser le script voir si vous ne devez pas remplacer certain nombre par NOMBRE_DE_VEHICULES car il ont un rapport avec les voiture.
Voila maintenant, quand vous voulez ajouter des véhicule achetable, vous chercher #define NOMBRE_DE_VEHICULES 267// Nombre de véhicule sur le serveur
et vous remplacer le nombre par le nouveau nombre de véhicule. Ex: j'ajoute 3 véhicule j'aurais
#define NOMBRE_DE_VEHICULES 270// Nombre de véhicule sur le serveur
Comme ça le travail est moins long par apres ;)
Biensur il ne faut pas oublier d'ajouter les lignes dans le cars.cfg.
Enjoy
Scott1, Maxence,
Si il y a une erreur, un oublie, merci de me le preciser
-
Merci beaucoup vraiment super, moi qui galéré, merci beaucoup
EDIT : Faut pas rajouté la même ligne du car.cfg dans le GM ?
-
Merci beaucoup vraiment super, moi qui galéré, merci beaucoup
EDIT : Faut pas rajouté la même ligne du car.cfg dans le GM ?
La même ligne?
-
faut mêttre sa dans le GM et dans le car.cfg ?? 521,-52.633228,-213.272125,4.995388,171.074829,250,1,Concession,FCR-900,1000000,,0,0,0,1
-
Non uniquement dans le cars.cfg
-
Dacc cimer
-
Ce qui serait bien c'est de faire un #define pour ce nombre et de le remplacer dans tout le script (avec la méthode que tu donnes).
#define NOMBRE_DE_VEHICULES 268
new CarInfo[NOMBRE_DE_VEHICULES][cInfo];
...
Ce serait bien que tu le rajoutes dans ton tuto.
Pour les ajouts supplémentaires, on n'aura juste à modifier la valeur du #define puis ajouter des véhicules dans car.cfg.
++
Syg
-
Bon Tuto !
-
Ok Syg, je le fait quand j'ai 5minutes
-
Voila j'ai fait syg, pourrais tu le déplacer dans tuto?
-
Très bien, rien à redire.
Ah si, juste un petit truc : mon pseudo c'est Syg, pas Syq. :) mais c'est pas grave
++
Syg
-
Oups ^^, voila, modifié
-
Merci beaucoup pour ce tuto :P
-
Avec plaisir
-
Salut,
Pouvez vous m'expliquer d'où viens tout ces nombres ??
521,-52.633228,-213.272125,4.995388,171.074829,250,1,Concession,FCR-900,1000000,,0,0,0,1
Moi dans mon cars.cfg il y a toujours marquer Dealership puis le nom du véhicule
Par exemple pour ajouter cette voiture que doit-je faire ?
AddStaticVehicle(568,2014.6737,1177.4939,10.6860,89.5748,17,1);
Cordialement.
Double post
up :D