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

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

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

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

/gov /sms /a /r

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

Clybzotik

Ученик
Здравствуйте, решил выложить пару команду.

Нужные дефайны
PHP:
#define COLOR_ORANGE 0xFF8000AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_RED 0xFF0000AA
#define SCM SendClientMessage
И так, первая команда - /gov
PHP:
CMD:gov(playerid,params[0])
{
    if(!GetPVarInt(playerid, "Logged")) return SCM(playerid, COLOR_RED, "Вы не авторизованы!");
	if(PlayerInfo[playerid][pMember] == 1 || 2 || 3 || 4 || 5 || 6  && PlayerInfo[playerid][pLeader] == 1)
	{
		if(sscanf(params, "s", params[0]))
	            return SCM(playerid,COLOR_RED, !"Используйте: /gov [сообщение]");
		if(strlen(params[0]) >= 72) return SCM(playerid,COLOR_ORANGE,"Максимальная длина - 72 символа."); // У меня стоит проверка на длину, её вы можете убрать
		else
		{
		        new playername[MAX_PLAYERS];
			new string[128];
			GetPlayerName(playerid,playername,sizeof(playername));
			format(string,sizeof(string),"[Гос. новости]%s[%d]:%s",playername,playerid,string);
			SendClientMessageToAll(COLOR_ORANGE,string);
		}
	}
	return 1;
}
Следующая команда - /r (чат гос. фракций)

Создаём форвард и сток
PHP:
forward FractChat(color,const string[],member);
stock FractChat(color,const string[],member)
{
  for(new i = 0; i < MAX_PLAYERS; i++)
  {
   if(IsPlayerConnected(i))
   {
    if(PlayerInfo[i][pMember] == member)
    {
     SendClientMessage(i, color, string);
    }
   }
  }
  return true;
}
Добавляем саму команду
PHP:
CMD:r(playerid,params[0])
{
    if(!GetPVarInt(playerid, "Logged")) return SCM(playerid, COLOR_RED, "Вы не авторизованы!");
	if(PlayerInfo[playerid][pMember] == 1 || 2 || 3 || 4 || 5 || 6)
	{
		if(sscanf(params, "s", params[0]))
	             return SCM(playerid,COLOR_RED, "Используйте: /r [сообщение]");
		if(strlen(params[0]) >= 124) return SCM(playerid,COLOR_ORANGE,"Макс. длина - 124 символа.");  // У меня стоит проверка на длину, её вы можете убрать
		else
		{
		        new playername[MAX_PLAYERS];
		        GetPlayerName(playerid,playername,sizeof(playername));
		        new string[128];
		        format(string,sizeof(string),"[R]%s[%d]:%s",playername,playerid,string);
			if(PlayerInfo[playerid][pMember] == 1) return FractChat(COLOR_ORANGE,string,1); // Проверка из какой фракции игрок
			if(PlayerInfo[playerid][pMember] == 2) return FractChat(COLOR_ORANGE,string,2);
			if(PlayerInfo[playerid][pMember] == 3) return FractChat(COLOR_ORANGE,string,3);
			if(PlayerInfo[playerid][pMember] == 4) return FractChat(COLOR_ORANGE,string,4);
			if(PlayerInfo[playerid][pMember] == 5) return FractChat(COLOR_ORANGE,string,5);
			if(PlayerInfo[playerid][pMember] == 6) return FractChat(COLOR_ORANGE,string,6);
		}
	}
	return 1;
}
Дальше - /sms

PHP:
CMD:sms(playerid,params[])
{
    if(!GetPVarInt(playerid, "Logged")) return SCM(playerid, COLOR_RED, "Вы не авторизованы!");
	else
	{
		if(sscanf(params, "ds", params[0], params[1]))
	        return SCM(playerid,COLOR_RED, !"Используйте: /sms [id игрока] [сообщение]");
		if(playerid == params[0]) return SCM(playerid,COLOR_YELLOW,"Вы не можете отправить сообщение самому себе.");
		if(params[0] == INVALID_PLAYER_ID) return SCM(playerid,COLOR_YELLOW,"Игрок не подключён!");
		else
		{
		    new playername[MAX_PLAYERS];
		    new targetname[MAX_PLAYERS];
		    new mes[128];
		    GetPlayerName(playerid,playername,sizeof(playername));
		    GetPlayerName(params[0],targetname,sizeof(targetname));
		    format(mes,sizeof(mes),"SMS к %s[%d]:%s",targetname,params[0],params[1]);
		    SCM(playerid,COLOR_YELLOW,mes);
		    format(mes,sizeof(mes),"SMS от %s[%d]:%s",playername,playerid,params[1]);
		    SCM(params[0],COLOR_YELLOW,mes);
		}
	}
	return 1;
}
А теперь последняя команда - /a(админ чат)

Создаём форвард и сток.
PHP:
forward AdminMessage(color,const string[],level);
stock AdminMessage(color,const string[],level)
{
  for(new i = 0; i < MAX_PLAYERS; i++)
  {
   if(IsPlayerConnected(i))
   {
    if(PlayerInfo[i][pAdmin] >= level)
    {
     SendClientMessage(i, color, string);
    }
   }
  }
  return true;
}
PHP:
CMD:a(playerid,params[0])
{
	if(!GetPVarInt(playerid, "Logged")) return SCM(playerid, COLOR_RED, "Вы не авторизованы!");
	if(PlayerInfo[playerid][pAdmin] < 1) return SCM(playerid,COLOR_RED,"Вы не администратор сервера!");
	else if(PlayerInfo[playerid][pAdmin] >= 1)
	{
	    if(sscanf(params, "s", params[0]))
	        return SCM(playerid,COLOR_RED, !"Используйте: /a [сообщение]");
		else
		{
      		new playername[MAX_PLAYERS]; 
      		new mes[76];
      		GetPlayerName(playerid,playername,sizeof(playername));
      		format(mes,sizeof(mes),"[A]%s[%d]:%s",playername,playerid,mes);
			AdminMessage(COLOR_ORANGE,mes,1);

		}
	}
	return 1;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу