cerere plugin [rezolvat]

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Post Reply
User avatar
infinit
Membru, skill +1
Membru, skill +1
Posts: 115
Joined: 21 Apr 2017, 12:05
Detinator Steam: Da
CS Status: deadrip
Detinator server CS: da
Fond eXtream: 0
Location: Piatra Neamt
Has thanked: 6 times
Contact:

28 Jan 2019, 21:56

Plugin Cerut: tag admin
Descriere (adica ce face el mai exact): la momentul actual am un plugin de rang admin chat dar nu functioneaza cum trebuie ... nu ma lasa sa folosesca anumite comenzi pe server cum ar fi xpmenu, /skilluri, /vm comenzile care trebuiesc scrie in chat
Serverul ruleaza (HLDS/ReHLDS): ReHLDS
Versiune AMX Mod X: 1.8.3
Modul Serverului: Zombie
pluginul actual | Afiseaza codul
#include <amxmodx>
#include <amxmisc> 
#include <zplvl>

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_WORDS 192 

new g_swearsNames[MAX_WORDS][32] 
new g_swearsNum 
#define MAX_GROUPS 8
#define MAX_CHARS 48
new g_Rang[MAX_GROUPS][] = {
"FondatoR",
"OwneR",
"Co-OwneR",
"S-ModeratoR",
"ModeratoR",
"AdministratoR",
"HelpeR",
"Gold MembeR"
};

new g_RangFlag[MAX_GROUPS][] = {
"abcdefghijklmnopqrstuw",
"abcdefhijklmnopqrstu",
"abcdefhijklmnoprtu",
"bcdefijmpq",
"bcdefijmp",
"bcdefij",
"bcefij",
"abdeghjklmnor"

};

// end edit here

new g_RangFlag_Value[MAX_GROUPS];
new cvar_type, gType[2][50];
//new chat[180];
public plugin_init() {
	register_plugin("RangAdminChat", "1.2", "EDUTz");
	
	register_clcmd("say","hook_say");
	register_clcmd("say_team","hook_say");
	readList()
	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*[Nivel %i]^x03%s^x01 : ^x04%s";
			gType[1] = "^x04*%s*[Nivel %i]^x01(%s)^x03 %s^x01 : ^x04%s";
		}
		case 2 : {
			gType[0] = "^x04(%s)[Nivel %i]^x03%s^x01 : ^x04%s";
			gType[1] = "^x04(%s)[Nivel %i]^x01(%s)^x03 %s^x01 : ^x04%s";
		}
		case 3 : {
			gType[0] = "^x04[%s][Nivel %i]^x03 %s^x01 : ^x04%s";
			gType[1] = "^x04[%s][Nivel %i]^x01(%s)^x03 %s^x01 : ^x04%s";
		}
	}
}

readList() 
{ 
    // file to read words from 
	new szCustomDir[64]
	new filename[64]
	get_configsdir( szCustomDir, 63 )
	format(filename, 63, "%s/swear/swearwords.ini", szCustomDir )

	if(!file_exists(filename) ){
		log_message("Swear Filter: file %s not found", filename) 
		return 
	} 
	new iLen 
	while( g_swearsNum < MAX_WORDS && read_file(filename, g_swearsNum ,g_swearsNames[g_swearsNum][1],30,iLen) ) 
	{ 
	if( g_swearsNames[g_swearsNum][0] == ';') continue
	g_swearsNames[g_swearsNum][0] = iLen 
	++g_swearsNum 
	}
	log_message("Swear Filter: loaded %d words",g_swearsNum ) 
} 


public hook_say(id) {
	if(is_user_bot(id))
		return PLUGIN_CONTINUE;
	
	static chat[180]
	read_args(chat, sizeof(chat) - 1);
	remove_quotes(chat);
	
	if(equali(chat,""))
		return PLUGIN_CONTINUE;
	
	if (contain(chat, "%") != -1)
	{
		replace_all(chat, charsmax(chat), "%", " ")
		return PLUGIN_HANDLED
	}
	new pos, i = 0
	while ( i < g_swearsNum )
	{
		if ( (pos = containi(chat,g_swearsNames[1])) != -1 ){ 
			new len = g_swearsNames[0] 
			while(len--)
			chat[pos++] = '*'
			continue
		}
		++i
	}
	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, zp_get_level(id), get_name(id), chat);
					case CS_TEAM_CT : ColorChat(0, BLUE, gType[0], g_Rang, zp_get_level(id), get_name(id), chat);
					case CS_TEAM_SPECTATOR : ColorChat(0, GREY, gType[0], g_Rang, zp_get_level(id), get_name(id), chat);
				}
				log_amx("[CHAT] %s : %s", 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 [Nivel %i]^x01 : %s", is_user_alive(id) ? "" : "*MORT*", get_name(id), zp_get_level(id), chat);
		case CS_TEAM_CT : ColorChat(0, BLUE, "%s%s [Nivel %i]^x01 : %s", is_user_alive(id) ? "" : "*MORT*", get_name(id), zp_get_level(id), chat);
		case CS_TEAM_SPECTATOR : ColorChat(0, GREY, "*SPEC*%s [Nivel %i]^x01 : %s", get_name(id), zp_get_level(id), chat);
	}
	log_amx("[CHAT] %s : %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[180] = '^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;
}
Last edited by Radu eXtream on 29 Jan 2019, 16:56, edited 2 times in total.
Reason: Marcat ca rezolvat.
RoyalServer
User avatar
Laurentiu P.
Fost moderator
Fost moderator
Posts: 2549
Joined: 10 Jul 2013, 21:26
Detinator Steam: Da
Reputatie: Fost super moderator
Fond eXtream: 100
Has thanked: 26 times
Been thanked: 62 times
Contact:

29 Jan 2019, 08:09

pune-l ultimul in lista de pluginuri
no...
User avatar
infinit
Membru, skill +1
Membru, skill +1
Posts: 115
Joined: 21 Apr 2017, 12:05
Detinator Steam: Da
CS Status: deadrip
Detinator server CS: da
Fond eXtream: 0
Location: Piatra Neamt
Has thanked: 6 times
Contact:

29 Jan 2019, 15:57

Laurentiu P. wrote:pune-l ultimul in lista de pluginuri
rezolvat multumesc !
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 29 guests