Helló.
Úgy szeretném ,hogyha admin beírja ,hogy /admin /vips /shop akor végezze el a parancsot mert akinek előtagja van annak nem adja ki. (
#include <amxmodx>
#include <amxmisc>
enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}
new TeamName[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
static message[256];
switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}
vformat(message[1], 251, msg, 4);
message[192] = '^0';
static team, ColorChange, index, MSG_Type;
if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}
team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);
ShowColorMessage(index, MSG_Type, message);
if(ColorChange)
{
Team_Info(index, MSG_Type, TeamName[team]);
}
}
ShowColorMessage(id, type, message[])
{
message_begin(type, get_user_msgid("SayText"), _, id);
write_byte(id)
write_string(message);
message_end();
}
Team_Info(id, type, team[])
{
message_begin(type, get_user_msgid("TeamInfo"), _, id);
write_byte(id);
write_string(team);
message_end();
return 1;
}
ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamName[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamName[2]);
}
case GREY:
{
return Team_Info(index, type, TeamName[0]);
}
}
return 0;
}
FindPlayer()
{
static i;
i = -1;
while(i <= get_maxplayers())
{
if(is_user_connected(++i))
{
return i;
}
}
return -1;
}
#pragma semicolon 1
#define MAX_GROUPS 10
new g_Rang[MAX_GROUPS][] = {
"Tulaj",
"Helyettes",
"Foadmin",
"Admin",
"Moderator",
"Tabornok",
"Ezredes",
"Parancsnok",
"Felugyelo",
"Vip"
};
new g_RangFlag[MAX_GROUPS][] = {
"abcdefghijklmnopqrstu",
"bcdefghijklmnopqrstu",
"bcdefgijklmnpqrst",
"bcdefgijlmnqrtst",
"bcdefgijmnqrst",
"bcdefgijmnqr",
"bcdefijmnqr",
"bcdefijmn",
"bcf",
"t"
};
public plugin_init() {
register_plugin("RangAdminChat", "0.5", "Ex3cuTioN");
register_clcmd("say","hook_say");
register_clcmd("say_team","hook_say2");
}
public hook_say(id) {
if(!is_user_admin(id) || is_user_bot(id)) {
return PLUGIN_CONTINUE;
}
new nick[32];
get_user_name(id,nick,31);
static chat[32];
read_args(chat, sizeof(chat) - 1);
remove_quotes(chat);
if(equali(chat,"")) {
return PLUGIN_CONTINUE;
}
for(new i=0; i<MAX_GROUPS; i++) {
if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
ColorChat(0,GREEN,"[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public hook_say2(id) {
if(!is_user_admin(id) || is_user_bot(id)) {
return PLUGIN_CONTINUE;
}
new nick[32];
get_user_name(id,nick,31);
static chat[32];
read_args(chat, sizeof(chat) - 1);
remove_quotes(chat);
if(equali(chat,"")) {
return PLUGIN_CONTINUE;
}
for(new i=0; i<MAX_GROUPS; i++) {
if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
new players[32],num;
get_players(players,num,"c");
for(new x=0; x<num; x++) {
if(get_user_team(id) == get_user_team(players[x])) {
switch(get_user_team(id)) {
case 1:
{
ColorChat(players[x],RED,"(Terrorist)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
}
case 2:
{
ColorChat(players[x],BLUE,"(Counter)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
}
}
}
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_CONTINUE;
}