[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Форум » Плагины SourceMod » Fast ChangeTeam v1.8 (Быстрая смена команды)
Fast ChangeTeam v1.8
rootДата: Воскресенье, 03.02.2013, 02:03 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
Квары
Код
sm_fst_enable 1/0//включить/выключить плагин   
sm_fst_advert "1/0"// Включить/Выключить информирование о доступных командах   
sm_fst_msg "1/0"// Включить/Выключить сообщения о смене команды   
sm_fst_admflag "b"// Учитывать иммунитет админа для перехода за КТ, 0=отключить, Чтобы включить впишите нужный флаг: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t

История обновлений

Код
1.0 выход плагина1.1 RegConsoleCmd заменено на AddCommandListener
1.2 Добавлен флаг ROOT для команды !ct (Чтобы не было дизбаланса на jail)
1.3 Упрощен код. Добавлена смена команды без потери фрагов.
1.4 Добавлен файл перевода
1.5 Добавлен конфиг, возможность установить иммунитет для админа через конфиг, проигрывание звука запрета, информирование о доступных командах,добавлена поддержка colors в 34 версии и CS:GO
1.6 Добавлен квар отключения плагина. Файлы перевода en & ru отделены. Квары переименованы
1.7 Теперь квар mp_limitteams учитывается.


Код
#include <sourcemod>
#include <sdktools_functions>
#include <morecolors>

//Учет квара mp_limitteams
new Handle:limitteams;
//Сообщения о смене команды
new Handle:g_chat;
//Иммунитет админа для перехода за КТ
new Handle:g_CVarAdmFlag;
new g_AdmFlag;
//Информирование о доступных командах
new Handle:g_Advert;
//Включить/выключить плагин
new Handle:g_en;

#define PLUGIN_VERSION "1.7"

public Plugin:myinfo =
{
      name = "Fast change team",
      author = "ilga80",
      description = "Быстрая смена команды",
      version = PLUGIN_VERSION,
      url = "http://ufaplay-css.ucoz.ru/"
}

public OnPluginStart()
{
      limitteams = FindConVar("mp_limitteams");
      g_en = CreateConVar("sm_fst_enable" , "1", "Включить/выключить плагин", FCVAR_PLUGIN, true, 0.0, true, 1.0)
      g_chat = CreateConVar("sm_fst_msg", "1", "Включить/Выключить сообщения о смене команды", FCVAR_NOTIFY, true, 0.0, true, 1.0);
      g_CVarAdmFlag = CreateConVar("sm_fst_admflag", "0", "Учитывать иммунитет админа для перехода за КТ, 0=отключить, Чтобы включить впишите нужный флаг: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t");
      g_Advert = CreateConVar("sm_fst_advert", "1", "Включить/Выключить информирование о доступных командах", FCVAR_NOTIFY, true, 0.0, true, 1.0);
         
      AddCommandListener(Command_Changeteam, "say");
      AddCommandListener(Command_Changeteam, "say_team");
         
      LoadTranslations("fast_changeteam.phrases");
      AutoExecConfig(true, "fast_changeteam");
         
      HookEvent("round_start", round_start);
      HookConVarChange(g_CVarAdmFlag, OnCVarChange);
}

public round_start(Handle:event, const String:name[], bool:dontBroadcast)
{
      if(GetConVarInt(g_en) == 1)
      {
         if (GetConVarBool(g_Advert)) CreateTimer(10.0, advertise)
      }
}

public Action:advertise(Handle:timer, any:client)
{
      CPrintToChatAll("%t", "advertise");
}

public OnCVarChange(Handle:convar, const String:oldValue[], const String:newValue[])
{
      g_AdmFlag = ReadFlagString(newValue);
}

public Action:Command_Changeteam(client, const String:command[], args)
{
      decl String:Said[64];
      GetCmdArgString(Said, sizeof(Said) - 1);
      StripQuotes(Said);
      TrimString(Said);
      if(GetConVarInt(g_en) == 1)
      {
         if (client > 0)
         {
            if( StrEqual( Said, "!t", false ) || StrEqual( Said, "t", false ))
            {
               if (GetClientTeam(client) != 2)
               {
                  if (GetConVarInt(limitteams) > (GetTeamClientCount(2) / GetTeamClientCount(3)))
                  {
                     ChangeClientTeam(client, 1);
                     ChangeClientTeam(client, 2);
                     if (GetConVarBool(g_chat)) CPrintToChat(client, "%t", "teamT");
                  }
                  else if (GetConVarBool(g_chat)) CPrintToChat(client, "%t", "LimitT");
               }
               else if (GetConVarBool(g_chat)) CPrintToChat(client, "%t", "alreadyT");
            }
            if( StrEqual( Said, "!ct", false ) || StrEqual( Said, "ct", false ))      
            {      
               if (GetClientTeam(client) != 3)      
               {      
                  if (g_AdmFlag == 0 || (g_AdmFlag > 0 && CheckCommandAccess(client, "sm_fst_override", g_AdmFlag, true)))      
                  {
                     if (GetConVarInt(limitteams) > (GetTeamClientCount(3) / GetTeamClientCount(2)))
                     {
                        ChangeClientTeam(client, 1);
                        ChangeClientTeam(client, 3);
                        if (GetConVarBool(g_chat)) CPrintToChat(client, "%t", "teamCT");
                     }
                     else if (GetConVarBool(g_chat)) CPrintToChat(client, "%t", "LimitCT");
                  }      
                  else if (GetConVarBool(g_chat))
                  {
                     ClientCommand(client, "play buttons/button11.wav");
                     CPrintToChat(client, "%t", "No_Permission");
                     return Plugin_Handled;
                  }
               }      
               else if (GetConVarBool(g_chat)) CPrintToChat(client, "%t", "alreadyCT");      
            }
            if( StrEqual( Said, "!spec", false ) || StrEqual( Said, "spec", false ))
            {
               if (GetClientTeam(client) != 1)
               {
                  ChangeClientTeam(client, 1);
                  if (GetConVarBool(g_chat)) CPrintToChat(client, "%t", "teamSP");
               }
               else if (GetConVarBool(g_chat)) CPrintToChat(client, "%t", "alreadySP");
            }
         }
      }
      return Plugin_Continue;
}

FSTv1.7.rar(36.0 Kb)
 
rootДата: Суббота, 09.03.2013, 12:13 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
Новая версия
1.8 beta Убран morecolors. Фиксы и усложнение кода.
 
Форум » Форум » Плагины SourceMod » Fast ChangeTeam v1.8 (Быстрая смена команды)
  • Страница 1 из 1
  • 1
Поиск: