Team Settings [Удалено]

Статус
В этой теме нельзя размещать новые ответы.

CAH4E3

Сосанчез.
Сообщения
1,597
Реакции
779
C-подобный:
sm_tkill - Запрещать Т суицид?; 1 - Да, 0 - Нет
sm_ctkill - Запрещать КТ суицид?; 1 - Да, 0 - Нет
Т.е они не смогут совершить самоубийство через команду kill?
Админы смогут убивать и шлепками убивать через админку?
 

d4Ck

Урегулированный
Сообщения
730
Реакции
562
C-подобный:
sm_tkill - Запрещать Т суицид?; 1 - Да, 0 - Нет
sm_ctkill - Запрещать КТ суицид?; 1 - Да, 0 - Нет
Т.е они не смогут совершить самоубийство через команду kill?
Админы смогут убивать и шлепками убивать через админку?
Да, еще через команду killvector
 

skywalker

Участник
Сообщения
1,153
Реакции
263
В админ меню это все можно добавить?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #7
Докопаться можно ко всему коду, но если я начну здесь описывать все его проблемы - то места не хватит в посте.
Потому сделаю пару намёков, и покажу, как можно было сделать проще.

PHP:
    AddCommandListener(Kill1, "kill");
   AddCommandListener(Kill2, "killvector");
Вам никто не запрещает регистрировать команды на один каллбек.
PHP:
    AddCommandListener(SuicideCmd, "kill");
   AddCommandListener(SuicideCmd, "killvector");

