pawn Код:
// ** INCLUDES
#include <a_samp>
#include <a_mysql>
// ** DEFINES
// *** DATABASE
// **** GENERAL
#define MYSQL_HOST "localhost"
#define MYSQL_USER "root"
#define MYSQL_PASSWORD ""
#define MYSQL_DATABASE "mysql_vehicles"
// **** TABLES
// ***** VEHICLES
// ****** GENERAL
#define TABLE_VEHICLES "vehicles"
// ****** FIELDS
#define VEHICLES_MODEL "model"
#define VEHICLES_POSITION_X "position_x"
#define VEHICLES_POSITION_Y "position_y"
#define VEHICLES_POSITION_Z "position_z"
#define VEHICLES_ANGLE "angle"
#define VEHICLES_COLOR_1 "color_1"
#define VEHICLES_COLOR_2 "color_2"
#define VEHICLES_RESPAWN_DELAY "respawn_delay"
#define VEHICLES_SIREN "siren"
// ** VARIABLES
// *** GLOBAL VARIABLES
// **** DATABASE
static vehicles_database;
// **** VEHICLES
new gvhModel[MAX_VEHICLES],
Float:gvhPositionX[MAX_VEHICLES],
Float:gvhPositionY[MAX_VEHICLES],
Float:gvhPositionZ[MAX_VEHICLES],
Float:gvhAngle[MAX_VEHICLES],
gvhColor1[MAX_VEHICLES],
gvhColor2[MAX_VEHICLES],
gvhRespawnDelay[MAX_VEHICLES],
gvhSiren[MAX_VEHICLES];
// ** MAIN
main()
{
print("Loaded \"mysql_vehicles.amx\".");
}
// ** CALLBACKS
public OnGameModeInit()
{
LoadDatabase();
LoadVehicles();
return 1;
}
public OnGameModeExit()
{
return 1;
}
// ** FUNCTIONS
stock LoadDatabase()
{
mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG);
vehicles_database = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);
if(mysql_errno(vehicles_database))
{
print("[MySQL] Couldn't connect to "#MYSQL_DATABASE".");
}
else
{
new query[800];
print("[MySQL] Connected to "#MYSQL_DATABASE".");
strcat(query, "CREATE TABLE IF NOT EXISTS "#TABLE_VEHICLES"(");
strcat(query, ""#VEHICLES_MODEL" INT(20),");
strcat(query, ""#VEHICLES_POSITION_X" FLOAT(20),");
strcat(query, ""#VEHICLES_POSITION_Y" FLOAT(20),");
strcat(query, ""#VEHICLES_POSITION_Z" FLOAT(20),");
strcat(query, ""#VEHICLES_ANGLE" FLOAT(20),");
strcat(query, ""#VEHICLES_COLOR_1" INT(20),");
strcat(query, ""#VEHICLES_COLOR_2" INT(20),");
strcat(query, ""#VEHICLES_RESPAWN_DELAY" INT(20),");
strcat(query, ""#VEHICLES_SIREN" INT(20))");
mysql_query(vehicles_database, query);
}
return 1;
}
stock LoadVehicles()
{
new query[500];
strcat(query, "SELECT `"#VEHICLES_MODEL"`, `"#VEHICLES_POSITION_X"`, `"#VEHICLES_POSITION_Y"`, `"#VEHICLES_POSITION_Z"`, `"#VEHICLES_ANGLE"`, `"#VEHICLES_COLOR_1"`, `"#VEHICLES_COLOR_2"`, `"#VEHICLES_RESPAWN_DELAY"`, `"#VEHICLES_SIREN"` FROM `"#TABLE_VEHICLES"`");
mysql_function_query(vehicles_database, query, true, "OnVehiclesLoaded", "");
return 1;
}
forward OnVehiclesLoaded();
public OnVehiclesLoaded()
{
new vehicleid, model, Float:x, Float:y, Float:z, Float:angle, color_1, color_2, respawn_delay, siren;
for(new i = 0, j = cache_get_row_count(vehicles_database); i < j; i ++)
{
model = cache_get_row_int(i, 0, vehicles_database);
x = cache_get_row_float(i, 1, vehicles_database);
y = cache_get_row_float(i, 2, vehicles_database);
z = cache_get_row_float(i, 3, vehicles_database);
angle = cache_get_row_float(i, 4, vehicles_database);
color_1 = cache_get_row_int(i, 5, vehicles_database);
color_2 = cache_get_row_int(i, 6, vehicles_database);
respawn_delay = cache_get_row_int(i, 7, vehicles_database);
siren = cache_get_row_int(i, 8, vehicles_database);
vehicleid = CreateVehicle(model, x, y, z, angle, color_1, color_2, respawn_delay, siren);
gvhModel[vehicleid] = model;
gvhPositionX[vehicleid] = x;
gvhPositionY[vehicleid] = y;
gvhPositionZ[vehicleid] = z;
gvhAngle[vehicleid] = angle;
gvhColor1[vehicleid] = color_1;
gvhColor2[vehicleid] = color_2;
gvhRespawnDelay[vehicleid] = respawn_delay;
gvhSiren[vehicleid] = siren;
}
return 1;
}