www.realcs.hitforum.ro
Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.

RangAdminChat [v.0.6]

In jos

RangAdminChat [v.0.6] Empty RangAdminChat [v.0.6]

Mesaj  BlackStar Mier Mar 09, 2011 3:32 pm

RangAdminChat [v.0.6] Descriptionz
Un fel de AMX WHO, gen public, vedeti pozele pentru a intelege
RangAdminChat [v.0.6] Notes
pluginul contine ghostchat, asa ca nu mai trebuie plugine gen ghostchat sau allchat
RangAdminChat [v.0.6] Settings

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

RangAdminChat [v.0.6] Snapshots

[Trebuie sa fiti inscris si conectat pentru a vedea acest link]
RangAdminChat [v.0.6] Downloade
PLUGINUL TREBUIE MEREU SA FIE ULTIMUL IN LISTA
Daca aveti GHOSTCHAT sau ALLCHAT trebuie scos

Cod:
#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;
}

TUTORIAL

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"
};

BlackStar
Admin

Mesaje : 41
Data de înscriere : 08/03/2011
Localizare : Alba

https://firezone.forum-canada.com

Sus In jos

Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum