Пример #1
0
    private void StartGame(GameRoomDto dto)
    {
        Debug.Log("开始游戏");
        SceneMesg sm = new SceneMesg(2, () =>
        {
            Debug.Log("游戏场景加载完毕");
            //将传来的房间数据里的玩家保存并根据位置信息生成对应角色
            //foreach (var item in dto.UserAccDtoDict.Values)
            //{
            //    Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_ADD, item);
            //}
            //foreach (var item in dto.UserTransDto.Values)
            //{
            //    Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_SPAWN, item);
            //}
            foreach (var item in dto.UserAccDtoDict.Keys)
            {
                Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_ADD, dto.UserAccDtoDict[item]);
                Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_SPAWN, dto.UserTransDto[item]);
                Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_HP, dto.UserHpDict[item]);
                Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_HG, dto.UserHgDict[item]);
                Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_KILL, dto.UserKillDict[item]);
            }
        });

        Dispatch(AreaCode.SCENE, SceneEvent.SCENE_LOAD, sm);
    }
Пример #2
0
    private void Enter(GameRoomDto dto)
    {
        if (dto == null)
        {
            smg.Change(OpCode.MATCH, MatchCode.MATCH_ENTER_CREQ, null);
            Dispatch(AreaCode.NET, 0, smg);
            return;
        }
        SceneMesg sm = new SceneMesg(2, () =>
        {
            foreach (var item in dto.UserAccDtoDict.Keys)
            {
                Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_ADD, dto.UserAccDtoDict[item]);
                Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_SPAWN, dto.UserTransDto[item]);
                Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_HP, dto.UserHpDict[item]);
                Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_HG, dto.UserHgDict[item]);
                Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_KILL, dto.UserKillDict[item]);
                //ArmsDto armsDto = new ArmsDto(item, dto.UserArmsDict[item]);
                //Dispatch(AreaCode.FIGHT, FightEvent.FIGHT_SYNC_ARMSTYPS, armsDto);
            }
        });

        Dispatch(AreaCode.SCENE, SceneEvent.SCENE_LOAD, sm);
    }