Участник
Пользователь
- Сообщения
- 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;
И соответственно не выдаётся двойной прыжок. Что я делаю не так, объясните пожалуйста.
Последнее редактирование модератором: