O mica problema

Discutii legate de instalarea, configurarea si modificarea unui server de Counter-Strike.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
Lorekeen
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 87
Joined: 02 Mar 2015, 17:10
Detinator Steam: Da
CS Status: eXtreamCS the best !
Detinator server CS: Da
SteamID: alexxino
Reputatie: Utilziator neserios(tepar)
Fond eXtream: 0
Location: Undeva pe Luna
Contact:

09 Dec 2016, 20:58

Buna seara, am si eu o problema daca ma puteti ajuta..am un plugin rank_admin_chat, totul functioneaza..dar as vrea ca numele la admin sa fie gri, gradul sa fie la locul lui cu verde..si scrisul verde... ma puteti ajuta ?
Exemplu : DETINATOR:LOREKEEN buna seara dragii mei
Doar la admini..restul la playeri sa fie default culorile


sma :
| Afiseaza codul
#include <amxmodx>

#pragma semicolon 1

enum Color {
	NORMAL = 1, GREEN, TEAM_COLOR,  GREY, RED, BLUE,
};

new TeamName[][] =  {
	"", "TERRORIST", "CT", "SPECTATOR"
};

// start cstrike.inc
enum CsTeams {
	CS_TEAM_UNASSIGNED = 0,
	CS_TEAM_T = 1,
	CS_TEAM_CT = 2,
	CS_TEAM_SPECTATOR = 3
};

native CsTeams:cs_get_user_team(index);
// end cstrike.inc

// edit here

#define MAX_GROUPS 11

new g_Rang[MAX_GROUPS][] = {
	"FONDATOR",
	"MANAGER",
        "OWNER",
	"CO-OWNER",
        "GOD",
	"ANGEL",
        "ADMINISTRATOR",
	"MODERATOR",
        "HELPER",
	"SLOT",
        "VIP"
	};

new g_RangFlag[MAX_GROUPS][] = {
	"abcdefghijklmnopqrstu",
	"abcdefghijklmnoqrstu",
        "abcdefgijklmnoqrstu",
	"abcdefgijmnopqrst",
        "abcdefilgjmnopqrst",
	"bcdefijmnopqrs",
        "bcdefijmnopqrsy",
	"bcdefijmnopq",
        "bcefij",
	"bi",
        "abit"
        };

// end edit here

new g_RangFlag_Value[MAX_GROUPS];
new cvar_type, gType[2][50];

public plugin_init() {
	register_plugin("RangAdminChat", "0.7", "Ex3cuTioN aka Arion HD.");
	
	register_clcmd("say","hook_say");
	register_clcmd("say_team","hook_say2");
	
	for(new i = 0; i < MAX_GROUPS; i++)
		g_RangFlag_Value = read_flags(g_Rang);
	
	cvar_type = register_cvar("amx_rang_chat","3");
	
	switch(get_pcvar_num(cvar_type)) {
		case 1 : {
			gType[0] = "^x04*%s*^x03%s^x01 : %s";
			gType[1] = "^x04*%s*^x01(%s)^x03 %s^x01 : %s";
		}
		case 2 : {
			gType[0] = "^x04(%s)^x03%s^x01 : %s";
			gType[1] = "^x04(%s)^x01(%s)^x03 %s^x01 : %s";
		}
		case 3 : {
			gType[0] = "^x04[%s]^x03 %s^x01 : %s";
			gType[1] = "^x04[%s]^x01(%s)^x03 %s^x01 : %s";
		}
	}
}

public hook_say(id) {
	if(is_user_bot(id))
		return PLUGIN_CONTINUE;
	
	static chat[192];
	read_args(chat, sizeof(chat) - 1);
	remove_quotes(chat);
	
	if(equali(chat,""))
		return PLUGIN_CONTINUE;
	
	if(is_user_admin(id)) {
		new bool:hasRang = false;
		for(new i = 0; i < MAX_GROUPS; i++) {
			if(get_user_flags(id) == read_flags(g_RangFlag))  {
				switch(cs_get_user_team(id)) {
					case CS_TEAM_T : ColorChat(0, RED, gType[0],  g_Rang, get_name(id), chat);
					case CS_TEAM_CT : ColorChat(0, BLUE, gType[0], g_Rang, get_name(id), chat);
					case CS_TEAM_SPECTATOR : ColorChat(0, GREY, gType[0], g_Rang, get_name(id), chat);
				}
				hasRang = true;
			}
		}
		if(!hasRang)
			get_team(id, chat);
	}
	else 
		get_team(id, chat);
	
	return PLUGIN_HANDLED;
}

