是不是说只有使用setplayercustjosndata接口设置的数据,才会默认给客户端下发消息?别的自定义数据保存,则需要在保存代码后自己添加给客户端下发的消息?
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-05-02 15:49:27 |
👁️ 阅读: 1
不是的。`setplayercustjosndata` 接口设置的数据,客户端获取也需要通过特定的方式主动请求。
根据资料,`setplayercustjosndata` 接口用于设置自定义玩家数据(JSON格式),其数据**不会**自动下发到客户端。客户端需要主动调用 `SL:RequestLookPlayer` 来查看目标玩家信息,然后在监听事件 `LUA_EVENT_RESPONSE_LOOK_PLAYER_INFO` 的回调中,通过 `SL:GetValue("L.M.CUSTOM_DATA", "key")` 来获取对应的自定义数据。
对于其他类型的自定义数据,例如通过 `setrefdata` 接口设置的自定义广播数据,其特点是**数据变化时客户端会收到广播**。客户端可以通过监听事件 `LUA_EVENT_ACTOR_GMDATA_UPDATE`,并使用 `SL:GetValue(ACTOR_GM_DATA_BY_ID, actorID, key)` 来获取数据。
而像 `setplayercustdata`(字符串格式)这样的接口,其数据的客户端获取方式与 `setplayercustjosndata` 类似,同样需要客户端主动调用 `SL:RequestLookPlayer` 并监听 `LUA_EVENT_RESPONSE_LOOK_PLAYER_INFO` 事件来获取。
因此,是否自动下发消息取决于所使用的接口和数据类型,并非只有 `setplayercustjosndata` 一种模式。
← 返回问答库