Allied Modders en español

Versión completa: [TUT] ZP sistema de niveles (Macro)
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola amigos ya que yo siempre pido hoy vengo a traerles un tutorial de niveles por experiencia de macros hay varios tutoriales pero para alguien que no sabe ni papa de pawn aquí les explico como incorporarlos a cualquier zp, ya sea 4.2, 4.3, advanced, etc.

comenzemos...
Esto lo ponen donde quieran:
Código PHP:
#define Niveles(%1)    (%1 * %1 * 15) // aqui el porcentaje de los niveles o el macro
#define   NIVEL_MAX 250 // aqui el maximo de niveles 

luego vamos a //Players Vars y creamos las siguientes variables
Código PHP:
new g_level[33// variable de nivel de 33 celdas
new g_exp[33// variable de experiencia de 33 celdas 

Luego vamos al forward donde se registrara o registraremos la experiencia que ganaremos vamos a...

Código PHP:
public fw_PlayerKilled(victimattackershouldgib)

// hacemos dos condicionales o sentencias 
if(!g_zombie[attacker] && g_zombie[victim]) // aqui decimos si el humano es el atacante
{
            
g_ammopacks[attacker]++ // se le sumaran ap
            
g_exp[attacker]+= 50 // se le dara 50 de exp esto se puede cambiar
            
check_level(attacker// chequeamos el public 
}

if(
g_zombie[attacker] && !g_zombie[victim]) // aqui decimos si el zombie es el atacante
{
            
g_ammopacks[attacker]++ 
            
g_exp[attacker]+= 50 
            check_level
(attacker)
}

/* ustedes no saben que es ++ o += bien esto es ++ sumara una cantidad indeterminada o aumentara,  en cuanto += sumara una cantidad exacta digamos 50 por mas que mates zombies nunca se pasara de esa cantidad y ++ se incrementa o aumenta */ 

Luego vamos al final de su zp y pongamos este public de nivel
Código PHP:
// check public level
public check_level(id)
{    
    
// Upload level
    
while (g_exp[id] >= Niveles(g_level[id]+1)) && g_level[id] <  NIVEL_MAX// esto es un while que nos dara el nivel si tenemos la experiencia necesaria
    
{
        
g_level[id]++ // aqui se le incrementa el nivel solo sera uno
        
zp_colored_print(id"^x03[ZP]^x04 Felicidades! Has Subido al nivel: ^x03%d^x01"g_level[id]) // mensaje de cuanto subes nivel 
    
}


y para agregar al hud vamos a:
Código PHP:
public showhud

// y agregan
^n[Nivel %d]^n[exp %d], g_level[id], g_exp[id

Cierto Para que se registre que level son al inciar van a:
Código PHP:
reset_vars(id)
g_level[id] = // en vez de += lo ponemos = 1
g_exp[id] = // ponen la exp que quieran 
Y esto ha sido todo cualquier error o duda me lo dicen. Gran sonrisa
y si yo entro por primera vez, que nivel soy?
Código PHP:
/* ustedes no saben que es ++ o += bien esto es ++ sumara una cantidad indeterminada o aumentara,  en cuanto += sumara una cantidad exacta digamos 50 por mas que mates zombies nunca se pasara de esa cantidad y ++ se incrementa o aumenta */ 
No es la mejor definicion, es medio obio que cuando algo se incrementa aumente :/
Porque el check_level es public?
Porque haces Niveles((g_level[id]+1)) y no Niveles(g_level[id]+1)?
Porque la variable g_levels[33] tiene 33 celdas, si hay 250 niveles?
Código PHP:
    // hacemos dos condicionales o sentencias 
    
g_ammopacks[attacker]++ // se le sumaran ap
    
g_exp[attacker]+= 50 // se le dara 50 de exp esto se puede cambiar
    
check_level(attacker// chequeamos el public 
Como lo pusiste no tenia sentido, ademas tenes que checkar que la victima sea valida y el atacante este vivo

Bueno son algunas cositas que vi, espero que lo arregles
Gracias por tus observaciones Kane pero asi lo tengo yo y me anda bien pero bueno, ademas la variable tiene 33 celdas y haci 250 niveles por algo hice un define no crees?
si subo 20 niveles de golpe, me salen 20 prints.. pienso que deberías mejorar eso.
Como RauliTop?
Esto tira error , pero lo veo bien, no se que es lo que puede estar mal aca
Código PHP:
while (g_exp[id] >= Niveles(g_level[id]+1)? && g_level[id] <  NIVEL_MAX// esto es un while que nos dara el nivel si tenemos la experiencia necesaria 
Código PHP:
while (g_exp[id] >= Niveles(g_level[id]+1)? && g_level[id] <  NIVEL_MAX
--->
Código PHP:
while (g_exp[id] >= Niveles(g_level[id]+1) && g_level[id] <  NIVEL_MAX
Osea ya lo arregle Kane Gracias man
Código PHP:
// check public level
public check_level(id
    {    
    
// Upload level
    
while (g_exp[id] >= Niveles(g_level[id]+1) && g_level[id] <  NIVEL_MAX// esto es un while que nos dara el nivel si tenemos la experiencia necesaria
    
{
        
g_level[id]++ // aqui se le incrementa el nivel solo sera uno
        
zp_colored_print(id"^x03[ZP]^x04 Felicidades! Has Subido al nivel: ^x03%d^x01"g_level[id]) // mensaje de cuanto subes nivel 
    
}

----------->
Código PHP:
public check_level(id) {    
    
    while( 
g_exp[id] >= next_level(g_level[id] ) ) 
    {
        
g_level[id]++ 
        
g_exp[id] = 0
        zp_colored_print
(id"^x03[ZP]^x04 Felicidades! Has Subido al nivel: ^x03%d^x01"g_level[id]) 
    }

cuando me subo los APS con la base de datos no me sube de LVL

Yo saque la variable g_exp y subo los lvl por aps ; y me quedo en lvl 1 por mas que tenga 10mil aps
(14/04/2014, 06:43 PM)kirito escribió: [ -> ]Como RauliTop?

Deberias saberlo dsp de todo estas haciendo un tutorial se supone que estas capacitado para explicar...

Saca el msj del while
(14/04/2014, 07:55 PM)Evil Spiret escribió: [ -> ]cuando me subo los APS con la base de datos no me sube de LVL

Yo saque la variable g_exp y subo los lvl por aps ; y me quedo en lvl 1 por mas que tenga 10mil aps

usa el tutorial de mono fusionado con el mio y haci si sirve te lo aseguro Gran sonrisa
(14/04/2014, 09:18 PM)kirito escribió: [ -> ]
(14/04/2014, 07:55 PM)Evil Spiret escribió: [ -> ]cuando me subo los APS con la base de datos no me sube de LVL

Yo saque la variable g_exp y subo los lvl por aps ; y me quedo en lvl 1 por mas que tenga 10mil aps

usa el tutorial de mono fusionado con el mio y haci si sirve te lo aseguro Gran sonrisa

Deberia funcionar sin tutoriales externos ....
1 tutorial 1 objetivo.
(14/04/2014, 09:18 PM)kirito escribió: [ -> ]
(14/04/2014, 07:55 PM)Evil Spiret escribió: [ -> ]cuando me subo los APS con la base de datos no me sube de LVL

Yo saque la variable g_exp y subo los lvl por aps ; y me quedo en lvl 1 por mas que tenga 10mil aps

usa el tutorial de mono fusionado con el mio y haci si sirve te lo aseguro Gran sonrisa

Podes pasarmelo ?
Gracias.
Claro es facilito mp porfavor
Disculpenme por revivir el thread Whatdone

(14/04/2014, 04:37 PM)Kane escribió: [ -> ]
Código PHP:
Porque la variable g_levels[33tiene 33 celdassi hay 250 niveles

Que pasa que tenga [33] y 250 niveles? afecta en algo?
disculpen mi ignoracia Cutecry
Pero si tendria en tal caso 100 Niveles maximo como se podria?
(09/08/2016, 09:39 AM)wester escribió: [ -> ]Disculpenme por revivir el thread Whatdone

(14/04/2014, 04:37 PM)Kane escribió: [ -> ]
Código PHP:
Porque la variable g_levels[33tiene 33 celdassi hay 250 niveles

Que pasa que tenga [33] y 250 niveles? afecta en algo?
disculpen mi ignoracia Cutecry
Pero si tendria en tal caso 100 Niveles maximo como se podria?

No tiene nada que ver, la guia esta bien, las 33 celdas es para indexar ( 1 celda por jugador )