PDA

Просмотр полной версии : [Вопрос] Рестарт сервера



Kamigakuro
27.03.2017, 00:53
Целый день пытаюсь перебороть проблему с рестартом сервера.
После рестарта игрока просто кикает с сервера (Server closed the connection), и после полного перезахода в самп невозможно подключиться, пока не перезагрузишь сам сервер путем закрытия консоли. В чем может быть проблема? Вот код рестарта:


SCMTA(COLOR_YELLOW, "Внимание! Происходит рестарт сервера!");
SCMTA(COLOR_YELLOW, "Скоро мы вернемся!");
GameTextForAll("~r~RESTART", 20000, 6);
foreach(new i:Player)
{
TogglePlayerControllable(i, 0);
SetPlayerCameraPos(i, 1677.4501,-1493.8395,123.0782);
SetPlayerCameraLookAt(i, 1527.5341,-1778.5883,71.1633);
}
SaveAccounts();
// SaveFractions();
SetTimer("@_Restarting", 15000, false);



@_Restarting();
@_Restarting()
{
SendRconCommand("gmx");
return 1;
}



stock SaveAccounts()
{
foreach(new i:Player)
{ SaveAccount(i); }
return 1;
}



stock SaveAccount(playerid)
{
new query_string[211+24+3+3+1+1+2+2+1+3+2+1+9+7] = "UPDATE `accounts` SET";
format(query_string, sizeof(query_string), "%s `hp` = '%f',", query_string, PlayerInfo[playerid][pHP]);
format(query_string, sizeof(query_string), "%s `money` = '%d'", query_string, PlayerInfo[playerid][pMoney]);
format(query_string, sizeof(query_string), "%s WHERE `accid` = '%d'", query_string, PlayerInfo[playerid][pID]);
mysql_tquery(dbHandle, query_string, "", "");
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
printf("[debufinfo] Disconnect(%d, %d)", playerid, reason);
printf("[debufinfo] GetPlayerState Disconnect(%d)", GetPlayerState(playerid));
GetPlayerHealth(playerid, PlayerInfo[playerid][pHP]);
SaveAccount(playerid);
KillTimer(PlayerInfo[playerid][pSecTimer]);
RemovePlayerInfo(playerid);
return 1;
}

public OnGameModeExit()
{
mysql_close(dbHandle);
TextDrawDestroy(skin[0]);TextDrawDestroy(skin[1]);TextDrawDestroy(skin[2]);
TextDrawDestroy(LOGO[0]);TextDrawDestroy(LOGO[1]);TextDrawDestroy(LOGO[2]);
TextDrawDestroy(LOGO[3]);TextDrawDestroy(LOGO[4]);
KillTimer(globaltimer);
return 1;
}