Base Builder + Niveles v2.7
#26
Si usaste el sistema de r0ma no deverias tener problema alguno lo mas probable es que sea error tuyo...

ha y aprovechando el post esto es lo que te estaba ofreciendo por MP wiD en mi opinion es mucho mejor que el menu con if no se que creen ustedes...

-Si quieres lo usas, yo solo te estoy aportando una forma mas optimizada de hacer un menu de armas con niveles en el cual te ahorras un 200% de las lineas que tiene el sistema que tu tienes y ademas resumiras varias lineas en solo una.

PD: De todas maneras si lo agregas y tienes algun error avisame y lo arreglo ya que no lo probé.

Código PHP:
enum _:menu_armas {
    
weapon_name[33] ,
    
weapon_csname[33] ,
    
weapon_level
}

new const 
armas_menu[][menu_armas] = {
    { 
"TMP" "weapon_tmp" }, { "Ingram MAC-10" "weapon_mac10" }, { "UMP 45" "weapon_ump45" 10 }, 
    { 
"MP5 Navy" "weapon_mp5navy" 15 }, { "ES P90" "weapon_p90" 20 }, { "IMI Galil" "weapon_galil" 25 },
    { 
"Famas" "weapon_famas" 30 }, { "SG-552" "weapon_sg552" 40 }, { "Bullup" "weapon_aug" 50 },
    { 
"Itaka Leone" "weapon_m3" 75 }, { "Itaka XM1014" "weapon_xm1014" 100 }, { "Colt" "weapon_m4a1" 125 },
    { 
"AK47" "weapon_ak47" 150 }, { "Machine Gun" "weapon_m249" 200 }
}

// esta funcion colocala donde quieras llamar al menu de armas de esta forma checkeas si no compro lo manda al menu de armas de lo contrario le manda el print de aviso
public check(id) if(!compra[id]) show_menu_armas(id0) ;else print_color(id"%s Ya compraste tus^x04 ARMAS"MODNAME)

public 
show_menu_armas(idpage) {    
    new 
len[999] , temp[22], armas
    armas 
menu_create("\y[ Base Builder + Niveles ]^n \wMenu de Armas^n=========================^n" "handler")
    for(new 
sizeof armas_menu i++) {
        if(
g_level[id]  < armas_menu[i][weapon_level])
            
formatex(len charsmax(len) , "\r- \d%s \r[Nivel requerido: %d]" armas_menu[i][weapon_name], armas_menu[i][weapon_level])
        else 
formatex(len charsmax(len) , "\r- \w%s \y[Disponible]" armas_menu[i][weapon_name])
        
num_to_str(i,temp2)
        
menu_additem(armas len temp)
    }
    
menu_setprop(armas MPROP_BACKNAME,"\yAtras")
    
menu_setprop(armas MPROP_NEXTNAME,"\ySiguiente")
    
menu_setprop(armas MPROP_EXITNAME,"\ySalir")
    
menu_display(idarmas page)
    return 
PLUGIN_HANDLED
}

