Existing user? Sign in
Sign up
Games
Servers
Useful
User
Pass
2FA
RangAdminChat [v.0.6]
Freakz Forum Index
->
Trash Bin
->
Trash
Author
Message
5376
Ex3cuTioN
[Mentally Stable]
Status: Offline
(since 30-08-2010 06:58)
Joined: 31 Dec 2009
Posts: 2
,
Topics: 2
Location:
Romania
Reputation:
114.7
Votes
: 4
Posted: 11-08-2010, 12:12:27
| Translate post to:
... (
Click for more languages
)
IMG:
http://img237.imageshack.us/img237/8720/descriptionz.png
Un fel de AMX WHO, gen public, vedeti pozele pentru a intelege
Pluginul a fost facut de aNNakin acum mult timp, eu nu am stiut ca era facut.
Pluginurile difera destul de mult, deci nu puteti zice ca l-am copiat de acolo, am luat apoi chestia cu citirea flagurilor in plugin_init.
Ramane la decizia voastra (moderator)(useri)(aNNakin) daca acest topic va ajunge la cos sau nu.
Code:
/* CFG RangChat made by aNNakin
CFG Community
Visit http://www.cfg.ro
*/
#include < amxmodx >
#include < amxmisc >
#define PLUGIN "CFG RangChat"
#define VERSION "1.0"
#define AUTHOR "aNNakin"
#define GROUPS 4
enum Color
{
NORMAL = 1,
GREEN,
TEAM_COLOR,
GREY,
RED,
BLUE,
}
new TeamName[ ][ ] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
// - - - - - - - - - - -
#define GROUPS 4
new const g_Flags[ GROUPS ][ ] =
{
"abcdefghijklmnopqrstu",
"abcdefghijkmnopqrstu",
"bcdefijmnpqrstu",
"b"
};
new const g_Groups[ GROUPS ][ ] =
{
"Owner",
"God",
"Helper",
"Slot"
};
// - - - - - - - - - - -
new g_FlagsValue[ GROUPS ];
new bool:g_IsConnected[ 33 ];
new SayText, TeamInfo, g_maxplayers;
public plugin_init ( )
{
register_plugin ( PLUGIN, VERSION, AUTHOR );
register_clcmd ( "say", "hook_say" );
for ( new i; i < GROUPS; i++ )
g_FlagsValue[ i ] = read_flags ( g_Flags[ i ] );
SayText = get_user_msgid ( "SayText" );
TeamInfo = get_user_msgid ( "TeamInfo" );
g_maxplayers = get_maxplayers ( );
}
public client_putinserver ( e_Index ) g_IsConnected[ e_Index ] = true;
public client_disconnect ( e_Index ) g_IsConnected[ e_Index ] = false;
public hook_say ( e_Index )
{
static s_Said[ 192 ];
read_args ( s_Said, charsmax ( s_Said ) );
if ( equal ( s_Said, "" ) )
return PLUGIN_CONTINUE;
remove_quotes ( s_Said );
static s_Name[ 32 ], i;
get_user_name ( e_Index, s_Name, 31 );
for ( i = 0; i < GROUPS; i++ )
if ( get_user_flags ( e_Index ) == g_FlagsValue[ i ] )
{
ColorChat ( 0, TEAM_COLOR, "^x03%s^x01 (^x04%s^x01): %s", s_Name, g_Groups[ i ], s_Said );
break;
}
return ( i < GROUPS ) ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
}
public ColorChat ( id, Color:type, const msg[], { Float, Sql, Result, _ }:... )
{
static message[ 256 ];
switch ( type )
{
case NORMAL:
message[ 0 ] = 0x01;
case GREEN:
message[ 0 ] = 0x04;
default:
message[ 0 ] = 0x03;
}
vformat ( message[ 1 ], 251, msg, 4 );
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[] )
{
message_begin ( type, SayText, _, id );
write_byte ( id )
write_string ( message );
message_end ( );
}
Team_Info ( id, type, team[] )
{
message_begin ( type, 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;
}
public FindPlayer ( )
{
for ( new i = 1; i <= g_maxplayers; i++ )
if ( g_IsConnected[ i ] )
return i;
return -1;
}
IMG:
http://img694.imageshack.us/img694/5438/notes.png
pluginul contine ghostchat, asa ca nu mai trebuie plugine gen ghostchat sau allchat
IMG:
http://img690.imageshack.us/img690/6929/settings.png
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:
Code:
rang_admin_chat.amxx
IMG:
http://img690.imageshack.us/img690/4107/snapshots.png
amx_rang_chat 1
IMG:
http://i.imagehost.org/0586/amx_rang_chat_1.jpg
amx_rang_chat 2
IMG:
http://i.imagehost.org/0803/amx_rang_chat_2.jpg
amx_rang_chat 3
IMG:
http://a.imagehost.org/0711/amx_rang_chat_3.jpg
IMG:
http://img690.imageshack.us/img690/3448/downloade.png
[size=200]
PLUGINUL TREBUIE MEREU SA FIE ULTIMUL IN LISTA
Daca aveti GHOSTCHAT sau ALLCHAT trebuie scos
[/size]
[sursa=SURSA]
Code:
#include <amxmodx>
#include <amxmisc>
#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; i<MAX_GROUPS; i++) {
g_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; i<MAX_GROUPS; i++) {
if(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; 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],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; x<num; x++) {
if(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;
}
[/sursa]
[size=150]TUTORIAL[/size]
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
"
Code:
#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"
};
0
0
Back to top
-=VeNoM=-
[Mentally Stable]
Status: Offline
(since 04-08-2013 08:58)
Joined: 16 Aug 2010
Posts: 22
,
Topics: 7
Location:
On Terra
Reputation:
89.7
Votes
: 3
Posted: 17-08-2010, 14:43:44
| Translate post to:
... (
Click for more languages
)
e genial pluginul si autorul
0
0
Back to top
a^ml)
[KrEEdZ AddICteD]
Status: Offline
(since 31-08-2013 20:44)
Joined: 14 Mar 2010
Posts: 48
,
Topics: 8
Location:
Freakz.ro
Reputation:
116.7
Votes
: 5
Posted: 20-08-2010, 20:51:45
| Translate post to:
... (
Click for more languages
)
e tare..il stiu de pe alt forum..
O Zis Bine Cine`o Zis Ce`o Zis Cand O Zis Ce`o Zis
"
Ma Respecti
,
Te Respect
"
0
0
Back to top
rapp
[Mentally Stable]
Status: Offline
(since 24-01-2013 20:45)
Joined: 05 Nov 2009
Posts: 71
,
Topics: 18
Location:
Targoviste
Reputation:
231.6
Votes
: 7
Posted: 10-12-2012, 12:09:18
| Translate post to:
... (
Click for more languages
)
Pacat ca nu e bun...arata scrisul de 2 ori la admin...si nici nam reusit sa scot chestia asta :
---
http://postimage.org/image/woe4s1fej/
0
0
Back to top
nr913
[Banned user]
Status: Offline
(since 24-10-2013 10:06)
Joined: 24 Apr 2009
Posts: 4224
,
Topics: 223
Location:
România
Reputation:
60.3
Votes
: 156
Posted: 10-12-2012, 15:04:38
| Translate post to:
... (
Click for more languages
)
Mai citește odatã topicul
Ex3cuTioN wrote:
PLUGINUL TREBUIE MEREU SA FIE ULTIMUL IN LISTA
Daca aveti GHOSTCHAT sau ALLCHAT trebuie scos
Attitude - A little thing that makes a BIG difference
0
0
Back to top
Freakz Forum Index
->
Trash Bin
->
Trash
The time now is 11-11-2024, 14:24:22
Copyright info
Based on phpBB
ro
/
com
B
Login
I forgot my password
World of Warcraft
Login for more...
Download WoW 7.3.5
Misc
eSports
Achievements
Buy reputation with votes
Reputation trades
Forum rules
Ban list
Members list
User guide (FAQ)
World of Warcraft
View details