Exemple #1
0
    public IEnumerator ChangeSceneOverCoroutine()
    {
        using (var blockingLayer = new BlockingLayerHelper(0))
        {
            var data = PlayerDataManager.Instance.mInitBaseAttr;

            var msg = NetManager.Instance.ChangeSceneOver(data.SceneId, data.SceneGuid);

            yield return(msg.SendAndWaitUntilDone());

            Logger.Debug("ChangeSceneOver-------" + msg.State);
            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    if (ObjManager.Instance != null && ObjManager.Instance.MyPlayer != null)
                    {
                        ObjManager.Instance.MyPlayer.Position =
                            GameLogic.GetTerrainPosition(PlayerDataManager.Instance.mInitBaseAttr.X,
                                                         PlayerDataManager.Instance.mInitBaseAttr.Y);
                    }
                }
                else
                {
                    UIManager.Instance.ShowNetError(msg.ErrorCode);
                }
            }
        }

        //yield return new WaitForSeconds(1);
        ShowChangeSceneMessage();
    }
    public IEnumerator RecycleItemCorotion()
    {
        using (var blockingLayer = new BlockingLayerHelper(0))
        {
            var item = DataModel.ItemData;
            var msg  = NetManager.Instance.RecycleBagItem(item.BagId, item.ItemId, item.Index, DataModel.RecycleCount);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    //回收成功
                    var e1 = new ShowUIHintBoard(270110);
                    EventDispatcher.Instance.DispatchEvent(e1);
                    var e = new Close_UI_Event(UIConfig.ItemInfoUI);
                    EventDispatcher.Instance.DispatchEvent(e);
                }
                else
                {
                    UIManager.Instance.ShowNetError(msg.ErrorCode);
                }
            }
            else
            {
                Logger.Info(string.Format("SellItemCorotion....State = {0} ErroeCode = {1}", msg.State, msg.ErrorCode));
            }
        }
    }
    public IEnumerator PlayerSelectServerIdCoroutine()
    {
        if (!IsServerOpen())
        {
            UIManager.Instance.ShowMessage(MessageBoxType.Ok, 300832);
            yield break;
        }

        //using (new BlockingLayerHelper(1))
        var block = new BlockingLayerHelper(1);
        {
            var msg = NetManager.Instance.PlayerSelectServerId(mServerListDataModel.SelectedServer.ServerId);
            yield return(msg.SendAndWaitUntilDone());

            Logger.Debug(msg.State.ToString());
            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    PlayerDataManager.Instance.ServerId          = msg.Request.ServerId;
                    PlayerDataManager.Instance.LastLoginServerId = msg.Request.ServerId;
                    PlayerDataManager.Instance.CharacterLists    = msg.Response.Info;
                    PlayerDataManager.Instance.SelectedRoleIndex = msg.Response.SelectId;
                    PlayerDataManager.Instance.ServerName        = mServerListDataModel.SelectedServer.ServerName;
                    ResourceManager.PrepareScene(Resource.GetScenePath("SelectCharacter"), www =>
                    {
                        ResourceManager.Instance.StartCoroutine(ResourceManager.LoadSceneImpl("SelectCharacter", www,
                                                                                              () =>
                        {
                            /*
                             *  UIManager.Instance.ShowUI(UIConfig.SelectRoleUI,
                             * new SelectRoleArguments
                             * {
                             * CharacterSimpleInfos = PlayerDataManager.Instance.CharacterLists,
                             * SelectId = msg.Response.SelectId,
                             * ServerName = mServerListDataModel.SelectedServer.ServerName
                             * });*/
                            block.Dispose();
                        }));
                    });
                }
                else
                {
                    GameUtils.ShowLoginTimeOutTip();
                    block.Dispose();
                }
            }
            else
            {
                block.Dispose();
            }
        }
    }
Exemple #4
0
        private IEnumerator RequestNpcPosCorotion()
        {
            using (var blockingLayer = new BlockingLayerHelper(0))
            {
                var msg = NetManager.Instance.GetSceneNpcPos(1);
                yield return(msg.SendAndWaitUntilDone());

                if (msg.State == MessageState.Reply)
                {
                    requestTime = 0.0f;
                    RefreshMonsterList(msg.Response);
                }
            }
        }
