I'm getting these 26 errors in Dynamic Dealership System, even i didn't editted it.
Код:
/*
SlashQ's Dynamic Dealership System!
Here's a better release that everybody wishes to have. It's a dynamic dealership
system where you can create dealerships (and players can buy them, and collect
earnings from their cars). Dealership owners can use /earnings to check their
earnings, /collectearnings to collect them, /createcar to create a dealership
vehicle, and /selldealership to sell their dealership.
Dealerships can be created in-game by RCON admins using /createdealer.
The params are: price, radius and name. Example: /createdealer 15000 30 Grotti Cars
The radius is where the owner can create their cars in, and ONLY there. Anywhere
outside the radius will give them an error.
ALL player-owned vehicles are using PVars also, not variables. The PVar system
was said to be slow so keep MAX_OWNABLE_CARS under 20 to avoid any conflicts
with lag.
All you need is the SII script. This script uses a built-in version of sscanf
and dcmd (why dcmd? because it's not an include! i'm too lazy to actually use
zcmd nowadays lol)
For now, players can only buy vehicles, and /park, /lock and /delete them.
I've written this when I was bored one day, and I was so sleepy all I did
was three commands. I'll be adding more in the future.
YOU MUST HAVE THESE FOLDERS IN YOUR SCRIPTFILES!
dealerships
dealerships/vehicles
ownedcars
Enjoy! Remember not to claim this shit as your own!
*/
#include <a_samp>
#include <SII>
#define color_white 0xFFFFFFFF
#define color_grey 0xAFAFAFFF
#define color_yellow 0xFFFF00FF
#define color_lightblue 0x33CCFFFF
#define color_orange 0xFF8300FF
#define MAX_DEALERSHIPS 50 // Limit of dealerships. The higher the more lag
#define MAX_OWNABLE_CARS 3 // Limit of cars a player can own. The higher the more lag
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
enum dealership_enum
{
dealership_name[32],
dealership_owner[24],
dealership_price,
dealership_id,
dealership_owned,
Text3D:dealership_label,
Float:dealership_x,
Float:dealership_y,
Float:dealership_z,
Float:dealership_radius,
dealership_earnings
};
enum vehicle_stats
{
vehicle_dealership,
vehicle_model,
vehicle_price,
Float:vehicle_position[5],
Text3D:vehicle_label,
vehicle_onsale
};
new VehicleStatistics[MAX_VEHICLES][vehicle_stats];
new DealershipStatistics[MAX_DEALERSHIPS][dealership_enum];
new bool:dealership_taken[MAX_DEALERSHIPS];
new bool:locked[MAX_VEHICLES];
new owner[MAX_VEHICLES][MAX_PLAYER_NAME];
new spoiler[20][0] = {1000, 1001, 1002, 1003, 1014, 1015, 1016, 1023, 1058, 1060, 1049, 1050, 1138, 1139, 1146, 1147, 1158, 1162, 1163, 1164};
new nitro[3][0] = {1008, 1009, 1010};
new front_bumper[23][0] = {1117, 1152, 1153, 1155, 1157, 1160, 1165, 1167, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1179, 1181, 1182, 1185, 1188, 1189, 1192, 1193};
new rear_bumper[22][0] = {1140, 1141, 1148, 1149, 1150, 1151, 1154, 1156, 1159, 1161, 1166, 1168, 1176, 1177, 1178, 1180, 1183, 1184, 1186, 1187, 1190, 1191};
new exhaust[28][0] = {1018, 1019, 1020, 1021, 1022, 1028, 1029, 1037, 1043, 1044, 1045, 1046, 1059, 1064, 1065, 1066, 1089, 1092, 1104, 1105, 1113, 1114, 1126, 1127, 1129, 1132, 1135, 1136};
new bventr[2][0] = {1042, 1044};
new bventl[2][0] = {1043, 1045};
new bscoop[4][0] = {1004, 1005, 1011, 1012};
new rscoop[13][0] = {1006, 1032, 1033, 1035, 1038, 1053, 1054, 1055, 1061, 1067, 1068, 1088, 1091};
new left_sideskirt[21][0] = {1007, 1026, 1031, 1036, 1039, 1042, 1047, 1048, 1056, 1057, 1069, 1070, 1090, 1093, 1106, 1108, 1118, 1119, 1133, 1122, 1134};
new right_sideskirt[21][0] = {1017, 1027, 1030, 1040, 1041, 1051, 1052, 1062, 1063, 1071, 1072, 1094, 1095, 1099, 1101, 1102, 1107, 1120, 1121, 1124, 1137};
new hydraulics[1][0] = {1087};
new bass[1][0] = {1086};
new rbbars[2][0] = {1109, 1110};
new fbbars[2][0] = {1115, 1116};
new wheels[17][0] = {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098};
new lights[2][0] = {1013, 1024};
forward LoadFilterscript();
forward CheckCarAmount();
forward OnCarStreamIn();
new vehName[][] =
{
"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster",
"Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
"Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer",
"Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach",
"Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow",
"Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
"Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic",
"Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton",
"Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher",
"FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick",
"Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher",
"Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain",
"Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck",
"Fortune", "Cadrona", "SWAT Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan",
"Blade", "Streak", "Freight", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder",
"Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster",
"Uranus", "Jester", "Sultan", "Stratium", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
"Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30",
"Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
"Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "LSPD Car", "SFPD Car", "LVPD Car",
"Police Rancher", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs",
"Boxville", "Tiller", "Utility Trailer"
};
public OnCarStreamIn()
{
for(new forplayerid = 0; forplayerid < MAX_PLAYERS; forplayerid++)
{
if(IsPlayerConnected(forplayerid))
{
for(new vehicleid = 0; vehicleid < MAX_VEHICLES; vehicleid++)
{
if(vehicleid > 0)
{
if(IsPlayerNearVehicle(forplayerid, vehicleid, 30.0))
{
switch(locked[vehicleid])
{
case false: SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 0);
case true: SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
}
}
}
}
}
}
return 0;
}
public CheckCarAmount()
{
new
cars,
playername[24],
var[32];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(i, "AmountOfCars") < 0)
{
GetPlayerName(i, playername, sizeof(playername));
for(new s = 1; s <= MAX_OWNABLE_CARS; s++)
{
format(var, sizeof(var), "Carkey_%d", s);
if(GetPVarInt(i, var) > 0) { cars++; }
}
SetPVarInt(i, "AmountOfCars", cars);
}
}
}
return 1;
}
public LoadFilterscript()
{
LoadDealerships();
LoadDealershipCars();
for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { LoadPlayerVehicleData(i); } }
return 1;
}
stock frename(oldname[], newname[])
{
if(!fexist(oldname)) return 0;
new string[255], File:oldfile, File:newfile;
oldfile = fopen(oldname, io_read);
newfile = fopen(newname, io_write);
while(fread(oldfile, string))
{
format(string,sizeof(string), "%s", string);
fwrite(newfile, string);
}
fclose(oldfile);
fclose(newfile);
fremove(oldname);
return 1;
}
stock CheckForFile(file[])
{
if(!fexist(file)) return printf("WARNING: Missing %s in scriptfiles folder.\nYour server may NOT function properly without the file.\n", file);
return 1;
}
public OnFilterScriptInit()
{
CheckForFile("dealerships/vehicles/");
CheckForFile("ownedcars/");
SetTimer("LoadFilterscript", 2000, false);
SetTimer("CheckCarAmount", 2000, true);
SetTimer("OnCarStreamIn", 200, true);
return 1;
}
public OnFilterScriptExit()
{
for(new i = 1; i < MAX_DEALERSHIPS; i++)
{
if(dealership_taken[i] == true)
{
SaveDealership(i);
for(new v = 1; v < MAX_VEHICLES; v++)
{
if(VehicleStatistics[v][vehicle_dealership] == i)
{
VehicleStatistics[v][vehicle_dealership] = 0;
VehicleStatistics[v][vehicle_model] = 0;
VehicleStatistics[v][vehicle_price] = 0;
VehicleStatistics[v][vehicle_position][1] = 0.0;
VehicleStatistics[v][vehicle_position][2] = 0.0;
VehicleStatistics[v][vehicle_position][3] = 0.0;
VehicleStatistics[v][vehicle_position][4] = 0.0;
VehicleStatistics[v][vehicle_onsale] = 0;
Delete3DTextLabel(VehicleStatistics[v][vehicle_label]);
DestroyVehicle(v);
}
}
strmid(DealershipStatistics[i][dealership_name], "None", 0, strlen("None"), 255);
strmid(DealershipStatistics[i][dealership_owner], "No-one", 0, strlen("No-one"), 255);
DealershipStatistics[i][dealership_price] = 0;
DealershipStatistics[i][dealership_owned] = 0;
DealershipStatistics[i][dealership_x] = 0.0;
DealershipStatistics[i][dealership_y] = 0.0;
DealershipStatistics[i][dealership_z] = 0.0;
DealershipStatistics[i][dealership_radius] = 0.0;
DealershipStatistics[i][dealership_earnings] = 0;
dealership_taken[i] = false;
Delete3DTextLabel(DealershipStatistics[i][dealership_label]);
DestroyPickup(DealershipStatistics[i][dealership_id]);
}
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
SavePlayerVehicleData(i);
UnloadVehicles(i);
}
}
return 1;
}
public OnPlayerSpawn(playerid)
{
new
playername[24];
if(GetPVarInt(playerid, "CarsLoaded") == 0) LoadPlayerVehicleData(playerid);
GetPlayerName(playerid, playername, sizeof(playername));
if(strcmp(DealershipStatistics[GetPVarInt(playerid, "HasDealership")][dealership_owner], playername, true) == 0) { }
else { SetPVarInt(playerid, "HasDealership", 0); }
return 1;
}
public OnPlayerDisconnect(playerid)
{
SavePlayerVehicleData(playerid);
UnloadVehicles(playerid);
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
new
var[32],
componentslot = InitComponents(componentid);
format(var, sizeof(var), "Component%d_%d", componentslot, ReturnVehicleSlot(playerid));
SetPVarInt(playerid, var, componentid);
SavePlayerVehicleData(playerid);
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
new
var[32];
format(var, sizeof(var), "Paintjob_%d", ReturnVehicleSlot(playerid));
SetPVarInt(playerid, var, paintjobid);
SavePlayerVehicleData(playerid);
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
new
var[32];
format(var, sizeof(var), "Color1_%d", ReturnVehicleSlot(playerid));
SetPVarInt(playerid, var, color1);
format(var, sizeof(var), "Color2_%d", ReturnVehicleSlot(playerid));
SetPVarInt(playerid, var, color2);
SavePlayerVehicleData(playerid);
return 1;
}
stock InitComponents(componentid)
{
new
i = 0;
for(i = 0; i < 20; i ++) { if(spoiler[i][0] == componentid) { return 1; } }
for(i = 0; i < 3; i ++) { if(nitro[i][0] == componentid) { return 2; } }
for(i = 0; i < 23; i ++) { if(front_bumper[i][0] == componentid) { return 3; } }
for(i = 0; i < 22; i ++) { if(rear_bumper[i][0] == componentid) { return 4; } }
for(i = 0; i < 28; i ++) { if(exhaust[i][0] == componentid) { return 5; } }
for(i = 0; i < 2; i ++) { if(bventr[i][0] == componentid) { return 6; } }
for(i = 0; i < 2; i ++) { if(bventl[i][0] == componentid) { return 7; } }
for(i = 0; i < 4; i ++) { if(bscoop[i][0] == componentid) { return 8; } }
for(i = 0; i < 13; i ++) { if(rscoop[i][0] == componentid) { return 9; } }
for(i = 0; i < 21; i ++) { if(left_sideskirt[i][0] == componentid) { return 10; } }
for(i = 0; i < 21; i ++) { if(right_sideskirt[i][0] == componentid) { return 11; } }
if(hydraulics[0][0] == componentid) { return 12; }
if(bass[0][0] == componentid) { return 13; }
for(i = 0; i < 2; i ++) { if(rbbars[i][0] == componentid) { return 14; } }
for(i = 0; i < 2; i ++) { if(fbbars[i][0] == componentid) { return 15; } }
for(i = 0; i < 17; i ++) { if(wheels[i][0] == componentid) { return 16; } }
for(i = 0; i < 2; i ++) { if(lights[i][0] == componentid) { return 17; } }
return 0;
}
stock LoadDealershipCars()
{
new
file[100],
file2[100],
string[128],
vehicle;
for(new i = 1; i < MAX_VEHICLES; i++)
{
format(file, sizeof(file), "dealerships/vehicles/%d.cfg", i);
if(!fexist(file)) continue;
if(fexist(file) && INI_Open(file))
{
if(GetVehicleModel(i) > 399)
{
for (new v = 1; v < MAX_VEHICLES; v ++)
{
if (GetVehicleModel(v) == 0)
{
i = v;
break;
}
}
format(file2, sizeof(file2), "dealerships/vehicles/%d.cfg", i);
frename(file, file2);
}
VehicleStatistics[i][vehicle_dealership] = INI_ReadInt("vehicle_dealership");
VehicleStatistics[i][vehicle_model] = INI_ReadInt("vehicle_model");
VehicleStatistics[i][vehicle_price] = INI_ReadInt("vehicle_price");
VehicleStatistics[i][vehicle_position][1] = INI_ReadFloat("vehicle_x");
VehicleStatistics[i][vehicle_position][2] = INI_ReadFloat("vehicle_y");
VehicleStatistics[i][vehicle_position][3] = INI_ReadFloat("vehicle_z");
VehicleStatistics[i][vehicle_position][4] = INI_ReadFloat("vehicle_angle");
VehicleStatistics[i][vehicle_onsale] = INI_ReadInt("vehicle_onsale");
vehicle = CreateVehicle(VehicleStatistics[i][vehicle_model], VehicleStatistics[i][vehicle_position][1], VehicleStatistics[i][vehicle_position][2], VehicleStatistics[i][vehicle_position][3], VehicleStatistics[i][vehicle_position][4], 0, 0, -1);
format(string, sizeof(string), "%s For Sale - Price: $%d", GetVehicleName(vehicle), VehicleStatistics[i][vehicle_price]);
VehicleStatistics[i][vehicle_label] = Create3DTextLabel(string, color_orange, VehicleStatistics[i][vehicle_position][1], VehicleStatistics[i][vehicle_position][2], VehicleStatistics[i][vehicle_position][3], 10.0, 0);
INI_Close();
}
}
return 1;
}
stock LoadDealerships()
{
new file[100], string[256], name[32], ownr[24];
for(new i = 1; i < MAX_DEALERSHIPS; i++)
{
format(file, sizeof(file), "dealerships/%d.cfg", i);
if(fexist(file) && INI_Open(file))
{
INI_ReadString(name, "dealership_name");
INI_ReadString(ownr, "dealership_owner");
strmid(DealershipStatistics[i][dealership_name], name, 0, strlen(name), 255);
strmid(DealershipStatistics[i][dealership_owner], ownr, 0, strlen(ownr), 255);
DealershipStatistics[i][dealership_price] = INI_ReadInt("dealership_price");
DealershipStatistics[i][dealership_owned] = INI_ReadInt("dealership_owned");
DealershipStatistics[i][dealership_x] = INI_ReadFloat("dealership_x");
DealershipStatistics[i][dealership_y] = INI_ReadFloat("dealership_y");
DealershipStatistics[i][dealership_z] = INI_ReadFloat("dealership_z");
DealershipStatistics[i][dealership_radius] = INI_ReadFloat("dealership_radius");
DealershipStatistics[i][dealership_earnings] = INI_ReadInt("dealership_earnings");
switch(DealershipStatistics[i][dealership_owned])
{
case 0: { format(string, sizeof(string), "{FF6347}%s{FFFFFF} is for sale!\n\n{FF6347}Price:{FFFFFF} $%d\n\nTo purchase this dealership, type /buydealer.", DealershipStatistics[i][dealership_name], DealershipStatistics[i][dealership_price]); }
case 1: { format(string, sizeof(string), "{FF6347}%s{FFFFFF}\n\n{FF6347}Owner:{FFFFFF} %s", DealershipStatistics[i][dealership_name], DealershipStatistics[i][dealership_owner]); }
}
DealershipStatistics[i][dealership_label] = Create3DTextLabel(string, color_white, DealershipStatistics[i][dealership_x], DealershipStatistics[i][dealership_y], DealershipStatistics[i][dealership_z], 10.0, 0);
CreatePickup(1274, 23, DealershipStatistics[i][dealership_x], DealershipStatistics[i][dealership_y], DealershipStatistics[i][dealership_z]);
dealership_taken[i] = true;
INI_Close();
}
}
return 1;
}
stock SaveDealership(dealershipid)
{
new file[100];
if(dealership_taken[dealershipid] == true)
{
format(file, sizeof(file), "dealerships/%d.cfg", dealershipid);
if(INI_Open(file))
{
INI_WriteString("dealership_name", DealershipStatistics[dealershipid][dealership_name]);
INI_WriteString("dealership_owner", DealershipStatistics[dealershipid][dealership_owner]);
INI_WriteInt("dealership_price", DealershipStatistics[dealershipid][dealership_price]);
INI_WriteInt("dealership_owned", DealershipStatistics[dealershipid][dealership_owned]);
INI_WriteFloat("dealership_x", DealershipStatistics[dealershipid][dealership_x]);
INI_WriteFloat("dealership_y", DealershipStatistics[dealershipid][dealership_y]);
INI_WriteFloat("dealership_z", DealershipStatistics[dealershipid][dealership_z]);
INI_WriteFloat("dealership_radius", DealershipStatistics[dealershipid][dealership_radius]);
INI_WriteInt("dealership_earnings", DealershipStatistics[dealershipid][dealership_earnings]);
INI_Save();
INI_Close();
}
}
for(new i = 1; i < MAX_VEHICLES; i++)
{
if(VehicleStatistics[i][vehicle_dealership] == dealershipid)
{
format(file, sizeof(file), "dealerships/vehicles/%d.cfg", i);
if(INI_Open(file))
{
INI_WriteInt("vehicle_dealership", VehicleStatistics[i][vehicle_dealership]);
INI_WriteInt("vehicle_model", VehicleStatistics[i][vehicle_model]);
INI_WriteInt("vehicle_price", VehicleStatistics[i][vehicle_price]);
INI_WriteFloat("vehicle_x", VehicleStatistics[i][vehicle_position][1]);
INI_WriteFloat("vehicle_y", VehicleStatistics[i][vehicle_position][2]);
INI_WriteFloat("vehicle_z", VehicleStatistics[i][vehicle_position][3]);
INI_WriteFloat("vehicle_angle", VehicleStatistics[i][vehicle_position][4]);
INI_WriteInt("vehicle_onsale", VehicleStatistics[i][vehicle_onsale]);
INI_Save();
INI_Close();
}
}
}
return 1;
}
dcmd_createdealer(playerid, params[])
{
new
price,
dealername[32],
Float:radius,
dealershipid = -1,
bool:assigned = false,
string[256],
Float:x,
Float:y,
Float:z;
GetPlayerPos(playerid, x, y, z);
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, color_grey, " You are not authorized to use this command !");
if(sscanf(params, "dfs", price, radius, dealername))
return SendClientMessage(playerid, color_white, "* [Usage]: /createdealer [price] [radius] [name of dealership]");
for(new i = 1; i < MAX_DEALERSHIPS; i++)
{
if(dealership_taken[i] == false)
{
dealershipid = i;
assigned = true;
break;
}
}
if(assigned == false) return SendClientMessage(playerid, color_grey, " Something went wrong while creating the dealership !");
strmid(DealershipStatistics[dealershipid][dealership_name], dealername, 0, strlen(dealername), 255);
strmid(DealershipStatistics[dealershipid][dealership_owner], "No-one", 0, strlen("No-one"), 255);
DealershipStatistics[dealershipid][dealership_price] = price;
DealershipStatistics[dealershipid][dealership_owned] = 0;
DealershipStatistics[dealershipid][dealership_x] = x;
DealershipStatistics[dealershipid][dealership_y] = y;
DealershipStatistics[dealershipid][dealership_z] = z;
DealershipStatistics[dealershipid][dealership_radius] = radius;
DealershipStatistics[dealershipid][dealership_id] = CreatePickup(1274, 23, x, y, z);
format(string, sizeof(string), "{FF6347}%s{FFFFFF} is for sale!\n\n{FF6347}Price:{FFFFFF} $%d\n\nTo purchase this dealership, type /buydealer.", dealername, price);
DealershipStatistics[dealershipid][dealership_label] = Create3DTextLabel(string, color_white, x, y, z, 10.0, 0);
format(string, sizeof(string), " Dealership %d created.", dealershipid);
SendClientMessage(playerid, color_grey, string);
dealership_taken[dealershipid] = true;
SaveDealership(dealershipid);
return 1;
}
dcmd_destroydealer(playerid, params[])
{
new
id,
file[100];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, color_grey, " You are not authorized to use this command !");
if(sscanf(params, "d", id))
return SendClientMessage(playerid, color_white, "* [Usage]: /destroydealer [dealershipid]");
if(id < 1 || id > MAX_DEALERSHIPS) return SendClientMessage(playerid, color_grey, " Invalid dealership ID !");
if(dealership_taken[id] == true)
{
format(file, sizeof(file), "dealerships/%d.cfg", id);
if(fexist(file)) { fremove(file); }
for(new i = 1; i < MAX_VEHICLES; i++)
{
if(VehicleStatistics[i][vehicle_dealership] == id)
{
format(file, sizeof(file), "dealerships/vehicles/%d.cfg", i);
if(fexist(file)) { fremove(file); }
VehicleStatistics[i][vehicle_dealership] = 0;
VehicleStatistics[i][vehicle_model] = 0;
VehicleStatistics[i][vehicle_price] = 0;
VehicleStatistics[i][vehicle_position][1] = 0.0;
VehicleStatistics[i][vehicle_position][2] = 0.0;
VehicleStatistics[i][vehicle_position][3] = 0.0;
VehicleStatistics[i][vehicle_position][4] = 0.0;
VehicleStatistics[i][vehicle_onsale] = 0;
Delete3DTextLabel(VehicleStatistics[i][vehicle_label]);
DestroyVehicle(i);
}
}
strmid(DealershipStatistics[id][dealership_name], "None", 0, strlen("None"), 255);
strmid(DealershipStatistics[id][dealership_owner], "No-one", 0, strlen("No-one"), 255);
DealershipStatistics[id][dealership_price] = 0;
DealershipStatistics[id][dealership_owned] = 0;
DealershipStatistics[id][dealership_x] = 0.0;
DealershipStatistics[id][dealership_y] = 0.0;
DealershipStatistics[id][dealership_z] = 0.0;
DealershipStatistics[id][dealership_radius] = 0.0;
DealershipStatistics[id][dealership_earnings] = 0;
dealership_taken[id] = false;
Delete3DTextLabel(DealershipStatistics[id][dealership_label]);
DestroyPickup(DealershipStatistics[id][dealership_id]);
return 1;
}
else { SendClientMessage(playerid, color_grey, " Dealership ID not taken !"); }
return 1;
}
dcmd_buydealer(playerid, params[])
{
params[0] = 0;
new
dealershipid = -1,
string[256],
playername[24],
bool:isnear = false;
GetPlayerName(playerid, playername, sizeof(playername));
if(GetPVarInt(playerid, "HasDealership") != 0) return SendClientMessage(playerid, color_grey, " You already have a dealership !");
for(new i = 1; i < MAX_DEALERSHIPS; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, DealershipStatistics[i][dealership_x], DealershipStatistics[i][dealership_y], DealershipStatistics[i][dealership_z]))
{
dealershipid = i;
isnear = true;
break;
}
}
if(isnear == false) return SendClientMessage(playerid, color_grey, " You are not near a dealership!");
if(DealershipStatistics[dealershipid][dealership_owned] == 0)
{
if(GetPlayerMoney(playerid) >= DealershipStatistics[dealershipid][dealership_price])
{
format(string, sizeof(string), "{FF6347}%s{FFFFFF}\n\n{FF6347}Owner:{FFFFFF} %s", DealershipStatistics[dealershipid][dealership_name], playername);
Delete3DTextLabel(DealershipStatistics[dealershipid][dealership_label]);
DealershipStatistics[dealershipid][dealership_label] = Create3DTextLabel(string, color_white, DealershipStatistics[dealershipid][dealership_x], DealershipStatistics[dealershipid][dealership_y], DealershipStatistics[dealershipid][dealership_z], 10.0, 0);
DealershipStatistics[dealershipid][dealership_owned] = 1;
strmid(DealershipStatistics[dealershipid][dealership_owner], playername, 0, strlen(playername), 255);
GivePlayerMoney(playerid, -DealershipStatistics[dealershipid][dealership_price]);
format(string, sizeof(string), "Congratulations, you've purchased %s for $%d, for a list of new commands, type /dealerhelp.", DealershipStatistics[dealershipid][dealership_name], DealershipStatistics[dealershipid][dealership_price]);
SendClientMessage(playerid, color_yellow, string);
SetPVarInt(playerid, "HasDealership", dealershipid);
SaveDealership(dealershipid);
return 1;
}
else return SendClientMessage(playerid, color_grey, " You can't afford this !");
}
else { SendClientMessage(playerid, color_grey, " This dealership is already owned !"); }
return 1;
}
dcmd_createcar(playerid, params[])
{
new
model,
price,
dealershipid = GetPVarInt(playerid, "HasDealership");
if(GetPVarInt(playerid, "HasDealership") != 0)
{
if(!IsPlayerInRangeOfPoint(playerid, DealershipStatistics[dealershipid][dealership_radius], DealershipStatistics[dealershipid][dealership_x], DealershipStatistics[dealershipid][dealership_y], DealershipStatistics[dealershipid][dealership_z]))
return SendClientMessage(playerid, color_grey, " You are not near your dealership !");
new Float:x, Float:y, Float:z, Float:angle;
GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle);
if(sscanf(params, "dd", model, price)) return SendClientMessage(playerid, color_white, "* [Usage]: /createcar [model] [price]");
CreateDealershipVehicle(playerid, model, price, x, y, z, angle);
return 1;
}
else { SendClientMessage(playerid, color_grey, " You don't own a dealership !"); }
return 1;
}
dcmd_earnings(playerid, params[])
{
params[0] = 0;
new
dealershipid = GetPVarInt(playerid, "HasDealership"),
string[64];
if(GetPVarInt(playerid, "HasDealership") != 0)
{
format(string, sizeof(string), "{FF8300}Earnings:{FFFFFF} $%d", DealershipStatistics[dealershipid][dealership_earnings]);
SendClientMessage(playerid, color_white, string);
return 1;
}
else { SendClientMessage(playerid, color_grey, " You don't own a dealership !"); }
return 1;
}
dcmd_collectearnings(playerid, params[])
{
params[0] = 0;
new
string[128],
dealershipid = GetPVarInt(playerid, "HasDealership");
if(GetPVarInt(playerid, "HasDealership") != 0)
{
if(!IsPlayerInRangeOfPoint(playerid, 2.0, DealershipStatistics[dealershipid][dealership_x], DealershipStatistics[dealershipid][dealership_y], DealershipStatistics[dealershipid][dealership_z]))
return SendClientMessage(playerid, color_grey, " You are not near your dealership !");
if(!DealershipStatistics[dealershipid][dealership_earnings])
return SendClientMessage(playerid, color_grey, " You have no earnings to collect !");
format(string, sizeof(string), "* You've collected $%d from your dealership's earnings.", DealershipStatistics[dealershipid][dealership_earnings]);
SendClientMessage(playerid, color_lightblue, string);
GivePlayerMoney(playerid, DealershipStatistics[dealershipid][dealership_earnings]);
DealershipStatistics[dealershipid][dealership_earnings] = 0;
return 1;
}
else { SendClientMessage(playerid, color_grey, " You don't own a dealership !"); }
return 1;
}
dcmd_selldealership(playerid, params[])
{
new
dealershipid = GetPVarInt(playerid, "HasDealership"),
string[128];
if(GetPVarInt(playerid, "HasDealership") != 0)
{
if(!IsPlayerInRangeOfPoint(playerid, 2.0, DealershipStatistics[dealershipid][dealership_x], DealershipStatistics[dealershipid][dealership_y], DealershipStatistics[dealershipid][dealership_z]))
return SendClientMessage(playerid, color_grey, " You are not near your dealership !");
if(!params[0])
return SendClientMessage(playerid, color_white, "* [Usage]: /selldealership [confirm] - Sell your dealership back for half price.");
if(strcmp(params, "confirm", true) == 0)
{
new
price = (DealershipStatistics[dealershipid][dealership_price] / 2);
GivePlayerMoney(playerid, price);
format(string, sizeof(string), "{FF6347}%s{FFFFFF} is for sale!\n\n{FF6347}Price:{FFFFFF} $%d\n\nTo purchase this dealership, type /buydealer.", DealershipStatistics[dealershipid][dealership_name], DealershipStatistics[dealershipid][dealership_price]);
Delete3DTextLabel(DealershipStatistics[dealershipid][dealership_label]);
DealershipStatistics[dealershipid][dealership_label] = Create3DTextLabel(string, color_white, DealershipStatistics[dealershipid][dealership_x], DealershipStatistics[dealershipid][dealership_y], DealershipStatistics[dealershipid][dealership_z], 10.0, 0);
DealershipStatistics[dealershipid][dealership_owned] = 0;
strmid(DealershipStatistics[dealershipid][dealership_owner], "No-one", 0, strlen("No-one"), 255);
format(string, sizeof(string), "You've sold your dealership back to the market for $%d.", DealershipStatistics[dealershipid][dealership_price]);
SendClientMessage(playerid, color_yellow, string);
SetPVarInt(playerid, "HasDealership", 0);
SaveDealership(dealershipid);
return 1;
}
}
else { SendClientMessage(playerid, color_grey, " You don't own a dealership !"); }
return 1;
}
dcmd_park(playerid, params[])
{
params[0] = 0;
if(IsPlayerInAnyVehicle(playerid))
{
if(DoesPlayerOwnThisVehicle(playerid))
return ParkVehicle(playerid, ReturnVehicleSlot(playerid));
else return SendClientMessage(playerid, color_grey, " You don't own this vehicle !");
}
else { SendClientMessage(playerid, color_grey, " You are not in a vehicle !"); }
return 1;
}
dcmd_delete(playerid, params[])
{
new
slot;
if(GetPVarInt(playerid, "AmountOfCars") <= 0)
return SendClientMessage(playerid, color_grey, " You don't own any vehicles !");
if(sscanf(params, "d", slot))
return SendClientMessage(playerid, color_white, "* [Usage]: /delete [1/2]");
DeleteVehicle(playerid, slot);
return 1;
}
dcmd_lock(playerid, params[])
{
new
vehicleid,
status[15],
Float:position[4],
var[64];
params[0] = 0;
GetPlayerPos(playerid, position[1], position[2], position[3]);
for(new s = 1; s <= MAX_OWNABLE_CARS; s++)
{
format(var, sizeof(var), "Carkey_%d", s);
if(IsPlayerNearVehicle(playerid, GetPVarInt(playerid, var), 3.5))
{
vehicleid = GetPVarInt(playerid, var);
switch(locked[vehicleid])
{
case false:
{
for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { SetVehicleParamsForPlayer(vehicleid, i, 0, 1); } }
locked[vehicleid] = true;
status = "~r~locked";
format(var, sizeof(var), "Locked_%d", s);
SetPVarInt(playerid, var, 1);
}
case true:
{
for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { SetVehicleParamsForPlayer(vehicleid, i, 0, 0); } }
locked[vehicleid] = false;
status = "~g~unlocked";
format(var, sizeof(var), "Locked_%d", s);
SetPVarInt(playerid, var, 0);
}
}
GameTextForPlayer(playerid, status, 2000, 6);
PlaySoundAtPoint(1145, 3.0, position[1], position[2], position[3]);
break;
}
else { SendClientMessage(playerid, color_grey, " You are not near any of your vehicles !"); break; }
}
return 1;
}
stock PlaySoundAtPoint(soundid, Float:radius, Float:pos_x, Float:pos_y, Float:pos_z)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i, radius, pos_x, pos_y, pos_z))
return PlayerPlaySound(i, soundid, 0.0, 0.0, 0.0);
}
return 1;
}
stock IsPlayerNearVehicle(playerid, vehicleid, Float:radius)
{
new
Float:x,
Float:y,
Float:z;
GetVehiclePos(vehicleid, x, y, z);
if(IsPlayerInRangeOfPoint(playerid, radius, x, y, z)) return 1;
return 0;
}
stock DoesPlayerOwnThisVehicle(playerid)
{
new
vehicleid = GetPlayerVehicleID(playerid),
var[32];
if(vehicleid > 0)
{
for(new s = 1; s <= MAX_OWNABLE_CARS; s++)
{
format(var, sizeof(var), "Carkey_%d", s);
if(GetPVarInt(playerid, var) == vehicleid) return 1;
}
}
return 0;
}
stock CreateDealershipVehicle(creator, model, price, Float:carx, Float:cary, Float:carz, Float:carangle)
{
new
vehicleid,
string[256];
vehicleid = CreateVehicle(model, carx, cary, carz, carangle, 0, 0, -1);
if(vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(creator, color_grey, " The car couldn't be created !");
VehicleStatistics[vehicleid][vehicle_dealership] = GetPVarInt(creator, "HasDealership");
VehicleStatistics[vehicleid][vehicle_model] = model;
VehicleStatistics[vehicleid][vehicle_price] = price;
VehicleStatistics[vehicleid][vehicle_position][1] = carx;
VehicleStatistics[vehicleid][vehicle_position][2] = cary;
VehicleStatistics[vehicleid][vehicle_position][3] = carz;
VehicleStatistics[vehicleid][vehicle_position][4] = carangle;
VehicleStatistics[vehicleid][vehicle_onsale] = 1;
format(string, sizeof(string), "%s For Sale - Price: $%d", GetVehicleName(vehicleid), price);
VehicleStatistics[vehicleid][vehicle_label] = Create3DTextLabel(string, color_orange, carx, cary, carz, 10.0, 0);
SaveDealership(GetPVarInt(creator, "HasDealership"));
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new
vehicleid = GetPlayerVehicleID(playerid),
dialog_string[128];
if(VehicleStatistics[vehicleid][vehicle_onsale] == 1)
{
format(dialog_string, sizeof(dialog_string), "Would you like to buy this %s costing $%d?", GetVehicleName(vehicleid), VehicleStatistics[vehicleid][vehicle_price]);
ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_MSGBOX, "Car Purchase", dialog_string, "Yes", "No");
return 1;
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1337)
{
if(response)
{
new
vehicleid = GetPlayerVehicleID(playerid),
model = GetVehicleModel(vehicleid),
price = VehicleStatistics[vehicleid][vehicle_price],
Float:position[5],
string[128],
dealershipid = -1,
var[32],
playername[24];
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerPos(playerid, position[1], position[2], position[3]);
GetPlayerFacingAngle(playerid, position[4]);
if(GetPVarInt(playerid, "AmountOfCars") >= MAX_OWNABLE_CARS)
return SendClientMessage(playerid, color_grey, " You already own the maximum amount of vehicles !"), RemovePlayerFromVehicle(playerid);
if(GetPlayerMoney(playerid) < price)
return SendClientMessage(playerid, color_grey, " You can't afford that !"), RemovePlayerFromVehicle(playerid);
for(new i = 1; i < MAX_DEALERSHIPS; i++)
{
if(IsPlayerInRangeOfPoint(playerid, DealershipStatistics[i][dealership_radius], DealershipStatistics[i][dealership_x], DealershipStatistics[i][dealership_y], DealershipStatistics[i][dealership_z]))
{
dealershipid = i;
break;
}
}
DealershipStatistics[dealershipid][dealership_earnings] += (price / 4);
GivePlayerMoney(playerid, -price);
RemovePlayerFromVehicle(playerid);
vehicleid = CreateVehicle(model, (position[1] + (7.5 * floatsin(-position[4], degrees))), (position[2] + (7.5 * floatcos(position[4], degrees))), position[3], position[4], 0, 0, -1);
format(string, sizeof(string), "Thank you for purchasing at %s, we hope to see you again!", DealershipStatistics[dealershipid][dealership_name]);
SendClientMessage(playerid, color_white, string);
SendClientMessage(playerid, color_white, "Your vehicle has been spawned in front of you.");
SetPVarInt(playerid, "AmountOfCars", GetPVarInt(playerid, "AmountOfCars") + 1);
format(var, sizeof(var), "Model_%d", GetPVarInt(playerid, "AmountOfCars"));
SetPVarInt(playerid, var, model);
format(var, sizeof(var), "X_%d", GetPVarInt(playerid, "AmountOfCars"));
SetPVarFloat(playerid, var, (position[1] + (7.5 * floatsin(-position[4], degrees))));
format(var, sizeof(var), "Y_%d", GetPVarInt(playerid, "AmountOfCars"));
SetPVarFloat(playerid, var, (position[2] + (7.5 * floatcos(position[4], degrees))));
format(var, sizeof(var), "Z_%d", GetPVarInt(playerid, "AmountOfCars"));
SetPVarFloat(playerid, var, position[3]);
format(var, sizeof(var), "Angle_%d", GetPVarInt(playerid, "AmountOfCars"));
SetPVarFloat(playerid, var, position[4]);
format(var, sizeof(var), "Carkey_%d", GetPVarInt(playerid, "AmountOfCars"));
SetPVarInt(playerid, var, vehicleid);
format(var, sizeof(var), "Paintjob_%d", GetPVarInt(playerid, "AmountOfCars"));
SetPVarInt(playerid, var, -1);
strmid(owner[vehicleid], playername, 0, strlen(playername), 255);
SavePlayerVehicleData(playerid);
return 1;
}
else return RemovePlayerFromVehicle(playerid);
}
return 0;
}
stock SavePlayerVehicleData(playerid)
{
new file[100], playername[24], var[32];
GetPlayerName(playerid, playername, sizeof(playername));
format(file, sizeof(file), "ownedcars/%s.vehicle", playername);
if(INI_Open(file))
{
INI_WriteInt("AmountOfCars", GetPVarInt(playerid, "AmountOfCars"));
INI_WriteInt("HasDealership", GetPVarInt(playerid, "HasDealership"));
for(new s = 1; s <= MAX_OWNABLE_CARS; s++)
{
format(var, sizeof(var), "Model_%d", s);
INI_WriteInt(var, GetPVarInt(playerid, var));
format(var, sizeof(var), "X_%d", s);
INI_WriteFloat(var, GetPVarFloat(playerid, var));
format(var, sizeof(var), "Y_%d", s);
INI_WriteFloat(var, GetPVarFloat(playerid, var));
format(var, sizeof(var), "Z_%d", s);
INI_WriteFloat(var, GetPVarFloat(playerid, var));
format(var, sizeof(var), "Angle_%d", s);
INI_WriteFloat(var, GetPVarFloat(playerid, var));
format(var, sizeof(var), "Paintjob_%d", s);
INI_WriteInt(var, GetPVarInt(playerid, var));
for(new i = 1; i <= 17; i++)
{
format(var, sizeof(var), "Component%d_%d", i, s);
INI_WriteInt(var, GetPVarInt(playerid, var));
}
format(var, sizeof(var), "Color1_%d", s);
INI_WriteInt(var, GetPVarInt(playerid, var));
format(var, sizeof(var), "Color2_%d", s);
INI_WriteInt(var, GetPVarInt(playerid, var));
format(var, sizeof(var), "Locked_%d", s);
INI_WriteInt(var, GetPVarInt(playerid, var));
}
INI_Save();
INI_Close();
}
return 1;
}
stock LoadPlayerVehicleData(playerid)
{
new file[100], playername[24], var[32];
GetPlayerName(playerid, playername, sizeof(playername));
format(file, sizeof(file), "ownedcars/%s.vehicle", playername);
if(fexist(file) && INI_Open(file))
{
SetPVarInt(playerid, "AmountOfCars", INI_ReadInt("AmountOfCars"));
SetPVarInt(playerid, "HasDealership", INI_ReadInt("HasDealership"));
for(new s = 1; s <= MAX_OWNABLE_CARS; s++)
{
format(var, sizeof(var), "Model_%d", s);
SetPVarInt(playerid, var, INI_ReadInt(var));
format(var, sizeof(var), "X_%d", s);
SetPVarFloat(playerid, var, INI_ReadFloat(var));
format(var, sizeof(var), "Y_%d", s);
SetPVarFloat(playerid, var, INI_ReadFloat(var));
format(var, sizeof(var), "Z_%d", s);
SetPVarFloat(playerid, var, INI_ReadFloat(var));
format(var, sizeof(var), "Angle_%d", s);
SetPVarFloat(playerid, var, INI_ReadFloat(var));
format(var, sizeof(var), "Paintjob_%d", s);
SetPVarInt(playerid, var, INI_ReadInt(var));
for(new i = 1; i <= 17; i++)
{
format(var, sizeof(var), "Component%d_%d", i, s);
SetPVarInt(playerid, var, INI_ReadInt(var));
}
format(var, sizeof(var), "Color1_%d", s);
SetPVarInt(playerid, var, INI_ReadInt(var));
format(var, sizeof(var), "Color2_%d", s);
SetPVarInt(playerid, var, INI_ReadInt(var));
format(var, sizeof(var), "Locked_%d", s);
SetPVarInt(playerid, var, INI_ReadInt(var));
}
INI_Close();
}
for(new s = 1; s <= MAX_OWNABLE_CARS; s++)
{
new model, Float:Floats[5], carid;
format(var, sizeof(var), "Model_%d", s);
model = GetPVarInt(playerid, var);
format(var, sizeof(var), "X_%d", s);
Floats[1] = GetPVarFloat(playerid, var);
format(var, sizeof(var), "Y_%d", s);
Floats[2] = GetPVarFloat(playerid, var);
format(var, sizeof(var), "Z_%d", s);
Floats[3] = GetPVarFloat(playerid, var);
format(var, sizeof(var), "Angle_%d", s);
Floats[4] = GetPVarFloat(playerid, var);
carid = CreateVehicle(model, Floats[1], Floats[2], Floats[3], Floats[4], 0, 0, -1);
if(carid != INVALID_VEHICLE_ID)
{
format(var, sizeof(var), "Carkey_%d", s);
SetPVarInt(playerid, var, carid);
}
format(var, sizeof(var), "Locked_%d", s);
switch(GetPVarInt(playerid, var))
{
case false: { locked[carid] = false; }
case true: { locked[carid] = true; }
}
strmid(owner[carid], playername, 0, strlen(playername), 255);
}
SetPVarInt(playerid, "CarsLoaded", 1);
ModifyVehicles(playerid);
return 1;
}
stock ParkVehicle(playerid, slot)
{
new
var[32],
Float:v_hp,
string[64],
vehicleid,
Float:v_pos[4],
Float:v_rot,
tmp_model,
Float:tmp_pos[4],
Float:tmp_rot,
playername[24],
Float:ply_pos[4],
islocked;
GetPlayerName(playerid, playername, sizeof(playername));
format(var, sizeof(var), "Carkey_%d", slot);
vehicleid = GetPVarInt(playerid, var);
if(vehicleid > 0)
{
locked[vehicleid] = false;
GetVehicleHealth(vehicleid, v_hp);
GetVehiclePos(vehicleid, v_pos[1], v_pos[2], v_pos[3]);
GetVehicleZAngle(vehicleid, v_rot);
format(var, sizeof(var), "X_%d", slot);
SetPVarFloat(playerid, var, v_pos[1]);
format(var, sizeof(var), "Y_%d", slot);
SetPVarFloat(playerid, var, v_pos[2]);
format(var, sizeof(var), "Z_%d", slot);
SetPVarFloat(playerid, var, v_pos[3]);
format(var, sizeof(var), "Angle_%d", slot);
SetPVarFloat(playerid, var, v_rot);
DestroyVehicle(vehicleid);
format(var, sizeof(var), "Model_%d", slot);
tmp_model = GetPVarInt(playerid, var);
format(var, sizeof(var), "X_%d", slot);
tmp_pos[1] = GetPVarFloat(playerid, var);
format(var, sizeof(var), "Y_%d", slot);
tmp_pos[2] = GetPVarFloat(playerid, var);
format(var, sizeof(var), "Z_%d", slot);
tmp_pos[3] = GetPVarFloat(playerid, var);
format(var, sizeof(var), "Angle_%d", slot);
tmp_rot = GetPVarFloat(playerid, var);
format(var, sizeof(var), "Locked_%d", slot);
islocked = GetPVarInt(playerid, var);
vehicleid = CreateVehicle(tmp_model, tmp_pos[1], tmp_pos[2], tmp_pos[3], tmp_rot, 1, 1, -1);
ModifyVehicles(playerid);
SetVehicleHealth(vehicleid, v_hp);
format(string, sizeof(string), "%s has parked their vehicle.", playername);
GetPlayerPos(playerid, ply_pos[1], ply_pos[2], ply_pos[3]);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i, 20.0, ply_pos[1], ply_pos[2], ply_pos[3]))
{
SendClientMessage(i, 0xC2A2DAAA, string);
}
}
switch(islocked)
{
case false: { locked[vehicleid] = false; }
case true: { locked[vehicleid] = true; }
}
strmid(owner[vehicleid], playername, 0, strlen(playername), 255);
PutPlayerInVehicle(playerid, vehicleid, 0);
SavePlayerVehicleData(playerid);
return 1;
}
return 1;
}
stock ReturnVehicleSlot(playerid)
{
if(IsPlayerInAnyVehicle(playerid))
{
new
vehicleid = GetPlayerVehicleID(playerid),
var[32];
for(new s = 1; s <= MAX_OWNABLE_CARS; s++)
{
format(var, sizeof(var), "Carkey_%d", s);
if(vehicleid == GetPVarInt(playerid, var)) return s;
}
}
return 0;
}
stock ModifyVehicles(playerid)
{
new vehicleid, var[32], colors[3];
for(new s = 1; s <= MAX_OWNABLE_CARS; s++)
{
format(var, sizeof(var), "Carkey_%d", s);
vehicleid = GetPVarInt(playerid, var);
if(vehicleid > 0)
{
format(var, sizeof(var), "Paintjob_%d", s);
if(GetPVarInt(playerid, var) != -1)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component1_%d", s);
if(GetPVarInt(playerid, var) != 0)
AddVehicleComponent(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component2_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component3_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component4_%d", s);
if(GetPVarInt(playerid, var) != 0)
AddVehicleComponent(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component5_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component6_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component7_%d", s);
if(GetPVarInt(playerid, var) != 0)
AddVehicleComponent(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component8_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component9_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component10_%d", s);
if(GetPVarInt(playerid, var) != 0)
AddVehicleComponent(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component11_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component12_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component13_%d", s);
if(GetPVarInt(playerid, var) != 0)
AddVehicleComponent(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component14_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component15_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component16_%d", s);
if(GetPVarInt(playerid, var) != 0)
AddVehicleComponent(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Component17_%d", s);
if(GetPVarInt(playerid, var) != 0)
ChangeVehiclePaintjob(vehicleid, GetPVarInt(playerid, var));
format(var, sizeof(var), "Color1_%d", s);
colors[1] = GetPVarInt(playerid, var);
format(var, sizeof(var), "Color2_%d", s);
colors[2] = GetPVarInt(playerid, var);
ChangeVehicleColor(vehicleid, colors[1], colors[2]);
}
}
return 1;
}
stock UnloadVehicles(playerid)
{
new
playername[24],
var[32];
GetPlayerName(playerid, playername, sizeof(playername));
for(new i = 1; i < MAX_VEHICLES; i++)
{
if(strcmp(owner[i], playername, true) == 0)
{
for(new s = 1; s <= MAX_OWNABLE_CARS; s++)
{
format(var, sizeof(var), "Carkey_%d", s);
if(GetPVarInt(playerid, var) == i)
{
DestroyVehicle(i);
}
}
}
}
return 1;
}
stock DeleteVehicle(playerid, slot)
{
new
var[32],
string[64],
slotstring[10],
vehicleid;
format(var, sizeof(var), "Carkey_%d", slot);
vehicleid = GetPVarInt(playerid, var);
format(var, sizeof(var), "Model_%d", slot);
SetPVarInt(playerid, var, 0);
format(var, sizeof(var), "X_%d", slot);
SetPVarFloat(playerid, var, 0.0);
format(var, sizeof(var), "Y_%d", slot);
SetPVarFloat(playerid, var, 0.0);
format(var, sizeof(var), "Z_%d", slot);
SetPVarFloat(playerid, var, 0.0);
format(var, sizeof(var), "Angle_%d", slot);
SetPVarFloat(playerid, var, 0.0);
format(var, sizeof(var), "Paintjob_%d", slot);
SetPVarInt(playerid, var, 0);
for(new i = 1; i <= 17; i++)
{
format(var, sizeof(var), "Component%d_%d", i, slot);
SetPVarInt(playerid, var, 0);
}
format(var, sizeof(var), "Color1_%d", slot);
SetPVarInt(playerid, var, 0);
format(var, sizeof(var), "Color2_%d", slot);
SetPVarInt(playerid, var, 0);
SetPVarInt(playerid, var, 0);
switch(slot)
{
case 1: slotstring = "one";
case 2: slotstring = "two";
}
format(string, sizeof(string), "You have deleted your vehicle in slot %s.", slotstring);
SendClientMessage(playerid, color_white, string);
if(vehicleid > 0) { SetPVarInt(playerid, "AmountOfCars", GetPVarInt(playerid, "AmountOfCars") - 1); }
DestroyVehicle(vehicleid);
SavePlayerVehicleData(playerid);
return 1;
}
GetVehicleName(vehicleid)
{
new
vehiclename[64] = "None";
if(!vehicleid) return vehiclename;
format(vehiclename, sizeof(vehiclename), "%s", vehName[( GetVehicleModel(vehicleid) - 400 )]);
return vehiclename;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(createdealer, 12, cmdtext);
dcmd(destroydealer, 13, cmdtext);
dcmd(buydealer, 9, cmdtext);
dcmd(createcar, 9, cmdtext);
dcmd(earnings, 8, cmdtext);
dcmd(collectearnings, 15, cmdtext);
dcmd(selldealership, 14, cmdtext);
dcmd(park, 4, cmdtext);
dcmd(delete, 6, cmdtext);
dcmd(lock, 4, cmdtext);
return 0;
}
stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{
new changestr[16], changepos = 0, strpos = stringPos;
while(changepos < 16 && string[strpos] && string[strpos] != delim)
{
changestr[changepos++] = string[strpos++];
}
changestr[changepos] = '\0';
setarg(paramPos,0,_:floatstr(changestr));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = string[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
id = (id * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(id))
{
setarg(paramPos, 0, id);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
Did you extract all the content from .rar archive to appropriate directories? Because I have a feeling that you didn't.