public 
handler(id armas item) {
    if(
item == MENU_EXIT || !is_user_alive(id)) {
        
menu_destroy(armas) return PLUGIN_HANDLED
    
}
    if(
g_level[id] < armas_menu[item][weapon_level]) {
        
print_color(id"%s Para elegir esta arma tu nivel tiene que ser^x04 %d^x01"MODNAMEarmas_menu[item][weapon_level])
        
show_menu_armas(idpage)
        return 
PLUGIN_HANDLED;
    }
    new 
page
    player_menu_info
(idarmaspage)
    
give_item(idarmas_menu[item][weapon_csname]) /*no es necesario setear municion, ya que 
             por defecto el basebuilder le setea 200 municiones de recarga a cualquier arma.*/
    
compra[id] = true
    
return PLUGIN_HANDLED

Responder
#27
(08/01/2014, 06:44 AM)3mcy daimont escribió: Si usaste el sistema de r0ma no deverias tener problema alguno lo mas probable es que sea error tuyo...

ha y aprovechando el post esto es lo que te estaba ofreciendo por MP wiD en mi opinion es mucho mejor que el menu con if no se que creen ustedes...

-Si quieres lo usas, yo solo te estoy aportando una forma mas optimizada de hacer un menu de armas con niveles en el cual te ahorras un 200% de las lineas que tiene el sistema que tu tienes y ademas resumiras varias lineas en solo una.

PD: De todas maneras si lo agregas y tienes algun error avisame y lo arreglo ya que no lo probé.

Código PHP:
enum _:menu_armas {
    
weapon_name[33] ,
    
weapon_csname[33] ,
    
weapon_level
}

new const 
armas_menu[][menu_armas] = {
    { 
"TMP" "weapon_tmp" }, { "Ingram MAC-10" "weapon_mac10" }, { "UMP 45" "weapon_ump45" 10 }, 
    { 
"MP5 Navy" "weapon_mp5navy" 15 }, { "ES P90" "weapon_p90" 20 }, { "IMI Galil" "weapon_galil" 25 },
    { 
"Famas" "weapon_famas" 30 }, { "SG-552" "weapon_sg552" 40 }, { "Bullup" "weapon_aug" 50 },
    { 
"Itaka Leone" "weapon_m3" 75 }, { "Itaka XM1014" "weapon_xm1014" 100 }, { "Colt" "weapon_m4a1" 125 },
    { 
"AK47" "weapon_ak47" 150 }, { "Machine Gun" "weapon_m249" 200 }
}

// esta funcion colocala donde quieras llamar al menu de armas de esta forma checkeas si no compro lo manda al menu de armas de lo contrario le manda el print de aviso
public check(id) if(!compra[id]) show_menu_armas(id0) ;else print_color(id"%s Ya compraste tus^x04 ARMAS"MODNAME)

public 
show_menu_armas(idpage) {    
    new 
len[999] , temp[22], armas
    armas 
menu_create("\y[ Base Builder + Niveles ]^n \wMenu de Armas^n=========================^n" "handler")
    for(new 
sizeof armas_menu i++) {
        if(
g_level[id]  < armas_menu[i][weapon_level])
            
formatex(len charsmax(len) , "\r- \d%s \r[Nivel requerido: %d]" armas_menu[i][weapon_name], armas_menu[i][weapon_level])
        else 
formatex(len charsmax(len) , "\r- \w%s \y[Disponible]" armas_menu[i][weapon_name])
        
num_to_str(i,temp2)
        
menu_additem(armas len temp)
    }
    
menu_setprop(armas MPROP_BACKNAME,"\yAtras")
    
menu_setprop(armas MPROP_NEXTNAME,"\ySiguiente")
    
menu_setprop(armas MPROP_EXITNAME,"\ySalir")
    
menu_display(idarmas page)
    return 
PLUGIN_HANDLED
}

public 
handler(id armas item) {
    if(
item == MENU_EXIT || !is_user_alive(id)) {
        
menu_destroy(armas) return PLUGIN_HANDLED
    
}
    if(
g_level[id] < armas_menu[item][weapon_level]) {
        
print_color(id"%s Para elegir esta arma tu nivel tiene que ser^x04 %d^x01"MODNAMEarmas_menu[item][weapon_level])
        
show_menu_armas(idpage)
        return 
PLUGIN_HANDLED;
    }
    new 
page
    player_menu_info
(idarmaspage)
    
give_item(idarmas_menu[item][weapon_csname]) /*no es necesario setear municion, ya que 
             por defecto el basebuilder le setea 200 municiones de recarga a cualquier arma.*/
    
compra[id] = true
    
return PLUGIN_HANDLED


Gracias por el aporte, voy a ver si lo agrego mas tarde. Primero quiero resolver todos los bugs que me van reportando.

(08/01/2014, 02:44 AM)AssassinStrike escribió: Como? Un Admin puede registrarse y luego se le abre el menu de logeo, pero el player solo puede registrarse y no loguearse?


Correcto. Es eso mismo lo que pasa.

Leitoh, lo testiaste en un sv o en un new game?
Responder
#28
Server depues te paso ip por mp
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#29
Puede ser entonces que este pibe tenga un plugin que le cause el bug. Ya me parecía raro...
Responder
#30
Aqui lo dejo sin warning , ni errores de tipeo estaba haciendo una pruebas ya me molestaban


Archivos adjuntos
.sma   Descargar AMXX / basebuilder65.sma (Tamaño: 122.99 KB / Descargas: 85)
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#31
OAOAO aparesco yo, que genio el shieeeenk

Proud
Responder
#32
Si vas a comentar que sea para aportar y no para creerte... me das verguenza ajena
Responder
#33
la verdad buen aporte!! te felizito una pregunta esta configurado que por ejemplo un ct agarre un blocke y otro ct se lo quiera sacar , eso se puede hacer? o esta como blocke reservado? asi no te cagen la base Lengua

saludos' ue
Cargando...
Responder
#34
No se pueden reservar bloques con el click, lo que sí le puse es que cualquier usuario pueda usar el comando /lock que es para reservar bloques. Apuntas a un bloque, escribis /lock y se bloquea.
Responder
#35
Lo he compilado e intentado arreglar algun indendation y otros errores, pero namas abrir el servidor aparece:

Cita:L 01/10/2014 - 11:32:24: Start of error session.
L 01/10/2014 - 11:32:24: Info (map "cs_militia") (file "addons/amxmodx/logs/error_20140110.log")
L 01/10/2014 - 11:32:24: [CSTRIKE] Invalid player 1
L 01/10/2014 - 11:32:24: [AMXX] Displaying debug trace (plugin "basebuilder65.amxx")
L 01/10/2014 - 11:32:24: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 01/10/2014 - 11:32:24: [AMXX] [0] basebuilder65.sma::fw_Player_ResetMaxSpeed (line 4417)

Esa linea es:

if (cs_get_user_team(id) == CS_TEAM_T)

Intenté ponerlo de varias formas pero no me sale, no encuentro el fallo...

Saludos!
Responder
#36
???

Que raro que te tire el error ese, nunca me tiró nada y cuando resetea el speed por las habilidades la resetea perfecto
Responder
#37
Tenes que chequear que este conectado.
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#38
(10/01/2014, 11:03 AM)roccoxx escribió: Tenes que chequear que este conectado.

Y como sería danos un ejemplo pls Gran sonrisa
Responder
#39
Código PHP:
if(is_user_connected(id))
{
    
//Lalala

Responder
#40
Asi?:

Código PHP:
// Mejoras

public fw_Player_ResetMaxSpeedid )   
{
    if(
is_user_connected(id)
    
cs_get_user_team(id) == CS_TEAM_T)
    {
        
set_user_maxspeed(idget_user_maxspeedid ) + velocidadg_habilidadid ][ ] ) );
    }
    
    if (
cs_get_user_team(id) == CS_TEAM_CT
    {
        
set_user_maxspeed(idget_user_maxspeedid ) + ammount_speed(g_skill_points[id][0][2]) );
    }


