Supreme228 2 Опубликовано 21 июля, 2018 Доброго времени суток. Требуется помощь )0) Нужно, чтобы за 5 секунд до момента отключения мода (перезагрузки), произошло сохранение аккаунтов + кик всех игроков. Я тут пытался с этим пошаманить - безуспешно. Так же, нужен текст (gametextforplayer), который будет обновляться. В тексте будет написано "Рестарт сервера через %d секунд", надпись по середине экрана. И, соответственно, по мере уменьшения времени, обновляется и этот текст, чтобы люди знали, сколько времени осталось до рестарта. С этим тоже пытался что-то сделать, но результат аналогичный. Ниже прикреплю код команды. Помогите, люди добрые. CMD:gmx(playerid, params[]) { if(PI[playerid][pAdmin] < 8) return 1; else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin); if(isnull(params)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /gmx [0 - 300 секунд]"); new string[128]; new sec; if(sscanf(params, "d", sec)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /gmx [0 - 300 секунд]"); else if(!(5 <= sec <= 300) && sec != 0) return SCM(playerid, COLOR_WHITE, "Время от 5 до 300 секунд, либо 0"); static timerid; if(sec == 0) { KillTimer(timerid); SendMesAll(COLOR_RED, "*ВНИМАНИЕ: %s отменил технический перезапуск сервера", AdminName(playerid)); } else { timerid = SetTimer("GameModeExitDelay", 1000*sec, false); format(string, sizeof(string), "*ВНИМАНИЕ: %s запустил таймер на технический перезапуск сервера (%d сек)", AdminName(playerid), sec); SendClientMessageToAll(COLOR_RED, string); SaveAcc(); SaveWarehouse(); } return 1; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DREZZ 45 Опубликовано 21 июля, 2018 Хм...Могу посоветовать вот это (с мода gamenix) Но дальше сам добавь то что ты хочешь. CMD:gmx(playerid, params[]) { if(PlayerInfo[playerid][pAdminn] >= 6) { if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "• {ffcf00}[ Подсказка ] {ffffff}Введите: /gmx [1 - рестарт][2 оффнуть]"); if(params[0] == 1) { for(new i=0;i<MAX_PLAYERS;i++) // MAX_PLAYERS { if(IsPlayerConnected(i)) { HideDialog(i); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SendClientMessage(i, COLOR_GREY, " "); SetPlayerInterior(i,0); SetPlayerCameraPos(i, -137.4942, 448.6020, 70.0440); SetPlayerCameraLookAt(i, -138.4485, 448.9140, 69.1091); TogglePlayerControllable(i,false); } } SaveAcc(); SetTimer("GMX", 3000, 0); GameTextForAll("~g~Њo›aћyќc¦a, Јoљo›љњ¦e", 5000, 5); } if(params[0] == 2) { SendClientMessageToAll(CINFO,"Сервер временно выключен администрацией"); SendClientMessageToAll(CINFO,"Администрация Gamenix Role Play приносит извинения за неудобства"); SaveAcc(); SetTimer("EXIT", 3000, 0); } } return 1; } Если будут варнинги или ошибки...Кидай,я тебе докину код. Если нужна помощь,обращайся.Свяжусь и помогу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
#Sharaga 12 Опубликовано 21 июля, 2018 Возьми сохранение с паблика выхода с серва, и вставь в этот код Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Supreme228 2 Опубликовано 21 июля, 2018 @#Sharaga,Вы, видимо, не поняли. Как делается сохранение - знаю. Мне нужно сделать функцию, чтобы происходило всё это за 5 секунд до рестарта сервера. С этим вот я и мучаюсь. GameTextForAll может как-то через таймер можно сделать, не знаю даже. Через сток/паблик. Ждем скриптеров ))0) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DREZZ 45 Опубликовано 22 июля, 2018 @Supreme228,Ну тогда создай таймер....Пропиши ему время,вставь его в свою команду перед киком...И выведи секунды до рестарта в чат! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Supreme228 2 Опубликовано 22 июля, 2018 @DREZZ,Легко сказать)) И не в чат, а в gametextforall. Принять участие в помощи не желаете? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Supreme228 2 Опубликовано 26 июля, 2018 Никто не поможет? UP Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DREZZ 45 Опубликовано 27 июля, 2018 @Supreme228,Я имел ввиду, что бы в чат выводилось время до рестарта.А то что куда вставлять,это я давно знаю. @Supreme228,давай помогу,можешь отписаться в л/с форума. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MOP TTEX 144 Опубликовано 27 июля, 2018 (изменено) [spoiler=текст] new GMXTimer; new GMXSecond; CMD:gmx(playerid, params[]) { if(PI[playerid][pAdmin] < 8) return 1; else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin); if(isnull(params)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /gmx [0 - 300 секунд]"); new string[128]; new sec; if(sscanf(params, "d", sec)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /gmx [0 - 300 секунд]"); else if(!(5 <= sec <= 300) && sec != 0) return SCM(playerid, COLOR_WHITE, "Время от 5 до 300 секунд, либо 0"); if(sec == 0) { KillTimer(GMXTimer); GMXSecond = 0; SendMesAll(COLOR_RED, "*ВНИМАНИЕ: %s отменил технический перезапуск сервера", AdminName(playerid)); } else { GMXTimer= SetTimer("GameModeExitDelay", 1000, true); format(string, sizeof(string), "*ВНИМАНИЕ: %s запустил таймер на технический перезапуск сервера (%d сек)", AdminName(playerid), sec); SendClientMessageToAll(COLOR_RED, string); SaveAcc(); ?GMXSecond = sec; SaveWarehouse(); } return 1; } public GameModeExitDelay() { new str[4]; format(str, 4, "%d", GMXSecond); GameTextForAll(str, 1000, 3); GMXSecond--; for(new i = 0; i < MAX_PLAYERS; i++) { //сохранение } if(GMXSecond == 0) { KillTimer(GMXTimer); SendRconCommand("gmx"); } return 1; } Изменено 27 июля, 2018 пользователем MOP TTEX 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты