Rang Admin Chat
Pagina 1 din 1
Rang Admin Chat
Un fel de AMX WHO, gen public, vedeti pozele pentru a intelege
Pluginul contine ghostchat, asa ca nu mai trebuie plugine gen ghostchat sau allchat
Instalare:
1. Fisierul rang_admin_chat.sma il puneti in addons/amxmodx/scripting
2. Fisierul rang_admin_chat.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la sfarsitul fisierului:
- Cod:
rang_admin_chat.amxx
amx_rang_chat 1
amx_rang_chat 2
amx_rang_chat 3
PLUGINUL TREBUIE MEREU SA FIE ULTIMUL IN LISTA
Daca aveti GHOSTCHAT sau ALLCHAT trebuie scos
Sursa:
- Spoiler:
- #include
#include
#pragma semicolon 1
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"
};
// - - - - - - - - - - -
#define MAX_GROUPS 7
new g_Rang[MAX_GROUPS][] = {
"OwneR",
"GooD",
"Semi-GooD",
"ModeratoR",
"AdminiStratoR",
"AjutoaRe",
"SloT"
};
new g_RangFlag[MAX_GROUPS][] = {
"abcdefghijklmnopqrstu",
"abcdefijklmnopqrst",
"bcdefijkmnopqrst",
"bcdefijkmno",
"bcdefijk",
"bcijef",
"b"
};
// - - - - - - - - - - -
new g_RangFlag_Value[MAX_GROUPS];
new cvar_type;
public plugin_init() {
register_plugin("RangAdminChat", "0.6", "Ex3cuTioN");
register_clcmd("say","hook_say");
register_clcmd("say_team","hook_say2");
for(new i=0; ig_RangFlag_Value[i] = read_flags(g_Rang[i]);
}
cvar_type = register_cvar("amx_rang_chat","1");
}
public hook_say(id) {
if(is_user_bot(id)) {
return PLUGIN_CONTINUE;
}
new nick[32];
get_user_name(id,nick,31);
static chat[192];
read_args(chat, sizeof(chat) - 1);
remove_quotes(chat);
if(equali(chat,"")) {
return PLUGIN_CONTINUE;
}
if(is_user_admin(id)) {
for(new i=0; iif(get_user_flags(id) == read_flags(g_RangFlag[i])) {
switch(get_pcvar_num(cvar_type)) {
case 1:
{
ColorChat(0,TEAM_COLOR,"*^x04%s^x03*%s^x01 : %s",g_Rang[i],nick,chat);
}
case 2:
{
ColorChat(0,TEAM_COLOR,"%s^x01(^x04%s^x01) : %s",nick,g_Rang[i],chat);
}
case 3:
{
ColorChat(0,GREEN,"[%s]^x03 %s^x01 : %s",g_Rang[i],nick,chat);
}
}
return PLUGIN_HANDLED;
}
}
}
else {
if(is_user_alive(id)) {
ColorChat(0,TEAM_COLOR,"%s^x01 : %s",nick,chat);
}
else {
ColorChat(0,TEAM_COLOR,"*Dead*%s^x01 : %s",nick,chat);
}
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public hook_say2(id) {
if(is_user_bot(id)) {
return PLUGIN_CONTINUE;
}
new nick[32];
get_user_name(id,nick,31);
static chat[192];
read_args(chat, sizeof(chat) - 1);
remove_quotes(chat);
if(equali(chat,"")) {
return PLUGIN_CONTINUE;
}
if(is_user_admin(id)) {
for(new i=0; iif(get_user_flags(id) == read_flags(g_RangFlag[i])) {
new players[32],num;
get_players(players,num,"c");
for(new x=0; xif(get_user_team(id) == get_user_team(players[x])) {
switch(get_user_team(id)) {
case 1:
{
ColorChat(players[x],TEAM_COLOR,"(Terrorist)^x04[%s]^x03 %s^x01 : %s",g_Rang[i],nick,chat);
}
case 2:
{
ColorChat(players[x],TEAM_COLOR,"(Counter-Terrorist)^x04[%s]^x03 %s^x01 : %s",g_Rang[i],nick,chat);
}
case 3:
{
ColorChat(players[x],TEAM_COLOR,"(Spectator)^x04[%s]^x03 %s^x01 : %s",g_Rang[i],nick,chat);
}
}
}
return PLUGIN_HANDLED;
}
}
}
}
else {
new players[32],num;
get_players(players,num,"c");
for(new x=0; xif(get_user_team(id) == get_user_team(players[x])) {
switch(get_user_team(id)) {
case 1:
{
ColorChat(players[x],TEAM_COLOR,"(Terrorist) %s^x01 : %s",nick,chat);
}
case 2:
{
ColorChat(players[x],TEAM_COLOR,"(Counter-Terrorist) %s^x01 : %s",nick,chat);
}
case 3:
{
ColorChat(players[x],TEAM_COLOR,"(Spectator) %s^x01 : %s",nick,chat);
}
}
}
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
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;
}
Intrati in fisierul cu extensia .SMA si aveti 2 categorii (1 ranguri) (1 flaguri)
Acolo aveti un model cu 9 ranguri si 9 flaguri.
Daca veti avea sa zicem 10 ranguri si 10 flaguri modificati MAX_GROUPS cu 10.
Fiti atenti:ultimul rang/flag nu trebuie sa aibe , dupa "
- Cod:
#define MAX_GROUPS 9
new g_Rang[MAX_GROUPS][] = {
"Detinator",
"Co-Owner",
"Amiral",
"Maresal",
"General",
"Colonel",
"Maior",
"Sergent",
"Soldat"
};
new g_RangFlag[MAX_GROUPS][] = {
"abcdefghijklmnopqrstu",
"abcdefghijklmnopqrst",
"bcdefghijklmnopqrt",
"bcdefgijklmnopqrs",
"bcdefgijlmnopqrt",
"bcdefgijmnopqr",
"bcdefgijmnop",
"bcefijmn",
"b"
};
Acum pentru a-l compila mutati RangAdminChat.sma peste compile.exe din acelasi folder.
Un folder cu numele compiled va fi creat si in el veti gasii RangAdminChat.amxx
RangAdminChat.amxx il ducem in addons\amxmodx\plugins
In addons\amxmodx\configs\plugins.ini adaugati linia RangAdminChat.amxx
DAR ATENTIE SA FIE ULTIMA DIN LISTA!
Pagina 1 din 1
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum
|
|