Проблема с загрузкой авто (mysql r41-3)
Доброго времени суток, господа.
В общем, столкнулся с проблемой загрузки автомобилей с базы данных.
Если насильно (дебаг) узнать ID в базе этого автомобиля, то один из автомобилей будет иметь ID 0. С чем это связано - неизвестно для меня, поэтому я решил обратиться к вам.
Скриншот: https://imgur.com/a/cWIDh
Лог загрузки авто
Открыть/закрыть [14:42:23] Загружен транспорт: vID: 1, ID: 1, Fraction: 7
[14:42:23] Загружен транспорт: vID: 3, ID: 2, Fraction: 7
[14:42:23] Загружен транспорт: vID: 4, ID: 3, Fraction: 7
Колбэк загрузки авто
Открыть/закрыть
Код:
@LoadFractionVehicle();
@LoadFractionVehicle()
{
new time = GetTickCount();
new rows;
new id = VEHS;
cache_get_row_count(rows);
if(!rows) return print("- Динамические авто не найдены");
for(new i; i < rows; i++)
{
cache_get_value_name_int(i, "f_v_id", VehicleInfo[id][vID]);
cache_get_value_name_int(i, "f_v_model", VehicleInfo[id][vModel]);
cache_get_value_name_int(i, "f_v_fraction", VehicleInfo[id][vFraction]);
cache_get_value_name_int(i, "f_v_color1", VehicleInfo[id][vColor1]);
cache_get_value_name_int(i, "f_v_color2", VehicleInfo[id][vColor2]);
cache_get_value_name_float(i, "f_v_posX", VehicleInfo[id][vX]);
cache_get_value_name_float(i, "f_v_posY", VehicleInfo[id][vY]);
cache_get_value_name_float(i, "f_v_posZ", VehicleInfo[id][vZ]);
cache_get_value_name_float(i, "f_v_posA", VehicleInfo[id][vA]);
VehicleInfo[id][vVehicle] = AddTeamVehicle(VehicleInfo[id][vFraction], VehicleInfo[id][vModel], VehicleInfo[id][vX], VehicleInfo[id][vY], VehicleInfo[id][vZ], VehicleInfo[id][vA], VehicleInfo[id][vColor1], VehicleInfo[id][vColor2]);
printf("Загружен транспорт: vID: %d, ID: %d, Fraction: %d", VehicleInfo[id][vID], VehicleInfo[id][vVehicle], VehicleInfo[id][vFraction]);
VEHS++;
}
printf("[Загружено динамических автомобилей]: <%i>. Потрачено: <%i ms>.", rows, GetTickCount() - time);
return 1;
}
Функция создания авто
Открыть/закрыть
Код:
stock AddTeamVehicle(fraction, modelid, Float: X, Float: Y, Float: Z, Float: A, Color1, Color2)
{
new vehicleid = CreateVehicle(modelid, X, Y, Z, A, Color1, Color2, 300);
if(vehicleid == INVALID_VEHICLE_ID) return 0;
VehicleInfo[vehicleid][vFuel] = 100.0;
VehicleInfo[vehicleid][vFraction] = fraction;
printf("Создан транспорт vID: %i, ID: %d", VehicleInfo[vehicleid][vID], vehicleid);
SetVehicleNumberPlate(vehicleid, "San Andreas");
SetVehicleParamsEx(vehicleid, false, false, false, false, false, false, false);
ToggleLock(vehicleid, 0);
if(fraction == TEAM_FBI)
{
SignalTick[vehicleid][1] = -1;
LightsObject[vehicleid][0] = -1;
LightsObject[vehicleid][1] = -1;
LightsObject[vehicleid][2] = -1;
LightsObject[vehicleid][3] = -1;
}
switch(modelid)
{
case 430, 446, 452, 453, 454, 472, 473, 484, 493: VehicleState[vehicleid] = VEHICLE_STATE_BOAT;
case 417, 425, 447, 460, 469, 476, 487, 488, 497, 511, 512, 513, 519, 520, 548, 553,
563, 577, 592, 593: VehicleState[vehicleid] = VEHICLE_STATE_PLANE;
case 581, 522, 461, 521, 523, 463, 468, 471, 586: VehicleState[vehicleid] = VEHICLE_STATE_BIKE;
case 509, 481, 510: VehicleState[vehicleid] = VEHICLE_STATE_VELIK;
case 462, 448: VehicleState[vehicleid] = VEHICLE_STATE_MOPED;
case 538, 537: VehicleState[vehicleid] = VEHICLE_STATE_TRAIN;
default: VehicleState[vehicleid] = VEHICLE_STATE_CAR;
}
return vehicleid;
}
Также при редактировании координат этого авто, естественно они не редактируются, поскольку транспорта с ID 0 в базе нет.