Enviar respuesta 
[TUT] Armas por niveles
Autor Mensaje
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 827
Registro en: Oct 2013
Reputación: 19
Mensaje: #1
[TUT] Armas por niveles
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

Todos los MODS VHL totalmente gratuitos Descarga Aqui

Mis plugins:
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
28/03/2014 02:56 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
mongito100 Sin conexión
Miembro Héroe


El protector
Mensajes: 1,566
Registro en: Feb 2014
Reputación: 28
Mensaje: #2
RE: [TUT] Armas por niveles
(28/03/2014 02:56 PM)Metrikcz escribió:  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

Ya que es para cualquier mod podrias bloquear buymenu por q no todos los mod lo tienen bloqueado y no tiene sentido q puedas comprar armas desde ahy y desde tu menu y agragar otra opcion al enum para q pida dinero, total si no se usa la ponen en 0

[TUT] Carnage

Fight

"El limite de los backdoors de gente q sabe programar como nostros lo impone nuestra maldad interior y creeme q soy muy malo en el interior"

Anónimo
28/03/2014 04:11 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
segamast Sin conexión
Miembro Junior


Mensajes: 1
Registro en: Mar 2014
Reputación: 0
Mensaje: #3
RE: [TUT] Armas por niveles
Lol

Me andubo de 10 gracias Gran sonrisa Excitedeyes
(Este mensaje fue modificado por última vez en: 28/03/2014 04:19 PM por segamast.)
28/03/2014 04:18 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Nike Sin conexión
Miembro


Mensajes: 208
Registro en: Nov 2013
Reputación: 4
Mensaje: #4
RE: [TUT] Armas por niveles
(28/03/2014 04:11 PM)mongito100 escribió:  
(28/03/2014 02:56 PM)Metrikcz escribió:  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

Ya que es para cualquier mod podrias bloquear buymenu por q no todos los mod lo tienen bloqueado y no tiene sentido q puedas comprar armas desde ahy y desde tu menu y agragar otra opcion al enum para q pida dinero, total si no se usa la ponen en 0

edit: lei cualquiera me confundi... tenes razon con lo de bloquear el buymenu, y se podria bloquear el dinero tambien, no creo que haga falta un enum para que pida dinero por las armas, si lo puede hacer levels por frag para ir desbloqueando...xD

en cuanto al menu esta muy bueno Guiño y para darle un pequeño detalle podrias hacerle un auto-seleccion de armas... a tu gusto...xD

[Guia] Granada de Droga [actulizado 01/04/14]
[Guia] Cambio de leap zp 4.2 a 4.3

Zp 4.2 Extincion [Beta+Lvl] Edicion 0.1 (%95) terminado
(Este mensaje fue modificado por última vez en: 28/03/2014 07:08 PM por Nike.)
28/03/2014 06:58 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
3mcy daimon't Sin conexión
Miembro


Mensajes: 219
Registro en: Nov 2013
Reputación: 1
Mensaje: #5
RE: [TUT] Armas por niveles
Aunque no es nada sobrenatural me doy cuenta que cada vez hay mas usuarios que se registran y no saben nada y por ende preguntan siempre lo mismo con tutoriales como estos les servira mucho y de paso despejaran sus dudas.

PD: Buen tuto Gran sonrisa

Sistema de Logros v2.0 + Guardado

He vuelto... esta vez con mas ganas de ayudar que nunca!
28/03/2014 07:17 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 827
Registro en: Oct 2013
Reputación: 19
Mensaje: #6
RE: [TUT] Armas por niveles
(28/03/2014 04:11 PM)mongito100 escribió:  
(28/03/2014 02:56 PM)Metrikcz escribió:  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

Ya que es para cualquier mod podrias bloquear buymenu por q no todos los mod lo tienen bloqueado y no tiene sentido q puedas comprar armas desde ahy y desde tu menu y agragar otra opcion al enum para q pida dinero, total si no se usa la ponen en 0

Si ya tienen su mod por niveles esta claro que ya bloquearia lo del buy, y este no es un plugin externo, es para que lo adapten

Todos los MODS VHL totalmente gratuitos Descarga Aqui

Mis plugins:
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
28/03/2014 08:55 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Karibeean Sin conexión
Suspendido


Mensajes: 127
Registro en: Jan 2014
Mensaje: #7
RE: [TUT] Armas por niveles
Y para agregar otro menú, editar el daño y el model?
23/04/2014 05:22 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 827
Registro en: Oct 2013
Reputación: 19
Mensaje: #8
RE: [TUT] Armas por niveles
(23/04/2014 05:22 PM)Karibeean escribió:  Y para agregar otro menú, editar el daño y el model?

Me estas diciendo como hacer eso o me estas diciendo que el tuto no lo tiene?

Todos los MODS VHL totalmente gratuitos Descarga Aqui

Mis plugins:
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
23/04/2014 05:26 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 578
Registro en: Dec 2013
Reputación: 12
Mensaje: #9
RE: [TUT] Armas por niveles
Ahi tiene las balas para poner ; asi como esta se le pueden poner mas balas de las que tiene un arma ; por ejemplo la XM1014 que tiene 7 , se le puede poner 20?

NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
Image
09/05/2014 06:08 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Metrikcz Sin conexión
Miembro Destacado


Plugin developer
Mensajes: 827
Registro en: Oct 2013
Reputación: 19
Mensaje: #10
RE: [TUT] Armas por niveles
(09/05/2014 06:08 PM)Evil Spiret escribió:  Ahi tiene las balas para poner ; asi como esta se le pueden poner mas balas de las que tiene un arma ; por ejemplo la XM1014 que tiene 7 , se le puede poner 20?

Si te refieres a las balas del cartucho si se le pueden cambiar, pero no tiene nada que ver con el thread.

Todos los MODS VHL totalmente gratuitos Descarga Aqui

Mis plugins:
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
15/05/2014 03:34 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS