protected override async void Run(Session session, C2G_CreateLandlordRoom message)
        {
            G2C_EnterMap response = new G2C_EnterMap();

            try
            {
                Log.Debug(MongoHelper.ToJson(message));
                Player player = session.GetComponent <SessionPlayerComponent>().Player;
                StartConfigComponent       startConfigComponet = Game.Scene.GetComponent <StartConfigComponent>();
                IPEndPoint                 matchAddress        = startConfigComponet.MatchConfig.GetComponent <InnerConfig>().IPEndPoint;
                Match2G_CreateRoomResponse matchRoomRes        = await Game.Scene.GetComponent <NetInnerComponent>().Get(matchAddress).Call <Match2G_CreateRoomResponse>(new G2Match_CreateRoomRequest());

                long roomId = matchRoomRes.roomId;

                // 在map服务器上创建战斗Unit
                IPEndPoint     mapAddress = startConfigComponet.MapConfigs[0].GetComponent <InnerConfig>().IPEndPoint;
                Session        mapSession = Game.Scene.GetComponent <NetInnerComponent>().Get(mapAddress);
                M2G_CreateUnit createUnit = await mapSession.Call <M2G_CreateUnit>(new G2M_CreateUnit()
                {
                    PlayerId = player.Id, GateSessionId = session.Id
                });

                //player.UnitId = createUnit.UnitId;
                //response.UnitId = createUnit.UnitId;
                //response.Count = createUnit.Count;
                // reply(response);
            }
            catch (Exception e)
            {
                // ReplyError(response, e, reply);
            }
        }
Пример #2
0
        public static async ETVoid EnterMapAsync(string sceneName)
        {
            try
            {
                // 加载Unit资源
                ResourcesComponent resourcesComponent = DCET.Model.Game.Scene.GetComponent <ResourcesComponent>();
                await resourcesComponent.LoadBundleAsync($"unit.unity3d");

                // 加载场景资源
                await DCET.Model.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("map.unity3d");

                // 切换到map场景
                using (SceneChangeComponent sceneChangeComponent = DCET.Model.Game.Scene.AddComponent <SceneChangeComponent>())
                {
                    await sceneChangeComponent.ChangeSceneAsync(sceneName);
                }

                G2C_EnterMap g2CEnterMap = await DCET.Model.SessionComponent.Instance.Session.Call(new C2G_EnterMap()) as G2C_EnterMap;

                PlayerComponent.Instance.MyPlayer.UnitId = g2CEnterMap.UnitId;

                Game.Scene.AddComponent <OperaComponent>();

                Game.EventSystem.Run(EventIdType.EnterMapFinish);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Пример #3
0
    public async void OnLogin()
    {
        try
        {
            IPEndPoint connetEndPoint = NetworkHelper.ToIPEndPoint(ServerIP);

            Session session = Game.Scene.GetComponent <NetOuterComponent>().Create(connetEndPoint);

            M2C_Reload M2C_Reload = (M2C_Reload)await session.Call(new C2M_Reload()
            {
                Account = nickname.text, Password = password.text
            });

            //connetEndPoint = NetworkHelper.ToIPEndPoint(M2C_Reload.Message);
            //Session gateSession = Game.Scene.GetComponent<NetOuterComponent>().Create(connetEndPoint);
            //Game.Scene.AddComponent<SessionComponent>().Session = gateSession;
            Game.Scene.AddComponent <SessionComponent>().Session = session;

            G2C_EnterMap G2C_EnterMap = (G2C_EnterMap)await Game.Scene.GetComponent <SessionComponent>().Session.Call(new C2G_EnterMap());

            print("登陆gate成功!");

            // 创建Player
            Player          player          = ETModel.ComponentFactory.CreateWithId <Player>(G2C_EnterMap.UnitId);
            PlayerComponent playerComponent = ETModel.Game.Scene.GetComponent <PlayerComponent>();
            playerComponent.MyPlayer = player;

            uiLogin.SetActive(false);
            uiLobby.SetActive(true);
        }
        catch (Exception e)
        {
            Log.Error(e.ToString());
        }
    }
Пример #4
0
        private async void EnterMap()
        {
            try
            {
                G2C_EnterMap g2CEnterMap = (G2C_EnterMap)await SessionComponent.Instance.Session.Call(new C2G_EnterMap());

                Hotfix.Scene.GetComponent <UIComponent>().Remove(UIType.UILobby);
            }
            catch (Exception e)
            {
                Log.Error(e.ToStr());
            }
        }
Пример #5
0
    private async void EnterMap()
    {
        try
        {
            G2C_EnterMap g2CEnterMap = (G2C_EnterMap)await SessionComponent.Instance.Session.Call(new C2G_EnterMap());

            uiLobby.SetActive(false);
            Log.Info("EnterMap...");
        }
        catch (Exception e)
        {
            Log.Error(e.ToString());
        }
    }
Пример #6
0
        private async void OnClickTestC2GEnterMap()
        {
            G2C_EnterMap g2C_EnterMap = (G2C_EnterMap)await ETModel.Game.Scene.GetComponent <ETModel.SessionComponent>().Session.Call(new C2G_EnterMap {
            });

            if (g2C_EnterMap.Error != 0)
            {
                Debug.LogError("Error:" + g2C_EnterMap.Error);
            }
            MapConfig mapConfig = (MapConfig)ETModel.Game.Scene.GetComponent <ConfigComponent>().Get(typeof(MapConfig), 10001);

            ETModel.Game.Scene.AddComponent <BattleDataComponent>().InitActors(g2C_EnterMap.ActorVOs);
            Debug.Log(g2C_EnterMap.UnitId);
            SceneManager.Instance.EnterSceneById((int)mapConfig.Id);
            //LoadScene - > Send LoadComplete -> Enter
        }
Пример #7
0
        public static async ETTask EnterMapAsync(Scene clientScene)
        {
            try
            {
                G2C_EnterMap g2CEnterMap = await clientScene.GetComponent <SessionComponent>().Session.Call(new C2G_EnterMap()) as G2C_EnterMap;

                clientScene.GetComponent <PlayerComponent>().MyId = g2CEnterMap.MyId;

                // 等待场景切换完成
                await clientScene.GetComponent <ObjectWait>().Wait <WaitType.Wait_SceneChangeFinish>();

                Game.EventSystem.Publish(clientScene, new EventType.EnterMapFinish());
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }