Не ывдаётся двойной прыжок

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
105
Реакции
6
Есть код
Код:
#include <amxmodx>
#include <hamsandwich>
#include <reapi>
#include <auw>
#include <fakemeta>

#if AMXX_VERSION_NUM < 183
    #define MAX_PLAYERS    32 + 1
#endif

enum _:jdata {
    bool:ACTIVE,
    bool:DOJUMP,
    JUMPCOUNT
}

new g_iUniImpulseWeapon;
new player_jumps[MAX_PLAYERS][jdata]

#define MAXJUMPS    2       

public plugin_init() {
  
    RegisterHam(Ham_Item_Deploy, "weapon_knife", "@CBasePlayerWeapon_Deploy_Post", .Post = true);
    g_iUniImpulseWeapon = auw_get_weapon_uid("ultimate_knfgv4", true);
    RegisterHam(Ham_Player_Jump,"player","HamHook_PlayerJump")
}

@CBasePlayerWeapon_Deploy_Post(const pItem, id) {

    if(get_entvar(pItem, var_impulse) == g_iUniImpulseWeapon)
    {
        client_print(get_member(pItem, m_pPlayer), print_chat, "Вы взяли в руки кастомный нож.");
        player_jumps[id][ACTIVE] = true;
    }
}

public HamHook_PlayerJump(id){
    if(!player_jumps[id][ACTIVE]) {
        client_print(id, print_chat, "Двойной прыжок не активен");
        return;
    }

    static oldButtons;
    oldButtons = pev(id,pev_oldbuttons);

    if( !(pev(id,pev_flags) & FL_ONGROUND)
        && !(oldButtons & IN_JUMP) ){
       
        if(player_jumps[id][JUMPCOUNT] < MAXJUMPS - 1){
            player_jumps[id][DOJUMP] = true;
            player_jumps[id][JUMPCOUNT]++;
        }
    } else if(pev(id,pev_flags) & FL_ONGROUND){
        player_jumps[id][JUMPCOUNT] = 0;
    }

    if(player_jumps[id][DOJUMP]){
        static Float:velocity[3];
        pev(id,pev_velocity,velocity);
        velocity[2] = random_float(265.0,285.0);
        set_pev(id,pev_velocity,velocity);

        player_jumps[id][DOJUMP] = false;
    }
}

public client_disconnect(id)
{
    arrayset(player_jumps[id],0,jdata)
}
Проблема в том, что почему-то не активируется player_jumps[id][ACTIVE] = true; И соответственно не выдаётся двойной прыжок. Что я делаю не так, объясните пожалуйста.
 
Последнее редактирование модератором:
Сообщения
3,569
Реакции
1,560
Помог
133 раз(а)
Dau84, проверяй значения get_entvar(pItem, var_impulse) и g_iUniImpulseWeapon. Выведи их в консоль сервера или клиента и посмотри, выполняются ли условия
 
Сообщения
105
Реакции
6
Nordic Warrior, ну вроде если сообщение приходит значит всё нормально. Сообщение именно на этот кастомный нож.
 
Сообщения
3,569
Реакции
1,560
Помог
133 раз(а)
Dau84, а, ну так потому что присваивать надо не на id, а на get_member(pItem, m_pPlayer). Что за id вообще? В этом хуке только один аргумент.
 
Статус
В этой теме нельзя размещать новые ответы.

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

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