详细讲解一下这些对象的添加自定义数据流程、接口定义、参数以及参数是否的限制,使用接口后是否会给客户端发送事件或事件通知?
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-05-02 23:42:02 |
👁️ 阅读: 8
可以给以下对象添加自定义数据:
## 1. BUFF对象
**接口**:`setbuffcustdata`
**参数**:
- `actor`:玩家对象(table类型,必选)
- `buffid`:BUFF ID(integer类型,必选)
- `value`:自定义字符串值(string类型,必选)
**获取接口**:`getbuffcustdata`
**参数**:
- `actor`:玩家对象(table类型,必选)
- `buffid`:BUFF ID(integer类型,必选)
**返回值**:字符串值
**流程**:通过`setbuffcustdata`为指定BUFF设置自定义字符串数据,之后可用`getbuffcustdata`读取。
## 2. 物品对象(包括装备位)
**相关接口**:
- `custitemattinfo`:为物品或装备位设置自定义属性
- `custitemattgroupinfo`:设置分组信息
- `custitemattidvalue`:设置绑定属性ID和值、分组标题
**参数限制**:这些接口用于设置物品的自定义属性,包括分组、属性位、绑定属性ID和值、分组标题等。
## 3. 其他对象(玩家、怪物、宝宝、NPC、虚拟体)
**接口**:`settargetinfo`
**参数**:
- `actor`:对象(玩家、怪物、宝宝、NPC、虚拟体,object类型,必选)
- `strParam`:参数(string类型,必选)
- `param`:参数2(integer类型,必选)
**说明**:该接口用于设置对象相关信息,例如设置转职等级时`strParam`为"RELEVEL",`param`为等级值。
## 4. 玩家对象(自定义玩家数据)
**接口1(JSON格式)**:`setplayercustjosndata`
**参数**:
- `actor`:玩家对象ID(object类型,必选)
- `key`:键(string类型,可选,禁止大写)
- `value`:值(string类型,必选)
**客户端获取方法**:
- 查看目标玩家信息:`SL:RequestLookPlayer`
- 监听事件:`LUA_EVENT_RESPONSE_LOOK_PLAYER_INFO`
- 事件回调中获取:`SL:GetValue("L.M.CUSTOM_DATA", "key")`
**接口2(字符串格式)**:`setplayercustdata`
**参数**:
- `actor`:玩家对象ID(object类型,必选)
- `value`:值(string类型,必选)
**客户端获取方法**:
- 查看目标玩家信息:`SL:RequestLookPlayer`
- 监听事件:`LUA_EVENT_RESPONSE_LOOK_PLAYER_INFO`
- 事件回调中获取:`SL:GetValue(L.M.CUSTOM_DATA)`
## 5. 自定义广播数据
**接口**:`setrefdata`
**参数**:
- `actor`:actorID(object类型,必选)
- `id`:数据id(int类型,必选)
- `value`:值(int类型,必选)
**说明**:
- 支持0-9共10个int数据
- 数据变化时客户端会广播
- 客户端获取接口:`SL:GetValue(ACTOR_GM_DATA_BY_ID, actorID, key)`
- 监听事件:`LUA_EVENT_ACTOR_GMDATA_UPDATE`
- **注意**:下线不保存
## 客户端事件通知
使用相关接口后,客户端会收到以下事件通知:
- `LUA_EVENT_RESPONSE_LOOK_PLAYER_INFO`:查看玩家信息时触发,用于获取玩家自定义数据
- `LUA_EVENT_ACTOR_GMDATA_UPDATE`:自定义广播数据更新时触发
- `LUA_EVENT_PLAYER_CUSTOMDATA`:其他玩家自定义数据变化时触发(参数:UID、自定义数据表)
**参数限制总结**:
- 所有接口的`actor`参数都是必选的
- `setplayercustjosndata`的`key`参数禁止使用大写字母
- `setrefdata`只支持0-9共10个int类型数据,且下线不保存
- `settargetinfo`的`strParam`参数需要根据具体功能传递特定字符串(如"RELEVEL"表示转职等级)
← 返回问答库