No me sube al rango correspondiente
#1
No entiendo! Porque al ser lvl correspondiente no me pone el rango que debe ser.. les dejo codigo:

Código PHP:
new g_rangos[33]

enum _:Info_Rangos 

    
RangosName[33], 
    
RangosNivel
}

new const 
Rangos[][Info_Rangos] = {
    { 
"Rango 1"1},
    { 
"Rango 2"2},
    { 
"Rango 3"3},
    { 
"Rango 4"4},
    { 
"Rango 5"5}
}

public 
rangos(id)
{
    if (
g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9)
    {
        
g_rangos[id]++
        
ChatColor(id"!g[AMX] !ySubiste al rango !g%s"Rangos[g_rangos[id]][RangosName])
    }


Y un ejemplo al subir de level:
Código PHP:
public level(id)
{
    while(
g_exp[id] >= level_up(g_level[id]) && g_level[id] < 100)
    {
        
g_level[id]++
        
ChatColor(id"!g[AMX] !ySubiste al nivel %d"g_level[id])
        
rangos(id//Deberia colocar esto al subir de level?
    
}


Por ejemplo siendo level 2, me aparece que soy rango 1 cuando deberia ser rango 2
Lml
Responder
#2
debes colocarlo en el sube nivel man

public level(id)
{
while(g_exp[id] >= level_up(g_level[id]) && g_level[id] < 100)
{
g_level[id]++
g_rangos[id]++
ChatColor(id, "!g[AMX] !ySubiste al rango, nivel %d", g_level[id])
}
}

no se si es asi bro iba hacer algo asi para mi zp Sonrisa ojala te sirva xd

guiate de este el de arriba esta mal :V lo saque del za
Código PHP:
// Update level and range
update_level(id)
{
    static 
sound[64];
    static 
levellevel g_level[id]
    static 
rangelevelrangelevel g_rangelevel[id]
    
    
// Upload level
    
while (g_experience[id] >= cost_levelup((g_level[id]+1)) && g_level[id] < g_max_level)
        
g_level[id]++
            
    
// Reduce level
    
while (g_experience[id] < cost_levelup(g_level[id]) && g_level[id] > 1)
        
g_level[id]--
            
    
// Level changed?
    
if (g_level[id] > level)
    {
        
client_print(idprint_center,"^x04[ZA]^x01 Felicidades! Has ascendido a nivel: ^x04%d^x01"g_level[id])
        
ArrayGetString(sound_level_uprandom_num(0ArraySize(sound_level_up) - 1), soundcharsmax(sound))
        
OnePlaySound(idsound);
    }
    else if (
g_level[id] < level)
    {
        
client_print(idprint_center ,"^x04[ZA]^x01 Mala suerte! Has descendido a nivel: ^x04%d^x01"g_level[id])
        
ArrayGetString(sound_level_downrandom_num(0ArraySize(sound_level_down) - 1), soundcharsmax(sound))
        
OnePlaySound(idsound);
    }
    
    
// Upload range
    
while (g_level[id] >= cost_rangeup((g_rangelevel[id]+1)) && g_rangelevel[id] < g_max_range)
        
g_rangelevel[id]++
    
    
// Reduce range
    
while (g_level[id] < cost_rangeup(g_rangelevel[id]) && g_rangelevel[id] > 1)
        
g_rangelevel[id]--
    
    
// Range changed?
    
if (g_rangelevel[id] > rangelevel)
    {
        
ArrayGetString(g_range_namesg_rangelevel[id]-1g_rangename[id], charsmax(g_rangename[]))
        
client_print(idprint_center "^x04[ZA]^x01 Felicidades! Has ascendido a rango: ^x04%s^x01"g_rangename[id])
    }
    else if (
g_rangelevel[id] < rangelevel)
    {
        
ArrayGetString(g_range_namesg_rangelevel[id]-1g_rangename[id], charsmax(g_rangename[]))
        
client_print(idprint_center"^x04[ZA]^x01 Mala suerte! Has descendido a rango: ^x04%s^x01"g_rangename[id])
    }

Responder
#3
Código PHP:
new g_rango[33
new const 
cost_rango[] = { 1102030405070100130180200250300350 // Los niveles de los rangos
new const RANGOS[][] = { "Ciudadano""Recluta""Soldado""Soldado-Primero""Cabo""Cabo-Primero""Cabo-Mayor""Brigada""SubTeniente""Suboficial-Mayor""Coronel""Teniente-Coronel""Capitan""Jefe""Jefe-Mayor" // Los nombres de los rangos


public update_ap(idamountcheck)
{
    if (
check) goto check2 // Lo que hace el "goto" es, si la Funcion esta se llamo desde "check", el Plugin lo que hara, es llamar directamente a "check2".
   
    // Aca detectamos que si es Nivel Maximo no suba mas.
    
if (g_ammopacks[id] + amount NIVELES[sizeof NIVELES 1] - 1)
        return 
PLUGIN_HANDLED
    
    
// Le damos los APs correspondientes.
    
g_ammopacks[id] += amount
    
    
// Ya lo dijimos antes ^^.
    
check2:
    if(
amount 0)
    {
        if(
g_ammopacks[id] < NIVELES[g_level[id]] )
        {
            
g_level[id]--
            
update_ap(id, -11)
        }
    }
    else
    {
        if(
g_ammopacks[id] >= NIVELES[g_level[id]] )
        {
            
g_level[id]++
            
update_ap(id01
        }
    
checkrango(id)
    }
    
    return 
PLUGIN_HANDLED
}

public 
checkrango(id)
{
    while (
g_level[id] >= cost_rango[g_rango[id]]) // Hacemos un chequeo que cuando sea mayor o igual al nivel necesario
    
{
        
g_rango[id]++ // Aumenta de rango
        
zp_colored_print(id"^x04[ZE]^x03 Avanzaste al rango: ^x04%s^x01"RANGOS[g_rango[id]]) // Le mandamos un mensajito para el rango al que subio.
    
}

yo lo hice asi no se si anda bien prueba
Responder
#4
Nose, se queda siempre en el rango del lvl 1, alta paja, complica la vida los rangos
Lml
Responder
#5
(07/11/2019, 04:42 PM)Mariano Gyt escribió: No entiendo! Porque al ser lvl correspondiente no me pone el rango que debe ser.. les dejo codigo:

Código PHP:
new g_rangos[33]

enum _:Info_Rangos 

    
RangosName[33], 
    
RangosNivel
}

new const 
Rangos[][Info_Rangos] = {
    { 
"Rango 1"1},
    { 
"Rango 2"2},
    { 
"Rango 3"3},
    { 
"Rango 4"4},
    { 
"Rango 5"5}
}

public 
rangos(id)
{
    if (
g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9)
    {
        
g_rangos[id]++
        
ChatColor(id"!g[AMX] !ySubiste al rango !g%s"Rangos[g_rangos[id]][RangosName])
    }


Y un ejemplo al subir de level:
Código PHP:
public level(id)
{
    while(
g_exp[id] >= level_up(g_level[id]) && g_level[id] < 100)
    {
        
g_level[id]++
        
ChatColor(id"!g[AMX] !ySubiste al nivel %d"g_level[id])
        
rangos(id//Deberia colocar esto al subir de level?
    
}


Por ejemplo siendo level 2, me aparece que soy rango 1 cuando deberia ser rango 2

Código PHP:
if (g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9)
// -->
 
if (g_level[id] >= Rangos[g_rangos[id]][RangosNivel] && g_rangos[id] < charsmax(Rangos)) 
[Imagen: 76561198095047868.png]
Responder
#6
(08/11/2019, 01:29 AM)Skylar escribió:
(07/11/2019, 04:42 PM)Mariano Gyt escribió: No entiendo! Porque al ser lvl correspondiente no me pone el rango que debe ser.. les dejo codigo:

Código PHP:
new g_rangos[33]

enum _:Info_Rangos 

    
RangosName[33], 
    
RangosNivel
}

new const 
Rangos[][Info_Rangos] = {
    { 
"Rango 1"1},
    { 
"Rango 2"2},
    { 
"Rango 3"3},
    { 
"Rango 4"4},
    { 
"Rango 5"5}
}

public 
rangos(id)
{
    if (
g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9)
    {
        
g_rangos[id]++
        
ChatColor(id"!g[AMX] !ySubiste al rango !g%s"Rangos[g_rangos[id]][RangosName])
    }


Y un ejemplo al subir de level:
Código PHP:
public level(id)
{
    while(
g_exp[id] >= level_up(g_level[id]) && g_level[id] < 100)
    {
        
g_level[id]++
        
ChatColor(id"!g[AMX] !ySubiste al nivel %d"g_level[id])
        
rangos(id//Deberia colocar esto al subir de level?
    
}


Por ejemplo siendo level 2, me aparece que soy rango 1 cuando deberia ser rango 2

Código PHP:
if (g_level[id] >= Rangos[g_rangos[id] + 1][RangosNivel] && g_rangos[id] < 9)
// -->
 
if (g_level[id] >= Rangos[g_rangos[id]][RangosNivel] && g_rangos[id] < charsmax(Rangos)) 

Tampoco, deberia chekear rangos en alguna parte? ademas del subir de lvl?
Lml
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)