[CS: GO] Надо написать один короткий плагин(Сделано)

Тема в разделе "Требуется", создана пользователем ComfortableZmServ, 18 окт 2016.

Статус темы:
Закрыта.
  1. ComfortableZmServ

    ComfortableZmServ

    Сообщения:
    35
    Симпатии:
    2
    Нужно заблокировать использование прицела на aug, цену в лс.

    Контакты:
    Vladislav Shlyakhter
     
  2. Grey83

    Grey83

    Сообщения:
    552
    Симпатии:
    186
    заблочить правую кнопку, чтобы нельзя было включить зум на ауге?
     
  3. AlmazON

    AlmazON Не путать с самим yand3xmail

    Сообщения:
    5.170
    Симпатии:
    2.426
    Даже не думай - бесполезная затея! Уже давно было испробовано - проскальзывает прицел на полсекунды. Только:
    Код:
    SetEntPropFloat(weapon, Prop_Send, "m_flNextSecondaryAttack", 9999999.9);
    Оффтоп
     
  4. ComfortableZmServ

    ComfortableZmServ

    Сообщения:
    35
    Симпатии:
    2
    да
     
  5. Grey83

    Grey83

    Сообщения:
    552
    Симпатии:
    186
    как-то так
    PHP:
    public void OnPluginStart()
    {
        for(
    int i 1<= MaxClientsi++)
        {
            if(
    IsClientInGame(client)) OnClientPutInServer(i);
        }
    }

    public 
    void OnClientPutInServer(int client)
    {
        
    SDKHook(clientSDKHook_WeaponSwitchPostOnWeaponSwitch);
    }

    public 
    void OnClientDisconnect(int client)
    {
        
    SDKUnhook(clientSDKHook_WeaponSwitchPostOnWeaponSwitch);
    }

    public 
    void OnWeaponSwitch(int clientint weapon)
    {
        static 
    char class[32];
        if(
    GetEdictClassname(weapon, class, sizeof(class)) && StrContains(class, "aug") !=-1SetEntPropFloat(weaponProp_Send"m_flNextSecondaryAttack"3600.0);
    }
    Думаю часа хватит: кто будет целый час бегать и не переключать оружие, чтобы только взглянуть в прицел?! =)
     
  6. AlmazON

    AlmazON Не путать с самим yand3xmail

    Сообщения:
    5.170
    Симпатии:
    2.426
    Слабенько, очень. После каждого выстрела значение сбросится, как и при перезарядке, так и при поднятии (да-да, "свитча" и тут недосточно - багует разок-другой). Ещё при спавне с оружием - отдельная история.
    SDK сам унхукнет свои хуки, когда объект "уничтожается" (игрок выходит, в данном случае).
     
  7. Grey83

    Grey83

    Сообщения:
    552
    Симпатии:
    186
    ну тогда придётся юзать OnPlayerRunCmd:
    PHP:
    public Action OnPlayerRunCmd(int clientint &buttonsint &impulsefloat vel[3], float angles[3], int &weaponint &subtypeint &cmdnumint &tickcountint &seedint mouse[2])
    {
        if (
    IsPlayerAlive(client))
        {
            if (
    buttons IN_ATTACK2)
            {
                static 
    char class[32];
                
    GetClientWeapon(client, class, sizeof(class));
                if(
    StrContains(class, "aug") != -1)
                {
                    
    SetEntPropFloat(weaponProp_Send"m_flNextSecondaryAttack"3600.0);
                    
    buttons &= ~IN_ATTACK2;
                    return 
    Plugin_Changed;
                }
            }
        }
        return 
    Plugin_Continue;
    }
    Или так (если передаётся индекс энтити оружия, а не его тип):
    PHP:
    public Action OnPlayerRunCmd(int clientint &buttonsint &impulsefloat vel[3], float angles[3], int &weaponint &subtypeint &cmdnumint &tickcountint &seedint mouse[2])
    {
        if (
    IsPlayerAlive(client))
        {
            if(
    buttons IN_ATTACK2)
            {
                static 
    char class[32];
                if(
    GetEntityClassname(weapon, class, sizeof(class)) && StrContains(class, "aug") != -1)
                {
                    
    SetEntPropFloat(weaponProp_Send"m_flNextSecondaryAttack"3600.0);
                    
    buttons &= ~IN_ATTACK2;
                    return 
    Plugin_Changed;
                }
            }
        }
        return 
    Plugin_Continue;
    }
     
  8. AlmazON

    AlmazON Не путать с самим yand3xmail

    Сообщения:
    5.170
    Симпатии:
    2.426
    1) Сначала появится, исчезнет и заблокируется...
    2) Выстрел - значение сброшено. См. пункт 1.
    Адекватно поможет только от "спама" прицелом.
     
  9. R1KO

    R1KO Source Dealer Супер-модератор

    Сообщения:
    6.702
    Симпатии:
    3.727
    в SDKHook_PostThink
     
  10. Grey83

    Grey83

    Сообщения:
    552
    Симпатии:
    186
    @R1KO, в смысле вот так?
    PHP:
    public void OnPluginStart()
    {
        for(
    int i 1<= MaxClientsi++)
        {
            if(
    IsClientInGame(client)) OnClientPutInServer(i);
        }
    }

    public 
    void OnClientPutInServer(int client)
    {
        
    SDKHook(clientSDKHook_PostThinkOnClientPostThink);
    }

    public 
    void OnClientPostThink(int client)
    {
        static 
    char class[32];
        class[
    0] = '\0';
        
    GetClientWeapon(client, class, sizeof(class));    // функция всегда определяет тип оружия?
        
    if(class[0] && StrContains(class, "aug") !=-1SetEntPropFloat(weaponProp_Send"m_flNextSecondaryAttack"3600.0);
    }
     
  11. san911

    san911 Вообще короче нечего

    Сообщения:
    224
    Симпатии:
    65
    Зачем чистить массив, а потом ещё и проверять?

    PHP:
    public void OnPluginStart()
    {
        for(
    int i 1<= MaxClientsi++)
        {
            if(
    IsClientInGame(i)) OnClientPutInServer(i);
        }
    }

    public 
    void OnClientPutInServer(int client)
    {
        
    SDKHook(clientSDKHook_PostThinkOnClientPostThink);
    }


    public 
    void OnClientPostThink(int client)
    {
        static 
    char class[20];
        if(
    GetClientWeapon(client, class, 20) && StrContains(class, "aug") != -1SetEntPropFloat(GetEntPropEnt(clientProp_Data"m_hActiveWeapon"), Prop_Send"m_flNextSecondaryAttack"3600.0);
    }
     
  12. Grey83

    Grey83

    Сообщения:
    552
    Симпатии:
    186
    На всякий случай
     
  13. R1KO

    R1KO Source Dealer Супер-модератор

    Сообщения:
    6.702
    Симпатии:
    3.727
    в целях оптимизации лучше сделать так:
    PHP:
    strcmp(class[7], "aug") == 0
     
    Серый™ и Саша Шеин нравится это.
  14. ComfortableZmServ

    ComfortableZmServ

    Сообщения:
    35
    Симпатии:
    2
    Спасибо всем, кто решил помочь, да еще и бесплатно, чуть не забыл про эту тему.

    p.s найс вы тут срач развели, правда по делу)))
    p.p.s - p.s написал до того как прочитал ваши сообщения, блин вы просто мастера своего дела, всех в авторы впишу, но вам наверное насрать))
     
    Саша Шеин нравится это.
Статус темы:
Закрыта.