Просмотр полной версии : [Вопрос] Commands /gmx
BaBuIIIkaDrifteR
09.03.2015, 20:32
Суть проблемы в команде.
Ввожу команду /gmx - рестарт сервера, все работает.
Сервер перезагружается, открывается окно ввода пароля, ввожу пароль, и респамлюсь в середине карты под картой.
if(strcmp(string, "/gmx", true) == 0)
{
if(Player[playerid][pAdmin] < 4) return UnknownCommand(playerid,cmdtext);
{
for(new i; i < 15; i++) SCM(playerid, -1, " ");
foreach(Player, i)
{
new gmx_server[225];
format(gmx_server, sizeof(gmx_server), "Происходит рестарт сервера");
SPD(i, 228, DIALOG_STYLE_MSGBOX, " ", gmx_server, " ", "");
}
SavePlayer(playerid); //Сохроняем аккаунт
SaveSettings(); //Сохроняем Номер аккаунта
GameModeExit(); //Перезагружаем сервер
}
return true;
}
На Grove Street? Практически в середине?
BaBuIIIkaDrifteR
09.03.2015, 20:56
На Grove Street? Практически в середине?
Нет СЕРЕДИНА КАРТЫ там на РП серверах какаэто ферма!
http://s1.hostingkartinok.com/uploads/images/2015/03/feb6898e363a9d4feb385c61404c7b02.png (http://hostingkartinok.com/show-image.php?id=feb6898e363a9d4feb385c61404c7b02)
gangzone.ini
10.03.2015, 09:04
GameModeExit();
Знамени на:
SendRconCommand("gmx");
Mazzilla
11.03.2015, 14:40
Уменьшить размер gmx_server и все беды пропадут.
$continue$
11.03.2015, 14:48
Уменьшить размер gmx_server и все беды пропадут.
Да пусть даже не уменьшает, из тела цикла вынести, не?
И вот Вам онлайн подсчет строки: ТЫК (http://www.helpset.ru/%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D1%91%D1%82-%D1%81%D1%82%D1%80%D0%BE%D0%BA-%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD/)
Уменьшить размер gmx_server и все беды пропадут.
Зачем вообще что-то уменьшать? В тексте нечего форматировать.
if(!strcmp(cmdtext, "/gmx"))
{
if(Player[playerid][pAdmin] < 4) return UnknownCommand(playerid, cmdtext);
for(new t; t < 100; t++) SCM(playerid, -1, "");
foreach(Player, i) SPD(i, 228, DIALOG_STYLE_MSGBOX, "Restart Of Server", "Происходит рестарт сервера", " ", " ");
SavePlayer(playerid); // Сохраняем аккаунты.
SaveSettings(); // Сохраняем номер аккаунтов.
SendRconCommand("gmx"); // Перезагрузка сервера.
return 1;
}
UPD: А появляешься на середине карты наверное из-за паблика "GameModeExit", т.к. там обычно закрывают соединение с MySQL.
BaBuIIIkaDrifteR
13.03.2015, 00:50
Причем тут размер строки ?! Я просто от дури такой написал так все подсчитано.
Заменить наSendRconCommand("gmx"); щас попробую!
- - - Добавлено - - -
Зачем вообще что-то уменьшать? В тексте нечего форматировать.
if(!strcmp(cmdtext, "/gmx"))
{
if(Player[playerid][pAdmin] < 4) return UnknownCommand(playerid, cmdtext);
for(new t; t < 100; t++) SCM(playerid, -1, "");
foreach(Player, i) SPD(i, 228, DIALOG_STYLE_MSGBOX, "Restart Of Server", "Происходит рестарт сервера", " ", " ");
SavePlayer(playerid); // Сохраняем аккаунты.
SaveSettings(); // Сохраняем номер аккаунтов.
SendRconCommand("gmx"); // Перезагрузка сервера.
return 1;
}
UPD: А появляешься на середине карты наверное из-за паблика "GameModeExit", т.к. там обычно закрывают соединение с MySQL.
У меня не MySQL
- - - Добавлено - - -
SendRconCommand("gmx");
Не помог!
$continue$
13.03.2015, 00:56
Убери переменную из цикла
BaBuIIIkaDrifteR
13.03.2015, 01:26
Убери переменную из цикла
А причем цикл? Цикл вызывает 15 сообщений разом он же не относиться не к чему
BaBuIIIkaDrifteR
13.03.2015, 18:02
Еще кода я после рестарта появляюсь посреди карты кагбдто ак слетел скин 0 и т.д + некоторые текстравы не пропадают
$continue$
13.03.2015, 20:48
Пробуй:
if(strcmp(string, "/gmx", true) == 0)
{
if(Player[playerid][pAdmin] < 4) return UnknownCommand(playerid,cmdtext);
static gmx_text_server[] = "Происходит рестарт сервера!";
for(new сlear_chat; сlear_chat < 15; сlear_chat++) SCM(playerid, -1, " ");
foreach(Player, i)
{
SavePlayer(i); //Сохроняем аккаунт, всем игрокам сервера
SPD(i, 228, DIALOG_STYLE_MSGBOX, " ", gmx_text_server, " ", "");
}
SaveSettings(); //Сохроняем Номер аккаунта
GameModeExit(); //Перезагружаем сервер
return 1;
}
BaBuIIIkaDrifteR
13.03.2015, 21:25
Где ты используешь static
gmx_text_server
$continue$
13.03.2015, 21:30
SPD(i, 228, DIALOG_STYLE_MSGBOX, " ", gmx_text_server, " ", "");
BaBuIIIkaDrifteR
13.03.2015, 21:42
Пробуй:
if(strcmp(string, "/gmx", true) == 0)
{
if(Player[playerid][pAdmin] < 4) return UnknownCommand(playerid,cmdtext);
static gmx_text_server[] = "Происходит рестарт сервера!";
for(new сlear_chat; сlear_chat < 15; сlear_chat++) SCM(playerid, -1, " ");
foreach(Player, i)
{
SavePlayer(i); //Сохроняем аккаунт, всем игрокам сервера
SPD(i, 228, DIALOG_STYLE_MSGBOX, " ", gmx_text_server, " ", "");
}
SaveSettings(); //Сохроняем Номер аккаунта
GameModeExit(); //Перезагружаем сервер
return 1;
}
Не работает.
Вот видео в чем проблема.
Но при этом все остальное работает.
http://www.youtube.com/watch?v=YEC08R32OX8
BaBuIIIkaDrifteR
14.03.2015, 05:03
Всем спасибо проблему вроде бы решил сам!
Зае*ался лазить по форум и читать но в этоге добился нужного результата, надо было просто добавить обновление позиции игрока!
Рабочий код:
if(strcmp(string, "/gmx", true) == 0)
{
if(Player[playerid][pAdmin] < 4) return UnknownCommand(playerid,cmdtext);
{
for(new i; i < 15; i++) SCM(playerid, -1, " ");
foreach(Player, i) SPD(i, 228, DIALOG_STYLE_MSGBOX, "Рестарт", "Рестарт сервера!", " ", "");
SavePlayer(playerid);
SaveSettings();
UpdatePlayerPosition(playerid);
SendRconCommand("gmx");
}
return true;
}
Тут у меня созрел вопрос? Сохранение аккаунта будет идти только для того человека который ввел команду?
И SendRconCommand("gmx"); Вызывает паблик OnPlayerDisconect ?
Если да то если в паблике OnPlayerDiconnect стоит: SavePlayer(playerid);, сохранение всех аккаунтов будет?
Не надо разве
SavePlayer(playerid);
SaveSettings();
UpdatePlayerPosition(playerid); засунуть в цикл ? Что бы все аккаунты сохранялись? Если админ введет /gmx
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot