NoZoom в конце раунда

Тема в разделе "Программирование / Скриптинг", создана пользователем pokypka20, 11 авг 2014.

  1. pokypka20

    pokypka20

    Сообщения:
    250
    Симпатии:
    30
    Нашол плагин от FrozDark который убирает zoom со всех снайперских винтовок.
    Но в плагине есть ошибка после 1 выстрела без прицела зум снова возвращается, как это можно исправить?

    И еще можно ли сделать чтобы ноузум был только после события round_end и при round_start зум опять был разрешен.
    PHP:
    #pragma semicolon 1

    #include <sourcemod>
    #include <sdktools>

    #define PLUGIN_VERSION "1.0"
    #define SNIPERS    "awp|scout|sg550|g3sg1"

    new bool:b_enable;

    public 
    Plugin:myinfo 
    {
        
    name "No zoom",
        
    author "FrozDark (HLModders LLC)",
        
    description "No zoom!",
        
    version PLUGIN_VERSION,
        
    url "www.hlmod.ru"
    }

    public 
    OnPluginStart()
    {
        
    CreateConVar("no_zoom_version"PLUGIN_VERSION"No zoom plugin version"FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_CHEAT|FCVAR_DONTRECORD);
        
        new 
    Handle:g_hEnable CreateConVar("no_zoom_enable""1""Disables zoom on snipers"0true0.0true1.0);
        
    b_enable GetConVarBool(g_hEnable);
        
    HookConVarChange(g_hEnableOnSwitchPlugin);
        
        
    HookEvent("item_pickup"OnItemPickup);
        
    HookEvent("weapon_fire"OnWeaponFire);
    }

    public 
    OnSwitchPlugin(Handle:convar, const String:oldValue[], const String:newValue[])
    {
        
    b_enable bool:StringToInt(newValue);
    }

    public 
    OnWeaponFire(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if (!
    b_enable)
        {
            return;
        }
        
    decl String:g_szWeapon[32];
        
        
    GetEventString(event"weapon"g_szWeaponsizeof(g_szWeapon));
        if (
    StrContains(SNIPERSg_szWeaponfalse) != -1)
        {
            new 
    client GetClientOfUserId(GetEventInt(event"userid"));
            if (!
    client)
            {
                return;
            }
            new 
    weapon GetPlayerWeaponSlot(client0);
            if (
    weapon != -1)
            {
                
    SetEntPropFloat(weaponProp_Send"m_flNextSecondaryAttack"GetGameTime() + 999999.0);
            }
        }
    }

    public 
    OnItemPickup(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if (!
    b_enable)
        {
            return;
        }
        
    decl String:g_szWeapon[32];
        
        
    GetEventString(event"item"g_szWeaponsizeof(g_szWeapon));
        if (
    StrContains(SNIPERSg_szWeaponfalse) != -1)
        {
            new 
    client GetClientOfUserId(GetEventInt(event"userid"));
            if (!
    client)
            {
                return;
            }
            new 
    weapon GetPlayerWeaponSlot(client0);
            if (
    weapon != -1)
            {
                
    SetEntPropFloat(weaponProp_Send"m_flNextSecondaryAttack"GetGameTime() + 999999.0);
            }
        }
    }

    public 
    Action:OnPlayerRunCmd(client, &buttons, &impulseFloat:vel[3], Float:angles[3], &weapon)
    {
        if (
    b_enable && weapon != 0)
        {
            
    decl String:g_szWeapon[32];
            if (
    GetEdictClassname(weapong_szWeaponsizeof(g_szWeapon)) && StrContains(SNIPERSg_szWeaponfalse) != -1)
            {
                
    SetEntPropFloat(weaponProp_Send"m_flNextSecondaryAttack"GetGameTime() + 999999.0);
            }
        }
    }