- Регистрация
- 12 Дек 2011
- Сообщения
- 1,275
- Лучшие ответы
- 0
- Репутация
- 341
Система, сообщающая игрокам (по их желанию), кто зашел, кто вышел, с динамическими причинами (kick,ban,warn,quit,lost connection).
<<<<<<<<<<<<<<<<<<<<<<<<[ Подготовка ]>>>>>>>>>>>>>>>>>>>>>>>>
1) Создадим глобальную переменную, определяющую отправку сообщения.
Теперь идем в OnPlayerConnect и отключаем сообщения:
2) Вспомогательные функции, для более удобного использования.
<<<<<<<<<<<<<<<<<<<<<<<<[ Основное ]>>>>>>>>>>>>>>>>>>>>>>>>
1) Главная наша функция, которая будет отправлять Вам сообщения.
2) Описание.
reason - параметр функции, определяющий сообщение, которое она отправит.
<<<<<<<<<<<<<<<<<<<<<<<<[ Включение/отключение ]>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<[ Использование ]>>>>>>>>>>>>>>>>>>>>>>>>
* пример: OnPlayerConnect
* пример: OnPlayerDisconnect
* пример: команда /kick
В самом конце, когда кикаете игрока (Kick(giveplayerid), прямо перед этой строкой пишете.
Аналогично с /kick, добавляем в /ban и /warn.
___________________________________________________________________
Автор: Frapsy.
--
Пишу уроки на заказ (приватно,паблик) - самореклама
<<<<<<<<<<<<<<<<<<<<<<<<[ Подготовка ]>>>>>>>>>>>>>>>>>>>>>>>>
1) Создадим глобальную переменную, определяющую отправку сообщения.
PHP:
new bool:QuiMessage[MAX_PLAYERS];
PHP:
QuitMessage[playerid] = false;
PHP:
stock GIP(a) {
new ip[32];
GetPlayerIP(a,ip,sizeof(ip));
return ip;//вернет IP игрока
}
stock GN(a) {
new n[24];
GetPlayerName(a,n,sizeof(n));
return n;//вернет ник
}
1) Главная наша функция, которая будет отправлять Вам сообщения.
PHP:
stock SQM(reason,playerid) {
new str[128],str2[128];
switch(reason) {
case 0: {
format(str,sizeof(str),"* %s has left the server (Lost Connection).",GN(playerid));
format(str2,sizeof(str2),"%s | %s has left the server (Lost Connection).",GIP(playerid),GN(playerid));
}
case 1: {
format(str,sizeof(str),"* %s has left the server (Quit).",GN(playerid));
format(str2,sizeof(str2),"%s | %s has left the server (Quit).",GIP(playerid),GN(playerid));
}
case 3: {
format(str,sizeof(str),"* %s has left the server (Kicked).",GN(playerid));
format(str2,sizeof(str2),"%s | %s has left the server (Kicked).",GIP(playerid),GN(playerid));
}
case 4: {
format(str,sizeof(str),"* %s has left the server (Banned).",GN(playerid));
format(str2,sizeof(str2),"%s | %s has left the server (Banned).",GIP(playerid),GN(playerid));
}
case 5: {
format(str,sizeof(str),"* %s has left the server (Warned).",GN(playerid));
format(str2,sizeof(str2),"%s | %s has left the server (Warned).",GIP(playerid),GN(playerid));
}
case 6: {
format(str,sizeof(str),"* %s connected.",GN(playerid));
format(str2,sizeof(str2),"%s | %s connected.",GIP(playerid),GN(playerid));
}
default: return true;
}
for(new i = 0; i != MAX_PLAYERS; i++) {
if(QuitMessage[i] != false) {
if(PlayerInfo[i][pAdmin] != 0) {
SendClientMessage(i,COLOR_GREY,str2);
}
else {
SendClientMessage(i,COLOR_GREY,str);
}
}
}
return true;
}
reason - параметр функции, определяющий сообщение, которое она отправит.
playerid - ID игрока.0 - lost connection (игрок вышел по техническим неполадкам - обрыв связи)
1 - quit (игрок вышел по собственному женанию)
3 - kicked (игрок кикнут)
4 - banned (игрок забанен)
5 - warned (игрок кикнут, впоследствии получения варна)
6 - player connected (игрок подключился к серверу)
<<<<<<<<<<<<<<<<<<<<<<<<[ Включение/отключение ]>>>>>>>>>>>>>>>>>>>>>>>>
PHP:
if(strcmp(cmd,"/sqm",true) == 0) {
if(!IsPlayerConnected(playerid)) return true;
if(QuitMessage[playerid] != false) {
QuitMessage[playerid] = false;
SendClientMessage(playerid,COLOR_LIGHTBLUE,"* Сообщения отключены.");
}
else {
QuitMessage[playerid] = true;
SendClientMessage(playerid,COLOR_LIGHTBLUE,"* Сообщения включены.");
}
return true;
}
* пример: OnPlayerConnect
PHP:
public OnPlayerConnect(playerid) {
SQM(6,playerid);//этой строчкой мы всем игрокам написали, что игрок подключился
return true;
}
PHP:
public OnPlayerDisconnect(reason,playerid) {
SQM(reason,playerid);// параметр reason, тк может принимать несколько вариантов (lost,quit)
return true;
}
В самом конце, когда кикаете игрока (Kick(giveplayerid), прямо перед этой строкой пишете.
PHP:
SQM(3,giveplayerid);// параметр 3 - kicked
___________________________________________________________________
Автор: Frapsy.
--
Пишу уроки на заказ (приватно,паблик) - самореклама