[Eluna] Guardia AntiPVP

Desde
12 Jan 2023
Mensajes
103
Reacciones
104
Honor
67
Creador del tema
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:
Necesitas, Acceder o Registrarse para ver el contenido.
 
Ú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.
 
Back
Top