[Eluna] Crea tu Custom Battleground (BG)

Desde
12 Jan 2023
Mensajes
103
Reacciones
102
Honor
67
Si fui de ayuda para ti te agradecería mucho si me sigues en Twitter: https://twitter.com/Mavisxga?t=WW5uESbvP8In4t9ZyhceCw&s=09

Informe detallado sobre cómo funciona el código:

El código proporcionado es un script en Lua que implementa un campo de batalla para un juego basado en World of Warcraft (WoW) con ciertas características y mecánicas específicas. A continuación, se presenta una explicación detallada de cómo funciona el código:

  1. Definición de Variables:Las primeras líneas del código declaran y definen varias variables que controlan diferentes aspectos del campo de batalla. Estas variables tienen comentarios explicativos para su comprensión:
  • Lives, HordeLives, y AllianceLives: Representan la cantidad de vidas que tiene cada equipo y con las que comienzan tanto la Horda como la Alianza.
  • RequiredPlayers: Indica la cantidad mínima de jugadores requeridos para comenzar el campo de batalla. No es por equipo, sino el total de jugadores necesarios.
  • RewardID: Si se establece en un valor distinto de cero, otorgará una recompensa a todos los miembros del equipo ganador cuando termine el campo de batalla.
  • BroadcastKills: Si se establece en true, transmitirá a todos los jugadores del campo de batalla las muertes que ocurran durante el juego.
  1. Ubicaciones Iniciales y de Teletransportación:A continuación, el código define las ubicaciones iniciales del campo de batalla para la Horda y la Alianza, representadas por las variables AMap, AX, AY, AZ y HMap, HX, HY, HZ, respectivamente. Cuando los jugadores se unen al campo de batalla, se teletransportan a estas ubicaciones.
También se especifican las ubicaciones a las que se teletransportarán todos los jugadores una vez que finalice el campo de batalla, a través de las variables HomeMA, HomeXA, HomeYA, HomeZA y HomeMH, HomeXH, HomeYH, HomeZH para la Alianza y la Horda, respectivamente.

  1. Comprobación de Compatibilidad:El código realiza una comprobación para asegurarse de que el script sea compatible con el motor LuaHypArc. Si no es así, muestra un mensaje de error.
  2. Inicialización y Variables de Control:Se inicializan varias variables de control que se utilizarán más adelante en el script. Por ejemplo, players, Horde, y Alliance son tablas que almacenarán a los jugadores que se unen al campo de batalla y separa a los jugadores entre los equipos de la Horda y la Alianza. La variable InGame se utiliza para determinar si el campo de batalla está en progreso o no.
Además, el código establece la variable message en 4 y CountDown en 60. Estas variables se utilizan para controlar la frecuencia con la que se envían mensajes y se realiza una cuenta regresiva antes de comenzar el campo de batalla.

  1. Funciones Principales:El código define varias funciones que son esenciales para el funcionamiento del campo de batalla:
  • ProcessQueForBattleground(): Esta función se ejecuta periódicamente para comprobar si hay suficientes jugadores para comenzar el campo de batalla. Si la cantidad de jugadores supera el número mínimo requerido (RequiredPlayers), se inicia el campo de batalla y los jugadores son asignados aleatoriamente a la Horda o la Alianza. Se establecen las vidas iniciales y se envían mensajes a los jugadores.
  • Game_Start_Battleground_Countdown(): Esta función inicia una cuenta regresiva antes de que comience el campo de batalla. Envía mensajes a los jugadores informándoles sobre el tiempo restante antes de que comience el juego.
  • JoinQue(plr): Esta función permite a los jugadores unirse al campo de batalla. Comprueba si el campo de batalla ya está en progreso o si el jugador ya se encuentra en la cola. Si no es así, agrega al jugador a la cola.
  • ResetBG(): Esta función se ejecuta cuando el campo de batalla termina. Teletransporta a todos los jugadores a sus ubicaciones de inicio, restablece las vidas y reinicia las tablas de jugadores y equipos.
  1. Manejo de Muertes:El código registra un servidor hook para manejar las muertes de jugadores en el campo de batalla (SERVER_HOOK_KILL_PLAYER_BG). Cuando un jugador muere en el campo de batalla, se verifica si está jugando en el campo de batalla y si pertenece a la Horda o la Alianza. Se disminuye el contador de vidas del equipo correspondiente y se envían mensajes a los jugadores sobre el resultado de la muerte (por ejemplo, si ganó la Horda o la Alianza). Si un equipo se queda sin vidas, se declara al otro equipo como ganador y se otorgan las recompensas (si RewardID es distinto de cero). Luego, se llama a la función ResetBG() para reiniciar el campo de batalla.
  2. Funciones de Debugging:Al final del código, hay funciones destinadas a fines de depuración que no son parte del funcionamiento principal del campo de batalla.
Resumen:En resumen, el código implementa un campo de batalla para un juego basado en WoW, donde los jugadores pueden unirse y se dividen aleatoriamente en dos equipos: la Horda y la Alianza. El campo de batalla comienza cuando hay suficientes jugadores en la cola, y los jugadores luchan entre sí hasta que un equipo se queda sin vidas. Al finalizar, los jugadores son teletransportados de regreso a sus ubicaciones iniciales, y se otorgan recompensas al equipo ganador si RewardID es distinto de cero. El código también incluye funciones de debugging para facilitar las pruebas y el desarrollo.


Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.
 
Última edición:

Crea una cuenta o inicia sesión para comentar

Debes ser usuario para poder dejar un comentario.

¡Regístrate!

Crea una cuenta en nuestra comunidad. ¡Es fácil!

Acceder

¿Ya tienes una cuenta? Accede aquí

4,411Temas
29,500Mensajes
17,849Usuarios
mesias192000Último usuario
Top