It is currently 24 Feb 2019 03:27



Forum rules


Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .



Reply to topic  [ 3 posts ] 
 cerere plugin [rezolvat] 
Author Message
Membru, skill 0
Membru, skill 0

Joined: 21 Apr 2017 11:05
Posts: 31
Location: Piatra Neamt
Detinator Steam: Da
Detinator server CS: da
Fond eXtream: 0
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[i] = read_flags(g_Rang[i]);

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[i][1])) != -1 ){
new len = g_swearsNames[i][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[i])) {
switch(cs_get_user_team(id)) {
case CS_TEAM_T : ColorChat(0, RED, gType[0], g_Rang[i], zp_get_level(id), get_name(id), chat);
case CS_TEAM_CT : ColorChat(0, BLUE, gType[0], g_Rang[i], zp_get_level(id), get_name(id), chat);
case CS_TEAM_SPECTATOR : ColorChat(0, GREY, gType[0], g_Rang[i], 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;
}

_________________
Image


Last edited by Radu eXtream on 29 Jan 2019 16:56, edited 2 times in total.

Marcat ca rezolvat.



28 Jan 2019 21:56
Profile multumesc WWW
Super moderator
Super moderator
User avatar

Joined: 10 Jul 2013 20:26
Posts: 2411
Location: Constanta
Detinator Steam: Da
Detinator server CS: Da
Reputatie: Super moderator
Nume anterior: Do[N]e ;3
Fond eXtream: 0
pune-l ultimul in lista de pluginuri


29 Jan 2019 08:09
Profile multumesc
Membru, skill 0
Membru, skill 0

Joined: 21 Apr 2017 11:05
Posts: 31
Location: Piatra Neamt
Detinator Steam: Da
Detinator server CS: da
Fond eXtream: 0
Laurentiu P. wrote:
pune-l ultimul in lista de pluginuri


rezolvat multumesc !

_________________
Image


29 Jan 2019 15:57
Profile multumesc WWW
Display posts from previous:  Sort by  
Reply to topic   [ 3 posts ] 

Who is online

Users browsing this forum: Baidu [Spider] and 56 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  

În cazul în care aveți probleme cu contul trimiteți un email sau mesaj la servicii_extream[arond]yahoo[punct]com

Powered by phpBB® Forum Software © phpBB Group