stock get_team(id, chat[]) {
	switch(cs_get_user_team(id)) {
		case CS_TEAM_T : ColorChat(0, RED, "%s%s^x01 : %s", is_user_alive(id) ? "" : "*DEAD*",  get_name(id), chat);
		case CS_TEAM_CT : ColorChat(0, BLUE, "%s%s^x01 : %s", is_user_alive(id) ? "" : "*DEAD*",  get_name(id), chat);
		case CS_TEAM_SPECTATOR : ColorChat(0, GREY, "*SPEC*%s^x01 : %s",  get_name(id), chat);
	}
}

public hook_say2(id) {
	if(is_user_bot(id))
		return PLUGIN_CONTINUE;
	
	static chat[192];
	read_args(chat, sizeof(chat) - 1);
	remove_quotes(chat);
	
	if(equali(chat,""))
		return PLUGIN_CONTINUE;
	
	new players[32], num;
	get_players(players, num, "c");
				
	if(is_user_admin(id)) {
		new bool:hasRang = false;
		for(new i = 0; i < MAX_GROUPS; i++) {
			if(get_user_flags(id) == read_flags(g_RangFlag)) {
				for(new x = 0; x < num; x++) {
					if(get_user_team(players[x]) == get_user_team(id)) {
						switch(cs_get_user_team(id)) {
							case CS_TEAM_T : ColorChat(players[x], RED, gType[1], g_Rang, "Terrorist", get_name(id), chat);
							case CS_TEAM_CT : ColorChat(players[x], BLUE, gType[1], g_Rang, "Counter-Terrorist",  get_name(id), chat);
							case CS_TEAM_SPECTATOR : ColorChat(players[x], GREY, gType[1], g_Rang, "Spectator", get_name(id), chat);
						}
					}
				}
				hasRang = true;
			}
		}
		if(!hasRang)
			get_team2(id, num, players, chat);
	}
	else
		get_team2(id, num, players,  chat);
		
	return PLUGIN_HANDLED;
}

stock get_team2(id, num, players[],  chat[]) {
	for(new x = 0; x < num; x++) {
		if(get_user_team(players[x]) == get_user_team(id)) {
			switch(cs_get_user_team(id)) {
				case CS_TEAM_T : ColorChat(players[x], RED, "^x01(Terrorist)^x03 %s^x01 : %s", get_name(id), chat);
				case CS_TEAM_CT : ColorChat(players[x], BLUE, "^x01(Counter-Terrorist)^x03 %s^x01 : %s", get_name(id), chat);
				case CS_TEAM_SPECTATOR : ColorChat(players[x], GREY, "^x01(Spectator)^x03 %s^x01 : %s", get_name(id), chat);
			}
		}
	}
}

ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...) {
	new 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);

	// Make sure message is not longer than 192 character. Will crash the server.
	message[192] = '^0';

	new 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[]) {
	static bool:saytext_used;
	static get_user_msgid_saytext;
	if(!saytext_used)
	{
		get_user_msgid_saytext = get_user_msgid("SayText");
		saytext_used = true;
	}
	message_begin(type, get_user_msgid_saytext, _, id);
	write_byte(id);
	write_string(message);
	message_end();	
}

Team_Info(id, type, team[]) {
	static bool:teaminfo_used;
	static get_user_msgid_teaminfo;
	
	if(!teaminfo_used) {
		get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
		teaminfo_used = true;
	}
	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() {
	new i = -1;

	while(i <= get_maxplayers()) {
		if(is_user_connected(++i))
			return i;
	}

	return -1;
}

stock get_name (id) {
	new name[32];
	get_user_name(id, name, 31);
	return name;
}

// start amxmisc.inc
stock is_user_admin(id) {
	new __flags=get_user_flags(id);
	return (__flags>0 && !(__flags&ADMIN_USER));
}
// end amxmisc.inc
RoyalServer
User avatar
Lorekeen
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 87
Joined: 02 Mar 2015, 17:10
Detinator Steam: Da
CS Status: eXtreamCS the best !
Detinator server CS: Da
SteamID: alexxino
Reputatie: Utilziator neserios(tepar)
Fond eXtream: 0
Location: Undeva pe Luna
Contact:

12 Dec 2016, 19:37

up..
Post Reply

Return to “Probleme la servere dedicate de Counter-Strike”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 62 guests