Добрый день. Прошу помощи, с reapi никак не пока не получается разбираться, сыпятся постоянно ошибки.
Ошибка в логах при включенном debug
Сам плагин
Ошибка в логах при включенном debug
C++:
L 04/23/2020 - 13:50:54: Info (map "deathrun_arctic") (file "addons/amxmodx/logs/error_20200423.log")
L 04/23/2020 - 13:50:54: [ReAPI] set_entvar: invalid or uninitialized entity
L 04/23/2020 - 13:50:54: [AMXX] Displaying debug trace (plugin "dr_knifes.amxx")
L 04/23/2020 - 13:50:54: [AMXX] Run time error 10: native error (native "set_entvar")
L 04/23/2020 - 13:50:54: [AMXX] [0] dr_knifes.sma::stop_effect (line 166)
L 04/23/2020 - 13:50:54: [AMXX] [1] dr_knifes.sma::client_putinserver (line 43)
Сам плагин
C++:
#include < amxmodx >
#include < amxmisc >
#include < fakemeta >
#include < hamsandwich >
#include < fun >
#include < reapi >
#define KEYS (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<9)
#define FLAG ADMIN_LEVEL_E
#define BLOCK_TIME 5.0
enum _: mdls { vModel[64], pModel[64] }
new gModels[][mdls] = {
{ "models/v_knife.mdl", "models/p_knife.mdl"},
{ "models/dr_mode/knifes/v_axe.mdl", "models/dr_mode/knifes/p_axe.mdl" },
{ "models/dr_mode/knifes/v_dragontail.mdl", "models/dr_mode/knifes/p_dragontail.mdl" },
{ "models/dr_mode/knifes/v_daedric.mdl", "models/dr_mode/knifes/p_daedric.mdl" },
{ "models/dr_mode/knifes/v_kerambit.mdl", "models/dr_mode/knifes/p_kerambit.mdl" }
};
new gKnife[33], msgScreenFade, Float: gUse[33];
public plugin_init(){
register_plugin("DR Knifes", "1.0", "PAffAEJIkA :3");
register_clcmd("say /knife", "show_KnifeMenu");
register_clcmd("say_team /knife", "show_KnifeMenu");
msgScreenFade = get_user_msgid("ScreenFade");
RegisterHam(Ham_Item_Deploy, "weapon_knife", "Item_Deploy_Post", 1);
RegisterHookChain(RG_CBasePlayer_PreThink, "Player_PreThink");
register_menu("Knifes", KEYS, "func_KNIFES", 0);
}
public plugin_precache(){
for(new i = 0; i < sizeof(gModels); i++){
precache_model(gModels[i][vModel]);
precache_model(gModels[i][pModel]);
}
}
public client_putinserver(id){
stop_effect(id);
gKnife[id] = 0;
set_effect(id);
}
public show_KnifeMenu(id){
new szMenu[512], iLen = 0;
iLen = format(szMenu, charsmax(szMenu), "\d[Run, Vasya, Run]\w Выбор ножа^n^n");
iLen += format(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y1\r].\%sСтандартный \d[\wРегенерация\d]^n", gKnife[id] == 0 ? "d" : "y");
iLen += format(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y2\r].\%sAxe \d[\wГравитация\d]^n", gKnife[id] == 1 ? "d" : "y");
iLen += format(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y3\r].\%sКогти росомахи \d[\wСкорость\d]^n", gKnife[id] == 2 ? "d" : "y");
iLen += format(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y4\r].\%sDaedric Dagger \d[\wБесшумные шаги\d]^n", gKnife[id] == 3 ? "d" : "y");
if(get_user_flags(id) & FLAG)
iLen += format(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y5\r].\%sKerambit \d[\wВсе способности\d]^n", gKnife[id] == 4 ? "d" : "y");
else
iLen += format(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y5\r].\dKerambit [\yАДМИНСКИЙ\d]^n");
iLen += format(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r[\y0\r].\yВыход^n");
iLen += format(szMenu[iLen], charsmax(szMenu) - iLen, "^n^n\dhttps://samarka22.ru");
return show_menu(id, KEYS, szMenu, -1, "Knifes");
}
public func_KNIFES(id, key){
if(key == 9)
return PLUGIN_HANDLED;
if(key == 4 && ~get_user_flags(id) & FLAG)
return show_KnifeMenu(id);
if(gUse[id] > get_gametime() + BLOCK_TIME)
return show_KnifeMenu(id);
gUse[id] = get_gametime() + BLOCK_TIME;
if(gKnife[id] != key){
stop_effect(id);
gKnife[id] = key;
if(get_user_weapon(id) == CSW_KNIFE)
set_model(id);
}
return show_KnifeMenu(id);
}
public Item_Deploy_Post(weapon){
new id = get_pdata_cbase(weapon, 41, 4);
if(!is_user_alive(id))
return HAM_IGNORED;
set_model(id);
return HAM_IGNORED;
}
public Player_PreThink(id){
if(!is_user_alive(id))
return HC_CONTINUE;
if(~get_user_weapon(id) & CSW_KNIFE)
stop_effect(id);
else
set_effect(id);
return HC_CONTINUE;
}
public KNF_SetHP(tid){
new id = tid - 33;
new TeamName:gTeam = get_member(id, m_iTeam);
if(!is_user_alive(id) || gTeam == TEAM_SPECTATOR)
return;
new Float: gHP = get_entvar(id, var_health);
if(gHP < 100.0){
set_entvar(id, var_health, gHP + random_float(1.0, 4.0));
message_begin(MSG_ONE, msgScreenFade, {0,0,0}, id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(200);
write_byte(0);
write_byte(75);
message_end();
}
}
set_model(id){
new mId = gKnife[id];
set_effect(id);
set_pev(id, pev_viewmodel2, gModels[mId][vModel]);
set_pev(id, pev_weaponmodel2, gModels[mId][pModel]);
}
set_effect(id){
new mId = gKnife[id];
if(mId == 0 || mId == 4){
if(!task_exists(id + 33))
set_task(1.0, "KNF_SetHP", id + 33, .flags = "b");
}
if(mId == 1 || mId == 4)
set_entvar(id, var_gravity, 0.6);
if(mId == 2)
set_entvar(id, var_maxspeed, 400.0);
if(mId == 3 || mId == 4)
set_user_footsteps (id, 1);
if(mId == 4)
set_entvar(id, var_maxspeed, 444.0);
}
stop_effect(id){
remove_task(id + 33);
set_entvar(id, var_gravity, 1.0);
set_entvar(id, var_maxspeed, 250.0);
set_user_footsteps (id, 0);
}