5.5 KiB
front, hard, time
| front | hard | time |
|---|---|---|
| https://nie.res.netease.com/r/pic/20220408/06a1fb24-d76a-4d82-816c-96489966196c.png | 入门 | 15分钟 |
竞技模式组件文档
竞技模式组件为MOD开发者提供统一的竞技模式开始与结算通知事件,通过调用相关API和监听固定事件,可以将必要的参数通过竞技组件通知webhttpserver进行分数结算。此外游戏过程中的逃跑惩罚也由竞技模式组件通知webhttpserver服务器。
MOD客户端接入
API
-
SetArenaGamePlayerReady
-
说明
设置当前玩家准备完毕时调用
-
参数
无参数
-
示例
import mod.client.extraClientApi as clientApi clientApi.SetArenaGamePlayerReady() -
备注
MOD开发者必须调用此函数
-
-
CancelArenaGamePlayerReady
-
说明
设置玩家取消准备时调用
-
参数
无参数
-
示例
import mod.client.extraClientApi as clientApi clientApi.CancelArenaGamePlayerReady() -
备注
此接口为可选调用
-
事件
-
ClientArenaGameAllPlayerReadyEvent
-
说明 当前游戏所有玩家准备完毕后,竞技组件向客户端发出的事件
-
参数
无参数
-
备注
MOD开发者可选择监听此事件切换游戏状态,也可以忽略由自定义的MOD服务端逻辑控制游戏状态切换
-
-
ClientArenaGameFinishEvent
-
说明
MOD开发者调用结束API后,竞技组件向客户端发出的结束事件
-
参数
游戏结果
[ { "camp_id": 1, "result": 1, "score": 100, "uid": [ uid1 ] }, { "camp_id": 2, "result": 2, "score": 50, "uid": [ uid2 ] } ]关键字 数据类型 说明 camp_id int 阵营,不区分默认选0,区分最多三个阵营1,2,3 result int 比赛胜负:0:平局,1:胜利,2:失败 score int 分数,不需要时传null uid list string array 玩家id列表 -
备注
MOD开发者可选择监听此事件获取游戏结果,也可以由自定义事件从MOD服务端获取结果。在收到此事件后,5秒后竞技组件服务端会自动远程调用关闭当前游戏。
-
MOD服务端接入
API
-
SetArenaGameResult
-
说明
当前游戏结束时调用,由开发者传入最后结果
-
参数
关键字 数据类型 说明 camp_id int 阵营,不区分默认选0,区分最多三个阵营1,2,3 result int 比赛胜负:0:平局,1:胜利,2:失败 score int 分数,不需要时传null uid list string array 玩家id列表 -
示例
resList = [ { "camp_id": 1, "result": 1, "score": 100, "uid": [ uid1 ] }, { "camp_id": 2, "result": 2, "score": 50, "uid": [ uid2 ] } ] serverApi.SetArenaGameResult(resList) -
备注
-
分数设置相关:
- 如果指定自定义的分数,则每项都需要设置
score的分数。 - 如果使用排行系统默认设置的分数,则每项
score的值需要设置为None。 - 如果设置
result为2时,即设置为输时,分时需要传递扣去分数score正数而不是负数
- 如果指定自定义的分数,则每项都需要设置
-
MOD开发者必须调用此函数,设置比赛结果。
-
-
事件
-
ServerArenaGameAllPlayerReadyEvent
-
说明
当前游戏所有玩家准备完毕后,竞技组件向服务端发出的事件
-
参数
无参数
-
备注
MOD开发者可选择监听此事件切换游戏状态,也可以忽略由自定义的MOD服务端逻辑控制游戏状态切换
-
-
ServerArenaGamePlayerReconnectSuccessEvent
-
说明
玩家掉线后再次连入时,如果没有超时则触发该事件
-
参数
关键字 数据类型 说明 playerId str player的entityId uid str 玩家的uid - 备注 MOD开发者可选择监听此事件决定玩家重连状态。
-
-
ServerArenaGamePlayerReconnectFailedEvent
-
说明
玩家掉线后再次连入时,超时则触发该事件
-
参数
关键字 数据类型 说明 playerId str player的entityId uid str 玩家的uid -
备注
MOD开发者可选择监听此事件,玩家超时重连会被竞技组件发送消息强制退出该局游戏。
-
-
ServerSetGameResultFailed
-
说明
开发者设置有结果失败时触发该事件
-
参数
关键字 数据类型 说明 rcode int 错误码 msg str 错误信息 detail str 错误原因 -
备注
错误码含义和对应的详细信息如下:
4:参数为空,缺少某个参数
12:参数错误,具体见details teams 必须为数组
team 参数缺失
result 超出范围 {发送的结果值} (0:平局,1:胜利,2:失败)
camp_id 超出范围 camp_id:{发送的camp_id} camp_num:{阵营数} (阵营数为0,camp_id只能为0,阵营数大于0,为num,camp_id范围[1,num])
uid 必须为数组
uid 不是房间成员 room_id:{房间id} user_id:{玩家id}
13:操作失败,具体见details
房间找不到 {房间id}
找不到房间成员 {房间id}
找不到组件信息 {组件id}
匹配状态错误 room_id:{房间id} user_id:{玩家id} state:{匹配状态} (防止重复结算)
结算失败
12028:房间秘钥计算错误
-