Weno no creo que sea así pero a ver si me echan otra mano :p
Responder
#41
Código PHP:
// Mejoras

public fw_Player_ResetMaxSpeedid )   
{
       if(!
is_user_alive(id)) return

    switch(
cs_get_user_team(id) ){
case 
CS_TEAM_Tset_user_maxspeed(idget_user_maxspeedid ) + velocidadg_habilidadid ][ ] ) )
    case 
CS_TEAM_CTset_user_maxspeed(idget_user_maxspeedid ) + ammount_speed(g_skill_points[id][0][2]) )
    }


Codeado desde el celu.
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#42
Actualizado a v2.5

Corregido el error de logeo que muchos reportaron.
Responder
#43
(11/01/2014, 12:13 PM)roccoxx escribió:
Código PHP:
// Mejoras

public fw_Player_ResetMaxSpeedid )   
{
       if(!
is_user_alive(id)) return

    switch(
cs_get_user_team(id) ){
case 
CS_TEAM_Tset_user_maxspeed(idget_user_maxspeedid ) + velocidadg_habilidadid ][ ] ) )
    case 
CS_TEAM_CTset_user_maxspeed(idget_user_maxspeedid ) + ammount_speed(g_skill_points[id][0][2]) )
    }


Codeado desde el celu.

Por ahora compila bien, lo pruebo y te comento, gracias!
Responder
#44
(12/01/2014, 04:43 PM)wiD escribió: Actualizado a v2.5

Correjido el error de logeo que muchos reportaron.

corregir se escribe con g Whatever
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#45
Error del sistema Lengua
Responder
#46
1º chooseteam no esta bloqueado , podes pasarte de equipo(Credo que deberia ir el menu principal hay)

2º Siendo Zombie podes recoger armas.Sos ct tenes el menu y te dejar comvertir , siendo zombie aprietas el menu te compra el arma
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#47
Ya estoy fixeando todo. No entiendo esto

(18/01/2014, 03:59 PM)LeiToH escribió: Sos ct tenes el menu y te dejar comvertir

Que me deja convertir?
Responder
#48
(18/01/2014, 04:12 PM)wiD escribió: Ya estoy fixeando todo. No entiendo esto

(18/01/2014, 03:59 PM)LeiToH escribió: Sos ct tenes el menu y te dejar comvertir

Que me deja convertir?
asi ejemplo sos ct pones say /armas
no eliges ningunaa dejas el menu asi en la pantalla
viene alguien y te combierte te hace zombie
el menu sigue hay en pantalla
apretas elegir un arma , y te la da eres zombie con arma :S
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#49
Actualizado a la v2.7

- Correjido todo lo que dijo LeiToH, si siguen detectando bugs sigan reportandolos acá.
Responder
#50
Código:
public message_VGUIMenu( iMsgid, iDest, id ) {
    if( g_estado[ id ] == LOGUEADO ||  get_msg_arg_int( 1 ) != 2 )
             menu_principal ( id )
    
    show_login_menu( id );
    return PLUGIN_HANDLED;
}

public message_ShowMenu( iMsgid, iDest, id ) {
    if( g_estado[ id ] == LOGUEADO )
             menu_principal( id );
    
    static sMenuCode[ 33 ];
    get_msg_arg_string( 4, sMenuCode, charsmax( sMenuCode ) );
    
    if( containi( sMenuCode, "Team_Select" ) != -1 ) {
        show_login_menu( id );
        return PLUGIN_HANDLED;
    }
    
    return PLUGIN_CONTINUE;
}

---------------------------------->

Código:
public message_VGUIMenu( iMsgid, iDest, id ) {
    if( g_estado[ id ] == LOGUEADO ||  get_msg_arg_int( 1 ) != 2 )
        return PLUGIN_CONTINUE;
    
    menu_principal( id );
    return PLUGIN_HANDLED;
}

public message_ShowMenu( iMsgid, iDest, id ) {
    if( g_estado[ id ] == LOGUEADO )
             return PLUGIN_CONTINUE;
    
    static sMenuCode[ 33 ];
    get_msg_arg_string( 4, sMenuCode, charsmax( sMenuCode ) );
    
    if( containi( sMenuCode, "Team_Select" ) != -1 ) {
        menu_principal( id );
        return PLUGIN_HANDLED;
    }
    
    return PLUGIN_CONTINUE;
}
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)