Clybzotik
Ученик
Здравствуйте, решил выложить пару команду.
Нужные дефайны
И так, первая команда - /gov
Следующая команда - /r (чат гос. фракций)
Создаём форвард и сток
Добавляем саму команду
Дальше - /sms
А теперь последняя команда - /a(админ чат)
Создаём форвард и сток.
Нужные дефайны
PHP:
#define COLOR_ORANGE 0xFF8000AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_RED 0xFF0000AA
#define SCM SendClientMessage
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;
}
Создаём форвард и сток
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;
}
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;
}
Создаём форвард и сток.
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;
}
