No me sube rango
#1
Hola, adapte esto, todo bien, pero al ser lvl dos, no me cambia el Rango.. osea se queda con el rango del lvl 1 - https://amxmodx-es.com/Thread-TUT-Sistema-De-Rangos
Alguna Slucion?


Correcion* en el hud como deberia ir? Es eso lo que no me cambia
Lml
Responder
#2
Como quieres que alguien te ayude si no dejas tu codigo donde adaptaste los rangos
Responder
#3
(24/09/2019, 04:40 PM)+rdNN! escribió: Como quieres que alguien te ayude si no dejas tu codigo donde adaptaste los rangos

Tienes razon, disculpa, aqui te dejo el codigo:

Código PHP:
new Rangos[33]
new const 
Niveles_Rangos[][] = { 12345}; // Registramos los Niveles necesarios para los Rangos.
new Nombre_Rangos[][] = { // Registramos los Nombres de los Rangos correspondiente al Nivel.
    
"Nuevo"// Nombre del Rango número 1.
    
"Aprendiz"// Nombre del Rango número 2.
    
"Progresando"// Nombre del Rango número 3.
    
"Capo"// Nombre del Rango número 4.
    
"Pro" // Nombre del Rango número 5.
};
public 
client_putinserver(id)
{
    
check_rango(id); // Checkeamos los Rangos que tiene.
    
g_option[id][PLAYER_INVISIBILITY] = false;
    
g_option[id][WATER_INVISIBILITY] = false;
    
g_color_select[id] = 4;
    
g_trap_color[id][0] = 255.0;
    
g_trap_color[id][1] = 0.0;
    
g_trap_color[id][2] = 255.0;
    
    
g_life[id] = 0;

    
Nivel[id] = // Le seteamos el nivel 1
    
Frags[id] = // Le seteamos los frags a 0
    
    
set_task(0.5"client_jointeam"id);
    
set_task(2.0"client_welcome"id);
    
set_task(1.0"ShowHUD"id+TASK_HUD__"b"// Seteamos el task para que se muestre el hud
}

public 
check_rango(id
// Registramos la función en la cual checkeamos el Rango que tiene según su Nivel.
    
if (Nivel[id] >= Niveles_Rangos[id][Rangos[id]]) // Verificamos si el Rango corresponde con el Nivel.
    

        
Rangos[id]++ // Si no es el mismo, aumentamos al Rango correspondiente.
    
}
    
set_task(0.1"check_rango"id// Repetimos la función para que se checkeen los Rangos constantemente.
    
return PLUGIN_HANDLED
}

//Y el hud seia este:
public ShowHUD(taskid)
{
    static 
id;id HUD_ID
    
    
if(!is_user_alive(id))
        return;
        
    
set_hudmessage(852552120.800.1206.012.0)
    
ShowSyncHudMsg(idHudPrincipal"Nivel: %d^nFrags: %d/%d^nRango: %s"Nivel[id], Frags[id], siguientenivel(Nivel[id]), Nombre_Rangos[Rangos[id]])

Lml
Responder
#4
En la función que registras la muerte del jugador chequeas el rango?...
Responder
#5
(24/09/2019, 05:31 PM)Chema escribió: En la función que registras la muerte del jugador chequeas el rango?...
Lo adapte como esta en el tut, no
Lml
Responder
#6
(24/09/2019, 06:09 PM)Mariano Gyt escribió:
(24/09/2019, 05:31 PM)Chema escribió: En la función que registras la muerte del jugador chequeas el rango?...
Lo adapte como esta en el tut, no

Pues normal que el rango no se actualice, debes chequear el rango en la función que registras las kills.
Responder
#7
(24/09/2019, 06:27 PM)Chema escribió:
(24/09/2019, 06:09 PM)Mariano Gyt escribió:
(24/09/2019, 05:31 PM)Chema escribió: En la función que registras la muerte del jugador chequeas el rango?...
Lo adapte como esta en el tut, no

Pues normal que el rango no se actualice, debes chequear el rango en la función que registras las kills.

Como? Si esto solo al subir de nivel, se deberia cambiar el rango, de igualmanera, todo esta bien, solamente esto:
Código PHP:
Nombre_Rangos[Rangos[id]] 
Parece no andarme, porque al ser lvl 2, no me actualiza al rango que deberia ser en el lvl 2, se queda con el nombre del rango lvl1
Lml
Responder
#8
(24/09/2019, 11:35 PM)Mariano Gyt escribió:
(24/09/2019, 06:27 PM)Chema escribió:
(24/09/2019, 06:09 PM)Mariano Gyt escribió:
(24/09/2019, 05:31 PM)Chema escribió: En la función que registras la muerte del jugador chequeas el rango?...
Lo adapte como esta en el tut, no

Pues normal que el rango no se actualice, debes chequear el rango en la función que registras las kills.

Como? Si esto solo al subir de nivel, se deberia cambiar el rango, de igualmanera, todo esta bien, solamente esto:
Código PHP:
Nombre_Rangos[Rangos[id]] 
Parece no andarme, porque al ser lvl 2, no me actualiza al rango que deberia ser en el lvl 2, se queda con el nombre del rango lvl1

Ya que no muestras el código... ve a la parte en donde subes de nivel al jugador y pon esto debajo check_rango(id)
Responder
#9
(25/09/2019, 04:15 AM)Chema escribió:
(24/09/2019, 11:35 PM)Mariano Gyt escribió:
(24/09/2019, 06:27 PM)Chema escribió:
(24/09/2019, 06:09 PM)Mariano Gyt escribió:
(24/09/2019, 05:31 PM)Chema escribió: En la función que registras la muerte del jugador chequeas el rango?...
Lo adapte como esta en el tut, no

Pues normal que el rango no se actualice, debes chequear el rango en la función que registras las kills.

Como? Si esto solo al subir de nivel, se deberia cambiar el rango, de igualmanera, todo esta bien, solamente esto:
Código PHP:
Nombre_Rangos[Rangos[id]] 
Parece no andarme, porque al ser lvl 2, no me actualiza al rango que deberia ser en el lvl 2, se queda con el nombre del rango lvl1

Ya que no muestras el código... ve a la parte en donde subes de nivel al jugador y pon esto debajo check_rango(id)

Código PHP:
new const Niveles_Rangos[][] = { 123456}; // Registramos los Niveles necesarios para los Rangos.

/* === GLOBAL VARIABLES === */
new Nombre_Rangos[][] = { // Registramos los Nombres de los Rangos correspondiente al Nivel.
    
"Probando"// Nombre del Rango número 1.
    
"Aprendiz"// Nombre del Rango número 2.
    
"Progresando"// Nombre del Rango número 3.
    
"Capo"// Nombre del Rango número 4.
    
"Pro"// Nombre del Rango número 5.
    
"Wow"
};

new 
Rangos[33]

//en plugin init
register_clcmd("say /rango""cmdRango");

public 
client_putinserver(id)
{
    
g_option[id][PLAYER_INVISIBILITY] = false;
    
g_option[id][WATER_INVISIBILITY] = false;
    
g_color_select[id] = 4;
    
g_trap_color[id][0] = 255.0;
    
g_trap_color[id][1] = 0.0;
    
g_trap_color[id][2] = 255.0;
    
    
g_life[id] = 0;

    
Nivel[id] = // Le seteamos el nivel 1
    
Frags[id] = // Le seteamos los frags a 0
    
    
check_rango(id); // Checkeamos los Rangos que tiene.
    
set_task(0.5"client_jointeam"id);
    
set_task(2.0"client_welcome"id);
    
set_task(1.0"ShowHUD"id+TASK_HUD__"b"// Seteamos el task para que se muestre el hud
}

public 
check_rango(id
// Registramos la función en la cual checkeamos el Rango que tiene según su Nivel.

    
if (Nivel[id] >= Niveles_Rangos[id][Rangos[id]]) // Verificamos si el Rango corresponde con el Nivel.
    

        
Rangos[id]++ // Si no es el mismo, aumentamos al Rango correspondiente.
    
}
    
set_task(0.1"check_rango"id// Repetimos la función para que se checkeen los Rangos constantemente.
    
return PLUGIN_HANDLED
}

public 
ShowHUD(taskid)
{
    static 
id;id HUD_ID
    
    
if(!is_user_alive(id))
        return;
        
    
set_hudmessage(852552120.800.1206.012.0)
    
ShowSyncHudMsg(idHudPrincipal"Nivel: %d^nFrags: %d/%d^nRango: %s"Nivel[id], Frags[id], siguientenivel(Nivel[id]), Nombre_Rangos[Rangos[id]])


Esto seria todo para que ande el sistema de rangos, pero todavia no logro hacer cuando suba de lvl suba de rango, ya que puse que: el rango numero 2 sea lvl 2, no me cambia el probando por aprendiz.. en el hud
Lml
Responder
#10
Ejecuta la función de check_rango en la función donde subes el nivel del jugador.
Responder
#11
Cambia esto (ya que no es una matriz, es un array de enteros)

Código PHP:
new const Niveles_Rangos[][] = {123456};
// ==>
new const Niveles_Rangos[] = {123456}; 

Esto está mal ya que estás usando el index del jugador en una matriz donde el index no tiene nada que ver.

Código PHP:
if (Nivel[id] >= Niveles_Rangos[id][Rangos[id]])
// ==>
if (Nivel[id] >= Niveles_Rangos[Rangos[id]] 

Con respecto al task

Código PHP:
set_task(0.1"check_rango"id

Esto lo podrías modificar tranquilamente cuando el jugador gane un nivel chequee si tiene un nivel suficiente para avanzar de rango, hacerlo de esa manera es inutil ya que si no sube nivel para que querrías ver si el jugador podría avanzar de rango o no.

También para que chequeas el nivel del jugador para un siguiente rango si cuando el cliente ingresa al servidor estás poniendo en 1 la variable de nivel. Asi como lo haces para los niveles y los frags, también tendrías que limpiar el field rangos ya que si un jugador se conecta podría tener un rango de otro jugador que estaba previamente conectado en el servidor.
Responder
#12
Muchas gracias los que ayudaron, solucionado
Lml
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)