#

SUD

通用状态

Tips

  1. SDK 保证状态有序串行从 APP 到达 MG;
  2. 可重复通知,无需保证通知次数;
  3. 通知后 SDK 会按 state 值缓存最新一次的 data 值,供 MG 随时主动获取;
  4. APP 仅需通知用户自己的状态,MG 服务会负责广播并同步到各对端;
  5. ISudFSTAPP void notifyStateChange(String state, String dataJson, ISudListenerNotifyStateChange listener)使用;
  6. 需要在onGameStarted之后以及onGameDestroyed之前调用

[TOC]

状态转换说明

状态转换说明

0. 测试状态

  • state
app_common_hello_fsm
  • data
{
  "msg": "Hello FSM from APP!"
}
  • 说明
用于状态测试

1. 加入状态

  • 最低版本: v1.1.30.xx
  • state
app_common_self_in
  • data
{
  "isIn": true, // true 加入游戏,false 退出游戏
  "seatIndex": 1, // 加入的游戏位(座位号) 默认传seatIndex = -1 随机加入,seatIndex 从0开始,不可大于座位数
  "isSeatRandom": true, //(注:废弃,请使用isRandom替代) 默认为ture, 带有游戏位(座位号)的时候,如果游戏位(座位号)已经被占用,是否随机分配一个空位坐下 isSeatRandom=true 随机分配空位坐下,isSeatRandom=false 不随机分配
    "isRandom": true, // 默认为ture, 带有游戏位(座位号)的时候,如果游戏位(座位号)已经被占用,是否随机分配一个空位坐下 isRandom=true 随机分配空位坐下,isRandom=false 不随机分配
  "teamId": 1 // 不支持分队的游戏:数值填1;支持分队的游戏:数值填1或2(两支队伍);
}
  • 说明
用户(本人)加入游戏/退出游戏
正确流程:
1.isIn=true: 加入游戏=>准备游戏=>开始游戏;
2.isIn=false: 结束=>取消准备=>退出游戏;

2. 准备状态

  • 最低版本: v1.1.30.xx
  • state
app_common_self_ready
  • data
{
  "isReady": true // true 准备,false 取消准备
}
  • 说明
用户(本人)准备/取消准备

3. 游戏状态

  • 最低版本: v1.1.30.xx
  • state
app_common_self_playing
  • data
{
  "isPlaying": true, // true 开始游戏,false 结束游戏
  "reportGameInfoExtras": "透传参数", // string类型,Https服务回调report_game_info参数,最大长度1024字节,超过则截断(2022-01-21)
  "reportGameInfoKey": "透传参数key" // string类型,最大长度64字节,接入方服务端,可以根据这个字段来查询一局游戏的数据
}
  • 说明
用户游戏状态,如果用户在游戏中,建议:
a.空出屏幕中心区:
关闭全屏礼物特效;
b.部分强操作类小游戏(spaceMax为true),尽量收缩原生UI,给游戏留出尽量大的操作空间:
收缩公屏;
收缩麦位;
如果不在游戏中,则恢复。

4. 队长状态

  • 最低版本: v1.1.30.xx
  • state
app_common_self_captain
  • data
{
  "curCaptainUID": "" // 必填,指定队长uid
}
  • 说明
用户是否为队长,队长在游戏中会有开始游戏的权利。

5. 踢人

  • 最低版本: v1.1.30.xx
  • state
app_common_self_kick
  • data
{
  "kickedUID": "uid" // 被踢用户uid
}
  • 说明
用户(本人,队长)踢其他玩家;
队长才能踢人;

6. 结束游戏

  • 最低版本: v1.1.30.xx

  • state

app_common_self_end
  • data
{}
  • 说明
用户(本人,队长)结束(本局)游戏,提前结束本局游戏(所有人都不玩了)

7. 房间状态(depreated 已废弃 v1.1.30.xx)

  • 请使用 app_common_self_in 代替
  • state
app_common_self_room
  • data
{
  "isIn": true // true 在房间内,false 不在房间内
}
  • 说明
用户(本人)房间状态,建议:
用户进出房间各通知一次
  • 说明
用户(本人)离开

8. 麦位状态(depreated 已废弃 v1.1.30.xx)

  • 请使用 app_common_self_in 代替
  • state
app_common_self_seat
  • data
{
  "lastSeat": -1, // 之前在几号麦,从0开始,之前未在麦上值为-1
  "currentSeat": 0 // 目前在几号麦,从0开始,目前未在麦上值为-1
}
  • 说明
用户(本人)所处的麦位状态,建议:
进入房间后初始通知一次;
每次变更(上麦/下麦/移麦)通知一次;

9. 麦克风状态(depreated 已废弃 v1.1.30.xx)

  • state
app_common_self_microphone
  • data
{
  "isOn": true, // true 开麦,false 闭麦
  "isDisabled": false // true 被禁麦,false 未被禁麦
}
  • 说明
用户(本人)麦克风状态,建议:
进入房间后初始通知一次;
每次变更(开麦/闭麦/禁麦/解麦)通知一次;

10. 文字命中状态

  • state
app_common_self_text_hit
  • data
{
  "isHit": true, // true 命中,false 未命中
  "keyWord": "关键", // 关键词
  "text": "这是关键" // 聊天原始内容
}
  • 说明
用户(本人)聊天信息命中关键词状态,建议:
精确匹配;
首次聊天内容命中关键词之后,后续聊天内容不翻转成未命中;
直至小游戏侧关键词更新,再将状态翻转为未命中;

11. 打开或关闭背景音乐(2021-12-27 新增)

  • state
app_common_open_bg_music
  • data
{
  "isOpen": true // true 打开背景音乐,false 关闭背景音乐
}
  • 说明
打开或者关闭背景音乐

12. 打开或关闭音效(2021-12-27 新增)

  • state
app_common_open_sound
  • data
{
  "isOpen": true // true 打开音效,false 关闭音效
}
  • 说明
打开或者关闭音效

13. 打开或关闭游戏中的振动效果(2021-12-27 新增)

  • state
app_common_open_vibrate
  • data
{
  "isOpen": true // true 打开振动效果,false 关闭振动效果
}
  • 说明
打开或者关闭振动效果

14. 设置游戏的音量大小(2021-12-31 新增)

  • state
app_common_game_sound_volume
  • data
{
  "volume": 100 // 音量大小 0 到 100
}
  • 说明
设置游戏的音量大小

15. 设置游戏玩法选项(2022-05-10 新增)

  • state
app_common_game_setting_select_info
  • data

  • ludo

{
  "ludo": { // 飞行棋 
    "mode": 0, // mode: 默认赛制,0: 快速, 1: 经典; 2: 竞技
    "chessNum": 2, // chessNum: 默认棋子数量, 2: 对应2颗棋子; 4: 对应4颗棋子;
    "item": 0 // item: 默认道具, 1: 有道具, 0: 没有道具
  },
  "whoisspy": { // 谁是卧底
      "mode": 1 // 0:经典 ;1:爆词
  },
    "whoisspy": {        // 谁是卧底
        "mode": 0 // 0:经典 ;1:爆词
    },
    "bumper":{            // 碰碰
        "userInfos": [
            {
                "uid": "",    // 玩家id
                "mass": 10,   // 体型 默认值10,可填范围 10 20 30 40 50
                "trail": 1,  // 拖尾型号 1 2 3 4
            },
            {
                "uid": "",    // 玩家id
                "mass": 10,   // 体型 默认值10,可填范围 10 20 30 40 50
                "trail": 1,  // 拖尾型号 1 2 3 4
            }
        ]
    },
    "numberbomb": {
        "keyNum": 45,    // 设置的最终的答案数字
        "range": [1, 99],    // 初始的显示范围
        "save": 0,        //是否保存 0: 不保存,就是每次的设置仅生效一次,如果下次没设置则恢复默认;1: 保存,就是每次设置会持续生效知道下次改变
    }
}
  • baloot
{
    "baloot":{
        // baloot
        "mode":0 // 0:经典 ;1:快速
    }
}
  • 说明
设置游戏玩法选项

16. 设置游戏中的 AI 玩家(2022-05-11 新增)

  • state
app_common_game_add_ai_players
  • data
{
  "aiPlayers": [
    {
      "userId": "", // 玩家id
      "avatar": "", // 头像url
      "name": "", // 名字
      "gender": "male", // 性别 male:男,female:女
      "level":1,                // ai等级 1,2,3
    }
  ],
  "isReady": 1 // 机器人加入后是否自动准备 1:自动准备,0:不自动准备 默认为1
}
  • 说明
设置游戏中的AI玩家

17. app 在收到游戏断开连接通知后,通知游戏重试连接(2022-06-21 新增)

  • state
app_common_game_reconnect
  • data
{}
  • 说明
通知游戏重试连接

18. app 返回玩家当前积分

  • state
app_common_game_score
  • data
{
  "score": 10 // 玩家当前积分
}
  • 说明
app返回玩家当前积分

19. app 通知游戏点赞玩家(2022-11-19 增加,当前支持你画我猜,你说我猜,友尽闯关)

  • state
app_common_self_click_good
  • data
{}
  • 说明
app通知游戏点赞玩家

20. app 通知游戏扔大便玩家(2022-11-19 增加,当前支持你画我猜,你说我猜,友尽闯关)

  • state
app_common_self_click_poop
  • data
{}
  • 说明
app通知游戏点踩玩家

21. app 通知游戏设置 FPS

  • state
app_common_game_fps
  • data
{
  "fps": 60
}
  • 说明
app通知游戏设置FPS

22. app 通知游戏创建订单的结果

  • state
app_common_game_create_order_result
  • data
{
  "result": 1 // app通知游戏创建订单的结果0:失败 1:成功
}
  • 说明
app通知游戏创建订单的结果

23. app 通知游戏设置玩法(只支持 德州 pro 和 teenpattipro)

  • state
app_common_game_settings
  • data
{
  // 具体参数请参考下文
}
  • 德州 设置的数据配置(例子)
{
    smallBlind: number,     // 1    配置小盲,大盲为小盲的2倍[1,2,5,10,20,50,100,200,500,1000]
    ante: number,           // 0    前注
    sBuyIn: number,         // 100  带入值/最小带入配置[100,200,100,200,500,1000,2000,5000,100000]
    bBuyIn: number,         // 200  最大带入,无限(0)
    isAutoStart: number,    // 2    0表示关闭自动开始 [0,2,6,7,8,9]
    isStraddle: number,     // 0    0:关闭,1自由,2强制
    tableDuration: number,  // 0.5 牌桌时长配置(小时)[0.5,1,2,4,6,8]
    thinkTime: number,      // 20   思考时间(秒)[10,15,20]
}
  • teenpatti 设置的数据配置(例子)
{
    "ante": 10,                    // 底分
    "darkCard": 2,                // 暗牌回合
    "isAutoStart": 2,            // 是否自动开始
    "potLimit": 1000,            // 最大带入
    "round": 10,                // 最大回合
    "singleLimit": 32,            // 单注限
    "tableDuration": 0.5,        // 牌桌时长配置(小时)
    "thinkTime": 15                // 思考时间(秒)
}
  • 说明
app通知游戏创建订单的结果

24. app 通知游返回大厅(当前支持umo)

  • state
app_common_game_back_lobby
  • data
{}
  • 说明
app通知游戏返回大厅

25. app通知游戏定制UI配置表

  • state
app_common_game_ui_custom_config
  • data
{
    // 具体配置表内容请参考如下
}
  • ludo(飞行棋)
{
    "gameBoard01": "https://",        // 棋盘底
    "gameBoard02": "https://",        // 棋盘
    "diceBg": "https://",             // 骰子白底
    "diceBgGold": "https://",         // 黄金骰子底
    "dice01": "https://",             // 骰子1 
    "dice02": "https://",             // 骰子2
    "dice03": "https://",             // 骰子3
    "dice04": "https://",             // 骰子4
    "dice05": "https://",             // 骰子5
    "dice06": "https://",             // 骰子6
    "diceCrown": "https://",          // 骰子皇冠
    "chessYellow": "https://",        // 黄色棋子
    "chessBlue": "https://",          // 蓝色棋子
    "chessGreen": "https://",         // 绿色棋子
    "chessRed": "https://",           // 红色棋子
    "players": { // 玩家单独的特定制Map, key为玩家uid, value 是定制的UIConfig, 如果没有可以不填
        "uid_0" : {    // 玩家的uid
            "diceBg": "https://",             // 骰子白底
            "diceBgGold": "https://",         // 黄金骰子底
            "dice01": "https://",             // 骰子1
            "dice02": "https://",             // 骰子2
            "dice03": "https://",             // 骰子3
            "dice04": "https://",             // 骰子4
            "dice05": "https://",             // 骰子5
            "dice06": "https://",             // 骰子6
            "diceCrown": "https://",          // 骰子皇冠
            "chessYellow": "https://",        // 黄色棋子
            "chessBlue": "https://",          // 蓝色棋子
            "chessGreen": "https://",         // 绿色棋子
            "chessRed": "https://",           // 红色棋子
            "rollDiceEffect": {
                "dragonSkeletonUrl": "https://xxxx/remoteDragonEffect/rundice_ske.json",
                "dragonAtlasUrl": "https://xxxx/remoteDragonEffect/rundice_tex.json",
                "dragonTextureUrl": "https://xxxx/remoteDragonEffect/rundice_tex.png",
                "animatureName": "Armature",
                "animationName": "newAnimation"
            }
        },
        "uid_1" : {    // 玩家的uid
            "diceBg": "https://",             // 骰子白底
            "diceBgGold": "https://",         // 黄金骰子底
            "dice01": "https://",             // 骰子1
            "dice02": "https://",             // 骰子2
            "dice03": "https://",             // 骰子3
            "dice04": "https://",             // 骰子4
            "dice05": "https://",             // 骰子5
            "dice06": "https://",             // 骰子6
            "diceCrown": "https://",          // 骰子皇冠
            "chessYellow": "https://",        // 黄色棋子
            "chessBlue": "https://",          // 蓝色棋子
            "chessGreen": "https://",         // 绿色棋子
            "chessRed": "https://",           // 红色棋子
            "rollDiceEffect": {
                "dragonSkeletonUrl": "https://xxxx/remoteDragonEffect/rundice_ske.json",
                "dragonAtlasUrl": "https://xxxx/remoteDragonEffect/rundice_tex.json",
                "dragonTextureUrl": "https://xxxx/remoteDragonEffect/rundice_tex.png",
                "animatureName": "Armature",
                "animationName": "newAnimation"
            }
        },
        ...
    }
}
  • 五子棋

    {
      "chessBoard": "https://",         // 棋盘底
      "chessBlack": "https://",         // 黑棋
      "chessWhite": "https://",         // 白棋
      "chessBg": "https://",            // 棋子背景
      "tipsChess": "https://",          // 提示落棋标志
      "curChessWhiteBg": "https://",    // 当前出棋的白色标志
      "curChessBlackBg": "https://",    // 当前出棋的黑色标志
    }
    
  • baloot

    {
      "bg": "https://",          // 桌面背景
      "cardBg": "https://"    // 牌背
      "players": {
          "uid_0" : {    // 玩家的uid
              "popBg": "https://"        // 气泡
          },
          "uid_1" : {    // 玩家的uid
              "popBg": "https://"        // 气泡
          }
          ...
      }
    }
    
  • 消消乐

    // note: JSON格式,请确保配置正常,如果其中有配置错误或加载异常,则全部使用游戏自带的资源(相当于没有配置)
    {
      items: [            /** 5种元素列表 */
          {
              imageUrls: ["https://", "https://"],  // 元素图片urls,如果是仅有一张,则没有动画,多张则根据duration间隔来切换帧动画
              duration: 0.1  // 可选,元素帧动画轮播间隔,单位秒,默认0.1秒
          },
          {
              imageUrls: ["https://"]  // 元素图片urls,如果是仅有一张,则没有动画,多张则根据duration间隔来切换帧动画
              // duration: 0.1  // 可选,元素帧动画轮播间隔,默认0.1秒
          },
          {
              imageUrls: ["https://", "https://"],  
              duration: 0.5
          },
          {
              imageUrls: ["https://", "https://"],  
              duration: 0.1  
          },
          {
              imageUrls: ["https://"],  
              duration: 0.1  
          }
      ],
      loadingUrl: "https://",     // 可选,开始游戏时加载资源的loading的动画贴图url
      itemGridUrl: "https://",  // 可选,元素格子url
      reconnectAnim: {     // 可选,重连loading动画
          imageUrls: ["https://", "https://"],  // 贴图urls
          duration: 0.1  // 帧动画时间间隔,单位秒
      }
    }
    
  • 美式8球

    {
    "logo": "https://",   // logo url 资源链接
      "players": {
          "uid_0" : {    // 玩家的uid
              "stick": "https://"        // 球杆图片连接
              "table": "https://"        // 桌布图片链接
        "table_cushion": "https://" // 球桌框
          },
          "uid_1" : {    // 玩家的uid
              "stick": "https://"        // 球杆图片连接
              "table": "https://"        // 桌布图片链接
        "table_cushion": "https://" // 球桌框
          }
          ...
      }
    }
    
  • twmahjong

    {
      "logo": "https://",   // logo url 资源链接
    }
    
  • 大话骰

    {
      "logo": "https://",   // logo url 资源链接
    }
    

26. app通知游戏玩家信息列表 (赛车)

  • state
app_common_users_info
  • data
{
    "infos": [
    {"uid": "", "avatar": "", "name": ""},    // uid: 玩家id,avatar:玩家头像url,name:玩家名字
    ...
    ]
}
  • 说明
app通知游戏定制UI配置表

27. app通知游戏自定义帮助内容 (赛车)

  • state
app_common_custom_help_info
  • data
{
    "content": [
        "content1",
        "content2",
        "content3"
        ...
    ]
}
  • 说明
app通知游戏自定义帮助内容

28. app主动调起主界面(赛车)

  • state
app_common_show_game_scene
  • data
{

}
  • 说明
APP通知游戏客户端指令动作app主动调起主界面

29. app主动调起主界面(赛车)

  • state
app_common_show_game_scene
  • data
{

}
  • 说明
APP通知游戏客户端指令动作app主动调起主界面

30. app主动隐藏主界面(赛车)

  • state
app_common_hide_game_scene
  • data
{

}
  • 说明
APP通知游戏客户端指令动作app主动隐藏主界面

31. app通知游戏爆词内容(谁是卧底)

  • state
app_common_game_send_burst_word
  • data
{
    "text": "", // 爆词内容 备注:如果不传该字段就是原始内容
}
  • 说明
app通知游戏爆词内容

32. app通知游戏玩家所持有的道具卡(大富翁)

  • state
app_common_game_player_monopoly_cards
  • data
{
      "reroll_card_count": 0,     // 重摇卡的数量 (注:也可用字段 paid_events_19 替代)
    "free_rent_card_count": 0,     // 免租卡的数量(注:也可用字段 paid_events_18 替代)
    "ctrl_dice_card_count": 0,     // 购买指定骰子点数卡的数量(注:也可用字段 paid_events_20 替代)
    "paid_events_19": 0,        // 重摇卡的数量 (注:如果同时存在reroll_card_count,优先使用reroll_card_count)
    "paid_events_18": 0,         // 免租卡的数量 (注:如果同时存在free_rent_card_count,优先使用free_rent_card_count)
    "paid_events_20": 0,         // 购买指定骰子点数卡的数量 (注:如果同时存在ctrl_dice_card_count,优先使用ctrl_dice_card_count)
}
  • 说明
app通知游戏玩家所持有的道具卡

33. app通知游戏获取到道具卡(大富翁)

  • state
app_common_game_show_monopoly_card_effect
  • data
{
      "type": 1,          // 1:重摇卡,2:免租卡,3:指定点数卡 (注: 也可用字段 paid_events_type 替代指定道具卡类型, 和paid_events_type 二选一, 如果同时存在type和paid_events_type,优先使用type)
    "paid_events_type": "paid_events_19", // paid_events_19: 重摇卡,paid_events_18:免租卡,paid_events_20:指定点数卡 (注:和 type 字段二选一,如果同时存在type和paid_events_type,优先使用type)
    "fromUid": "",      // 发送的玩家id
    "toUid":"",         // 接收方玩家id
    "count": 0,         // 数量
}
  • 说明
app通知游戏获取到道具卡

34. app通知游戏侧更新游戏币(概率游戏相关玩法)

  • state
app_common_update_game_money
  • data
{
}
  • 说明
app通知游戏侧更新游戏币

35. app通知游戏玩家所持有的道具卡(只支持飞行棋)

  • state
app_common_game_player_props_cards
  • data
{
    "props": "返回的json字符串如下",     // 道具卡数量结构的json字符串,具体返回如下
}
  • ludo 返回字符串结构说明

    注:返回的是一个json数据的字符串,specify_dice_roll是遥控骰子字段对应的数量
    {"props": "{\"specify_dice_roll\":0}"}
    
  • 说明

app通知游戏玩家所持有的飞行棋道具卡

36. app通知游戏播放玩家所获得的道具卡的特效(只支持飞行棋)

  • state
app_common_game_player_props_cards_effect
  • data
{
    "paid_events_type": "specify_dice_roll", // 获得的道具卡名字(注:道具卡名字标注请看下方说明)
    "fromUid": "",        //    发送的玩家id
    "toUid":"",            // 接收方玩家id
    "count": 0,         // 数量
}
  • 飞行棋(ludo)

      paid_events_type: "specify_dice_roll" // 控制指定摇出骰子点数的道具
    
  • 说明

app通知游戏播放玩家所获得的道具卡的特效

37. app通知游戏指定observer观众观看的玩家

  • state
app_common_game_observe_player
  • data
{
    "uid":"",            // 观众观看的玩家id
}
  • 说明
app通知游戏指定observer观众观看的玩家 支持游戏: 怪物消消乐,连连看

results matching ""

    No results matching ""