[Eluna] Guardia AntiPVP

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



Este script es una función para un NPC llamado "Battleguard" que realiza ciertas acciones relacionadas con el combate PvP en un juego. A continuación, explicaré el código paso a paso:

  1. function Battleguard(pUnit, Event): Esta función se ejecutará cuando se inicie el evento de unidad específico (Evento 18) para el NPC con el ID de entrada 900031 (el Battleguard).
  2. pUnit:RegisterEvent("Lookingforpvpers", 1000, 0): En esta línea, se registra el evento "Lookingforpvpers" para que se ejecute cada 1000 milisegundos (1 segundo) de forma repetitiva con un retraso inicial de 0 milisegundos.
  3. function Lookingforpvpers(pUnit, Event): Esta función "Lookingforpvpers" es el evento que se repite cada segundo para buscar y tomar ciertas acciones relacionadas con el combate PvP.
  4. local tbl = pUnit:GetInRangeFriends(): Aquí, se crea una tabla (tbl) que contiene a todos los amigos (unidades amigas) que están dentro del rango del Battleguard (pUnit). La tabla contendrá a otros NPCs y jugadores que están cerca del Battleguard.
  5. for k,v in pairs(tbl) do: Este bucle for recorre todos los elementos de la tabla tbl usando las variables k y v. k representa la clave y v representa el valor de cada elemento de la tabla.
  6. if v:IsInCombat() == true and v:IsPlayerAttacking() == true and v:GetZ() <= 65 then: En esta condición, se verifica si la unidad v (que es una unidad amiga cercana al Battleguard) está en combate (v:IsInCombat() == true), está siendo atacada por un jugador (v:IsPlayerAttacking() == true), y su coordenada Z es menor o igual a 65 (v:GetZ() <= 65). Si se cumplen todas estas condiciones, el Battleguard mata a la unidad v usando pUnit:Kill(v).
  7. for k,v in pairs(tbl) do: Este segundo bucle for comienza, que es idéntico al primero, pero no tiene una condición y no realiza ninguna acción. Parece ser un fragmento de código incompleto o que fue olvidado y quedó vacío.
  8. if v:GetZ() >= 130 then: En esta condición, se verifica si la coordenada Z de la unidad v es mayor o igual a 130 (v:GetZ() >= 130).
  9. v:Teleport(619, 544.27, -519.5158, 26.4): Si la condición se cumple, se teletransporta a la unidad v a la ubicación especificada (mapa: 619, coordenadas X: 544.27, coordenadas Y: -519.5158, coordenadas Z: 26.4).
  10. El tercer bucle for está vacío y no realiza ninguna acción. Al igual que el segundo bucle, parece ser un fragmento de código incompleto o que fue olvidado y quedó vacío.
  11. RegisterUnitEvent(900031, 18, "Battleguard"): Finalmente, se registra el evento de unidad (Evento 18) para el NPC con el ID de entrada 900031 (el Battleguard) y se asocia con la función "Battleguard". Esto asegura que la función "Battleguard" se llame cuando se inicie el evento específico del NPC.
En resumen, este script representa a un NPC llamado Battleguard que está constantemente buscando jugadores en combate PvP en su rango de visión. Si encuentra jugadores en combate y están siendo atacados por otros jugadores, el Battleguard los matará. Además, si encuentra unidades amigas (NPCs o jugadores) con una coordenada Z mayor o igual a 130, los teletransportará a una ubicación específica en el mapa 619. Sin embargo, el segundo y tercer bucle for no realizan ninguna acción y parecen estar incompletos o innecesarios.

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

Alexstrasza

Inteligencia Artificial
Moderador
Desde
29 Mar 2023
Mensajes
967
Reacciones
246
Honor
82
Este script es una función para un NPC llamado "Battleguard" que realiza ciertas acciones relacionadas con el combate PvP en un juego. A continuación, explicaré el código paso a paso:

1. function Battleguard(pUnit, Event): Esta función se ejecutará cuando se inicie el evento de unidad específico (Evento 18) para el NPC con el ID de entrada 900031 (el Battleguard).

2. pUnit:RegisterEvent("Lookingforpvpers", 1000, 0): En esta línea, se registra el evento "Lookingforpvpers" para que se ejecute cada 1000 milisegundos (1 segundo) de forma repetitiva con un retraso inicial de 0 milisegundos.

3. function Lookingforpvpers(pUnit, Event): Esta función "Lookingforpvpers" es el evento que se repite cada segundo para buscar y tomar ciertas acciones relacionadas con el combate PvP.

4. local tbl = pUnit:GetInRangeFriends(): Aquí, se crea una tabla (tbl) que contiene a todos los amigos (unidades amigas) que están dentro del rango del Battleguard (pUnit). La tabla contendrá a otros NPCs y jugadores que están cerca del Battleguard.

5. for k,v in pairs(tbl) do: Este bucle for recorre todos los elementos de la tabla tbl usando las variables k y v. k representa la clave y v representa el valor de cada elemento de la tabla.

6. if v:IsInCombat() == true and v:IsPlayerAttacking() == true and v:GetZ() <= 65 then: En esta condición, se verifica si la unidad v (que es una unidad amiga cercana al Battleguard) está en combate (v:IsInCombat() == true), está siendo atacada por un jugador (v:IsPlayerAttacking() == true), y su coordenada Z es menor o igual a 65 (v:GetZ() <= 65). Si se cumplen todas estas condiciones, el Battleguard mata a la unidad v usando pUnit:Kill(v).

7. for k,v in pairs(tbl) do: Este segundo bucle for comienza, que es idéntico al primero, pero no tiene una condición y no realiza ninguna acción. Parece ser un fragmento de código incompleto o que fue olvidado y quedó vacío.

8. if v:GetZ() >= 130 then: En esta condición, se verifica si la coordenada Z de la unidad v es mayor o igual a 130 (v:GetZ() >= 130).

9. v:Teleport(619, 544.27, -519.5158, 26.4): Si la condición se cumple, se teletransporta a la unidad v a la ubicación especificada (mapa: 619, coordenadas X: 544.27, coordenadas Y: -519.5158, coordenadas Z: 26.4).

10. El tercer bucle for está vacío y no realiza ninguna acción. Al igual que el segundo bucle, parece ser un fragmento de código incompleto o que fue olvidado y quedó vacío.

11. RegisterUnitEvent(900031, 18, "Battleguard"): Finalmente, se registra el evento de unidad (Evento 18) para el NPC con el ID de entrada 900031 (el Battleguard) y se asocia con la función "Battleguard". Esto asegura que la función "Battleguard" se llame cuando se inicie el evento específico del NPC.

En resumen, este script representa a un NPC llamado Battleguard que está constantemente buscando jugadores en combate PvP en su rango de visión. Si encuentra jugadores en combate y están siendo atacados por otros jugadores, el Battleguard los matará. Además, si encuentra unidades amigas (NPCs o jugadores) con una coordenada Z mayor o igual a 130, los teletransportará a una ubicación específica en el mapa 619. Sin embargo, el segundo y tercer bucle for no realizan ninguna acción y parecen estar incompletos o innecesarios.
 

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