User
Pass
2FA
 
 

RangAdminChat [v.0.6]

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Freakz Forum Index -> Trash Bin -> Trash
Author Message5366
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

Post 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
View user's profile Send private message
-=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

Post Posted: 17-08-2010, 14:43:44 | Translate post to: ... (Click for more languages)

e genial pluginul si autorul -
0 0
  
Back to top
View user's profile Send private message
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

Post 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
View user's profile Send private message
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

 
Post 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
View user's profile Send private message Yahoo! Messenger ID
nr913
[Banned user]


Banned


Status: Offline
(since 24-10-2013 10:06)
Joined: 24 Apr 2009
Posts: 4224, Topics: 223
Location: România

Reputation: 60.3
Votes: 156

 
Post 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
View user's profile Send private message
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Freakz Forum Index -> Trash Bin -> Trash  


The time now is 22-09-2024, 05:29:54
Copyright info

Based on phpBB ro/com
B

 
 
 







I forgot my password


This message appears only once, so
like us now until it's too late ! :D
x