Vazovskui
Умник
Привет, как всем известно, в версии клиента начиная с 0.3x функция Kick выполняется с приоритетом, сразу появилось мого тем, предлагающих исправить проблему и перед киком вывести сообщение игроку, первые из появившихся тем мне не понравились, а более поздние я и читать не стал.
Сделал подобную систему под себя:
Результат работы:
и паблики
И Команда (ZCMD):
---------- Post added at 22:01 ---------- Previous post was at 22:00 ----------
Забыл добавить что + моей системы в том, что можно доолнять параметры, например параметр 2 может использоваться для кика с варном (предупреждением), а параметр 3 для кика с баном (или для "тихого" кика с баном)
Сделал подобную систему под себя:
Результат работы:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
PHP:
//Добавляем два Forward'a
forward KickPlayer(playerid, targetid, param, reason[]);
forward KickEX(targetid);
PHP:
public KickPlayer(playerid, targetid, param, reason[])
{
new string[512];
if(IsPlayerConnected(targetid))
{
if(param != 0)
{
if(playerid < 0)
{
format(string, sizeof(string), "{FFFFFF}[А.С.К.]: {808000}Игрок: %s [ID:%d]{ffffff}был {ff0000}кикнут{ffffff}. Причина:{ffa500} %s", GetName(targetid), targetid, reason);
}
else
{
format(string, sizeof(string), "{FFFFFF}Администратор %s[ID:%d] {ff0000}кикнул{ffffff} игрока {808000}%s[ID:%d].{FFFFFF} Причина:{ffa500} %s", GetName(playerid), playerid, GetName(targetid), targetid, reason);
}
SendClientMessageToAll(COLOR_WHITE, string);
}
if(playerid < 0)
{
format(string, sizeof(string), "{FFFFFF}\tFunny L-RP {FF0000}[RED]{FFFFFF}\n- Вы были {ff0000}кикнуты{ffffff} сервером.\n\n{ff0000}>{FFFFFF} Причина:{ffa500}\n%s", reason);
}
else
{
new hour, minute, second, day, year, mount;
getdate(year, mount, day);
gettime(hour, minute, second);
format(string, sizeof(string), "{FFFFFF}\t\tFunny L-RP {FF0000}[RED]\n\n>{808000} %s{FFFFFF},\n Вы были {FF0000}кикнуты{FFFFFF}.\n\n{ff0000}>{FFFFFF} Причина:{FFA500}\n%s{FFFFFF}.\n\n- Администратор %s.\nДата: %d.%d.%d\nВремя: %d:%d\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nПритензии по работе администрации вы можете\nвысказать на\n <<FORUM ADDRES>>\n\t- с Уважением Администрация сервера.",GetName(targetid), reason, GetName(playerid), day, mount, year, hour, minute);
}
ShowPlayerDialog(targetid, 0, DIALOG_STYLE_MSGBOX, "[Инфо]: Вы кикнуты!", string, "[Закрыть]", "");
SetTimer("KickEX", 1000, 0);
}
return true;
}
public KickEX(targetid)
{
Kick(targetid);
}
PHP:
CMD:kick(playerid, params[])
{
if(sscanf(params, "iis", params[0], params[1], params[2])) return SendClientMessage(playerid, COLOR_GREY, "* [Ошибка]: Использование: /kick [playerid] [params: 0 - silent / 1 - normal] [reason]");
if(IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_GREY, "* [Ошибка]: Игрока нет в сети!");
if(params[1] >= 0 && params[1] <= 1) return SendClientMessage(playerid, COLOR_GREY, "* [Ошибка]: Доступные параметры: 0, 1!");
if(strlen(params[2]) != 0) return SendClientMessage(playerid, COLOR_GREY, "* [Ошибка]: Необходимо указать причину!");
KickPlayer(playerid, params[0], params[1], params[2]);
return true;
}
---------- Post added at 22:01 ---------- Previous post was at 22:00 ----------
Забыл добавить что + моей системы в том, что можно доолнять параметры, например параметр 2 может использоваться для кика с варном (предупреждением), а параметр 3 для кика с баном (или для "тихого" кика с баном)