И соответственно, это:
PHP:
public Action:Kill1(client, const String:command[], argc)
{
    if (GetConVarBool(tTKill) && GetClientTeam(client) == 2)
    {
        PrintCenterText(client, "%t", "Suicide1");
        return Plugin_Handled;
    }
   else if (GetConVarBool(tCTKill) && GetClientTeam(client) == 3)
    {
        PrintCenterText(client, "%t", "Suicide1");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}

public Action:Kill2(client, const String:command[], argc)
{
    if (GetConVarBool(tTKill) && GetClientTeam(client) == 2)
    {
        PrintCenterText(client, "%t", "Suicide2");
        return Plugin_Handled;
    }
    else if (GetConVarBool(tCTKill) && GetClientTeam(client) == 3)
    {
        PrintCenterText(client, "%t", "Suicide2");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
Заменяется на это:
PHP:
public Action:SuicideCmd(client, const String:command[], argc)
{
    if ((GetClientTeam(client) == 2 && GetConVarBool(tTKill)) || (GetClientTeam(client) == 3 && GetConVarBool(tCTKill)))
    {
        PrintCenterText(client, "%t", command[4] == 0 ? "Suicide1" : "Suicide2");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}

P.S.: Меня только на это хватило...
 
  • Мне нравится
Реакции: d4Ck

over_trax

Участник
Сообщения
1,451
Реакции
488
можно ещё путь к модели скина указывать, но это не сверх-нужно
 

d4Ck

Урегулированный
Сообщения
730
Реакции
562
Пользователь jasmine обновил ресурс Team Settings новой записью:

Обновление

Новые переменные:
  • sm_armor - Включить настройку брони?; 1 - Да, 0 - Нет
  • sm_t_armor - Кол-во брони Т.
  • sm_ct_armor - Кол-во брони КТ.
  • sm_rdamage - Включить настройки получаемого урона?; 1 - Да, 0 - Нет
  • sm_t_rdamage - Множитель получаемого урона Т (Должен быть меньше 1.0); 1.0 - Обычный урон.
  • sm_ct_rdamage - Множитель получаемого урона КТ (Должен быть меньше 1.0); 1.0 - Обычный урон.
̶В̶р̶о̶д̶е̶ ̶к̶а̶к̶...

Узнать больше об этом обновлении...
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #13
Вроде как оптимизирован код, но я чет хз.
post-313192-0-93189300-1415711455.jpg


PHP:
public Action: OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
   
    new hpt = GetConVarInt(tTHealth);
    new hpct = GetConVarInt(tCTHealth);
    new armort = GetConVarInt(tTArmor);
    new armorct = GetConVarInt(tCTArmor);
   
    float tspeed = GetConVarFloat(tTSpeed);
    float ctspeed = GetConVarFloat(tCTSpeed);
   
    if (GetConVarInt(tSpeed) == 1)
    {   
        if (IsClientInGame(client) && !IsFakeClient(client))
        {
            switch (GetClientTeam(client))
            {
                case 1:
                {
                    return Plugin_Continue;
                }
                case 2:
                {
                    SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", tspeed);
                }
                case 3:
                {
                    SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", ctspeed);
                }
            }
        }
    }
   
    if (GetConVarInt(tHealth) == 1)
    {
        if (IsClientInGame(client) && !IsFakeClient(client))
        {
            switch (GetClientTeam(client))
            {
                case 1:
                {
                    return Plugin_Continue;
                }
                case 2:
                {
                    SetEntityHealth(client, hpt);
                }
                case 3:
                {
                    SetEntityHealth(client, hpct);
                }
            }
        }
    }
   
    if (GetConVarInt(tArmor) == 1)
    {
        if (IsClientInGame(client) && !IsFakeClient(client))
        {
            switch (GetClientTeam(client))
            {
                case 1:
                {
                    return Plugin_Continue;
                }
                case 2:
                {
                    SetEntProp(client, Prop_Send, "m_ArmorValue", armort, 1);
                    SetEntProp(client, Prop_Send, "m_bHasHelmet", true);
                }
                case 3:
                {
                    SetEntProp(client, Prop_Send, "m_ArmorValue", armorct, 1);
                    SetEntProp(client, Prop_Send, "m_bHasHelmet", true);
                }
            }
        }
    }
    return Plugin_Continue;
}
Слишком много одних и тех же условий. Вдобавок старый синтаксис смешивается с новым. Вы уж определитесь, на каком пишете.
PHP:
public Action OnPlayerSpawn(Handle hEvent, const char[] szName, bool bDontBroadcast) {
    int client  = GetClientOfUserId(GetEventInt(hEvent, "userid"));
    int iTeam   = GetClientTeam(client);

    if (IsFakeClient(client) || iTeam < 2) {
        return;
    }

    if (GetConVarBool(tSpeed)) {
        switch (iTeam) {
            case 2: SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", GetConVarFloat(tTSpeed));
            case 3: SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", GetConVarFloat(tCTSpeed));
        }
    }
   
    if (GetConVarBool(tHealth)) {
        switch (GetClientTeam(client)) {
            case 2: SetEntityHealth(client, GetConVarInt(tTHealth));
            case 3: SetEntityHealth(client, GetConVarInt(tCTHealth));
        }
    }
   
    if (GetConVarBool(tArmor)) {
        switch (GetClientTeam(client)) {
            case 2: {
                SetEntProp(client, Prop_Send, "m_ArmorValue", GetConVarInt(tTArmor), 1);
                SetEntProp(client, Prop_Send, "m_bHasHelmet", true);
            }

            case 3: {
                SetEntProp(client, Prop_Send, "m_ArmorValue", GetConVarInt(tCTArmor), 1);
                SetEntProp(client, Prop_Send, "m_bHasHelmet", true);
            }
        }
    }
}
С OnTakeDamage() тоже самое.
Но больше всего трясёт от конваров.

PHP:
new Handle:tTDamage;
new Handle:tCTDamage;
new Handle:tTKill;
new Handle:tCTKill;
new Handle:tSpeed;
new Handle:tTSpeed;
new Handle:tCTSpeed;
new Handle:tHealth;
new Handle:tTHealth;
new Handle:tCTHealth;
new Handle:tArmor;
new Handle:tTArmor;
new Handle:tCTArmor;
new Handle:ttDamage;
new Handle:ttTDamage;
new Handle:ttCTDamage;
new Handle:ttRDamage;
new Handle:ttRTDamage;
new Handle:ttRCTDamage;

Не проще определить массив для конвар?
PHP:
#define DISABLE_DAMAGE              0
#define DISABLE_SUICIDE             1
#define ENABLE_SPEED                2
#define ENABLE_HEALTH               3
#define ENABLE_ARMOR                4
#define ENABLE_MULTIPLIER_OUTDAMAGE 5
#define ENABLE_MULTIPLIER_RECDAMAGE 6
#define ENABLERS_COUNT              7

#define SETTINGS_SPEED              0
#define SETTINGS_HEALTH             1
#define SETTINGS_ARMOR              2
#define SETTINGS_OUTDAMAGE          3
#define SETTINGS_RECDAMAGE          4
#define SETTINGS_COUNT              5

#define TEAM_TERROR                 0
#define TEAM_COUNTER                1
#define TEAM_COUNT                  2

Handle g_hEnablers[ENABLERS_COUNT];
Handle g_hSettings[SETTINGS_COUNT][TEAM_COUNT];

Тогда вот это:
PHP:
   tTDamage = CreateConVar("sm_tdamage", "0", "Отключать Т урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
   tCTDamage = CreateConVar("sm_ctdamage", "0", "Отключать КТ урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
   tTKill = CreateConVar("sm_tkill", "0", "Запрещать Т суицид?; 1 - Да, 0 - Нет");
   tCTKill = CreateConVar("sm_ctkill", "0", "Запрещать КТ суицид?; 1 - Да, 0 - Нет");
   tSpeed = CreateConVar("sm_speed", "0", "Включить настройку скорости?; 1 - Да, 0 - Нет");
   tTSpeed = CreateConVar("sm_t_speed", "3.0", "Скорость Т; 1.0 - Обычная скорость.");
   tCTSpeed = CreateConVar("sm_ct_speed", "3.0", "Скорость КТ; 1.0 - Обычная скорость.");
   tHealth = CreateConVar("sm_health", "0", "Включить настройку здоровья?; 1 - Да, 0 - Нет");
   tTHealth = CreateConVar("sm_t_health", "100", "Кол-во здоровья Т.");
   tCTHealth = CreateConVar("sm_ct_health", "100", "Кол-во здоровья КТ.");
   tArmor = CreateConVar("sm_armor", "0", "Включить настройку брони?; 1 - Да, 0 - Нет");
   tTArmor = CreateConVar("sm_t_armor", "100", "Кол-во брони Т.");
   tCTArmor = CreateConVar("sm_ct_armor", "100", "Кол-во брони КТ.");
   ttDamage = CreateConVar("sm_damage", "0", "Включить настройку наносимого урона?; 1 - Да, 0 - Нет");
   ttTDamage = CreateConVar("sm_t_damage", "2.0", "Множитель наносимого урона Т; 1.0 - Обычный урон.");
   ttCTDamage = CreateConVar("sm_ct_damage", "2.0", "Множитель наносимого урона КТ; 1.0 - Обычный урон.");
   ttRDamage = CreateConVar("sm_rdamage", "0", "Включить настройки получаемого урона?; 1 - Да, 0 - Нет");
   ttRTDamage = CreateConVar("sm_t_rdamage", "0.8", "Множитель получаемого урона Т (Должен быть меньше 1.0); 1.0 - Обычный урон.");
   ttRCTDamage = CreateConVar("sm_ct_rdamage", "0.8", "Множитель получаемого урона КТ (Должен быть меньше 1.0); 1.0 - Обычный урон.");
Можно (и надо будет) заменить на это.
PHP:
	g_hEnablers[DISABLE_DAMAGE]                     = CreateConVar("sm_tdamage", "0", "Отключать Т урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
	g_hEnablers[DISABLE_SUICIDE]                    = CreateConVar("sm_ctdamage", "0", "Отключать КТ урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
    g_hEnablers[ENABLE_SPEED]                       = CreateConVar("sm_speed", "0", "Включить настройку скорости?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_HEALTH]                      = CreateConVar("sm_health", "0", "Включить настройку здоровья?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_ARMOR]                       = CreateConVar("sm_armor", "0", "Включить настройку брони?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_MULTIPLIER_OUTDAMAGE]        = CreateConVar("sm_damage", "0", "Включить настройку наносимого урона?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_MULTIPLIER_RECDAMAGE]        = CreateConVar("sm_rdamage", "0", "Включить настройки получаемого урона?; 1 - Да, 0 - Нет");

    g_hSettings[SETTINGS_SPEED][TEAM_TERROR]        = CreateConVar("sm_t_speed", "3.0", "Скорость Т; 1.0 - Обычная скорость.");
    g_hSettings[SETTINGS_SPEED][TEAM_COUNTER]       = CreateConVar("sm_ct_speed", "3.0", "Скорость КТ; 1.0 - Обычная скорость.");
    g_hSettings[SETTINGS_HEALTH][TEAM_TERROR]       = CreateConVar("sm_t_health", "100", "Кол-во здоровья Т.");
    g_hSettings[SETTINGS_HEALTH][TEAM_COUNTER]      = CreateConVar("sm_ct_health", "100", "Кол-во здоровья КТ.");
    g_hSettings[SETTINGS_ARMOR][TEAM_TERROR]        = CreateConVar("sm_t_armor", "100", "Кол-во брони Т.");
    g_hSettings[SETTINGS_ARMOR][TEAM_COUNTER]       = CreateConVar("sm_ct_armor", "100", "Кол-во брони КТ.");
    g_hSettings[SETTINGS_OUTDAMAGE][TEAM_TERROR]    = CreateConVar("sm_t_damage", "2.0", "Множитель наносимого урона Т; 1.0 - Обычный урон.");
    g_hSettings[SETTINGS_OUTDAMAGE][TEAM_COUNTER]   = CreateConVar("sm_ct_damage", "2.0", "Множитель наносимого урона КТ; 1.0 - Обычный урон.");
    g_hSettings[SETTINGS_RECDAMAGE][TEAM_TERROR]    = CreateConVar("sm_t_rdamage", "0.8", "Множитель получаемого урона Т (Должен быть меньше 1.0); 1.0 - Обычный урон.");
    g_hSettings[SETTINGS_RECDAMAGE][TEAM_COUNTER]   = CreateConVar("sm_ct_rdamage", "0.8", "Множитель получаемого урона КТ (Должен быть меньше 1.0); 1.0 - Обычный урон.");

Ну и по мелочи ещё...
 

d4Ck

Урегулированный
Сообщения
730
Реакции
562
post-313192-0-93189300-1415711455.jpg


PHP:
public Action: OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
 
    new hpt = GetConVarInt(tTHealth);
    new hpct = GetConVarInt(tCTHealth);
    new armort = GetConVarInt(tTArmor);
    new armorct = GetConVarInt(tCTArmor);
 
    float tspeed = GetConVarFloat(tTSpeed);
    float ctspeed = GetConVarFloat(tCTSpeed);
 
    if (GetConVarInt(tSpeed) == 1)
    { 
        if (IsClientInGame(client) && !IsFakeClient(client))
        {
            switch (GetClientTeam(client))
            {
                case 1:
                {
                    return Plugin_Continue;
                }
                case 2:
                {
                    SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", tspeed);
                }
                case 3:
                {
                    SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", ctspeed);
                }
            }
        }
    }
 
    if (GetConVarInt(tHealth) == 1)
    {
        if (IsClientInGame(client) && !IsFakeClient(client))
        {
            switch (GetClientTeam(client))
            {
                case 1:
                {
                    return Plugin_Continue;
                }
                case 2:
                {
                    SetEntityHealth(client, hpt);
                }
                case 3:
                {
                    SetEntityHealth(client, hpct);
                }
            }
        }
    }
 
    if (GetConVarInt(tArmor) == 1)
    {
        if (IsClientInGame(client) && !IsFakeClient(client))
        {
            switch (GetClientTeam(client))
            {
                case 1:
                {
                    return Plugin_Continue;
                }
                case 2:
                {
                    SetEntProp(client, Prop_Send, "m_ArmorValue", armort, 1);
                    SetEntProp(client, Prop_Send, "m_bHasHelmet", true);
                }
                case 3:
                {
                    SetEntProp(client, Prop_Send, "m_ArmorValue", armorct, 1);
                    SetEntProp(client, Prop_Send, "m_bHasHelmet", true);
                }
            }
        }
    }
    return Plugin_Continue;
}
Слишком много одних и тех же условий. Вдобавок старый синтаксис смешивается с новым. Вы уж определитесь, на каком пишете.
PHP:
public Action OnPlayerSpawn(Handle hEvent, const char[] szName, bool bDontBroadcast) {
    int client  = GetClientOfUserId(GetEventInt(hEvent, "userid"));
    int iTeam   = GetClientTeam(client);

    if (IsFakeClient(client) || iTeam < 2) {
        return;
    }

    if (GetConVarBool(tSpeed)) {
        switch (iTeam) {
            case 2: SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", GetConVarFloat(tTSpeed));
            case 3: SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", GetConVarFloat(tCTSpeed));
        }
    }
 
    if (GetConVarBool(tHealth)) {
        switch (GetClientTeam(client)) {
            case 2: SetEntityHealth(client, GetConVarInt(tTHealth));
            case 3: SetEntityHealth(client, GetConVarInt(tCTHealth));
        }
    }
 
    if (GetConVarBool(tArmor)) {
        switch (GetClientTeam(client)) {
            case 2: {
                SetEntProp(client, Prop_Send, "m_ArmorValue", GetConVarInt(tTArmor), 1);
                SetEntProp(client, Prop_Send, "m_bHasHelmet", true);
            }

            case 3: {
                SetEntProp(client, Prop_Send, "m_ArmorValue", GetConVarInt(tCTArmor), 1);
                SetEntProp(client, Prop_Send, "m_bHasHelmet", true);
            }
        }
    }
}
С OnTakeDamage() тоже самое.
Но больше всего трясёт от конваров.

PHP:
new Handle:tTDamage;
new Handle:tCTDamage;
new Handle:tTKill;
new Handle:tCTKill;
new Handle:tSpeed;
new Handle:tTSpeed;
new Handle:tCTSpeed;
new Handle:tHealth;
new Handle:tTHealth;
new Handle:tCTHealth;
new Handle:tArmor;
new Handle:tTArmor;
new Handle:tCTArmor;
new Handle:ttDamage;
new Handle:ttTDamage;
new Handle:ttCTDamage;
new Handle:ttRDamage;
new Handle:ttRTDamage;
new Handle:ttRCTDamage;

Не проще определить массив для конвар?
PHP:
#define DISABLE_DAMAGE              0
#define DISABLE_SUICIDE             1
#define ENABLE_SPEED                2
#define ENABLE_HEALTH               3
#define ENABLE_ARMOR                4
#define ENABLE_MULTIPLIER_OUTDAMAGE 5
#define ENABLE_MULTIPLIER_RECDAMAGE 6
#define ENABLERS_COUNT              7

#define SETTINGS_SPEED              0
#define SETTINGS_HEALTH             1
#define SETTINGS_ARMOR              2
#define SETTINGS_OUTDAMAGE          3
#define SETTINGS_RECDAMAGE          4
#define SETTINGS_COUNT              5

#define TEAM_TERROR                 0
#define TEAM_COUNTER                1
#define TEAM_COUNT                  2

Handle g_hEnablers[ENABLERS_COUNT];
Handle g_hSettings[SETTINGS_COUNT][TEAM_COUNT];

Тогда вот это:
PHP:
   tTDamage = CreateConVar("sm_tdamage", "0", "Отключать Т урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
   tCTDamage = CreateConVar("sm_ctdamage", "0", "Отключать КТ урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
   tTKill = CreateConVar("sm_tkill", "0", "Запрещать Т суицид?; 1 - Да, 0 - Нет");
   tCTKill = CreateConVar("sm_ctkill", "0", "Запрещать КТ суицид?; 1 - Да, 0 - Нет");
   tSpeed = CreateConVar("sm_speed", "0", "Включить настройку скорости?; 1 - Да, 0 - Нет");
   tTSpeed = CreateConVar("sm_t_speed", "3.0", "Скорость Т; 1.0 - Обычная скорость.");
   tCTSpeed = CreateConVar("sm_ct_speed", "3.0", "Скорость КТ; 1.0 - Обычная скорость.");
   tHealth = CreateConVar("sm_health", "0", "Включить настройку здоровья?; 1 - Да, 0 - Нет");
   tTHealth = CreateConVar("sm_t_health", "100", "Кол-во здоровья Т.");
   tCTHealth = CreateConVar("sm_ct_health", "100", "Кол-во здоровья КТ.");
   tArmor = CreateConVar("sm_armor", "0", "Включить настройку брони?; 1 - Да, 0 - Нет");
   tTArmor = CreateConVar("sm_t_armor", "100", "Кол-во брони Т.");
   tCTArmor = CreateConVar("sm_ct_armor", "100", "Кол-во брони КТ.");
   ttDamage = CreateConVar("sm_damage", "0", "Включить настройку наносимого урона?; 1 - Да, 0 - Нет");
   ttTDamage = CreateConVar("sm_t_damage", "2.0", "Множитель наносимого урона Т; 1.0 - Обычный урон.");
   ttCTDamage = CreateConVar("sm_ct_damage", "2.0", "Множитель наносимого урона КТ; 1.0 - Обычный урон.");
   ttRDamage = CreateConVar("sm_rdamage", "0", "Включить настройки получаемого урона?; 1 - Да, 0 - Нет");
   ttRTDamage = CreateConVar("sm_t_rdamage", "0.8", "Множитель получаемого урона Т (Должен быть меньше 1.0); 1.0 - Обычный урон.");
   ttRCTDamage = CreateConVar("sm_ct_rdamage", "0.8", "Множитель получаемого урона КТ (Должен быть меньше 1.0); 1.0 - Обычный урон.");
Можно (и надо будет) заменить на это.
PHP:
    g_hEnablers[DISABLE_DAMAGE]                     = CreateConVar("sm_tdamage", "0", "Отключать Т урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
    g_hEnablers[DISABLE_SUICIDE]                    = CreateConVar("sm_ctdamage", "0", "Отключать КТ урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
    g_hEnablers[ENABLE_SPEED]                       = CreateConVar("sm_speed", "0", "Включить настройку скорости?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_HEALTH]                      = CreateConVar("sm_health", "0", "Включить настройку здоровья?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_ARMOR]                       = CreateConVar("sm_armor", "0", "Включить настройку брони?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_MULTIPLIER_OUTDAMAGE]        = CreateConVar("sm_damage", "0", "Включить настройку наносимого урона?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_MULTIPLIER_RECDAMAGE]        = CreateConVar("sm_rdamage", "0", "Включить настройки получаемого урона?; 1 - Да, 0 - Нет");

    g_hSettings[SETTINGS_SPEED][TEAM_TERROR]        = CreateConVar("sm_t_speed", "3.0", "Скорость Т; 1.0 - Обычная скорость.");
    g_hSettings[SETTINGS_SPEED][TEAM_COUNTER]       = CreateConVar("sm_ct_speed", "3.0", "Скорость КТ; 1.0 - Обычная скорость.");
    g_hSettings[SETTINGS_HEALTH][TEAM_TERROR]       = CreateConVar("sm_t_health", "100", "Кол-во здоровья Т.");
    g_hSettings[SETTINGS_HEALTH][TEAM_COUNTER]      = CreateConVar("sm_ct_health", "100", "Кол-во здоровья КТ.");
    g_hSettings[SETTINGS_ARMOR][TEAM_TERROR]        = CreateConVar("sm_t_armor", "100", "Кол-во брони Т.");
    g_hSettings[SETTINGS_ARMOR][TEAM_COUNTER]       = CreateConVar("sm_ct_armor", "100", "Кол-во брони КТ.");
    g_hSettings[SETTINGS_OUTDAMAGE][TEAM_TERROR]    = CreateConVar("sm_t_damage", "2.0", "Множитель наносимого урона Т; 1.0 - Обычный урон.");
    g_hSettings[SETTINGS_OUTDAMAGE][TEAM_COUNTER]   = CreateConVar("sm_ct_damage", "2.0", "Множитель наносимого урона КТ; 1.0 - Обычный урон.");
    g_hSettings[SETTINGS_RECDAMAGE][TEAM_TERROR]    = CreateConVar("sm_t_rdamage", "0.8", "Множитель получаемого урона Т (Должен быть меньше 1.0); 1.0 - Обычный урон.");
    g_hSettings[SETTINGS_RECDAMAGE][TEAM_COUNTER]   = CreateConVar("sm_ct_rdamage", "0.8", "Множитель получаемого урона КТ (Должен быть меньше 1.0); 1.0 - Обычный урон.");

Ну и по мелочи ещё...
Оффтоп
--- Добавлено позже ---
@jasmine, броня вместе со шлемом выдается?
Да
--- Добавлено позже ---
Но больше всего трясёт от конваров.

PHP:
new Handle:tTDamage;
new Handle:tCTDamage;
new Handle:tTKill;
new Handle:tCTKill;
new Handle:tSpeed;
new Handle:tTSpeed;
new Handle:tCTSpeed;
new Handle:tHealth;
new Handle:tTHealth;
new Handle:tCTHealth;
new Handle:tArmor;
new Handle:tTArmor;
new Handle:tCTArmor;
new Handle:ttDamage;
new Handle:ttTDamage;
new Handle:ttCTDamage;
new Handle:ttRDamage;
new Handle:ttRTDamage;
new Handle:ttRCTDamage;

Не проще определить массив для конвар?
PHP:
#define DISABLE_DAMAGE              0
#define DISABLE_SUICIDE             1
#define ENABLE_SPEED                2
#define ENABLE_HEALTH               3
#define ENABLE_ARMOR                4
#define ENABLE_MULTIPLIER_OUTDAMAGE 5
#define ENABLE_MULTIPLIER_RECDAMAGE 6
#define ENABLERS_COUNT              7

#define SETTINGS_SPEED              0
#define SETTINGS_HEALTH             1
#define SETTINGS_ARMOR              2
#define SETTINGS_OUTDAMAGE          3
#define SETTINGS_RECDAMAGE          4
#define SETTINGS_COUNT              5

#define TEAM_TERROR                 0
#define TEAM_COUNTER                1
#define TEAM_COUNT                  2

Handle g_hEnablers[ENABLERS_COUNT];
Handle g_hSettings[SETTINGS_COUNT][TEAM_COUNT];

Тогда вот это:
PHP:
   tTDamage = CreateConVar("sm_tdamage", "0", "Отключать Т урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
   tCTDamage = CreateConVar("sm_ctdamage", "0", "Отключать КТ урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
   tTKill = CreateConVar("sm_tkill", "0", "Запрещать Т суицид?; 1 - Да, 0 - Нет");
   tCTKill = CreateConVar("sm_ctkill", "0", "Запрещать КТ суицид?; 1 - Да, 0 - Нет");
   tSpeed = CreateConVar("sm_speed", "0", "Включить настройку скорости?; 1 - Да, 0 - Нет");
   tTSpeed = CreateConVar("sm_t_speed", "3.0", "Скорость Т; 1.0 - Обычная скорость.");
   tCTSpeed = CreateConVar("sm_ct_speed", "3.0", "Скорость КТ; 1.0 - Обычная скорость.");
   tHealth = CreateConVar("sm_health", "0", "Включить настройку здоровья?; 1 - Да, 0 - Нет");
   tTHealth = CreateConVar("sm_t_health", "100", "Кол-во здоровья Т.");
   tCTHealth = CreateConVar("sm_ct_health", "100", "Кол-во здоровья КТ.");
   tArmor = CreateConVar("sm_armor", "0", "Включить настройку брони?; 1 - Да, 0 - Нет");
   tTArmor = CreateConVar("sm_t_armor", "100", "Кол-во брони Т.");
   tCTArmor = CreateConVar("sm_ct_armor", "100", "Кол-во брони КТ.");
   ttDamage = CreateConVar("sm_damage", "0", "Включить настройку наносимого урона?; 1 - Да, 0 - Нет");
   ttTDamage = CreateConVar("sm_t_damage", "2.0", "Множитель наносимого урона Т; 1.0 - Обычный урон.");
   ttCTDamage = CreateConVar("sm_ct_damage", "2.0", "Множитель наносимого урона КТ; 1.0 - Обычный урон.");
   ttRDamage = CreateConVar("sm_rdamage", "0", "Включить настройки получаемого урона?; 1 - Да, 0 - Нет");
   ttRTDamage = CreateConVar("sm_t_rdamage", "0.8", "Множитель получаемого урона Т (Должен быть меньше 1.0); 1.0 - Обычный урон.");
   ttRCTDamage = CreateConVar("sm_ct_rdamage", "0.8", "Множитель получаемого урона КТ (Должен быть меньше 1.0); 1.0 - Обычный урон.");
Можно (и надо будет) заменить на это.
PHP:
    g_hEnablers[DISABLE_DAMAGE]                     = CreateConVar("sm_tdamage", "0", "Отключать Т урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
    g_hEnablers[DISABLE_SUICIDE]                    = CreateConVar("sm_ctdamage", "0", "Отключать КТ урон?; 0 - Нет, 1 - Отключать урон от мира, 2 - Отключать урон от других игроков, 3 - Отключать весь урон.");
    g_hEnablers[ENABLE_SPEED]                       = CreateConVar("sm_speed", "0", "Включить настройку скорости?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_HEALTH]                      = CreateConVar("sm_health", "0", "Включить настройку здоровья?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_ARMOR]                       = CreateConVar("sm_armor", "0", "Включить настройку брони?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_MULTIPLIER_OUTDAMAGE]        = CreateConVar("sm_damage", "0", "Включить настройку наносимого урона?; 1 - Да, 0 - Нет");
    g_hEnablers[ENABLE_MULTIPLIER_RECDAMAGE]        = CreateConVar("sm_rdamage", "0", "Включить настройки получаемого урона?; 1 - Да, 0 - Нет");

    g_hSettings[SETTINGS_SPEED][TEAM_TERROR]        = CreateConVar("sm_t_speed", "3.0", "Скорость Т; 1.0 - Обычная скорость.");
    g_hSettings[SETTINGS_SPEED][TEAM_COUNTER]       = CreateConVar("sm_ct_speed", "3.0", "Скорость КТ; 1.0 - Обычная скорость.");
    g_hSettings[SETTINGS_HEALTH][TEAM_TERROR]       = CreateConVar("sm_t_health", "100", "Кол-во здоровья Т.");
    g_hSettings[SETTINGS_HEALTH][TEAM_COUNTER]      = CreateConVar("sm_ct_health", "100", "Кол-во здоровья КТ.");
    g_hSettings[SETTINGS_ARMOR][TEAM_TERROR]        = CreateConVar("sm_t_armor", "100", "Кол-во брони Т.");
    g_hSettings[SETTINGS_ARMOR][TEAM_COUNTER]       = CreateConVar("sm_ct_armor", "100", "Кол-во брони КТ.");
    g_hSettings[SETTINGS_OUTDAMAGE][TEAM_TERROR]    = CreateConVar("sm_t_damage", "2.0", "Множитель наносимого урона Т; 1.0 - Обычный урон.");
    g_hSettings[SETTINGS_OUTDAMAGE][TEAM_COUNTER]   = CreateConVar("sm_ct_damage", "2.0", "Множитель наносимого урона КТ; 1.0 - Обычный урон.");
    g_hSettings[SETTINGS_RECDAMAGE][TEAM_TERROR]    = CreateConVar("sm_t_rdamage", "0.8", "Множитель получаемого урона Т (Должен быть меньше 1.0); 1.0 - Обычный урон.");
    g_hSettings[SETTINGS_RECDAMAGE][TEAM_COUNTER]   = CreateConVar("sm_ct_rdamage", "0.8", "Множитель получаемого урона КТ (Должен быть меньше 1.0); 1.0 - Обычный урон.");
Мне просто так понятнее)

Пользователь jasmine обновил ресурс Team Settings новой записью:

Обновление.

Оптимизирован код.
Оффтоп

Новые переменные:
sm_t_helmet - Выдавать шлем Т?; 1 - Да, 0 - Нет
sm_ct_helmet - Выдавать шлем КТ?; 1 - Да, 0 - Нет

Узнать больше об этом обновлении...

Пользователь jasmine обновил ресурс Team Settings новой записью:

Гравитация.

Добавлены новые переменные:

sm_gravity - Включить настройку гравитации?; 1 - Да, 0 - Нет
sm_t_gravity - Гравитация Т; 1.0 - Обычная гравитация.
sm_ct_gravity - Гравитация КТ; 1.0 - Обычная гравитация.

Узнать больше об этом обновлении...

Пользователь jasmine обновил ресурс Team Settings новой записью:

Обновление.

  • Оптимизация.
  • Конфиг перенесен в addons/sourcemod/configs

Узнать больше об этом обновлении...

Этот ресурс был удалён и более недоступен для скачивания.
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу