Русское сообщество по скриптингу

Run time error: native "pev" error

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Re: Run time error: native "pev" error

Сообщение ilya9754 » 03 май 2016, 21:38

А как должно быть правельно?
Аватара пользователя
ilya9754
 
Сообщения: 228
Зарегистрирован: 20 дек 2011, 19:05
Благодарил (а): 28 раз.
Поблагодарили: 6 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Run time error: native "pev" error

Сообщение ilya9754 » 05 май 2016, 12:54

nemec21 писал(а):

Все тоже самое, без конца спамит в консоль сервера !

Код: Выделить всё
L 05/05/2016 - 11:47:52: [FAKEMETA] Invalid entity
L 05
/05/2016 - 11:47:52: [AMXX] Displaying debug trace (plugin "medic.amxx")
L 05/05/2016 - 11:47:52: [AMXX] Run time error 10: native error (native "pev")
L 05/05/2016 - 11:47:52


может действительно что-то с компелятором как я описывал выше??

уже просто действительно незнаю что это может быть :(
Аватара пользователя
ilya9754
 
Сообщения: 228
Зарегистрирован: 20 дек 2011, 19:05
Благодарил (а): 28 раз.
Поблагодарили: 6 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Run time error: native "pev" error

Сообщение Leonidddd » 05 май 2016, 14:07

Код: Выделить всё
    if(!is_user_alive(id) && !pev_valid(ent)) 

"Если игрок не жив И энтити не существует"

Код: Выделить всё
    if(!is_user_alive(id) || !pev_valid(ent)) 

"Если игрок не жив ИЛИ энтити не существует"

Нужно поставить Логическое ИЛИ ( || ), а не логическое И ( && )


Кстати, в is_user_alive уже включена проверка на коннект, так что проверку is_user_connected при использовании проверки на is_user_alive нет смысла ставить.
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2557
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 192 раз.
Поблагодарили: 718 раз.

Re: Run time error: native "pev" error

Сообщение Relax123 » 25 сен 2018, 15:02

//ПРОБУЙ


#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN "CS Medic NPC"
#define VERSION "1.0"
#define AUTHOR "Mr. Smit"
#define TAG "[Medic]"

#if cellbits == 32
#define OFFSET_CSMONEY 115
#else
#define OFFSET_CSMONEY 140
#endif
#define OFFSET_LINUX 5

new MODE,REG_HEALTH, MAXHEALTH, COSTS,SHOUT, MESSAGE, COOLDOWN
new PlayerReload[33]

//////////////////////////////////////
// CVAR STUFF!
//////////////////////////////////////
#define CVAR_NAME "sb_npc_model"
new model[32];
new g_npcModel[63];
new g_modelName;
//////////////////////////////////////

//////////////////////////////////////
// NPC STUFF!
//////////////////////////////////////
#define menuKeys ((1<<0)|(1<<1))

new g_npc;
new g_weapon;
new bool:npcMade;
new bool:inMenu[33];
new filename[256];
//////////////////////////////////////

public plugin_init()
{
new confFolder[32];
get_mapname(filename, 255);
get_configsdir(confFolder, 31);
format(filename, 255, "%s/npcsaved/%s.coord", confFolder, filename);
set_task(3.0, "loadNPC");

register_plugin(PLUGIN, VERSION, AUTHOR);
register_dictionary("medic-mod.txt")
register_forward(FM_PlayerPreThink, "hook_PlayerPreThink");
register_forward(FM_AddToFullPack, "fw_AddToFullPack", 1);
register_forward(FM_Touch, "hook_Touch");
register_event("ResetHUD", "hook_ResetHUD", "be");
register_menucmd(register_menuid("npcMenu"), menuKeys, "npcMenuEnter");
register_concmd("amx_createnpc", "tryCreateNPC", ADMIN_RCON, "- creates the surf board NPC");


register_cvar("medic_version",VERSION,FCVAR_SERVER);
set_cvar_string("medic_version",VERSION);

/* Register CVARs */
MODE = register_cvar("medic_enabled","1") /* Mode 1: On ;; Mode 0: Off */
REG_HEALTH = register_cvar("medic_health","115") // How many Health you get instantly?
MAXHEALTH = register_cvar("medic_maxhp","10000") // Maximal HP for everyone
COSTS = register_cvar("medic_costs","5") // How many costs medic?
SHOUT = register_cvar("medic_shout","1") // Shout Medic if you buy medic?
MESSAGE = register_cvar("medic_message","1") // Write a Message if somebody ask for medic's help?
COOLDOWN = register_cvar("medic_cooldown","3") // Cooldown-Time in Seconds

/* Register Commands */

}
public plugin_precache()
{
g_modelName = register_cvar(CVAR_NAME, "medic-mod");
get_pcvar_string(g_modelName, model, 31);
formatex(g_npcModel, 63, "models/%s.mdl", model, model);

precache_model(g_npcModel);
precache_sound("medic.wav")
}

public client_connect(id)
{
inMenu[id] = false;
PlayerReload[id] = 0
}

public client_disconnect(id)
{
PlayerReload[id] = 0
}




public call_medic(id) {

if(get_pcvar_num(MODE) == 1 && PlayerReload[id] < time())
{
new ActuellHP = get_user_health(id);
new ActuellMoney = fm_cs_get_user_money(id);

if(ActuellMoney < get_pcvar_num(COSTS))
{
client_print(id, print_chat, "%L", id, "MED_HAVENOT_MONEY", TAG );
}

else
{
if(ActuellHP < get_pcvar_num(MAXHEALTH))
{
/* Shout if activated */
/* Write message if activated */
new playerCount, i, players[32], name[33];
get_players(players, playerCount, "ach");
get_user_name(id,name,32)

for(i=1; i<=playerCount; i++)
{
if(get_user_team(id) == get_user_team(i))
{
if(get_pcvar_num(MESSAGE) == 1)
{
client_print(0, print_chat, "%L", LANG_PLAYER, "MED_SOMEBODY_ASK", TAG );
if(get_pcvar_num(SHOUT) == 1)
{
engfunc(EngFunc_EmitSound, i, CHAN_ITEM, "medic.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
}
}

}

new Float:Lebenplus = get_pcvar_float(REG_HEALTH);

if(ActuellHP + Lebenplus > get_pcvar_num(MAXHEALTH))
{
set_pev(id,pev_health,get_pcvar_float(MAXHEALTH))
}
else
{
set_pev(id,pev_health,ActuellHP + Lebenplus);
}

PlayerReload[id] = time() + get_pcvar_num(COOLDOWN) /* Activate Reload */
fm_cs_set_user_money(id,ActuellMoney-get_pcvar_num(COSTS),1) /* Pay.. */

}
else
{
client_print(id, print_chat, "%L", id, "MED_HPNORMAL", TAG );
}

}
}
else
{
if(get_pcvar_num(MODE) != 1)

client_print(id, print_chat, "%L", id, "MED_DISABLED", TAG );
else
{
new Seconds = PlayerReload[id] - time()
client_print(id, print_chat, "%L", id, "MED_WAIT", TAG, Seconds );
}
}
return PLUGIN_HANDLED;
}

stock fm_cs_set_user_money(id,money,flash=1)
{
set_pdata_int(id,OFFSET_CSMONEY,money,OFFSET_LINUX);

message_begin(MSG_ONE,get_user_msgid("Money"),{0,0,0},id);
write_long(money);
write_byte(flash);
message_end();
}

stock fm_cs_get_user_money(id)
{
return get_pdata_int(id,OFFSET_CSMONEY,OFFSET_LINUX);
}





public hook_ResetHUD(id)
inMenu[id] = false;

public hook_Touch(ent, id)
{
if(!is_user_alive(id))
return FMRES_IGNORED;

if(!pev_valid(id))
return FMRES_IGNORED;

new classname[32];
pev(ent, pev_classname, classname, 31);

if(equali(classname, "shacks_npc") && !inMenu[id])
{
inMenu[id] = true;

new name[33], text[512];

get_user_name(id, name, 32);
format(text, 511, "%L", id, "MED_MENU", name);
show_menu(id, menuKeys, text, -1, "npcMenu");
}

return FMRES_IGNORED;
}



//////////////////////////////////////////////
// NPC STUFF
//////////////////////////////////////////////
public npcMenu(id)
{
new name[33], text[512];

get_user_name(id, name, 32);
format(text, 511, "%L", id, "MED_MENU", name);

show_menu(id, menuKeys, text, -1, "npcMenu");
return FMRES_HANDLED;
}

public npcMenuEnter(id, key)
{
switch(key)
{
case 0:
{
// Key 1
call_medic(id);
inMenu[id] = false;
}
case 1:
{
// Key 2
inMenu[id] = false;
client_print(id, print_chat, "%L", id, "MED_DONTWANT", TAG );
}
}
}

public tryCreateNPC(id, level, cid)
{
if(!cmd_access(id, level, cid, 1))
return FMRES_IGNORED;
createNPC(id);
return FMRES_HANDLED;
}

public loadNPC()
createNPC(0);

public createNPC(id)
{
new tempModel[32];
get_pcvar_string(g_modelName, tempModel, 31);

if(!equal(model, tempModel))
{
client_print(id, print_chat, "%L", id, "MED_ERRORRESTART", CVAR_NAME );
return FMRES_IGNORED;
}

if(npcMade && pev_valid(g_npc))
{
engfunc(EngFunc_RemoveEntity, g_npc);
engfunc(EngFunc_RemoveEntity, g_weapon);
}
npcMade = true;

new Float:origin[3], Float:angles[3];
if(id > 0)
{
pev(id, pev_origin, origin);
pev(id, pev_angles, angles);
}
else
{
new file = fopen(filename, "r");
if(file)
{
// File exists
new data[128];
new i;

while(!feof(file))
{
fgets(file, data, 127);
if(i <= 2) // Line 1-3 = origin
{
origin[i] = str_to_float(data);
}
else if(i == 3) angles[0] = str_to_float(data);
else if(i == 4) angles[1] = str_to_float(data);
else if(i == 5) angles[2] = str_to_float(data);
i++;
}
fclose(file);
}
else
{
// File doesn't exist, exit function
return FMRES_IGNORED;
}
}

// Create the npc entity
g_npc = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));

engfunc(EngFunc_SetModel, g_npc, g_npcModel);
engfunc(EngFunc_SetSize, g_npc, Float:{-17.0,-17.0,-36.0}, Float:{17.0,17.0,36.0});
angles[0] = 0.0;
set_pev(g_npc, pev_angles, angles);

engfunc(EngFunc_SetOrigin, g_npc, origin);

if(id > 0)
{
origin[2] += 80;
engfunc(EngFunc_SetOrigin, id, origin);
}

set_pev(g_npc, pev_solid, SOLID_BBOX);
//set_pev(g_npc, pev_movetype, MOVETYPE_TOSS);
set_pev(g_npc, pev_classname, "shacks_npc");

// Set the default animation
set_pev(g_npc, pev_animtime, 2.0);
set_pev(g_npc, pev_framerate, 1.0);
set_pev(g_npc, pev_sequence, 1);

// Set bone positions
set_pev(g_npc, pev_controller_0, 125);
set_pev(g_npc, pev_controller_1, 125);
set_pev(g_npc, pev_controller_2, 125);
set_pev(g_npc, pev_controller_3, 125);

// Set damage and hp
set_pev(g_npc, pev_takedamage, 0.0);

// Drop to ground?
engfunc(EngFunc_DropToFloor, g_npc);

// Save the origin + angles
if(id > 0)
{
new filepointer = fopen(filename, "w+");
if(filepointer)
{
fprintf(filepointer, "%f^n%f^n%f^n%f^n%f^n%f", origin[0], origin[1], origin[2], angles[0], angles[1], angles[2]);
fclose(filepointer);
client_print(id, print_chat, "%L", id, "MED_SAVED");
}
}

return FMRES_HANDLED;
}
Аватара пользователя
Relax123
 
Сообщения: 1
Зарегистрирован: 25 сен 2018, 14:34
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: pawn

Пред.

Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 6