要获取选中目标的actorID,根据浮生梦老师前端课程内容,可以通过以下方式:
```lua
-- 方法1:通过LUA_EVENT_TARGET_CAHNGE事件获取
function MainTarget.OnTargetChange()
-- 这里MainTarget._targetID就是选中目标的actorID
local targetID = MainTarget._targetID
SL:print("当前选中目标ID:", targetID)
end
-- 方法2:通过ACTOR_DATA获取目标数据
local actorData = SL:GetMetaValue("ACTOR_DATA", MainTarget._targetID)
if actorData then
local actorID = SL:GetMetaValue("ACTOR_ID", actorData)
SL:print("目标actorID:", actorID)
end
-- 方法3:直接使用MainTarget._targetID
local selectedTargetID = MainTarget._targetID
if selectedTargetID and selectedTargetID > 0 then
SL:print("选中目标ID:", selectedTargetID)
-- 可以进一步获取目标信息
local targetName = SL:GetMetaValue("ACTOR_NAME", selectedTargetID)
local targetHP = SL:GetMetaValue("ACTOR_HP", selectedTargetID)
local targetMaxHP = SL:GetMetaValue("ACTOR_MAXHP", selectedTargetID)
SL:print("目标名称:", targetName)
SL:print("目标血量:", targetHP, "/", targetMaxHP)
end
```
在实际使用中,通常需要先注册目标改变事件:
```lua
-- 注册目标改变事件
SL:RegisterLUAEvent(LUA_EVENT_TARGET_CAHNGE, "你的模块名", 你的回调函数)
-- 示例
function YourModule.OnTargetChange()
local targetID = MainTarget._targetID
if targetID and targetID > 0 then
-- 这里就可以使用目标ID了
SL:print("目标已改变,新目标ID:", targetID)
end
end
```
注意:`MainTarget._targetID` 是前端框架中存储当前选中目标ID的全局变量,当玩家选中或切换目标时,这个值会自动更新。