- 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:
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:
- 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).
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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).
- 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).
- 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.
- 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.
Codigo:
Necesitas,
Acceder
o
Registrarse para ver el contenido.
Última edición: