[Eluna] Guardia AntiPVP

Maevis

ULTRA VIP
Creador
Colaborador
Participante
Explorador
Desde
12 Jan 2023
Mensajes
103
Reacciones
104
Honor
97
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.

Código:
Acceso requerido: Acceder o Registrarse para ver el código.
 
Última edición:
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.