28/08/2022, 03:43 PM
Hace tiempo quise hacer esto pero no supe como x.x en que consiste? evitar duplicar llamadas en diferentes plugins que tengan que verificar por ejemplo si es un bot, un admin ó simplemente si esta vivo!
como ya sabran llamar repetidas veces "is_user_alive" no es buena practica para ello se podria implementar el siguiente code pero hay un detalle... de la manera como lo se hacer es por separado:
no solo quiero saber si esta vivo ademas si es admin! asi que estuve buscando un tipo stock y me encontre un code de un ruso псих q no logro entender como funciona :? algun experto en natives que me pueda explicar? gracias!
Esto es lo que quiero hacer, guardar varias natives en una sola
como ya sabran llamar repetidas veces "is_user_alive" no es buena practica para ello se podria implementar el siguiente code pero hay un detalle... de la manera como lo se hacer es por separado:
Código PHP:
public plugin_natives()
{
register_native("getOpt_alive", "getOpt_alive_native", 1)
register_native("getOpt_admin", "getOpt_admin_native", 1)
}
public getOpt_alive_native(id)
{
return g_Opt[id][isAlive]
}
public getOpt_admin_native(id)
{
return g_Opt[id][isAdmin]
}
no solo quiero saber si esta vivo ademas si es admin! asi que estuve buscando un tipo stock y me encontre un code de un ruso псих q no logro entender como funciona :? algun experto en natives que me pueda explicar? gracias!
Esto es lo que quiero hacer, guardar varias natives en una sola
Código PHP:
#include <amxmodx>
#include <hamsandwich>
enum _:Datas
{
isBot,
isHLTV,
isAlive,
isAdmin
}
new g_Opt[33][Datas]
public plugin_natives()
{
register_native("getOpt", "getOpt_native", 1)
}
public getOpt_native(id)
{
//return g_Opt[id][Datas]
}
public plugin_init()
{
register_plugin("Sample getOpt", "1.x", "??")
RegisterHam(Ham_Spawn, "player", "HamPlayer_Spawn", 1)
RegisterHam(Ham_Killed, "player", "HamPlayer_Killed", 1)
}
public HamPlayer_Spawn(const id)
{
if( !is_user_connected(id) || !is_user_alive(id) )
return HAM_IGNORED
g_Opt[id][isAlive] = 1
return HAM_IGNORED
}
public HamPlayer_Killed(const id)
{
g_Opt[id][isAlive] = 0
}
public client_authorized(id)
{
if(is_user_bot(id))
{
g_Opt[id][isBot] = 1
return
}
if(is_user_hltv(id))
{
g_Opt[id][isHLTV] = 1
return
}
}
public client_putinserver(id)
{
g_Opt[id][isAlive] = 0
g_Opt[id][isAdmin] = (get_user_flags(id) & ADMIN_MENU ? 1 : 0)
}
public client_disconnect(id)
{
if(g_Opt[id][isBot] > 0)
{
g_Opt[id][isBot] = 0
}
if(g_Opt[id][isHLTV] > 0)
{
g_Opt[id][isHLTV] = 0
}
}
Mis XVI+ humildes betas:
Plugin Nuevo AMXX
Si no dispara el arma/Castigar v1.2
Modulo MetaMod
CSX Extended v1.3b
amx_slayteam v1.0 upd 05/04/24 | Admin Model v1.4 upd 20/07/22 | Dar Dinero x Frags/Armas v1.1 upd 02/04/16 | +5kill/M4A1 | +10kill/AK47 v1.1 upd 02/04/16 | +XKills/AWP v1.1 upd 07/05/16 | Kill Knife/Sound v1.0 upd 08/05/16 | 1vs1 Hud v1.1 upd 10/05/16 | Lasers v1.0 upd 11/05/16 | Quitar Armas v1.0 upd 14/05/16 | Respawn Spec v1.1 upd 18/06/16 | Team Select TE/SPEC v1.1 upd 23/06/16 ~ Team Select TE/CT/Auto/SPEC v1.x upd 02/08/22 | Admin Knife/M4a1/Ak47 v1.1 upd 07/10/16 | HeadShot Money v1.1 upd 01/11/16 | Count Round+Nextmap v1.8.1a upd 08/10/17 | Welcome Msg v1.0 upd 17/01/17 | HeadShot Sound (TE/CT) v1.0 upd 22/01/17
Plugin Nuevo AMXX
Si no dispara el arma/Castigar v1.2
Modulo MetaMod
CSX Extended v1.3b
amx_slayteam v1.0 upd 05/04/24 | Admin Model v1.4 upd 20/07/22 | Dar Dinero x Frags/Armas v1.1 upd 02/04/16 | +5kill/M4A1 | +10kill/AK47 v1.1 upd 02/04/16 | +XKills/AWP v1.1 upd 07/05/16 | Kill Knife/Sound v1.0 upd 08/05/16 | 1vs1 Hud v1.1 upd 10/05/16 | Lasers v1.0 upd 11/05/16 | Quitar Armas v1.0 upd 14/05/16 | Respawn Spec v1.1 upd 18/06/16 | Team Select TE/SPEC v1.1 upd 23/06/16 ~ Team Select TE/CT/Auto/SPEC v1.x upd 02/08/22 | Admin Knife/M4a1/Ak47 v1.1 upd 07/10/16 | HeadShot Money v1.1 upd 01/11/16 | Count Round+Nextmap v1.8.1a upd 08/10/17 | Welcome Msg v1.0 upd 17/01/17 | HeadShot Sound (TE/CT) v1.0 upd 22/01/17