AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Run time error 10: native error (native "pev") (https://forums.alliedmods.net/showthread.php?t=208171)

danonix 02-10-2013 14:49

Run time error 10: native error (native "pev")
 
Hello guys, I have got a problem, in logs I have got all time an error. It uses Paintballmod by Rul4

Code:

L 02/10/2013 - 18:00:26: [AMXX] Run time error 10: native error (native "pev")
L 02/10/2013 - 18:00:26: [AMXX]    [0] paintballnade1.sma::fw_think (line 94)
L 02/10/2013 - 18:03:47: [FAKEMETA] Invalid entity
L 02/10/2013 - 18:03:47: [AMXX] Displaying debug trace (plugin "paintballnade.amxx")

Here is SMA. What's wrong? Can someone explain me and how repair it?
Code:

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "R Paintball Nade"
#define VERSION "1.5"
#define AUTHOR "Rul4 - WhooKid"

new pbnade, pbsnade, radius, MaxPlayers, blood1, blood2, smoke[6];

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
   
    set_cvar_string("rpaintballnade", VERSION)

    if (get_pcvar_num(pbnade)||get_pcvar_num(pbsnade))
    {
        register_event("CurWeapon", "ev_curweapon", "be");
        register_forward(FM_SetModel, "fw_setmodel");
        register_forward(FM_Think, "fw_think");

        radius = register_cvar("pbnade_radius", "150");
       
        MaxPlayers = get_maxplayers();
    }
}

public plugin_precache()
{
    pbnade = register_cvar("amx_pbnade", "1");
    pbsnade = register_cvar("amx_pbsnade", "0");
    register_cvar("rpaintballnade", VERSION, FCVAR_SERVER|FCVAR_UNLOGGED);
   
    if (get_pcvar_num(pbnade))
    {
        precache_model("models/p_pbnade.mdl");
        precache_model("models/v_pbnade.mdl");
        precache_model("models/w_pbnade.mdl");
        blood1 = precache_model("sprites/blood.spr");
        blood2 = precache_model("sprites/bloodspray.spr");
    }
   
    if (get_pcvar_num(pbsnade))
    {
        precache_model("models/v_pbsnade.mdl");
        precache_model("models/w_pbsnade.mdl");
        smoke[0] = precache_model("sprites/gas_puff_01b.spr");
        smoke[1] = precache_model("sprites/gas_puff_01r.spr");
        smoke[2] = precache_model("sprites/gas_puff_01g.spr");
        smoke[3] = precache_model("sprites/gas_puff_01y.spr");
        smoke[4] = precache_model("sprites/gas_puff_01m.spr");
        smoke[5] = precache_model("sprites/gas_puff_01o.spr");
    }
}

public ev_curweapon(id)
{
    new model[35];
    pev(id, pev_viewmodel2, model, 34);
    if (equali(model, "models/v_hegrenade.mdl") && (get_pcvar_num(pbnade)))
    {
        set_pev(id, pev_viewmodel2, "models/v_pbnade.mdl");
        set_pev(id, pev_weaponmodel2, "models/p_pbnade.mdl");
    }
   
    if (equali(model, "models/v_smokegrenade.mdl") && (get_pcvar_num(pbsnade)))
    {
        set_pev(id, pev_viewmodel2, "models/v_pbsnade.mdl");
        //set_pev(id, pev_weaponmodel2, "models/p_pbnade.mdl");
    }
}

public fw_setmodel(ent, model[])
{
    if (equali(model, "models/w_hegrenade.mdl") && (get_pcvar_num(pbnade)))
    {
        engfunc(EngFunc_SetModel, ent, "models/w_pbnade.mdl");
        return FMRES_SUPERCEDE;
    }
   
    if (equali(model, "models/w_smokegrenade.mdl") && (get_pcvar_num(pbsnade)))
    {
        engfunc(EngFunc_SetModel, ent, "models/w_pbsnade.mdl");
        return FMRES_SUPERCEDE;
    }

    return FMRES_IGNORED;
}

public fw_think(ent)
{
    new model[25];
    pev(ent, pev_model, model, 24);

    if (!equali(model, "models/w_pbnade.mdl") && !equali(model, "models/w_pbsnade.mdl"))
        return FMRES_IGNORED;

    if (equali(model, "models/w_pbnade.mdl"))
        set_task(1.6, "act_explode", ent);
    else
        set_task(2.0, "act_smoke", ent);
   
    return FMRES_SUPERCEDE;
}

public act_explode(ent)
{
    if (!pev_valid(ent))
        return;

    new origin[3], Float:forigin[3], colors[4], owner = pev(ent, pev_owner), user_team = get_user_team(owner);

    colors = (user_team == 1) ? { 255, 0, 247, 70} : { 0, 255, 208, 30};
    pev(ent, pev_origin, forigin);
    FVecIVec(forigin, origin);

    new id, Float:distance = float(get_pcvar_num(radius)), Float:porigin[3];

    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_BLOODSPRITE);
    write_coord(origin[0]);
    write_coord(origin[1]);
    write_coord(origin[2] + 20);
    write_short(blood2);
    write_short(blood1);
    write_byte(colors[2]);
    write_byte(30);
    message_end();
   
    while (id++ < MaxPlayers)
        if (is_user_alive(id))
        {
            if (user_team != get_user_team(id) || owner == id)
            {
                pev(id, pev_origin, porigin);
                if (get_distance_f(forigin, porigin) <= distance)
                    if (fm_is_visible(ent, id))
                        ExecuteHam(Ham_TakeDamage, id, ent, owner, (id != owner) ? 100.0 : 300.0, 0);
            }
        }
       
    emit_sound(ent, CHAN_AUTO, "weapons/sg_explode.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);

    engfunc(EngFunc_RemoveEntity, ent);
}

public act_smoke(ent)
{

    emit_sound(ent, CHAN_AUTO, "weapons/sg_explode.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
    act_fumes(ent)
   
}
public act_fumes(ent)
{
    if (!pev_valid(ent))
        return;
       
    new origin[3], Float:forigin[3];

    pev(ent, pev_origin, forigin);
    FVecIVec(forigin, origin);
   
//#define TE_FIREFIELD            123        // makes a field of fire.
// coord (origin)
// short (radius) (fire is made in a square around origin. -radius, -radius to radius, radius)
// short (modelindex)
// byte (count)
// byte (flags)
// byte (duration (in seconds) * 10) (will be randomized a bit)

    new select = random(6)

    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_FIREFIELD);
    write_coord(origin[0]);
    write_coord(origin[1]);
    write_coord(origin[2] + 50);
    write_short(100)
    write_short(smoke[select]);
    write_byte(100)       
    write_byte(TEFIRE_FLAG_ALPHA)//(TEFIRE_FLAG_SOMEFLOAT | TEFIRE_FLAG_ALPHA)       
    write_byte(1000)       
    message_end();

    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_FIREFIELD);
    write_coord(origin[0]);
    write_coord(origin[1]);
    write_coord(origin[2] + 50);
    write_short(150)
    write_short(smoke[select]);
    write_byte(10)       
    write_byte(TEFIRE_FLAG_ALLFLOAT | TEFIRE_FLAG_ALPHA )       
    write_byte(1000)       
    message_end();

    engfunc(EngFunc_RemoveEntity, ent);
}

stock bool:fm_is_visible(ent, target)
{
    if (pev_valid(ent) && pev_valid(target))
    {
        new Float:start[3], Float:view_ofs[3], Float:point[3];
        pev(ent, pev_origin, start);
        pev(ent, pev_view_ofs, view_ofs);
        pev(target, pev_origin, point);
        start[0] += view_ofs[0];
        start[1] += view_ofs[1];
        start[2] += view_ofs[2];
        engfunc(EngFunc_TraceLine, start, point, 1, ent, 0);
        new Float:fraction;
        get_tr2(0, TR_flFraction, fraction);
        if (fraction == 1.0)
            return true;
    }
    return false;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/


fysiks 02-13-2013 01:18

Re: Run time error 10: native error (native "pev")
 
Notice what all the other functions have that also use pev().

ConnorMcLeod 02-13-2013 01:50

Re: Run time error 10: native error (native "pev")
 
PHP Code:

public fw_think(ent)
{
    if (!
pev_valid(ent))
        return; 


Scopce 07-18-2013 07:39

Re: Run time error 10: native error (native "pev")
 
And me i got thise problem how can i solve?
there is problem

Code:

07/18/2013 - 14:15:19: [AMXX] Displaying debug trace (plugin "8zombie.amxx")
07/18/2013 - 14:15:19: [AMXX] Run time error 10: native error (native "pev")
07/18/2013 - 14:15:19: [AMXX] [0] 8zombie.sma::fwd_touch (line 106)

And there is plugins

Code:

/*
Wallclimb v1.0f by Python1320
Plagued Version 0.22 by Dabbi

Allows Poison Zombie to Climb Walls in Zombie Plague [3.62]

CVARS:        zp_wallclimb 0 = Off / 1 = Hold USE / 2 = Hold JUMP and DUCK  (Default 1)
        zp_wallclimb_nemesis 0 = Disable wallclimb during nemesis round. / 1 = Enable (Default 1)
        zp_wallclimb_survivor 0 = Disable wallclimb during survivor round. / 1 = Enable (Default 0)
       
Changes:
        0.22
                Made the function wallclimb return a value.
                Put plugin version to a cvar.
        0.21
                Added cvars to enable disable wallclimb durin survivor/nemesis round
        0.2
                Added cvar to enable / disable Walllclimb Plugin
        0.1
                First release.
*/

#include <amxmodx>
// #include <engine>
#include <fakemeta>

#include <cstrike>
#include <zombieplague.inc>
#include <zombiexp>

//#include <fakemeta_util>
#define STR_T          33

// Stuff taken from fakemeta_util
#define fm_get_user_button(%1) pev(%1, pev_button)       
/* stock fm_get_user_button(index)
        return pev(index, pev_button) */

#define fm_get_entity_flags(%1) pev(%1, pev_flags)
/* stock fm_get_entity_flags(index)
        return pev(index, pev_flags) */

stock fm_set_user_velocity(entity, const Float:vector[3]) {
        set_pev(entity, pev_velocity, vector);

        return 1;
}
//End of stuff from fakemeta_util
//new STR_T[32]
new bool:g_WallClimb[33]
new Float:g_wallorigin[32][3]
new cvar_zp_wallclimb, cvar_zp_wallclimb_nemesis, cvar_zp_wallclimb_survivor
new g_zclass_climb

// Climb Zombie Atributes
new const zclass_name[] = { "Climb Zombie" } // name
new const zclass_info[] = { "Can climb on walls" } // description
new const zclass_model[] = { "alien3" } // model
new const zclass_clawmodel[] = { "alienclaws.mdl" } // claw model
const zclass_health = 6800*2 // health
const zclass_speed = 750 // speed
const Float:zclass_gravity = 0.5 // gravity
const Float:zclass_knockback = 1.1 // knockback
const zclass_level = 8 // level required to use

public plugin_init()
{
        register_plugin("[ZP] Wallclimb ", "1.0", "WallClimb by Python1320/Cheap_Suit, Plagued by Dabbi")
        register_forward(FM_Touch,                "fwd_touch")
        register_forward(FM_PlayerPreThink,        "fwd_playerprethink")
        //register_forward(FM_PlayerPostThink,        "fwd_playerpostthink")
        register_event("DeathMsg","EventDeathMsg","a")
        //register_cvar("zp_wallclimb_version", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
        cvar_zp_wallclimb = register_cvar("zp_wallclimb", "1")
        cvar_zp_wallclimb_survivor = register_cvar("zp_wallclimb_survivor", "0")
        cvar_zp_wallclimb_nemesis = register_cvar("zp_wallclimb_nemesis", "1")
       
}

public plugin_precache()
{
        g_zclass_climb = zpxp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback,zclass_level)
}

public EventDeathMsg()       
{
        new id = read_data(2)
        g_WallClimb[id] = true
        return PLUGIN_HANDLED
}

public client_connect(id) {
        g_WallClimb[id] = true       
}

public fwd_touch(id, world)
{
        if(!is_user_alive(id) || !g_WallClimb[id] || !pev_valid(id))
                return FMRES_IGNORED

        new player = STR_T
        if (!player)
                return FMRES_IGNORED
               
        new classname[STR_T]
        pev(world, pev_classname, classname, (STR_T))
       
        if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable"))
                pev(id, pev_origin, g_wallorigin[id])

        return FMRES_IGNORED
}

public wallclimb(id, button)
{
        static Float:origin[3]
        pev(id, pev_origin, origin)

        if(get_distance_f(origin, g_wallorigin[id]) > 25.0)
                return FMRES_IGNORED  // if not near wall
       
        if(fm_get_entity_flags(id) & FL_ONGROUND)
                return FMRES_IGNORED
               
        if(button & IN_FORWARD)
        {
                static Float:velocity[3]
                velocity_by_aim(id, 120, velocity)
                fm_set_user_velocity(id, velocity)
        }
        else if(button & IN_BACK)
        {
                static Float:velocity[3]
                velocity_by_aim(id, -120, velocity)
                fm_set_user_velocity(id, velocity)
        }
        return FMRES_IGNORED
}       

public fwd_playerprethink(id)
{
        if(!g_WallClimb[id] || !zp_get_user_zombie(id))
                return FMRES_IGNORED
               
        if(zp_is_survivor_round() && get_pcvar_num(cvar_zp_wallclimb_survivor) == 0)
                return FMRES_IGNORED
               
        if(zp_is_nemesis_round() && get_pcvar_num(cvar_zp_wallclimb_nemesis) == 0)
                return FMRES_IGNORED
       
        new button = fm_get_user_button(id)
       
        if((get_pcvar_num(cvar_zp_wallclimb) == 1) && (button & IN_USE) && (zp_get_user_zombie_class(id) == g_zclass_climb)) //Use button = climb
        wallclimb(id, button)
        else if((get_pcvar_num(cvar_zp_wallclimb) == 2) && (button & IN_JUMP) && button & IN_DUCK && (zp_get_user_zombie_class(id) == g_zclass_climb)) //Jump + Duck = climb
        wallclimb(id, button)

        return FMRES_IGNORED
}



All times are GMT -4. The time now is 20:31.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.