[TUT] ZP sistema de niveles (Macro)
#1
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
Responder
#2
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
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Responder
#3
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?
Responder
#4
si subo 20 niveles de golpe, me salen 20 prints.. pienso que deberías mejorar eso.
(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
#5
Como RauliTop?
Responder
#6
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 
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#7
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
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Responder
#8
Osea ya lo arregle Kane Gracias man
Responder
#9
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]) 
    }

Responder
#10
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
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#11
(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
[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
Responder
#12
(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
Responder
#13
(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.
Responder
#14
(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.
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#15
Claro es facilito mp porfavor
Responder
#16
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?
Idioma: [Extrangez]
Nivel de Amistad: [Depende de ti]

Aportes:
[Mapas]
zm_impressive

zm_laberim
zm_bunkeriM 28%

Made in Venezuela
Responder
#17
(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 )
[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)