Не сохраняет авто после перезагрузки сервера.
Всем привет! Щас постараюсь как можно подробней описать проблему.
Написал на сервер систему автомобилей. Так вот... Игрок купил автомобиль, указал ему спавн (где авто будет появляться после перезагрузки сервера), все что он сделал сохранилось в таблицу mySQL. Но стоит перезагрузить сервер, то если игрок захочет поменять авто спавн то он уже не сохранится... То есть после перезагрузки сервера перестает работать сохранение...
Вот такие ошибки появляются в mysql_log:
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1997')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1997')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1997')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1997')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1998')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1998')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1998')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1998')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1998')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1998')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1998')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1998')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1999')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1999')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1999')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1999')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1999')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1999')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1999')
[22:07:15] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1999')
Это только небольшой кусок всех ошибок... Их там просто дох*ра....
Вот код загрузки авто:
PHP код:
public LoaginAuto()
{
new vehicleid[MAX_VEHICLES];
new query_string3[350];
for(new i; i < MAX_VEHICLES; i++)
{
pVehicle[i][pX] = cache_get_field_content_float(i, "X", mysql_connect_ID);
pVehicle[i][pY] = cache_get_field_content_float(i, "Y", mysql_connect_ID);
pVehicle[i][pZ] = cache_get_field_content_float(i, "Z", mysql_connect_ID);
pVehicle[i][pAngle] = cache_get_field_content_float(i, "Angle", mysql_connect_ID);
cache_get_field_content(i, "Name", pVehicle[i][pName], mysql_connect_ID, 24);
pVehicle[i][pID] = cache_get_field_content_int(i, "ID", mysql_connect_ID);
pVehicle[i][pStatus] = cache_get_field_content_int(i, "Status", mysql_connect_ID);
pVehicle[i][pColor] = cache_get_field_content_int(i, "Color", mysql_connect_ID);
if(pVehicle[i][pID] > 0)
{
if(pVehicle[i][pX] == 0 && pVehicle[i][pY] == 0 && pVehicle[i][pZ] == 0)
{
new query_string[200];
format(query_string, sizeof(query_string), "DELETE FROM `Auto` WHERE `X` = '%f'", pVehicle[i][pX]);
mysql_function_query(mysql_connect_ID, query_string , false, "", "");
}
else{
vehicleid{i} = AddStaticVehicle(pVehicle[i][pID], pVehicle[i][pX], pVehicle[i][pY], pVehicle[i][pZ], pVehicle[i][pAngle], pVehicle[i][pColor],pVehicle[i][pColor]);
mysql_format(mysql_connect_ID, query_string3, sizeof(query_string3), "UPDATE `accounts` SET `AutoID`='%d' WHERE `Name` = '%d'", vehicleid{i}, pVehicle[i][pName]);
mysql_function_query(mysql_connect_ID, query_string3, false, "", "");
}
}
}
return 1;
}
Вот код сохранения (вызывается каждые 20 секунд в таймере):
PHP код:
public SaveAuto()
{
for(new i; i < MAX_VEHICLES; i++)
{
if(pVehicle[i][pID] > 0)
{
new query_string1[500];
mysql_format(mysql_connect_ID,query_string1, sizeof(query_string1),"UPDATE `Auto` SET `ID`='%d', `Color`='%d', `Status`='%d', `X`='%f', `Y`='%f', `Z`='%f', `Angle`='%f' WHERE `Name`='%s'", pVehicle[i][pID] ,pVehicle[i][pColor], pVehicle[i][pStatus], pVehicle[i][pX], pVehicle[i][pY], pVehicle[i][pZ], pVehicle[i][pAngle], pVehicle[i][pName]);
mysql_function_query(mysql_connect_ID, query_string1, false, "", "");
}
}
return 1;
}
Код покупки авто:
PHP код:
public NewSpawnAutoServer(playerid, X, Y, Z)
{
if(pInfo[playerid][pMoney] < newzenaauto[playerid]) return SendClientMessage(playerid, -1, "{D40000}[Ошибка] Вы не смогли оплатить автомобиль!");
pInfo[playerid][pMoney] = pInfo[playerid][pMoney] - newzenaauto[playerid];
GivePlayerMoney(playerid, -newzenaauto[playerid]);
new vehicleid = CreateVehicle(newidauto[playerid], newXauto[playerid], newYauto[playerid], newZauto[playerid], newangleauto[playerid], newcolorauto[playerid], newcolorauto[playerid], -1);
SendClientMessage(playerid, -1, "{183DFF}[Оповещение] Автомобиль доставлен на место! Спасибо за покупку!");
pVehicle[vehicleid][pID] = newidauto[playerid];
pVehicle[vehicleid][pColor] = newcolorauto[playerid];
format(pVehicle[vehicleid][pName], 24, "%s", pInfo[playerid][pName]);
pInfo[playerid][pAuto] = vehicleid;
newidauto[playerid] = 0;
newcolorauto[playerid] = 0;
newzenaauto[playerid] = 0;
newXauto[playerid] = 0;
newYauto[playerid] = 0;
newZauto[playerid] = 0;
newangleauto[playerid] = 0;
new query_string1[500];
format(query_string1, sizeof(query_string1), "INSERT INTO `Auto` (`ID`, `Name`, `Color`, `Status`, `X`, `Y`, `Z`, `Angle`) VALUES ('%d', '%s', '%d', '%d', '%f', '%f', '%f', '%f')", pVehicle[vehicleid][pID], pVehicle[vehicleid][pName], pVehicle[vehicleid][pColor], pVehicle[vehicleid][pStatus], pVehicle[vehicleid][pX], pVehicle[vehicleid][pY], pVehicle[vehicleid][pZ], pVehicle[vehicleid][pAngle]);
mysql_function_query(mysql_connect_ID, query_string1 , false, "", "");
return 1;
}
Буду очень благодарен кто поможет!:smile: