public CoopNetworkManager.ConnectData GetWebSockConnectData()
    {
        if (fieldData.field == null)
        {
            return(null);
        }
        int num = -1;
        List <FieldModel.SlotInfo> slotInfos = fieldData.field.slotInfos;
        int i = 0;

        for (int count = slotInfos.Count; i < count; i++)
        {
            if (slotInfos[i].userId == MonoBehaviourSingleton <UserInfoManager> .I.userInfo.id)
            {
                num = i;
                break;
            }
        }
        if (num < 0)
        {
            return(null);
        }
        CoopNetworkManager.ConnectData connectData = new CoopNetworkManager.ConnectData();
        connectData.path      = fieldData.field.wsHost;
        connectData.ports     = fieldData.field.wsPorts;
        connectData.fromId    = fieldData.field.slotInfos[num].userId;
        connectData.ackPrefix = num;
        connectData.roomId    = fieldData.field.id;
        connectData.token     = fieldData.field.slotInfos[num].token;
        return(connectData);
    }
Beispiel #2
0
    private static void StartCoop(Action <bool, bool> call_back = null, bool is_reentry = false)
    {
        MonoBehaviourSingleton <CoopManager> .I.Clear();

        CoopNetworkManager.ConnectData webSockConnectData = MonoBehaviourSingleton <FieldManager> .I.GetWebSockConnectData();

        MonoBehaviourSingleton <CoopNetworkManager> .I.ConnectAndRegist(webSockConnectData, delegate(bool is_connect, bool is_regist)
        {
            if (is_regist)
            {
                FieldModel.Param fieldData = MonoBehaviourSingleton <FieldManager> .I.fieldData;
                MonoBehaviourSingleton <CoopManager> .I.coopRoom.Activate(fieldData.field.slotInfos);
                if (call_back != null)
                {
                    call_back(is_connect, is_regist);
                }
            }
            else if (is_reentry)
            {
                if (call_back != null)
                {
                    call_back(is_connect, is_regist);
                }
            }
            else
            {
                MonoBehaviourSingleton <CoopApp> .I.LeaveWithParty(delegate
                {
                    if (call_back != null)
                    {
                        call_back(is_connect, is_regist);
                    }
                }, false, false);
            }
        });
    }
Beispiel #3
0
    private static void StartCoopOffline(Action <bool, bool, bool> call_back = null)
    {
        if (!CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected())
        {
            StageObjectManager.CreatePlayerInfo createPlayerInfo = MonoBehaviourSingleton <StatusManager> .I.GetCreatePlayerInfo();

            if (createPlayerInfo != null)
            {
                CharaInfo chara_info = createPlayerInfo.charaInfo;
                if (MonoBehaviourSingleton <CoopOfflineManager> .IsValid())
                {
                    MonoBehaviourSingleton <CoopOfflineManager> .I.Activate();
                }
                CoopNetworkManager.ConnectData conn_data = new CoopNetworkManager.ConnectData();
                MonoBehaviourSingleton <CoopNetworkManager> .I.Regist(conn_data, delegate(bool is_regist)
                {
                    if (is_regist)
                    {
                        List <FieldModel.SlotInfo> slot_infos = new List <FieldModel.SlotInfo>
                        {
                            new FieldModel.SlotInfo
                            {
                                userId   = chara_info.userId,
                                userInfo = (chara_info as FriendCharaInfo)
                            }
                        };
                        MonoBehaviourSingleton <CoopManager> .I.coopRoom.Activate(slot_infos);
                    }
                    if (call_back != null)
                    {
                        call_back(true, true, is_regist);
                    }
                });
            }
        }
    }