PDA

Просмотр полной версии : [Вопрос] После рестарта сервер не включается



sdoleg2011
20.12.2015, 17:39
Kогда сервер /restart то он просто выключается и всё, после ночного рестарта он тоже просто не работает, вот код:



CMD:restart(playerid, params[])
{
if(!strcmp(PlayerInfo[playerid][pNames], FD1, true) ||
!strcmp(PlayerInfo[playerid][pNames], FD2, true) ||
!strcmp(PlayerInfo[playerid][pNames], FD3,true) ||
!strcmp(PlayerInfo[playerid][pNames], FD4,true) ||
!strcmp(PlayerInfo[playerid][pNames], FD5, true))
{
ServerRestart[1] = 10;
SendClientMessageToAll(COLOR_REDD, "« WoodLine RolePlay » - Ïåðåçàãðóçêà èãðîâîãî ðåæèìà ÷åðåç 10 ñåêóíä!");
}
return 1;
}

Это ночной рестарт:


if ((tmphour > ghour) || (tmphour == 0 && ghour == 23))
{
format(stringer,SMALL_SIZE, "Сейчас времени %d:00 часов",tmphour);
ABroadCast(COLOR_LIGHTRED,stringer,6);
ghour = tmphour;
PayDay();
if (realtime) SetWorldTime(tmphour);
if(tmphour == 5)
{
for(new i=0;i<5;i++) SendClientMessageToAll(0x9F0000FF,"");
for(new h=1;h<MAX_HOTEL;h++) CheckHotel(h);
for(new h=0;h<sizeof(HouseInfo);h++) CheckHouse(h);
for(new x=0;x<sizeof(BizInfo);x++) CheckBusiness(x);
SendClientMessageToAll(0x9F0000FF,"Внимание! Рестарт сервера через 5 минут");
}
}
if(hour == 5)
{
if(minute == 4 && second == 30)
{
for (new i = 0; i < 5; i++) SendClientMessageToAll(0x9F0000FF,"");
SaveMaterials();
for(new h = 0; h < sizeof(HouseInfo); h++) SaveHouse(h);
SaveBankMafia(); SaveBankFrac();
for(new i = 0; i < sizeof(SBizzInfo); i ++) SaveSBizz(i);
for(new i = 0; i < sizeof(BizInfo); i ++) SaveBusiness(i);
for(new i = 1; i < MAX_HOTEL; i++) SaveHotel(i);
SendClientMessageToAll(0x9F0000FF,"Внимание! Рестарт сервера через 30 секунд");
}
if(minute == 5 && ServerRestart[0] == 0)
{
new time = GetTickCount();
foreach(new i: Player)
{
ShowPlayerDialog(i,0000,DIALOG_STYLE_MSGBOX, "{FF6F00}Ночной рестарт сервера:","{FFFFFF}Происходит рестарт сервера\nЭто может занять до 3 минут.\n\nБлагодарим Вас за ожидание.\n\nПричина рестарта:\n-Обновление\n- Исправление технических недочетов\n- Обновления", "Готово", "");
KickEx(i, 2222);
}
printf("[SaveAll] - %d <ms>",GetTickCount() - time);
format(stringer1,100, "[SaveAll] Сохранение всего и домов - %d <ms>",GetTickCount() - time);
ABroadCast(0xAA3333AA,stringer1,1);
ServerRestart[0] = 2;
return 1;
}
}

L0ndl3m
20.12.2015, 17:55
Что должно происходить?
Не сохраняются аккаунты? Не кикает игроков?

sdoleg2011
20.12.2015, 17:57
Сервер должен перезапускатся
Он просто выключается

L0ndl3m
20.12.2015, 17:59
Где у вас функция, отвечающая за выключение сервера?

sdoleg2011
20.12.2015, 18:06
if(ServerRestart[0] == 2)
{
new totalplayers = 0;
foreach(new i:Player)
totalplayers++;

if(totalplayers <= 0) SendRconCommand("exit");
}

L0ndl3m
20.12.2015, 18:28
Слово "exit" замените на "gmx".

A N D R E Y
20.12.2015, 18:29
if(ServerRestart[0] == 2)
{
new totalplayers = 0;
foreach(new i:Player)
totalplayers++;

if(totalplayers <= 0) SendRconCommand("exit");
}

SendRconCommand("gmx");
Попробуй так.

L0ndl3m
20.12.2015, 19:14
SendRconCommand("gmx");
Попробуй так.
Нескромный вопрос: чем моё предложение отличается от вашего?

A N D R E Y
20.12.2015, 20:36
Нескромный вопрос: чем моё предложение отличается от вашего?
Можете удалить, просто когда писал вашего ответа не было.