Exemple #5
0
        private IEnumerator SellItemCorotion()
        {
            using (var _blockingLayer = new BlockingLayerHelper(0))
            {
                var _item  = DataModel.ItemData;
                var _count = DataModel.SellCount;
                var _msg   = NetManager.Instance.SellBagItem(_item.BagId, _item.ItemId, _item.Index, DataModel.SellCount);
                yield return(_msg.SendAndWaitUntilDone());

                if (_msg.State == MessageState.Reply)
                {
                    if (_msg.ErrorCode == (int)ErrorCodes.OK)
                    {
                        var _e1 = new ShowUIHintBoard(223003);
                        EventDispatcher.Instance.DispatchEvent(_e1);

                        if (_item.Count == _count || _item.Count == 0)
                        {
//完全卖完数量才关闭窗口
                            _item.Count = 0;
                            var _e = new Close_UI_Event(UIConfig.ItemInfoUI);
                            EventDispatcher.Instance.DispatchEvent(_e);
                        }
                        else
                        {
                            _item.Count -= _count;
                        }
                    }
                    else
                    {
                        UIManager.Instance.ShowNetError(_msg.ErrorCode);
                    }
                }
                else
                {
                    Logger.Info(string.Format("SellItemCorotion....State = {0} ErroeCode = {1}", _msg.State, _msg.ErrorCode));
                }
            }
        }
Exemple #6
0
        public IEnumerator ChangeSceneOverCoroutine()
        {
            using (var blockingLayer = new BlockingLayerHelper(0))
            {
                var data = PlayerDataManager.Instance.mInitBaseAttr;

                var msg = NetManager.Instance.ChangeSceneOver(data.SceneId, data.SceneGuid);

                yield return(msg.SendAndWaitUntilDone());

                Logger.Debug("ChangeSceneOver-------" + msg.State);
                if (msg.State == MessageState.Reply)
                {
                    if (msg.ErrorCode == (int)ErrorCodes.OK)
                    {
                        PlayerDataManager.Instance.TeamInviteClickFubenID = 0;
                        SendSceneChangeEvent();
                        if (ObjManager.Instance != null && ObjManager.Instance.MyPlayer != null)
                        {
                            //ObjManager.Instance.MyPlayer.Position =
                            //    GameLogic.GetTerrainPosition(PlayerDataManager.Instance.mInitBaseAttr.X,
                            //        PlayerDataManager.Instance.mInitBaseAttr.Y);
                        }

                        var sceneExtData = msg.Response;

                        if (GameLogic.Instance != null && GameLogic.Instance.Scene != null)
                        {
                            var scene = GameLogic.Instance.Scene;

                            if (scene.TableScene.Type == (int)eSceneType.Fuben)
                            {
                                var listTb = new List <TriggerAreaRecord>();
                                Table.ForeachTriggerArea(table =>
                                {
                                    if (scene.SceneTypeId != table.SceneId ||
                                        -1 == table.OffLineTrigger ||
                                        !BitFlag.GetLow(sceneExtData, table.OffLineTrigger))
                                    {
                                        return(true);
                                    }
                                    listTb.Add(table);

                                    return(true);
                                });

                                if (listTb.Count > 0)
                                {
                                    OptList <SceneAnimationTrigger> .List.Clear();

                                    scene.transform.GetComponentsInChildren(OptList <SceneAnimationTrigger> .List);
                                    var triggers = OptList <SceneAnimationTrigger> .List;

                                    var __array2       = triggers;
                                    var __arrayLength2 = __array2.Count;
                                    for (var __i2 = 0; __i2 < __arrayLength2; ++__i2)
                                    {
                                        var trigger = __array2[__i2];
                                        {
                                            foreach (var tb in listTb)
                                            {
                                                if (trigger.TriggerId == tb.ClientAnimation)
                                                {
                                                    trigger.RunToEnd();
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            else if (scene.TableScene.Type == (int)eSceneType.Pvp)
                            {
                                if (sceneExtData == 1)
                                {
                                    var e = new PvpFightReadyEent();
                                    EventDispatcher.Instance.DispatchEvent(e);
                                }
                            }
                        }
                    }
                    else
                    {
                        UIManager.Instance.ShowNetError(msg.ErrorCode);
                    }
                }
            }

            //yield return new WaitForSeconds(1);
            ShowChangeSceneMessage();
        }
Exemple #7
0
        private IEnumerator PlayerChooseServerIdCoroutine()
        {
            if (!IsServerOpen())
            {
                UIManager.Instance.ShowMessage(MessageBoxType.Ok, 300832);
                yield break;
            }

            //using (new BlockingLayerHelper(1))
            var _block = new BlockingLayerHelper(1);
            {
                var _msg = NetManager.Instance.PlayerSelectServerId(mServerListDataModel.SelectedServer.ServerId);
                yield return(_msg.SendAndWaitUntilDone());

                Logger.Debug(_msg.State.ToString());
                if (_msg.State == MessageState.Reply)
                {
                    if (_msg.ErrorCode == (int)ErrorCodes.OK)
                    {
                        PlayerDataManager.Instance.ServerId          = _msg.Request.ServerId;
                        PlayerDataManager.Instance.LastLoginServerId = _msg.Request.ServerId;
                        PlayerDataManager.Instance.CharacterLists    = _msg.Response.Info;

                        if (PlayerDataManager.Instance.CharacterLists.Count <= 0 && GameSetting.Instance.ReviewState == 1)
                        {
                            var e = new UIEvent_CreateRole();
                            EventDispatcher.Instance.DispatchEvent(e);
                        }
                        else
                        {
                            PlayerDataManager.Instance.SelectedRoleIndex = _msg.Response.SelectId;
                            if (!string.IsNullOrEmpty(selectRoleName))
                            {
                                for (int i = 0; i < _msg.Response.Info.Count; i++)
                                {
                                    var player = _msg.Response.Info[i];
                                    if (player.Name.Equals(selectRoleName))
                                    {
                                        PlayerDataManager.Instance.SelectedRoleIndex = player.CharacterId;
                                    }
                                }
                            }

                            PlayerDataManager.Instance.ServerName = mServerListDataModel.SelectedServer.ServerName;

                            if (GameSetting.Instance.ReviewState == 1)
                            {
                                SoundManager.Instance.StopBGM(0.5f);
                                NetManager.Instance.CallEnterGame(PlayerDataManager.Instance.SelectedRoleIndex);
                            }
                            else
                            {
                                ResourceManager.PrepareScene(Resource.GetScenePath("SelectCharacter"), www =>
                                {
                                    ResourceManager.Instance.StartCoroutine(ResourceManager.LoadSceneImpl("SelectCharacter", www,
                                                                                                          () =>
                                    {
                                        /*
                                         * UIManager.Instance.ShowUI(UIConfig.SelectRoleUI,
                                         * new SelectRoleArguments
                                         * {
                                         *  CharacterSimpleInfos = PlayerDataManager.Instance.CharacterLists,
                                         *  SelectId = msg.Response.SelectId,
                                         *  ServerName = mServerListDataModel.SelectedServer.ServerName
                                         * });*/
                                        _block.Dispose();
                                    }));
                                });
                            }
                        }
                    }
                    else
                    {
                        GameUtils.ShowLoginTimeOutTip();
                        _block.Dispose();
                    }
                }
                else
                {
                    _block.Dispose();
                }
            }
        }
Exemple #8
0
        private IEnumerator CreateRoleCoroutine()
        {
            using (var blockingLayer = new BlockingLayerHelper(0))
            {
                var _msg = NetManager.Instance.CreateCharacter(PlayerDataManager.Instance.ServerId, DataModel.CreateType,
                                                               DataModel.CreateName);
                yield return(_msg.SendAndWaitUntilDone());

                if (_msg.State == MessageState.Reply)
                {
                    if (_msg.ErrorCode == (int)ErrorCodes.OK)
                    {
                        var _list = PlayerDataManager.Instance.CharacterLists;
                        _list = _msg.Response.Info;
                        // RefreshDate(msg.Response.Info, msg.Response.SelectId);
                        //新需求,创建完人物直接进入游戏
                        GameLogic.PlayFirstEnterGameCG = 1;
                        var _role           = _list[_list.Count - 1];
                        var _SelectedRoleId = _role.CharacterId;

                        var _serverName = PlayerDataManager.Instance.ServerName;
                        var _serverId   = PlayerDataManager.Instance.ServerId;
                        PlayerDataManager.Instance.CharacterFoundTime = Extension.FromServerBinary(_msg.Response.CharacterFoundTime);
                        var _ts   = PlayerDataManager.Instance.CharacterFoundTime - DateTime.Parse("1970-1-1");
                        var _time = (int)_ts.TotalSeconds;
                        PlatformHelper.CollectionCreateRoleDataForKuaifa(_SelectedRoleId.ToString(), DataModel.CreateName,
                                                                         _serverId.ToString(), _serverName, _time.ToString());

                        {
                            //这里实现给主角名字赋值,为了后面对话时用
                            PlayerDataManager.Instance.PlayerDataModel.CharacterBase.Name = _role.Name;
                        }
#if UNITY_EDITOR
                        var _skip = true;
#else
                        bool _skip = true;
                        //bool skip = list.Count>1;
#endif
                        //播放创建角色时的CG

                        /*
                         * if (0 == DataModel.CreateType)
                         * {
                         * PlayCG.Instance.PlayCGFile("Video/jianshi.txt",
                         *  () => { NetManager.Instance.CallEnterGame(SelectedRoleId); }, skip, false);
                         * }
                         * else if (1 == DataModel.CreateType)
                         * {
                         * PlayCG.Instance.PlayCGFile("Video/fashi.txt",
                         *  () => { NetManager.Instance.CallEnterGame(SelectedRoleId); }, skip, false);
                         * }
                         * else if (2 == DataModel.CreateType)
                         * {
                         * PlayCG.Instance.PlayCGFile("Video/gongshou.txt",
                         *  () => { NetManager.Instance.CallEnterGame(SelectedRoleId); }, skip, false);
                         * }
                         * else
                         * {
                         * NetManager.Instance.CallEnterGame(SelectedRoleId);
                         * }*/
                        NetManager.Instance.CallEnterGame(_SelectedRoleId);
                    }
                    else
                    {
                        if (_msg.ErrorCode == (int)ErrorCodes.Error_NAME_IN_USE)
                        {
                            if (GameSetting.Instance.ReviewState == 1)
                            {
                                // 防止无限递归
                                if (RandomNameCount > 100)
                                {
                                    yield break;
                                }

                                RandomNameCount++;
                                DataModel.CreateType = UnityEngine.Random.Range(0, 3);
                                var actorTable = Table.GetActor(DataModel.CreateType);
                                DataModel.CreateName = StringConvert.GetRandomName(actorTable.Sex);
                                DataModel.CreateName = DataModel.CreateName.Trim();

                                NetManager.Instance.StartCoroutine(CreateRoleCoroutine());
                            }
                            else
                            {
                                var _dicId = _msg.ErrorCode + 200000000;
                                var _tbDic = Table.GetDictionary(_dicId);
                                var _info  = "";
                                _info = _tbDic.Desc[GameUtils.LanguageIndex];
                                UIManager.Instance.ShowMessage(MessageBoxType.Ok, _info, "");
                            }
                        }
                        else
                        {
                            UIManager.Instance.ShowNetError(_msg.ErrorCode);
                        }
                    }
                }
                else
                {
                    Logger.Debug("CreateCharacter.................." + _msg.State);
                }
            }
        }
    public IEnumerator CreateCharacterCoroutine()
    {
        using (var blockingLayer = new BlockingLayerHelper(0))
        {
            var msg = NetManager.Instance.CreateCharacter(PlayerDataManager.Instance.ServerId, DataModel.CreateType,
                                                          DataModel.CreateName);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    var list = PlayerDataManager.Instance.CharacterLists;
                    list = msg.Response.Info;
                    // RefreshDate(msg.Response.Info, msg.Response.SelectId);
                    //新需求,创建完人物直接进入游戏
                    GameLogic.PlayFirstEnterGameCG = 1;
                    var role           = list[list.Count - 1];
                    var SelectedRoleId = role.CharacterId;

                    var serverName = PlayerDataManager.Instance.ServerName;
                    var serverId   = PlayerDataManager.Instance.ServerId;
                    PlayerDataManager.Instance.CharacterFoundTime = Extension.FromServerBinary(msg.Response.CharacterFoundTime);
                    var ts   = PlayerDataManager.Instance.CharacterFoundTime - DateTime.Parse("1970-1-1");
                    var time = (int)ts.TotalSeconds;
                    PlatformHelper.CollectionCreateRoleDataForKuaifa(SelectedRoleId.ToString(), DataModel.CreateName,
                                                                     serverId.ToString(), serverName, time.ToString());

                    {
//这里实现给主角名字赋值,为了后面对话时用
                        PlayerDataManager.Instance.PlayerDataModel.CharacterBase.Name = role.Name;
                    }
#if UNITY_EDITOR
                    var skip = true;
#else
                    bool skip = true;
                    //bool skip = list.Count>1;
#endif
                    //播放创建角色时的CG

                    /*
                     * if (0 == DataModel.CreateType)
                     * {
                     * PlayCG.Instance.PlayCGFile("Video/jianshi.txt",
                     * () => { NetManager.Instance.CallEnterGame(SelectedRoleId); }, skip, false);
                     * }
                     * else if (1 == DataModel.CreateType)
                     * {
                     * PlayCG.Instance.PlayCGFile("Video/fashi.txt",
                     * () => { NetManager.Instance.CallEnterGame(SelectedRoleId); }, skip, false);
                     * }
                     * else if (2 == DataModel.CreateType)
                     * {
                     * PlayCG.Instance.PlayCGFile("Video/gongshou.txt",
                     * () => { NetManager.Instance.CallEnterGame(SelectedRoleId); }, skip, false);
                     * }
                     * else
                     * {
                     * NetManager.Instance.CallEnterGame(SelectedRoleId);
                     * }*/
                    NetManager.Instance.CallEnterGame(SelectedRoleId);
                }
                else
                {
                    if (msg.ErrorCode == (int)ErrorCodes.Error_NAME_IN_USE)
                    {
                        var dicId = msg.ErrorCode + 200000000;
                        var tbDic = Table.GetDictionary(dicId);
                        var info  = "";
                        info = tbDic.Desc[GameUtils.LanguageIndex];
                        UIManager.Instance.ShowMessage(MessageBoxType.Ok, info, "");
                    }
                    else
                    {
                        UIManager.Instance.ShowNetError(msg.ErrorCode);
                    }
                }
            }
            else
            {
                Logger.Debug("CreateCharacter.................." + msg.State);
            }
        }
    }