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

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
102
Реакции
6
Предупреждения
5
Есть код
Код:
#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,385
Реакции
1,481
Помог
124 раз(а)
Dau84, проверяй значения get_entvar(pItem, var_impulse) и g_iUniImpulseWeapon. Выведи их в консоль сервера или клиента и посмотри, выполняются ли условия
 
Сообщения
102
Реакции
6
Предупреждения
5
Nordic Warrior, ну вроде если сообщение приходит значит всё нормально. Сообщение именно на этот кастомный нож.
 
Сообщения
3,385
Реакции
1,481
Помог
124 раз(а)
Dau84, а, ну так потому что присваивать надо не на id, а на get_member(pItem, m_pPlayer). Что за id вообще? В этом хуке только один аргумент.
 
Сообщения
102
Реакции
6
Предупреждения
5
Nordic Warrior, спасибо большое)
22 Янв 2024
Тему можно закрывать!
 
Статус
В этой теме нельзя размещать новые ответы.

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

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