Возможна ли полная блокировка глушителя?

Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
fantom, понял. Но, это только на анимацию будет влиять или еще и на установку иного состояния глушителя на оружии?
 
Сообщения
2,491
Реакции
2,790
Помог
61 раз(а)
Minni, нужно пробовать. Я написал о двух кнопках только
 
Сообщения
432
Реакции
409
Помог
14 раз(а)
Minni, нет, это только клиентская анимация. При cl_lw 0 видно, что происходит на самом деле
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
Код:
public HookSecondaryAttack(weapon) {
    set_member(weapon, m_Weapon_flNextSecondaryAttack, 999.0);
    return HAM_SUPERCEDE;
}
Проверил, работает отлично
Хук на pre, естественно
При зажатой кнопке все равно выставляет другое состояние глушителя.
11 Янв 2018
Короче, крутил я, вертел это все дело и вроде бы достиг своей цели. Да, анимация надевания глушителя есть, но это легко исправляется самой моделью.

C++:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN    "Block Silence"
#define VERSION    "0.0.8"
#define AUTHOR    "Minni Mouse"

new g_iCmdStart;

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    unregister_forward(FM_CmdStart, g_iCmdStart, false);
    RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_m4a1", "Ham_SecondaryAttack_Pre", false);
}

public Ham_SecondaryAttack_Pre(weapon) {
    g_iCmdStart = register_forward(FM_CmdStart, "FM_CmdStart_Pre", false);
    return HAM_SUPERCEDE;
}

public FM_CmdStart_Pre(id, ucHandle) {
    static button;
    button = get_uc(ucHandle, UC_Buttons);
    if(button & IN_ATTACK2 && get_user_weapon(id) == CSW_M4A1) set_uc(ucHandle, UC_Buttons, button &= ~IN_ATTACK2);
    return FMRES_IGNORED;
}
 
Сообщения
432
Реакции
409
Помог
14 раз(а)
Minni, ох, ну ты и нагородил)
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
Главное работает и есть от чего отталкиваться.
 
Сообщения
39
Реакции
102
Х@Minni, Более-менее "блокирует" анимацию

C++:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN    "Block Silencer"
#define VERSION    "1.0"
#define AUTHOR    "In-line & dev-cs guys"

// https://github.com/s1lentq/ReGameDLL_CS/blob/7f9cf53c4906343514e9560e0e536a517c195444/regamedll/dlls/weapons.h#L1255-L1271
enum M4A1
{
    M4A1_IDLE,
    M4A1_SHOOT1,
    M4A1_SHOOT2,
    M4A1_SHOOT3,
    M4A1_RELOAD,
    M4A1_DRAW,
    M4A1_ATTACH_SILENCER,
    M4A1_UNSIL_IDLE,
    M4A1_UNSIL_SHOOT1,
    M4A1_UNSIL_SHOOT2,
    M4A1_UNSIL_SHOOT3,
    M4A1_UNSIL_RELOAD,
    M4A1_UNSIL_DRAW,
    M4A1_DETACH_SILENCER,
};

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_forward(FM_CmdStart, "FM_CmdStart_Pre", false);
    RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_m4a1", "Ham_SecondaryAttack_Pre", false);
}

public Ham_SecondaryAttack_Pre(weapon) {
    return HAM_SUPERCEDE;
}

public FM_CmdStart_Pre(id, ucHandle) {
    new button = get_uc(ucHandle, UC_Buttons);
    if((button & IN_ATTACK2) && get_user_weapon(id) == CSW_M4A1) {
        set_uc(ucHandle, UC_Buttons, button & ~(IN_ATTACK2 | IN_ATTACK));
        
        new weapon = get_ent_data_entity(id, "CBasePlayer", "m_pActiveItem");
        
        message_begin(MSG_ONE, SVC_WEAPONANIM, .player = id);
        write_byte(M4A1_UNSIL_IDLE);
        write_byte(pev(weapon, pev_body));
        message_end();
    }
    return FMRES_IGNORED;
}
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
Inline, я уже модель сделал без анимации. И, я так понял, что не получится вызывать CmdStart только при нажатии ПКМ.
11 Янв 2018
Minni, ,было бы прикольно наоборот добавить возможность другим оружиям одевать глушитель например AWP , Ak47 и т.п =)
Что, прости? :D
 
Сообщения
119
Реакции
53
Помог
4 раз(а)
Minni, было бы прикольно наоборот добавить возможность другим оружиям одевать глушитель например AWP , Ak47 и т.п =)
" это как дополнение к теме
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
Sleedney, я понял, но не вижу в этом никакого смысла, ибо под глушитель необходимо еще менять характеристики стрельбы для того оружия, на который надеваешь.
 
Сообщения
119
Реакции
53
Помог
4 раз(а)
Minni, Достаточно заглушить стрельбу как у M16 или USP , разброс не обязательно менять ( основная суть глушителя что бы было тихо слышно звук выстрела) . А сам глушитель можно из дефолтных взять их должно быть 2 штуки или даже 1 в таком случае задать параметры на изменение размера. .
11 Янв 2018
Minni,
 
Сообщения
39
Реакции
102
Sleedney, нужно будет много кастомных моделек)
 
Сообщения
119
Реакции
53
Помог
4 раз(а)
Inline, А причина почему из дефолтных нельзя выбрать ?
 
Сообщения
576
Реакции
1,003
Помог
18 раз(а)
Sleedney, глушители физически есть только в двух моделях, на другие оружия надо кастомные модели делать, где будет этот самый глушитель.
 
Сообщения
432
Реакции
409
Помог
14 раз(а)
Дело не в моделях, звук выстрела проблематично подменить на стороне сервера)
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
Нужно с клиентдатой работать. Модели не проблема.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу