AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [SOLVED]get_pcvar_num native error (https://forums.alliedmods.net/showthread.php?t=107792)

#8 SickneSS 10-30-2009 11:26

[SOLVED]get_pcvar_num native error
 
I dont know what is the problem,but show this error in console

Code:

L 10/31/2009 - 00:23:06: Invalid CVAR pointer
L 10/31/2009 - 00:23:06: [AMXX] Displaying debug trace (plugin "respawn.amxx")
L 10/31/2009 - 00:23:06: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 10/31/2009 - 00:23:06: [AMXX] [0] temp737.sma::Ham_Killed_player (line 170)

Code...

PHP Code:

//Init
    
RegisterHam(Ham_Killed"player""Ham_Killed_player"1)

//Function

public Ham_Killed_player(id) {
    
/* Line 170 */    if(get_pcvar_num(enable) == 1
    {
                 
//Code
    
}
    return 
PLUGIN_HANDLED


What is the problem?

hleV 10-30-2009 12:51

Re: get_pcvar_num native error
 
I guess you forgot this:
PHP Code:

new enable;
 
//Init
    
enable register_cvar("enable""1"); 


#8 SickneSS 10-30-2009 13:04

Re: get_pcvar_num native error
 
Quote:

Originally Posted by hleV (Post 976094)
I guess you forgot this:
PHP Code:

new enable;
 
//Init
    
enable register_cvar("enable""1"); 


nope

hleV 10-30-2009 13:18

Re: get_pcvar_num native error
 
Provide the full code then.

fysiks 10-30-2009 13:22

Re: get_pcvar_num native error
 
DEBUG! It's so simple. See if enable is zero. If not, then debug some more.

#8 SickneSS 10-30-2009 13:40

Re: get_pcvar_num native error
 
PHP Code:

/*            AMX Mod X Script
*
*     Agradecimientos(Credits) :
*
*     Alucard^
*     alan_el_more
*     IneedHelp
*     ReymonARG
*     L//
*     Linux
*     XxAvalanchexX
*     frk_14
*     Exolent[jNr]
*
*    Comandos :
*
*     say /respawn : Habilita/Deshabilita el respawn de cada usuario.
*     say_team /respawn : Habilita/Deshabilita el respawn de cada usuario.
*
*     Cvars : 
*
*     amx_respawn : Habilita (1)/Deshabilita (0) el plugin. { Default : 1 } 
*     amx_respawn_delay : Define el tiempo antes de respawnear. { Default : 3 }
*     amx_prefix : Define el prefix con el que se iniciaran los chats. { Default : [AMXX] }
*
*     Contacto : 
*
*     MSN : [email protected]
*     Web : http://www.nv-arg.com.ar
*     STEAM ID : Sick_ArG
*
*/

//====================[*Includes*]===========================//

#include <amxmodx>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

//====================[*Plugin Definitions*]===========================//

#define PLUGIN    "WarmUP Mode"
#define VERSION   "2.0"
#define AUTHOR    "#8 SickneSS"

//====================[*Definitions*]===========================//

#define TASK_RESPAWN    1337
#define TASK_MSG    1437
#define TASK_SPAWNP    1537    
#define valids_teams(%1)    (CS_TEAM_T <= cs_get_user_team(%1) <= CS_TEAM_CT)

//====================[*Global Registrations*]===========================//

/* pCvars */
new enable
new delay
new prefix
new showmsg
new msgtime
new spawnprotection
new spawnpdelay
new noc4
new blocka

/* String */
new szPrefix[32]

/* Booleans */
new bool:respawn[33]
new 
bool:b_attack[33]

//====================[*Plugin Start*]===========================//
public plugin_init() {
    
    
/* Plugin Registration */
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
/* Ham Registrations */
    
RegisterHam(Ham_Spawn"player""Ham_Spawn_player"1)
    
RegisterHam(Ham_Killed"player""Ham_Killed_player"1)
    
RegisterHam(Ham_Spawn"player""Event_Spawn_player"1)
    
    
/* Event */
    
register_event("Money","cmdMoney","be")
    
    
/* Forward */
    
register_forward(FM_Touch,"FwTouch")
    
register_forward(FM_CmdStart,"FwdCmdStart")
    
    
/* pCvar */
    
enable register_cvar("amx_respawn","1")
    
delay register_cvar("amx_respawn_delay","3")
    
prefix register_cvar("amx_prefix","[AMXX]")
    
showmsg register_cvar("amx_showmsg","1")
    
msgtime register_cvar("amx_msgtime","20")
    
spawnprotection register_cvar("amx_spawnprotection","1")
    
spawnpdelay register_cvar("amx_spawnprotection_delay","3")    
    
noc4 register_cvar("amx_removec4","1")
    
blocka register_cvar("amx_blockattack","1")
    
    
/* String */
    
get_pcvar_string(prefix,szPrefix,31)
    
    
/* Task */
    
set_task(30.0,"cmdCheckWeapons",_,_,_,"b")
    
    
/* Cvars */
    
register_cvar("rpwn_author",AUTHOR,FCVAR_SERVER|FCVAR_SPONLY)
    
register_cvar("rpwn_version",VERSION,FCVAR_SERVER|FCVAR_SPONLY)
    
    
/* Commands */
    
register_clcmd("say /respawn","cmdRespawn")
    
register_clcmd("say_team /respawn","cmdRespawn")    
    
}

//====================[*Respawn*]===========================//

public client_connect(id) {
    
    
respawn[id] = false
    b_attack
[id] = false
    
if(get_pcvar_num(showmsg) == 1) {
    
set_task(get_pcvar_float(msgtime),"cmdCanRespawn",id+TASK_MSG)
    }
}

//----------------------------------------------------------//

public cleint_disconnect(id) {   
    
    
respawn[id] = false
    b_attack
[id] = false
}

//----------------------------------------------------------//

public cmdRespawn(id) {
    
    if(
get_pcvar_num(enable) == 1)
    {
        if(!
valids_teams(id)) 
        {
            
chat_color(id,"!g%s!y Este comando esta deshabilitado para los espectadores.",szPrefix)
        }
        
        if(
valids_teams(id)) 
        {
            
respawn[id] = !respawn[id]
            
chat_color(id,"!g%s!y Haz %sabilitado tu respawn.",szPrefix,respawn[id] ? "h" "desh")
            
            if(!
is_user_alive(id
            || 
respawn[id]) 
            {
                
set_task(get_pcvar_float(delay),"cmdRespawns",id+TASK_RESPAWN)
            }
        }
    }    
    return 
PLUGIN_HANDLED
}

//----------------------------------------------------------//

public Ham_Killed_player(id) {
    
    if(
get_pcvar_num(enable) == 1
    {
        
        if(
valids_teams(id)) {
            if(
respawn[id])
            {
                
chat_color(id,"!g%s!y Respawnearas en!team %d!y segundo%s.",szPrefix,get_pcvar_num(delay),get_pcvar_num(delay) < "" "s")
                
chat_color(id,"!g%s!y Para deshabilitar tu respawn,tipea!team /respawn!y.",szPrefix)
                
set_task(get_pcvar_float(delay),"cmdRespawns",id+TASK_RESPAWN)
            }
            else
            {
                
chat_color(id,"!g%s!y Para habilitar tu respawn,tipea !team/respawn!y.",szPrefix)
            }
        }
        return 
HAM_IGNORED
    
}    
    return 
PLUGIN_HANDLED
}

//----------------------------------------------------------//

public Ham_Spawn_player(id) {
    
    if(
is_user_alive(id)) 
        
remove_task(id+TASK_RESPAWN)
    
remove_task(id+TASK_SPAWNP)
}

//----------------------------------------------------------//

public cmdRespawns(id) {
    
    
    
id -= TASK_RESPAWN
    
    
if(!valids_teams(id)) {
        
        
respawn[id] = false
        b_attack
[id] = false
        
return PLUGIN_HANDLED
    
}
    
    if(!
is_user_alive(id)) {
        
ExecuteHamB(Ham_CS_RoundRespawn,id)
        
b_attack[id] = true
        
if(get_pcvar_num(spawnprotection) == 1
            
set_user_godmode(id,1)
        
        if(
cs_get_user_team(id) == CS_TEAM_T) {
            
set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,20)
        }
        
        if(
cs_get_user_team(id) == CS_TEAM_CT) {
            
set_user_rendering(id,kRenderFxGlowShell,0,0,255,kRenderNormal,20)
        }
        
set_task(get_pcvar_float(spawnpdelay),"cmdRemove",id+TASK_SPAWNP)
    } 
    return 
PLUGIN_HANDLED
}

//----------------------------------------------------------//

public cmdRemove(id) {
    
    
id -= TASK_SPAWNP
    b_attack
[id] = false
    set_user_godmode
(id,0)
    
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,20)
    
}

//----------------------------------------------------------//

public cmdCanRespawn(id) {
    
    
id -= TASK_MSG
    
    
if(get_pcvar_num(enable) == 1) {
        if(
valids_teams(id))
        
chat_color(id,"!g%s!y Para habilitar tu respawn,tipea !team/respawn!y.",szPrefix)
    }
    
}

//====================[*Money*]===========================//

public cmdMoney(id) {
    
    if(
get_pcvar_num(enable) == 1) {
        
cs_set_user_money(id,get_cvar_num("mp_startmoney"),0)
    }
}

//====================[*Remove Entitys]===========================//

public FwTouch(ptr,ptd) {
    
    if (
get_pcvar_num(enable) == 1)
    {
        if (
pev_valid(ptr) && pev_valid(ptd))
        {
            new 
classname[32]
            
pev(ptr,pev_classname,classname,31)
            
            if (
equali(classname,"weaponbox"))
            {
                new 
ents global_get(glb_maxEntities)
                for(new 
inum=0;inum<=ents;inum++)
                {
                    if(!
pev_valid(inum)) continue
                    new class[
51]
                    
pev(inumpev_classname,class,50)
                    
                    if(
containi(class,"weapon_") == -1) continue
                    new 
owner pev(inum,pev_owner)
                    
                    if(
ptr == owner)
                        
engfunc(EngFunc_RemoveEntityinum)
                }
                
engfunc(EngFunc_RemoveEntityptr)
            }
            else if(
containi(classname,"weapon_") != -1)
                
engfunc(EngFunc_RemoveEntityptr)
        }
    }
    return 
FMRES_IGNORED
}  

//====================[*Remove C4*]===========================//

public cmdCheckWeapons(id) {
    
    if(
get_pcvar_num(enable) == 1
    {
    if(
get_pcvar_num(noc4) == 1) {    
        for (new 
1;<= get_maxplayers();++)
        {
            if ( 
user_has_weapon iCSW_C4 ) )
            {
                
ham_strip_weapon i"weapon_c4" ); 
            }
        }
    }
    else if(
cs_get_user_team(id) == CS_TEAM_CT) {
        
    
cs_set_user_defuse(id,1,0,0,255)
}
    }
}
//====================[*Block Attack]===========================//

public FwdCmdStart(id,uc_Handle,seed)
{
    if(
get_pcvar_num(enable) == 1
    
&& get_pcvar_num(blocka) == 1) {
        if(!
is_user_alive(id) || !b_attack[id]) {
            return 
FMRES_IGNORED
        
}
        
        static 
button,original
        original 
button get_uc(uc_Handle,UC_Buttons);
        
        if(
button IN_ATTACK) {
            
            
button &= ~IN_ATTACK
            client_print
(id,print_center,"Ataque blockeado por %d segundo%s.",get_pcvar_num(spawnpdelay) < "" "s")
        }
        if( 
original != button )
        {
            
set_uc(uc_Handle,UC_Buttonsbutton);
            
            return 
FMRES_SUPERCEDE;
        }
        
        return 
FMRES_IGNORED
    
}
    return 
PLUGIN_HANDLED
}

//====================[*Stocks*]===========================//

stock chat_color(const id, const input[], any:...) {
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
replace_all(msg190"!team2""^0")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }
}

//----------------------------------------------------------//

stock ham_strip_weapon(id,weapon[]) {
    if(!
equal(weapon,"weapon_",7)) return 0;
    
    new 
wId get_weaponid(weapon);
    if(!
wId) return 0;
    
    new 
wEnt;
    while((
wEnt engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
    if(!
wEnt) return 0;
    
    if(
get_user_weapon(id) == wIdExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
    
    if(!
ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
    
ExecuteHamB(Ham_Item_Kill,wEnt);
    
    
set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
    
    if(
wId == CSW_C4)
    {
        
cs_set_user_plant(id,0,0);
        
cs_set_user_bpammo(id,CSW_C4,0);
    }
    else if(
wId == CSW_SMOKEGRENADE || wId == CSW_FLASHBANG || wId == CSW_HEGRENADE)
        
cs_set_user_bpammo(id,wId,0);
    
    return 
1;
}

//====================[*Plugin End*]=========================// 


xbatista 10-30-2009 13:56

Re: get_pcvar_num native error
 
Register cvars before the forwards
PHP Code:

// cvars

// your forwards
RegisterHam(Ham_Killed"player""Ham_Killed_player"1


fysiks 10-30-2009 14:01

Re: get_pcvar_num native error
 
Quote:

Originally Posted by xbatista (Post 976138)
Register cvars before the forwards.
PHP Code:

// cvars

// your forwards
RegisterHam(Ham_Killed"player""Ham_Killed_player"1


Why should this matter? enable will be assigned before Ham_Killed is called anyways.

#8 SickneSS 10-30-2009 14:05

Re: get_pcvar_num native error
 
the order of factors does not affect the product.

SnoW 10-30-2009 14:07

Re: get_pcvar_num native error
 
Quote:

Originally Posted by #8 SickneSS (Post 976146)
the order of factors does not affect the product.

Totally false. Talking about these specific two lines of code you are right.


All times are GMT -4. The time now is 17:46.

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