Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Динамичные сообщения о входах/выходах

Статус
В этой теме нельзя размещать новые ответы.

Frapsy

Эксперт
Пользователь
Регистрация
12 Дек 2011
Сообщения
1,275
Лучшие ответы
0
Репутация
341
Система, сообщающая игрокам (по их желанию), кто зашел, кто вышел, с динамическими причинами (kick,ban,warn,quit,lost connection).

<<<<<<<<<<<<<<<<<<<<<<<<[ Подготовка ]>>>>>>>>>>>>>>>>>>>>>>>>

1) Создадим глобальную переменную, определяющую отправку сообщения.
PHP:
new bool:QuiMessage[MAX_PLAYERS];
Теперь идем в OnPlayerConnect и отключаем сообщения:
PHP:
QuitMessage[playerid] = false;
2) Вспомогательные функции, для более удобного использования.
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;
}
2) Описание.
reason - параметр функции, определяющий сообщение, которое она отправит.
0 - lost connection (игрок вышел по техническим неполадкам - обрыв связи)
1 - quit (игрок вышел по собственному женанию)
3 - kicked (игрок кикнут)
4 - banned (игрок забанен)
5 - warned (игрок кикнут, впоследствии получения варна)
6 - player connected (игрок подключился к серверу)
playerid - ID игрока.

<<<<<<<<<<<<<<<<<<<<<<<<[ Включение/отключение ]>>>>>>>>>>>>>>>>>>>>>>>>
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;
}
* пример: OnPlayerDisconnect
PHP:
public OnPlayerDisconnect(reason,playerid) {
     SQM(reason,playerid);// параметр reason, тк может принимать несколько вариантов (lost,quit)
     return true;
}
* пример: команда /kick
В самом конце, когда кикаете игрока (Kick(giveplayerid);), прямо перед этой строкой пишете.
PHP:
SQM(3,giveplayerid);// параметр 3 - kicked
Аналогично с /kick, добавляем в /ban и /warn.
___________________________________________________________________

Автор: Frapsy.
--
Пишу уроки на заказ (приватно,паблик) - самореклама :)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу