01.11.2018, 13:33
I do not sign up for a dealership creation.
Code:
#define MAX_DEALERSHIPS 50
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,
DID
};
new DealershipStatistics[MAX_DEALERSHIPS][dealership_enum];
enum vehicle_stats
{
vehicle_dealership,
vehicle_model,
vehicle_price,
Float:vehicle_position[5],
Text3D:vehicle_label,
vehicle_onsale,
VID
};
new VehicleStatistics[MAX_VEHICLES][vehicle_stats];
new bool:dealership_taken[MAX_DEALERSHIPS];
public OnFilterScriptInit()
{
ConnectMySQL();
SetupDealershipsTable();
SetupVehiclesTable();
return 1;
}
public OnFilterScriptExit()
{
for(new i = 1; i < MAX_DEALERSHIPS; i++)
{
if(dealership_taken[i] == true)
{
SaveDealership_MySQL(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]);
}
}
return 1;
}
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, -1, "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, -1, carx, cary, carz, 10.0, 0);
SaveDealership_MySQL(GetPVarInt(creator, "HasDealership"));
return 1;
}
CMD: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, -1, " You are not authorized to use this command !");
if(sscanf(params, "dfs", price, radius, dealername))
return SendClientMessage(playerid, -1, "* [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, -1, " 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, -1, x, y, z, 10.0, 0);
format(string, sizeof(string), " Dealership %d created.", dealershipid);
SendClientMessage(playerid, -1, string);
dealership_taken[dealershipid] = true;
SaveDealership_MySQL(dealershipid);
return 1;
}
stock SaveDealership_MySQL(dealershipid)
{
if(dealership_taken[dealershipid] == true)
{
new query[145];
mysql_format(g_SQL, query, sizeof query, "UPDATE `dealerships` SET `dealership_name` = %s, `dealership_owner` = %s, `dealership_price` = %d, `dealership_owned` = %d, `dealership_x` = %f, `dealership_y` = %f, `dealership_z` = %f, `dealership_radius` = %f, `dealership_earnings` = %d WHERE `did` = %d LIMIT 1",
DealershipStatistics[dealershipid][dealership_name], DealershipStatistics[dealershipid][dealership_owner], DealershipStatistics[dealershipid][dealership_price], DealershipStatistics[dealershipid][dealership_owned],
DealershipStatistics[dealershipid][dealership_x], DealershipStatistics[dealershipid][dealership_y], DealershipStatistics[dealershipid][dealership_z], DealershipStatistics[dealershipid][dealership_radius],
DealershipStatistics[dealershipid][dealership_earnings], DealershipStatistics[dealershipid][DID]);
mysql_tquery(g_SQL, query);
}
for(new i = 1; i < MAX_VEHICLES; i++)
{
if(VehicleStatistics[i][vehicle_dealership] == dealershipid)
{
new query[145];
mysql_format(g_SQL, query, sizeof query, "UPDATE `vehicles` SET `vehicle_dealership` = %d, `vehicle_model` = %d, `vehicle_price` = %d, `vehicle_x` = %f, `vehicle_y` = %f, `vehicle_z` = %f, `vehicle_angle` = %f, `vehicle_onsale` = %d WHERE `vid` = %d LIMIT 1",
VehicleStatistics[i][vehicle_dealership], VehicleStatistics[i][vehicle_model], VehicleStatistics[i][vehicle_price], VehicleStatistics[i][vehicle_position][1],
VehicleStatistics[i][vehicle_position][2], VehicleStatistics[i][vehicle_position][3], VehicleStatistics[i][vehicle_position][4], VehicleStatistics[i][vehicle_onsale], VehicleStatistics[i][VID]);
mysql_tquery(g_SQL, query);
}
}
return 1;
}
SetupDealershipsTable()
{
new mysql_dealership[1000];
strcat(mysql_dealership, "CREATE TABLE IF NOT EXISTS `dealerships` (");
strcat(mysql_dealership, "`did` int(11) NOT NULL AUTO_INCREMENT, ");
strcat(mysql_dealership, "`dealership_name` varchar(24) NOT NULL, ");
strcat(mysql_dealership, "`dealership_owner` varchar(24) NOT NULL, ");
strcat(mysql_dealership, "`dealership_price` int(11) NOT NULL, ");
strcat(mysql_dealership, "`dealership_owned` int(11) NOT NULL DEFAULT '0', ");
strcat(mysql_dealership, "`dealership_x` float NOT NULL DEFAULT '0', ");
strcat(mysql_dealership, "`dealership_y` float NOT NULL DEFAULT '0', ");
strcat(mysql_dealership, "`dealership_z` float NOT NULL DEFAULT '0', ");
strcat(mysql_dealership, "`dealership_radius` float NOT NULL DEFAULT '0', ");
strcat(mysql_dealership, "`dealership_earnings` int(11) NOT NULL DEFAULT '0', ");
strcat(mysql_dealership, "PRIMARY KEY (`did`), ");
strcat(mysql_dealership, "UNIQUE KEY `dealership_name` (`dealership_name`))");
mysql_tquery(g_SQL, mysql_dealership);
return 1;
}
SetupVehiclesTable()
{
new mysql_cars[1000];
strcat(mysql_cars, "CREATE TABLE IF NOT EXISTS `vehicle` (");
strcat(mysql_cars, "`vid` int(11) NOT NULL AUTO_INCREMENT, ");
strcat(mysql_cars, "`vehicle_dealership` int(11) NOT NULL, ");
strcat(mysql_cars, "`vehicle_model` int(11) NOT NULL, ");
strcat(mysql_cars, "`vehicle_price` int(11) NOT NULL, ");
strcat(mysql_cars, "`vehicle_x` float NOT NULL DEFAULT '0', ");
strcat(mysql_cars, "`vehicle_y` float NOT NULL DEFAULT '0', ");
strcat(mysql_cars, "`vehicle_z` float NOT NULL DEFAULT '0', ");
strcat(mysql_cars, "`vehicle_angle` float NOT NULL DEFAULT '0', ");
strcat(mysql_cars, "`vehicle_onsale` int(11) NOT NULL DEFAULT '0', ");
strcat(mysql_cars, "PRIMARY KEY (`vid`), ");
strcat(mysql_cars, "UNIQUE KEY `vehicle_dealership` (`vehicle_dealership`))");
mysql_tquery(g_SQL, mysql_cars);
return 1;
}

