在客户端获取玩家的自定义数据
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-05-05 17:11:09 |
👁️ 阅读: 7
在客户端获取玩家自定义数据主要通过以下方式:
## 1. 查看其他玩家自定义数据
使用 `SL:RequestLookPlayer` 请求查看目标玩家信息,然后在 `LUA_EVENT_RESPONSE_LOOK_PLAYER_INFO` 事件回调中获取自定义数据:
```lua
-- 客户端代码
function MainBtnPanel:CallBack1()
local userId = SL:GetValue("USER_ID")
SL:RequestLookPlayer(userId, false, 66, {"测试1","测试2"})
end
function MainBtnPanel:OnLookPlayerInfo(...)
print("---------------------------OnLookPlayerInfo", SL:GetValue("L.M.CUSTOM_DATA", "测试1"))
end
function MainBtnPanel:RegisterEvent()
SL:RegisterLUAEvent(LUA_EVENT_RESPONSE_LOOK_PLAYER_INFO, "MainBtnPanel", handler(self, self.OnLookPlayerInfo))
end
```
## 2. 获取当前查看玩家的自定义数据
通过 `SL:GetValue("L.M.CUSTOM_DATA", key)` 获取指定键的自定义值:
- `"L.M.CUSTOM_DATA"` - 当前查看玩家自定义数据(脚本显示用)
- 参数:自定义键(字符串)
- 返回值:自定义值
## 3. 获取玩家自定义数据(脚本显示用)
使用 `SL:GetValue("PLAYER_CUSTOM_DATA")` 获取玩家自定义数据,返回值为table格式。
## 4. 获取选角列表中的角色自定义数据
使用 `SL:GetValue("PLAYER_CUSTOM_DATA_BY_INDEX", 选角列表id)` 获取指定角色的自定义数据。
## 5. 监听玩家自定义数据事件
注册 `LUA_EVENT_PLAYER_CUSTOMDATA` 事件监听其他玩家的自定义数据:
```lua
-- 参数1:UID
-- 参数2:自定义数据(table格式)
```
## 相关服务端接口
服务端设置自定义数据有两种格式:
- `setplayercustdata(actor, value)` - 字符串格式
- `setplayercustjosndata(actor, key, value)` - JSON格式(支持键值对)
注意:自定义键禁止使用大写字母。
← 返回问答库