在这个事件LUA_EVENT_TALKTONPC 帮我写一个点击时候检查NPC的和自己的距离如果大于5码就return
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-17 16:33:19 |
👁️ 阅读: 8
在 `LUA_EVENT_TALKTONPC` 事件中,你可以这样写来检查距离:
```lua
SL:RegisterLUAEvent(LUA_EVENT_TALKTONPC, "MyNPCModule", function(tbl)
-- 获取玩家坐标
local playerX = SL:GetMetaValue("ACTOR_POSITION_X", 0)
local playerY = SL:GetMetaValue("ACTOR_POSITION_Y", 0)
-- 假设NPC坐标从tbl中获取(根据实际情况调整)
local npcX = tbl.x or 0
local npcY = tbl.y or 0
-- 计算距离(使用勾股定理)
local distance = math.sqrt((npcX - playerX)^2 + (npcY - playerY)^2)
-- 如果距离大于5码,直接return
if distance > 5 then
SL:Print("距离太远,无法交互")
return
end
-- 距离在5码内,继续执行NPC对话逻辑
-- 这里写你的NPC对话代码
UIManager:OPEN(ObjCfg.NPCDialog, tbl)
end)
```
注意:实际NPC坐标的获取方式需要根据你的游戏数据格式调整,`tbl.x` 和 `tbl.y` 可能需要替换为正确的字段名。
← 返回问答库