[TUT] Armas por niveles
#51
remplaza todas las condiciones que digan

Código PHP:
user_level(id

por tu variable o la que tengas

ejemplo
Código PHP:
gKNivel[id
Responder
#52
(25/10/2017, 09:20 PM)GeX~ escribió: remplaza todas las condiciones que digan

Código PHP:
user_level(id

por tu variable o la que tengas

ejemplo
Código PHP:
gKNivel[id

CerealspitCerealspit

Tiene que cambiar la variable g_level del macro user_level

Responder
#53
para que un macro ?, cuando lo puede quitar y poner su variable.
Responder
#54
y si quiero usar esas arma ese menu de armas pero sin niveles como le hago?
Responder
#55
saca el los ifs de lvl en en handle y en el menu
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#56
(28/03/2014, 02:56 PM)Metrikcz escribió: Buenas, aqui un amigo me pidio que le hiciera un tutorial de armas por niveles y aqui esta, si me falto explicar algo, tienen dudas o me falto agregar algo porfavor diganlo
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]
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
}
// 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
    
}

Aclaro como muchas personas creen que todo es solo para zp o nose, les digo que este tutorial funciona para cualquier mod que tenga niveles

amigo te acabas de comer las 2 armas te explico
[php]{ "UMP 45" , CSW_MP5NAVY , "weapon_mp5navy" , 60, 3}, // te comiste la ump 45 que era CSW_UMP creo yo que te la comiste a otro es la la ump45 en vez de navy disculpa pero tenes que corregir ese errorWhatdone
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)