Mensajes: 154
Temas: 57
Registro en: Dec 2017
Reputación:
0
24/09/2019, 02:45 PM
(Última modificación: 24/09/2019, 03:33 PM por Mariano Gyt. Edited 2 times in total.)
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
Mensajes: 299
Temas: 44
Registro en: Aug 2016
Reputación:
2
Como quieres que alguien te ayude si no dejas tu codigo donde adaptaste los rangos
Mensajes: 154
Temas: 57
Registro en: Dec 2017
Reputación:
0
(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[][] = { 1, 2, 3, 4, 5}; // 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] = 1 // Le seteamos el nivel 1 Frags[id] = 0 // 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(85, 255, 212, 0.80, 0.12, 0, 6.0, 12.0) ShowSyncHudMsg(id, HudPrincipal, "Nivel: %d^nFrags: %d/%d^nRango: %s", Nivel[id], Frags[id], siguientenivel(Nivel[id]), Nombre_Rangos[Rangos[id]]) }
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
En la función que registras la muerte del jugador chequeas el rango?...
Mensajes: 154
Temas: 57
Registro en: Dec 2017
Reputación:
0
(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
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
(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.
Mensajes: 154
Temas: 57
Registro en: Dec 2017
Reputación:
0
(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
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
(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)
Mensajes: 154
Temas: 57
Registro en: Dec 2017
Reputación:
0
(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[][] = { 1, 2, 3, 4, 5, 6}; // 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] = 1 // Le seteamos el nivel 1 Frags[id] = 0 // 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(85, 255, 212, 0.80, 0.12, 0, 6.0, 12.0) ShowSyncHudMsg(id, HudPrincipal, "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
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
Ejecuta la función de check_rango en la función donde subes el nivel del jugador.
Mensajes: 33
Temas: 0
Registro en: Jun 2019
Reputación:
2
Cambia esto (ya que no es una matriz, es un array de enteros)
Código PHP: new const Niveles_Rangos[][] = {1, 2, 3, 4, 5, 6}; // ==> new const Niveles_Rangos[] = {1, 2, 3, 4, 5, 6};
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.
Mensajes: 154
Temas: 57
Registro en: Dec 2017
Reputación:
0
Muchas gracias los que ayudaron, solucionado
|