Simplemente debe reconocer si el jugador esta usando un objeto o item para efectuar el tele tranporte, por ejemplo: portales, piedra de hogar etc
Entiendo. En ese caso, necesitarás interceptar el evento de uso de objeto, y luego verificar si el objeto usado es un elemento de teletransporte permitido. El problema es que la API de Lua en WoW no proporciona un método específico para interceptar el uso de objeto o item.
Quizás puedas intentar con la API `OnUse` que se activa cuando un jugador usa un objeto. Sin embargo, esta API no está disponible en el contexto de scripts Lua en TrinityCore y requeriría un módulo de C++ personalizado para exponerla a Lua.
Aquí hay un pseudocódigo de cómo se vería esto:
```lua
-- La lista de ID de objetos de teletransporte permitidos
local allowedTeleportItems = { [6948] = true, -- Piedra de hogar
[110560] = true, -- Piedra de hogar de la ciudadela
-- Agregue más ID de objetos aquí
}
-- Función para verificar si el movimiento es legítimo
local function IsLegitimateTeleport(player)
local playerGUID = player:GetGUIDLow()
-- Asumamos que playerLastUsedItem es una tabla que almacena el último objeto usado por cada jugador
local lastUsedItem = playerLastUsedItem[playerGUID]
-- Si el último objeto utilizado es un objeto de teletransporte permitido
if lastUsedItem and allowedTeleportItems[lastUsedItem] then
return true
end
return false
end
-- Necesitarías interceptar el evento "OnUse" (esto requeriría un módulo de C++ personalizado)
function OnUse(event, player, item, spell, skipCheck)
local playerGUID = player:GetGUIDLow()
-- Almacene el ID del objeto que el jugador acaba de usar
playerLastUsedItem[playerGUID] = item:GetEntry()
end
```
Lamentablemente, el manejo de eventos de uso de objeto no es tan simple en la API Lua de WoW y requeriría alguna personalización en el lado del servidor, o tal vez un enfoque completamente diferente. Es posible que desees considerar buscar la ayuda de un desarrollador de TrinityCore experimentado o preguntar en los foros de TrinityCore para obtener más ayuda.