Error, no sube level!
#1
Hola gente, necesito una ayuda!.. Xq en este plugin, de armas x level, no me chekea bien?..

Me tira error en linea 78 y 73..
Tambien me tira en el public spawn

Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Tutorial Armas por niveles"
#define VERSION "1.1"
#define AUTHOR "[M]etrikcz"

#define user_level(%1) g_level[%1] // variable de su nivel deben de modificarla aqui!

new g_menu[33], g_level[33], g_conectado[33], g_frags[33]
enum armas_caracteristicas // crearemos un enum para que nos sea mas facil, comodo y mejor utilizar el const
    
NOMBRE[20],
    
CSW_NAME,
    
WEAPON_NAME[20],
    
BPAMMO,
    
NIVEL
}
new const 
g_armas_prim[][armas_caracteristicas] = 

    
// Nombre en el menu | CSW_ | weapon_ | Balas | Nivel    
    
"Schmidt TMP" CSW_TMP "weapon_tmp"601},
    { 
"Ingram MAC-10" CSW_MAC10 "weapon_mac10" 602}, 
    { 
"UMP 45" CSW_MP5NAVY "weapon_mp5navy" 603}, 
    { 
"Navy MP5" CSW_UMP45 "weapon_ump45" 604}, 
    { 
"M3 Super 90" CSW_M3 "weapon_m3" 285}, 
    { 
"XM1014 M4" CSW_XM1014 "weapon_xm1014" 286}, 
    { 
"FN P90" CSW_P90 "weapon_p90" 1007}, 
    { 
"Schmidt Scout" CSW_SCOUT "weapon_scout" 108}, 
    { 
"Famas" CSW_FAMAS "weapon_famas" 9010}, 
    { 
"IMI Galil" CSW_GALIL "weapon_galil" 10512}, 
    { 
"AK-47 Kalashnikov" CSW_AK47 "weapon_ak47" 9014},
    { 
"M4A1 Carbine" CSW_M4A1"weapon_m4a1"9016},
    { 
"SG-552 Commando" CSW_SG552 "weapon_sg552" 9018},
    { 
"Aug" CSW_AUG "weapon_aug" 9020},
    { 
"AWP Magnum Sniper" CSW_AWP "weapon_awp" 1022},
    { 
"G3SG1 Auto-Sniper" CSW_G3SG1 "weapon_g3sg1" 6023},
    { 
"SG-550 Auto-Sniper" CSW_SG550 "weapon_sg550" 6024},
    { 
"M249 SAW" CSW_M249 "weapon_m249" 20025// Importante que el ultimo no lleve coma ya que es el ultimo como en una oracion: pepito se cogio a sara, victoria, andrea (despues de andrea ya no lleva coma)

new const 
g_armas_sec[][armas_caracteristicas] = 

    
// Nombre en el menu | CSW_ | weapon_ | Balas | Nivel
    
"Glock" CSW_GLOCK18 "weapon_glock18" 400},  
    { 
"USP" CSW_USP "weapon_usp"1215},
    { 
"P228" CSW_P228 "weapon_p228"4030},
    { 
"Deagle" CSW_DEAGLE "weapon_deagle"2150},
    { 
"Fiveseven" CSW_FIVESEVEN "weapon_fiveseven"4070},
    { 
"Dual Elite" CSW_ELITE "weapon_elite"6090

// funcion que se llama cuando inicia el plugin, osea en un cambio de mapa o inicio del servidor
public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR// registramos plugin
    
RegisterHam(Ham_Spawn"player""fw_spawn"1// registramos cuando el usuario revive
    
register_clcmd("say /guns""cmd_guns"// registramos el comando para abrirle el menu de armas
    
RegisterHam(Ham_Killed"player""fw_killed"1
}

public 
client_putinserver(id
{
    
g_level[id] = 1
    g_frags
[id] = 0
    g_conectado
[id] = 1
}

public 
fw_killed(victimattacker)
{
    if(!
g_conectado[victim] || !g_conectado[attacker] || victim == attacker )
    return
    
    
g_frags[attacker] += 
    checklevel
(attacker)
}

public 
checklevel(id)
{
    while( 
g_frags[id] >= user_level(g_level[id]) )
    {
        
g_level[id] ++
        
g_frags[id] = 0
    
}
}

// funcion que se llama cuando el usuario reviva
public fw_spawn(id) {
    if(
cs_get_user_team(id) == CS_TEAM_CT)
    {
// si es policia .
        
g_menu[id] = // en el menu que esta se lo setearemos en 0
        
show_guns_prim(id// le abriremos el menu de armas primarias
    
}    
}
show_guns_prim(id
{
    new 
len[50], menu menu_create("Eliga su arma primaria""handler_prim"// creamos el menu en la variable menu
    
for(new 0sizeof g_armas_primi++) 
    { 
// lopearemos entre todas las armas primarias que hay
    // si el level del usuario es mayor o igual al del arma ...
    
if(user_level(id) >= g_armas_prim[i][NIVEL]) menu_additem(menug_armas_prim[i][NOMBRE], ""// agregamos el item normal
        
else 
        { 
// y si no lo es
            
formatex(lencharsmax(len), "\r[ \yNivel Requerido: \d%d \r]"g_armas_prim[i][NIVEL])
            
menu_additem(menulen"")
        }
    }
    
menu_display(idmenu0// le mostramos el menu al usuario en la pagina 1
}
public 
handler_prim(idmenuitem
{
    if(
item == MENU_EXIT
    {  
// si esta saliendo del menu, osea presiono 0
        
menu_destroy(menu// destruimos el menu para ahorrar memoria
        
return PLUGIN_HANDLED// paramos la funcion
    
}
    if(!(
cs_get_user_team(id) == CS_TEAM_CT)) // checamos si no es policia
    
return PLUGIN_HANDLED// si no lo es detenemos la funcion

    
if(user_level(id) < g_armas_prim[item][NIVEL]) 
    { 
// si su nivel es inferior a la del arma
        
client_print(idprint_center"Bloqued Level: %d"g_armas_prim[item][NIVEL]) // le mandaremos un mensaje diciendo el nivel que ocupa
        
show_guns_prim(id// le abriremos de nuevo el menu
        
return PLUGIN_HANDLED// y paramos la funcion
    
}
    
strip_user_weapons(id// le tiramos todas las armas
    
give_item(id"weapon_knife"// le damos el cuchillo ya que tambien se lo quita
    
give_item(idg_armas_prim[item][WEAPON_NAME]) // le damos la arma que eligio
    
cs_set_user_bpammo(idg_armas_prim[item][CSW_NAME], g_armas_prim[item][BPAMMO]) // damos el numero de balas del arma
    
g_menu[id] = // seteamos la variable en 1 y ya explicare luego para que la usamos
    
show_guns_sec(id// le llamamos a la funcion del menu de armas secundarias osea pistolas al usuario
    
return PLUGIN_HANDLED// y returneamos al final la funcion por reglas de pawn porque si no nos mandaria un waring
}
show_guns_sec(id
{
    new 
len[50], menu menu_create("Eliga su arma secundaria""handler_sec"// creamos el menu en la variable menu
    
for(new 0sizeof g_armas_seci++) 
    { 
// lopearemos entre todas las armas secundarias que hay
        // si el level del usuario es mayor o igual al del arma ...
        
if(user_level(id) >= g_armas_sec[i][NIVEL]) menu_additem(menug_armas_sec[i][NOMBRE], ""// agregamos el item arma normal
        
else 
        { 
// y si no lo es
            
formatex(lencharsmax(len), "\r[ \yNivel Requerido: \d%d \r]"g_armas_sec[i][NIVEL])
            
menu_additem(menulen"")
        }
    }
    
menu_display(idmenu0// le mostramos el menu al usuario en la pagina 1
}
public 
handler_sec(idmenuitem
{
    if(
item == MENU_EXIT
    {  
// si esta saliendo del menu, osea presiono 0
        
menu_destroy(menu// destruimos el menu para ahorrar memoria
        
return PLUGIN_HANDLED// paramos la funcion
    
}
    if(!(
cs_get_user_team(id) == CS_TEAM_CT)) // checamos si no es policia
    
return PLUGIN_HANDLED// si no lo es detenemos la funcion

    
if(user_level(id) < g_armas_sec[item][NIVEL]) 
    { 
// si su nivel es inferior a la del arma
        
client_print(idprint_center"Bloqued Level: %d"g_armas_sec[item][NIVEL]) // le mandaremos un mensaje diciendo el nivel que ocupa
        
show_guns_sec(id// le abriremos de nuevo el menu
        
return PLUGIN_HANDLED// y paramos la funcion
    
}
    
give_item(idg_armas_sec[item][WEAPON_NAME]) // le damos la arma secundaria que eligio
    
cs_set_user_bpammo(idg_armas_sec[item][CSW_NAME], g_armas_sec[item][BPAMMO]) // damos el numero de balas del arma
    
g_menu[id] = // seteamos la variable en 2
    
return PLUGIN_HANDLED// y returneamos al final la funcion por reglas de pawn porque si no nos mandaria un waring
}
// funcion que se llamara cuando el usuario escriba /guns
public cmd_guns(id
{
    
// ahora aqui es donde utilizaremos la variable g_menu
    // en ella sabremos: si ya eligio armas, si no lo ha hecho, si eligio pero se quedo a medias
    // por ejemplo eligio primaria pero no eligio secundaria porque se le cerro o el mismo se salio sin querer

    // bien al respawnear no ha elegido armas y le seteamos la variable g_menu en 0, en "fw_spawn(id)"
    
switch(g_menu[id]) { // swtich se ira directamente al case donde este su valor
        // si no ha elegido
        
case 0show_guns_prim(id// abrimos armas primarias
        
case 1show_guns_sec(id// abrimos secundarias ya que ya eligio primarias
        
case 2client_print(idprint_chat"Usted ya eligio armas"// le desimos que ya eligio armas
    
}


Ademas no se me setea las armas, cuando subo el level :/
Responder
#2
Usas ese plugin con un mod combinado?

Por ejemplo, un ZP

Recuerda que la variable g_level tiene que ser cambiada a la variable de niveles del mod que tengas, en caso de que use la misma var avisame.
Responder
#3
Postea el error de esas lineas
(08/10/2014, 10:50 PM)meTaLiCroSS escribió: Siento que en este foro viven en una competencia, en vez de preocuparse del contenido se preocupan de la gente, nisiquiera de eso, de sus actitudes por muy buenas o malas que sean, que clase de convivencia se puede llegar con aquello? Siempre la misma mierda en todos lados, progresen de una vez

**************************************************

Como hacer una Base de Datos para Sistema de Cuentas by r0ma
Responder
#4
Mira sí, lo inserta con otro que también tiene level, y digamos al otro lo sube de level, y este no!. Después te subo el error ahora estoy en la cancha de fútbol jajaja Lengua..

EDIT: ACA ESTA LAS LINEAS

Cita: L 07/16/2014 - 21:08:48: [AMXX] Displaying debug trace (plugin "Armasxlvl.amxx")
L 07/16/2014 - 21:08:48: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 07/16/2014 - 21:08:48: [AMXX] [0] Armasxlvl.sma::fw_spawn (line 87)
L 07/16/2014 - 21:10:00: [AMXX] Displaying debug trace (plugin "Armasxlvl.amxx")
L 07/16/2014 - 21:10:00: [AMXX] Run time error 4: index out of bounds
L 07/16/2014 - 21:10:00: [AMXX] [0] Armasxlvl.sma::checklevel (line 78)
L 07/16/2014 - 21:10:00: [AMXX] [1] Armasxlvl.sma::fw_killed (line 73)
Responder
#5
Modificaste algo en el code ? por que las armas por level de Metrickz las probe y andaban bien..
(10/10/2014, 06:38 PM)RauliTop escribió:
(10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos Thats what she saidtutoriales Proud me encataan Whatever
Responder
#6
Código PHP:
while( g_frags[id] >= user_level(g_level[id]) ) 

Eso está mal, qué comprobas ahí para subirle el nivel? No está echo el macro como debe ser para un sistema de niveles.
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#7
(17/07/2014, 12:27 AM)K.- escribió: Modificaste algo en el code ? por que las armas por level de Metrickz las probe y andaban bien..

No, digamos x decir, el plugin está virgen!, yo sólo le agregue la parte del fw_killed, para poder comprobar sí mata sube (o como le quieran decir xD). Xq en sí el plugin no tiene la función de que matas, vas subiendo o desbloqueando las armas jeje!

(17/07/2014, 12:28 AM)Federicomb escribió:
Código PHP:
while( g_frags[id] >= user_level(g_level[id]) ) 

Eso está mal, qué comprobas ahí para subirle el nivel? No está echo el macro como debe ser para un sistema de niveles.
Entonces x lo que interpreto de lo qe me decís, es que cambie el tipo de macro del sistema?. O me estoy equivocando?..
(Y)
Responder
#8
lo que pasa es que no tienes el sistema de niveles en si -.-
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#9
(17/07/2014, 01:37 AM)kikizon2 escribió: lo que pasa es que no tienes el sistema de niveles en si -.-

podrías ser más explícito?, entiendo lo que decís, pero al mismo no entiendo a que te refieres
Responder
#10
Creo que este es el problema

Código PHP:
#define user_level(%1) g_level[%1] 

--------->
// si queres pedir los mismos frags que nivel//

Código PHP:
#define user_level(%1) (%1) 
Responder
#11
Revisa tu code original y este para que veas las diferencias
Whatever

Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Tutorial Armas por niveles"
#define VERSION "1.1"
#define AUTHOR "[M]etrikcz"

#define user_level(%1) g_level[%1]
#define level_up(%1) (%1 * %1 * 3)

new cvar_nivelmax
new g_menu[33], g_level[33], g_conectado[33], g_frags[33]

enum armas_caracteristicas 
    
NOMBRE[20],
    
CSW_NAME,
    
WEAPON_NAME[20],
    
BPAMMO,
    
NIVEL
}
new const 
g_armas_prim[][armas_caracteristicas] = 
{   
    { 
"Schmidt TMP" CSW_TMP "weapon_tmp"601},
    { 
"Ingram MAC-10" CSW_MAC10 "weapon_mac10" 602}, 
    { 
"UMP 45" CSW_MP5NAVY "weapon_mp5navy" 603}, 
    { 
"Navy MP5" CSW_UMP45 "weapon_ump45" 604}, 
    { 
"M3 Super 90" CSW_M3 "weapon_m3" 285}, 
    { 
"XM1014 M4" CSW_XM1014 "weapon_xm1014" 286}, 
    { 
"FN P90" CSW_P90 "weapon_p90" 1007}, 
    { 
"Schmidt Scout" CSW_SCOUT "weapon_scout" 108}, 
    { 
"Famas" CSW_FAMAS "weapon_famas" 9010}, 
    { 
"IMI Galil" CSW_GALIL "weapon_galil" 10512}, 
    { 
"AK-47 Kalashnikov" CSW_AK47 "weapon_ak47" 9014},
    { 
"M4A1 Carbine" CSW_M4A1"weapon_m4a1"9016},
    { 
"SG-552 Commando" CSW_SG552 "weapon_sg552" 9018},
    { 
"Aug" CSW_AUG "weapon_aug" 9020},
    { 
"AWP Magnum Sniper" CSW_AWP "weapon_awp" 1022},
    { 
"G3SG1 Auto-Sniper" CSW_G3SG1 "weapon_g3sg1" 6023},
    { 
"SG-550 Auto-Sniper" CSW_SG550 "weapon_sg550" 6024},
    { 
"M249 SAW" CSW_M249 "weapon_m249" 20025}     

new const 
g_armas_sec[][armas_caracteristicas] = 

    { 
"Glock" CSW_GLOCK18 "weapon_glock18" 400},  
    { 
"USP" CSW_USP "weapon_usp"1215},
    { 
"P228" CSW_P228 "weapon_p228"4030},
    { 
"Deagle" CSW_DEAGLE "weapon_deagle"2150},
    { 
"Fiveseven" CSW_FIVESEVEN "weapon_fiveseven"4070},
    { 
"Dual Elite" CSW_ELITE "weapon_elite"6090

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)    
    
RegisterHam(Ham_Spawn"player""fw_spawn"1)    
    
register_clcmd("say /guns""cmd_guns")     
    
RegisterHam(Ham_Killed"player""fw_playerkilled_post"1)
    
    
cvar_nivelmax register_cvar("max_nivel""100")
}

public 
client_putinserver(id
{
    
g_level[id] = 1
    g_frags
[id] = 0
    g_conectado
[id] = 1
}

public 
fw_playerkilled_post(victimattacker)
{
    if(!
is_user_connected(attacker))
        return 
HAM_IGNORED;
        
    if(
victim == attacker)
        return 
HAM_IGNORED;

    
g_frags[attacker]++
    
checklevel(attacker)
    
    return 
HAM_IGNORED;
}
public 
checklevel(id)
{
    while(
g_frags[id] >= level_up(g_level[id]) && g_level[id] < get_pcvar_num(cvar_nivelmax))
    {
        
g_level[id]++
        
client_print(idprint_center"Ahora eres Nivel: %d"g_level[id])
    }
}

public 
fw_spawn(id) {
    if(
cs_get_user_team(id) == CS_TEAM_CT)
    {
        
g_menu[id] = 
        show_guns_prim
(id
    }    
}
show_guns_prim(id
{
    new 
len[50], menu menu_create("Eliga su arma primaria""handler_prim"
    for(new 
0sizeof g_armas_primi++) 
    { 
        if(
user_level(id) >= g_armas_prim[i][NIVEL]) menu_additem(menug_armas_prim[i][NOMBRE], ""
        else 
        { 
            
formatex(lencharsmax(len), "\r[ \yNivel Requerido: \d%d \r]"g_armas_prim[i][NIVEL])
            
menu_additem(menulen"")
        }
    }
    
menu_display(idmenu0
}
public 
handler_prim(idmenuitem
{
    if(
item == MENU_EXIT
    { 
        
menu_destroy(menu
        return 
PLUGIN_HANDLED
    }
    if(!(
cs_get_user_team(id) == CS_TEAM_CT)) 
        return 
PLUGIN_HANDLED

    if(
user_level(id) < g_armas_prim[item][NIVEL]) 
    {
        
client_print(idprint_center"Bloqued Level: %d"g_armas_prim[item][NIVEL]) 
        
show_guns_prim(id
        return 
PLUGIN_HANDLED
    }
   
    
strip_user_weapons(id
    
give_item(id"weapon_knife")
    
give_item(idg_armas_prim[item][WEAPON_NAME]) 
    
cs_set_user_bpammo(idg_armas_prim[item][CSW_NAME], g_armas_prim[item][BPAMMO]) 
    
g_menu[id] = 
    show_guns_sec
(id
    return 
PLUGIN_HANDLED
}
show_guns_sec(id
{
    new 
len[50], menu menu_create("Eliga su arma secundaria""handler_sec"
    for(new 
0sizeof g_armas_seci++) 
    { 
        if(
user_level(id) >= g_armas_sec[i][NIVEL]) menu_additem(menug_armas_sec[i][NOMBRE], ""
        else 
        {
            
formatex(lencharsmax(len), "\r[ \yNivel Requerido: \d%d \r]"g_armas_sec[i][NIVEL])
            
menu_additem(menulen"")
        }
    }
    
menu_display(idmenu0
}
public 
handler_sec(idmenuitem
{
    if(
item == MENU_EXIT
    { 
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    }
    if(!(
cs_get_user_team(id) == CS_TEAM_CT)) 
        return 
PLUGIN_HANDLED

    if(
user_level(id) < g_armas_sec[item][NIVEL]) 
    { 
        
client_print(idprint_center"Bloqued Level: %d"g_armas_sec[item][NIVEL]) 
        
show_guns_sec(id
        return 
PLUGIN_HANDLED
    }
   
    
give_item(idg_armas_sec[item][WEAPON_NAME])
    
cs_set_user_bpammo(idg_armas_sec[item][CSW_NAME], g_armas_sec[item][BPAMMO]) 
    
g_menu[id] = 
    
return PLUGIN_HANDLED
}
public 
cmd_guns(id
{
    switch(
g_menu[id]) {
        case 
0show_guns_prim(id)
        case 
1show_guns_sec(id)
        case 
2client_print(idprint_chat"Usted ya eligio armas"
    }

[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#12
lol
Fijate bien te faltó esto
Código PHP:
#define level_up(%1) (%1 * %1 * 3) 
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#13
Perdon por el OFF:


(17/07/2014, 12:38 PM)totopizza escribió: lol
Fijate bien te faltó esto
Código PHP:
#define level_up(%1) (%1 * %1 * 3) 

GeniusGeniusGenius para que comentar sin necesidad
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#14
(17/07/2014, 12:38 PM)totopizza escribió: lol
Fijate bien te faltó esto
Código PHP:
#define level_up(%1) (%1 * %1 * 3) 

es lo mismo pide frags igual a los niveles. era ya para que el edite.

(17/07/2014, 12:43 PM)kikizon2 escribió: Perdon por el OFF:


(17/07/2014, 12:38 PM)totopizza escribió: lol
Fijate bien te faltó esto
Código PHP:
#define level_up(%1) (%1 * %1 * 3) 

GeniusGeniusGenius para que comentar sin necesidad

Roflmao
Responder
#15
(17/07/2014, 11:32 AM)kikizon2 escribió: Revisa tu code original y este para que veas las diferencias
Whatever
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Tutorial Armas por niveles"
#define VERSION "1.1"
#define AUTHOR "[M]etrikcz"

#define user_level(%1) g_level[%1]
#define level_up(%1) (%1 * %1 * 3)

new cvar_nivelmax
new g_menu[33], g_level[33], g_conectado[33], g_frags[33]

enum armas_caracteristicas 
    
NOMBRE[20],
    
CSW_NAME,
    
WEAPON_NAME[20],
    
BPAMMO,
    
NIVEL
}
new const 
g_armas_prim[][armas_caracteristicas] = 
{   
    { 
"Schmidt TMP" CSW_TMP "weapon_tmp"601},
    { 
"Ingram MAC-10" CSW_MAC10 "weapon_mac10" 602}, 
    { 
"UMP 45" CSW_MP5NAVY "weapon_mp5navy" 603}, 
    { 
"Navy MP5" CSW_UMP45 "weapon_ump45" 604}, 
    { 
"M3 Super 90" CSW_M3 "weapon_m3" 285}, 
    { 
"XM1014 M4" CSW_XM1014 "weapon_xm1014" 286}, 
    { 
"FN P90" CSW_P90 "weapon_p90" 1007}, 
    { 
"Schmidt Scout" CSW_SCOUT "weapon_scout" 108}, 
    { 
"Famas" CSW_FAMAS "weapon_famas" 9010}, 
    { 
"IMI Galil" CSW_GALIL "weapon_galil" 10512}, 
    { 
"AK-47 Kalashnikov" CSW_AK47 "weapon_ak47" 9014},
    { 
"M4A1 Carbine" CSW_M4A1"weapon_m4a1"9016},
    { 
"SG-552 Commando" CSW_SG552 "weapon_sg552" 9018},
    { 
"Aug" CSW_AUG "weapon_aug" 9020},
    { 
"AWP Magnum Sniper" CSW_AWP "weapon_awp" 1022},
    { 
"G3SG1 Auto-Sniper" CSW_G3SG1 "weapon_g3sg1" 6023},
    { 
"SG-550 Auto-Sniper" CSW_SG550 "weapon_sg550" 6024},
    { 
"M249 SAW" CSW_M249 "weapon_m249" 20025}     

new const 
g_armas_sec[][armas_caracteristicas] = 

    { 
"Glock" CSW_GLOCK18 "weapon_glock18" 400},  
    { 
"USP" CSW_USP "weapon_usp"1215},
    { 
"P228" CSW_P228 "weapon_p228"4030},
    { 
"Deagle" CSW_DEAGLE "weapon_deagle"2150},
    { 
"Fiveseven" CSW_FIVESEVEN "weapon_fiveseven"4070},
    { 
"Dual Elite" CSW_ELITE "weapon_elite"6090

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)    
    
RegisterHam(Ham_Spawn"player""fw_spawn"1)    
    
register_clcmd("say /guns""cmd_guns")     
    
RegisterHam(Ham_Killed"player""fw_playerkilled_post"1)
    
    
cvar_nivelmax register_cvar("max_nivel""100")
}

public 
client_putinserver(id
{
    
g_level[id] = 1
    g_frags
[id] = 0
    g_conectado
[id] = 1
}

public 
fw_playerkilled_post(victimattacker)
{
    if(!
is_user_connected(attacker))
        return 
HAM_IGNORED;
        
    if(
victim == attacker)
        return 
HAM_IGNORED;

    
g_frags[attacker]++
    
checklevel(attacker)
    
    return 
HAM_IGNORED;
}
public 
checklevel(id)
{
    while(
g_frags[id] >= level_up(g_level[id]) && g_level[id] < get_pcvar_num(cvar_nivelmax))
    {
        
g_level[id]++
        
client_print(idprint_center"Ahora eres Nivel: %d"g_level[id])
    }
}

public 
fw_spawn(id) {
    if(
cs_get_user_team(id) == CS_TEAM_CT)
    {
        
g_menu[id] = 
        show_guns_prim
(id
    }    
}
show_guns_prim(id
{
    new 
len[50], menu menu_create("Eliga su arma primaria""handler_prim"
    for(new 
0sizeof g_armas_primi++) 
    { 
        if(
user_level(id) >= g_armas_prim[i][NIVEL]) menu_additem(menug_armas_prim[i][NOMBRE], ""
        else 
        { 
            
formatex(lencharsmax(len), "\r[ \yNivel Requerido: \d%d \r]"g_armas_prim[i][NIVEL])
            
menu_additem(menulen"")
        }
    }
    
menu_display(idmenu0
}
public 
handler_prim(idmenuitem
{
    if(
item == MENU_EXIT
    { 
        
menu_destroy(menu
        return 
PLUGIN_HANDLED
    }
    if(!(
cs_get_user_team(id) == CS_TEAM_CT)) 
        return 
PLUGIN_HANDLED

    if(
user_level(id) < g_armas_prim[item][NIVEL]) 
    {
        
client_print(idprint_center"Bloqued Level: %d"g_armas_prim[item][NIVEL]) 
        
show_guns_prim(id
        return 
PLUGIN_HANDLED
    }
   
    
strip_user_weapons(id
    
give_item(id"weapon_knife")
    
give_item(idg_armas_prim[item][WEAPON_NAME]) 
    
cs_set_user_bpammo(idg_armas_prim[item][CSW_NAME], g_armas_prim[item][BPAMMO]) 
    
g_menu[id] = 
    show_guns_sec
(id
    return 
PLUGIN_HANDLED
}
show_guns_sec(id
{
    new 
len[50], menu menu_create("Eliga su arma secundaria""handler_sec"
    for(new 
0sizeof g_armas_seci++) 
    { 
        if(
user_level(id) >= g_armas_sec[i][NIVEL]) menu_additem(menug_armas_sec[i][NOMBRE], ""
        else 
        {
            
formatex(lencharsmax(len), "\r[ \yNivel Requerido: \d%d \r]"g_armas_sec[i][NIVEL])
            
menu_additem(menulen"")
        }
    }
    
menu_display(idmenu0
}
public 
handler_sec(idmenuitem
{
    if(
item == MENU_EXIT
    { 
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    }
    if(!(
cs_get_user_team(id) == CS_TEAM_CT)) 
        return 
PLUGIN_HANDLED

    if(
user_level(id) < g_armas_sec[item][NIVEL]) 
    { 
        
client_print(idprint_center"Bloqued Level: %d"g_armas_sec[item][NIVEL]) 
        
show_guns_sec(id
        return 
PLUGIN_HANDLED
    }
   
    
give_item(idg_armas_sec[item][WEAPON_NAME])
    
cs_set_user_bpammo(idg_armas_sec[item][CSW_NAME], g_armas_sec[item][BPAMMO]) 
    
g_menu[id] = 
    
return PLUGIN_HANDLED
}
public 
cmd_guns(id
{
    switch(
g_menu[id]) {
        case 
0show_guns_prim(id)
        case 
1show_guns_sec(id)
        case 
2client_print(idprint_chat"Usted ya eligio armas"
    }

Gracias querido me funciono,

Ahora mi consulta como le muestro un hud, de la cantidad de frag's para el siguiente level???
Responder
#16
Código PHP:
level_up(g_level[id]) - get_user_frags(id

level_up(g_level[id]) - Variable

Ni mas ni menos que eso.

el
Código PHP:
level_up 
es tu macro.

Creo que se entiende...
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#17
Hola de nuevo!. Gracias me funciono todo, el hud ya se lo puse, pero tengo un problema
me tira este error en consola, del fw_spawn...

Cita:L 07/18/2014 - 19:19:52: [AMXX] Displaying debug trace (plugin "Armasxlvl.amxx")
L 07/18/2014 - 19:19:52: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 07/18/2014 - 19:19:52: [AMXX] [0] Armasxlvl.sma::fw_spawn (line 109)

Alguno es amable y me ayuda?.. Y como hago para qe se abra el menu en ambos team?..
Responder
#18
pasa el code nuevamente.
Responder
#19
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "Tutorial Armas por niveles"
#define VERSION "1.1"
#define AUTHOR "[M]etrikcz"

#define user_level(%1) g_level[%1]
#define level_up(%1) (%1 * %1 * 3)

new cvar_nivelmax
new g_menu[33], g_level[33], g_conectado[33], g_frags[33]

enum armas_caracteristicas 
    
NOMBRE[20],
    
CSW_NAME,
    
WEAPON_NAME[20],
    
BPAMMO,
    
NIVEL
}
new const 
g_armas_prim[][armas_caracteristicas] = 
{   
    { 
"Schmidt TMP" CSW_TMP "weapon_tmp"601},
    { 
"Ingram MAC-10" CSW_MAC10 "weapon_mac10" 602}, 
    { 
"UMP 45" CSW_MP5NAVY "weapon_mp5navy" 603}, 
    { 
"Navy MP5" CSW_UMP45 "weapon_ump45" 604}, 
    { 
"M3 Super 90" CSW_M3 "weapon_m3" 285}, 
    { 
"XM1014 M4" CSW_XM1014 "weapon_xm1014" 286}, 
    { 
"FN P90" CSW_P90 "weapon_p90" 1007}, 
    { 
"Schmidt Scout" CSW_SCOUT "weapon_scout" 108}, 
    { 
"Famas" CSW_FAMAS "weapon_famas" 9010}, 
    { 
"IMI Galil" CSW_GALIL "weapon_galil" 10512}, 
    { 
"AK-47 Kalashnikov" CSW_AK47 "weapon_ak47" 9014},
    { 
"M4A1 Carbine" CSW_M4A1"weapon_m4a1"9016},
    { 
"SG-552 Commando" CSW_SG552 "weapon_sg552" 9018},
    { 
"Aug" CSW_AUG "weapon_aug" 9020},
    { 
"AWP Magnum Sniper" CSW_AWP "weapon_awp" 1022},
    { 
"G3SG1 Auto-Sniper" CSW_G3SG1 "weapon_g3sg1" 6023},
    { 
"SG-550 Auto-Sniper" CSW_SG550 "weapon_sg550" 6024},
    { 
"M249 SAW" CSW_M249 "weapon_m249" 20025}     

new const 
g_armas_sec[][armas_caracteristicas] = 

    { 
"Glock" CSW_GLOCK18 "weapon_glock18" 400},  
    { 
"USP" CSW_USP "weapon_usp"1215},
    { 
"P228" CSW_P228 "weapon_p228"4030},
    { 
"Deagle" CSW_DEAGLE "weapon_deagle"2150},
    { 
"Fiveseven" CSW_FIVESEVEN "weapon_fiveseven"4070},
    { 
"Dual Elite" CSW_ELITE "weapon_elite"6090

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)    
    
RegisterHam(Ham_Spawn"player""fw_spawn"1)    
    
register_clcmd("say /guns""cmd_guns")     
    
RegisterHam(Ham_Killed"player""fw_playerkilled_post"1)
    
    
cvar_nivelmax register_cvar("max_nivel""100")
}

public 
client_putinserver(id
{
    
g_level[id] = 1
    g_frags
[id] = 0
    g_conectado
[id] = 1
}

public 
fw_playerkilled_post(victimattacker)
{
    if(!
is_user_connected(attacker))
        return 
HAM_IGNORED;
        
    if(
victim == attacker)
        return 
HAM_IGNORED;

    
g_frags[attacker]++
    
checklevel(attacker)
    
    return 
HAM_IGNORED;
}
public 
checklevel(id)
{
    while(
g_frags[id] >= level_up(g_level[id]) && g_level[id] < get_pcvar_num(cvar_nivelmax))
    {
        
g_level[id]++
        
client_print(idprint_center"Ahora eres Nivel: %d"g_level[id])
    }
}

public 
fw_spawn(id) {
    if(
cs_get_user_team(id) == CS_TEAM_CT// Aca seria el problema qe me tira :S
    
{
        
g_menu[id] = 
        show_guns_prim
(id
    }    
}
show_guns_prim(id
{
    new 
len[50], menu menu_create("Eliga su arma primaria""handler_prim"
    for(new 
0sizeof g_armas_primi++) 
    { 
        if(
user_level(id) >= g_armas_prim[i][NIVEL]) menu_additem(menug_armas_prim[i][NOMBRE], ""
        else 
        { 
            
formatex(lencharsmax(len), "\r[ \yNivel Requerido: \d%d \r]"g_armas_prim[i][NIVEL])
            
menu_additem(menulen"")
        }
    }
    
menu_display(idmenu0
}
public 
handler_prim(idmenuitem
{
    if(
item == MENU_EXIT
    { 
        
menu_destroy(menu
        return 
PLUGIN_HANDLED
    }
    if(!(
cs_get_user_team(id) == CS_TEAM_CT)) 
        return 
PLUGIN_HANDLED

    if(
user_level(id) < g_armas_prim[item][NIVEL]) 
    {
        
client_print(idprint_center"Bloqued Level: %d"g_armas_prim[item][NIVEL]) 
        
show_guns_prim(id
        return 
PLUGIN_HANDLED
    }
   
    
strip_user_weapons(id
    
give_item(id"weapon_knife")
    
give_item(idg_armas_prim[item][WEAPON_NAME]) 
    
cs_set_user_bpammo(idg_armas_prim[item][CSW_NAME], g_armas_prim[item][BPAMMO]) 
    
g_menu[id] = 
    show_guns_sec
(id
    return 
PLUGIN_HANDLED
}
show_guns_sec(id
{
    new 
len[50], menu menu_create("Eliga su arma secundaria""handler_sec"
    for(new 
0sizeof g_armas_seci++) 
    { 
        if(
user_level(id) >= g_armas_sec[i][NIVEL]) menu_additem(menug_armas_sec[i][NOMBRE], ""
        else 
        {
            
formatex(lencharsmax(len), "\r[ \yNivel Requerido: \d%d \r]"g_armas_sec[i][NIVEL])
            
menu_additem(menulen"")
        }
    }
    
menu_display(idmenu0
}
public 
handler_sec(idmenuitem
{
    if(
item == MENU_EXIT
    { 
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    }
    if(!(
cs_get_user_team(id) == CS_TEAM_CT)) 
        return 
PLUGIN_HANDLED

    if(
user_level(id) < g_armas_sec[item][NIVEL]) 
    { 
        
client_print(idprint_center"Bloqued Level: %d"g_armas_sec[item][NIVEL]) 
        
show_guns_sec(id
        return 
PLUGIN_HANDLED
    }
   
    
give_item(idg_armas_sec[item][WEAPON_NAME])
    
cs_set_user_bpammo(idg_armas_sec[item][CSW_NAME], g_armas_sec[item][BPAMMO]) 
    
g_menu[id] = 
    
return PLUGIN_HANDLED
}
public 
cmd_guns(id
{
    switch(
g_menu[id]) {
        case 
0show_guns_prim(id)
        case 
1show_guns_sec(id)
        case 
2client_print(idprint_chat"Usted ya eligio armas"
    }

Responder
#20
Para que mod lo utilizas?

Ahi no tienes el Hud .-.
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#21
Cita:
(18/07/2014, 07:45 PM)kikizon2 escribió: Para que mod lo utilizas?

Ahi no tienes el Hud .-.
(18/07/2014, 07:26 PM)Marito escribió: Hola de nuevo!. Gracias me funciono todo, el hud ya se lo puse, pero tengo un problema
me tira este error en consola

Cita:L 07/18/2014 - 19:19:52: [AMXX] Displaying debug trace (plugin "Armasxlvl.amxx")
L 07/18/2014 - 19:19:52: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 07/18/2014 - 19:19:52: [AMXX] [0] Armasxlvl.sma::fw_spawn (line 109)

Alguno es amable y me ayuda?.. Y como hago para qe se abra en ambos team?..

Donde lees que dije en el hud????.. Dije en esas lineas u.u
Responder
#22
Para que se te abra en los dos Team creo que era asi.

Código PHP:
if(cs_get_user_team(id) == CS_TEAM_T
Código PHP:
if(cs_get_user_team(id) == CS_TEAM_CT

EDIT:
Fijate que en ese sistema lo tenes asi
Código PHP:
if(!(cs_get_user_team(id) == CS_TEAM_CT)) 
Busca eso y abajo pone esto.(esta varias veces)

Código PHP:
if(!(cs_get_user_team(id) == CS_TEAM_T)) 

Si no te anda ponelo como el primer ejemplo
PD: que mod usas?
Salu2
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#23
solo borra el if -.-
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#24
Gracias a ambos! ahora lo pruebo, una consulta..

Código PHP:
public ShowHUD(taskid)
{
    static 
id
    id 
ID_SHOWHUD
    {
        
set_hudmessage(050100, -1.00.0611.01.01.01.0)
        
show_hudmessage(id"[Frags: %d]^n[Level:%d]"g_frags[id], g_level[id])
    }


Este es el hud que hice, como puedo mostrar en "FRAG" que le falta 10/15???
Responder
#25
Código PHP:
public ShowHUD(taskid)
{
    static 
id
    id 
ID_SHOWHUD
    {
        
set_hudmessage(050100, -1.00.0611.01.01.01.0)
        
show_hudmessage(id"[Frags: %d]^n[Level:%d]"g_frags[id], g_level[id])
    }

--->
Código PHP:
public ShowHUD(taskid)
{
    static 
id
    id 
ID_SHOWHUD
    {
        
set_hudmessage(050100, -1.00.0611.01.01.01.0)
        
show_hudmessage(id"[Frags: %d/%d]^n[Level:%d]"g_frags[id], level_up(g_frags[id]), g_level[id])
    }

[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)