This was taken completely from
iNorton's Base Roleplay Script. I did not write this.
Command
pawn Код:
CMD:addveh(playerid, params[])
{
#pragma unused params
if(PlayerInfo[playerid][Adminlevel] < 5) return SendClientMessage(playerid,COLOR_ERROR,"[ERROR]: You are not authorized to use this command ");
if(IsPlayerInAnyVehicle(playerid))
{
new
filestring[264],
Float:X,
Float:Y,
Float:Z,
Float:Rot;
GetPlayerPos(playerid,X,Y,Z);
GetVehicleZAngle(GetPlayerVehicleID(playerid), Rot);
new
vid = GetVehicleModel(GetPlayerVehicleID(playerid));
new
File:pos=fopen("vehicles.ini", io_append);
format(filestring, 256, "\n%d,%f,%f,%f,%f,-1,-1 ;", vid, X, Y, Z, Rot);
fwrite(pos, filestring);
fclose(pos);
SendClientMessage(playerid,GREEN,"[SUCCESS]: You have successfully added a vehicle!");
}
else
{
SendClientMessage(playerid,COLOR_ERROR,"[ERROR]: You are not in a vehicle!.");
}
return 1;
}
Loading vehicles
pawn Код:
stock LoadStaticVehiclesFromFile(const filename[])
{
new File:file_ptr;
new line[256];
new var_from_line[64];
new vehicletype;
new Float:SpawnX;
new Float:SpawnY;
new Float:SpawnZ;
new Float:SpawnRot;
new Color1, Color2;
new index;
new vehicles_loaded;
file_ptr = fopen(filename,filemode:io_read);
if(!file_ptr) return 0;
vehicles_loaded = 0;
while(fread(file_ptr,line,256) > 0)
{
index = 0;
// Read type
index = token_by_delim(line,var_from_line,',',index);
if(index == (-1)) continue;
vehicletype = strval(var_from_line);
if(vehicletype < 400 || vehicletype > 611) continue;
// Read X, Y, Z, Rotation
index = token_by_delim(line,var_from_line,',',index+1);
if(index == (-1)) continue;
SpawnX = floatstr(var_from_line);
index = token_by_delim(line,var_from_line,',',index+1);
if(index == (-1)) continue;
SpawnY = floatstr(var_from_line);
index = token_by_delim(line,var_from_line,',',index+1);
if(index == (-1)) continue;
SpawnZ = floatstr(var_from_line);
index = token_by_delim(line,var_from_line,',',index+1);
if(index == (-1)) continue;
SpawnRot = floatstr(var_from_line);
// Read Color1, Color2
index = token_by_delim(line,var_from_line,',',index+1);
if(index == (-1)) continue;
Color1 = strval(var_from_line);
index = token_by_delim(line,var_from_line,';',index+1);
Color2 = strval(var_from_line);
//printf("%d,%d,%f,%f,%f,%f,%d,%d",total_vehicles_from_files+vehicles_loaded+1,vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2);
// respawn 30 minutes
AddStaticVehicleEx(vehicletype,SpawnX,SpawnY,SpawnZ+1,SpawnRot,Color1,Color2,(30*60));
vehicles_loaded++;
}
fclose(file_ptr);
printf("Loaded %d vehicles from: %s",vehicles_loaded,filename);
return vehicles_loaded;
}
OnGameModeInit()
pawn Код:
public OnGameModeInit()
{
LoadStaticVehiclesFromFile("vehicles.ini");
return 1;
}
Goodluck.
EDIT:
Almost forgot, you need the
sscanf and
ZCMD includes installed in order for this to even begin to work.