Момент получения оружия от карты

Banana

Участник
Сообщения
892
Реакции
113
На картах MG есть точки где можно подойти, нажать кнопку Е (действие) и тебе выдает какое-то оружие при чем оно выдается с заменой оружия которое у тебя уже есть в инвентаре или руках.

Нужно отловить этот момент.
ps. не просто отловить момент нажатия клавиши а момент именно события выдачи оружия картой.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Другими словами нужно отловить момент Замены оружия. (происходит то же самое)
 

Вложения

  • image_8.png
    image_8.png
    50.9 КБ · Просмотры: 20
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
DKHook(client, SDKHook_WeaponEquip, SDKHookCallback)
Но так будет отлавливаться любое поднятие оружия.
А вот момент использования тех точек нужно отлавливать иначе.
М/б нужно ловить момент уничтожения старого оружия

Ты просто скажи на кой тебе это вообще нужно.
 

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
Видимо там используется point_template
Сделать HookEntityOutput для OnEntitySpawned
Либо через func_button на OnPressed
 

Banana

Участник
Сообщения
892
Реакции
113
DKHook(client, SDKHook_WeaponEquip, SDKHookCallback)
Но так будет отлавливаться любое поднятие оружия.
А вот момент использования тех точек нужно отлавливать иначе.
М/б нужно ловить момент уничтожения старого оружия

Ты просто скажи на кой тебе это вообще нужно.
момент уничтожения старого оружия которое в руках было как отловить?
Сообщения автоматически склеены:

Видимо там используется point_template
Сделать HookEntityOutput для OnEntitySpawned
Либо через func_button на OnPressed
Пожалуйста напишите пример отлова выдачи оружия на карте, чтоб можно было это заблокировать
 
Последнее редактирование:

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
Я не знаю, что за карта у вас, поэтому не знаю, какие Entity там используются для выдачи оружия
Оружие у игрока удаляется через player_weaponstrip (я так думаю)
PHP:
public void OnPluginStart()
{
    HookEvent("round_freeze_end", view_as<EventHook>(Event_RoundFreezeEnd), EventHookMode_PostNoCopy);
}

public void Event_RoundFreezeEnd(Event hEvent)
{
    int iEntity = FindEntity(Classname, Targetname);
    
    if (iEntity == -1)
    {
        return;
    }
    
    HookEntityOutput/HookSingleEntityOutput(...) // ???
}

stock int FindEntity(const char[] szClassname, const char[] szTargetname)
{
    char szBufferName[32];
    int iEntity = -1;
    
    while ((iEntity = FindEntityByClassname(iEntity, szClassname)) != -1)
    {
        GetEntPropString(iEntity, Prop_Data, "m_iName", szBufferName, sizeof(szBufferName));
        
        if (strcmp(szBufferName, szTargetname, false) != 0)
        {
            continue;
        }

        return iEntity;
    }
    
    return -1;
}

public void EntityOutput_Callback(const char[] szOutput, int iCaller, int iActivator, float flDelay)
{
    /*
    point_template
    szOutput = OnEntitySpawned
    func_button
    szOutput = OnPressed
    */
}
 
Сверху Снизу