Exemplo n.º 1
0
        /// <summary>
        /// 整个房间的初始化
        /// </summary>
        private async void Init()
        {
            PlayerInit();
            //选择英雄的时间
            await Task.Delay(selectHeroTime);

            //是不是所有玩家都锁定了英雄
            if (lockCount == (roomInfo.TeamA.Count + roomInfo.TeamB.Count))
            {
                //所有人都锁定了选择的英雄
                //可以加载战斗了
                RoomToBattleS2C s2cMSG = new RoomToBattleS2C();

                foreach (var rolesID in playerList.Keys)
                {
                    UClient client = GameManager.uSocket.GetClient
                                         (PlayerManager.GetPlayerEntityFromRoles(rolesID).session);
                    //缓存每一个客户端 为广播接口服务的
                    clientList.TryAdd(rolesID, client);

                    s2cMSG.PlayerList.Add(playerList[rolesID]);
                }
                Broadcast(1407, s2cMSG);
            }
            else
            {
                //解散房间
                RoomCloseS2C s2cMSG = new RoomCloseS2C();
                Broadcast(1403, s2cMSG);
                //通知房间管理器 释放掉这个房间
                RoomManager.Instance.Remove(roomID);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 加载进入战斗
        /// </summary>
        /// <param name="response"></param>
        private void HandleRoomToBattleS2C(BufferEntity response)
        {
            RoomToBattleS2C s2cMSG = ProtobufHelper.FromBytes <RoomToBattleS2C>(response.proto);

            RoomCtrl.Instance.SavePlayerList(s2cMSG.PlayerList);

            transform.Find("LoadBG").gameObject.SetActive(true);
            HeroA_item = transform.Find("LoadBG/L_TeamA/HeroA_item");
            HeroB_item = transform.Find("LoadBG/L_TeamB/HeroB_item");

            for (int i = 0; i < s2cMSG.PlayerList.Count; i++)
            {
                GameObject go;
                //A队伍
                if (s2cMSG.PlayerList[i].TeamID == 0)
                {
                    go = GameObject.Instantiate(HeroA_item.gameObject, HeroA_item.parent, false);
                }
                //B队伍
                else
                {
                    go = GameObject.Instantiate(HeroB_item.gameObject, HeroB_item.parent, false);
                }
                go.transform.GetComponent <Image>().sprite
                    = ResManager.Instance.LoadHeroTexture(s2cMSG.PlayerList[i].HeroID);

                go.transform.Find("NickName").GetComponent <Text>().text
                    = s2cMSG.PlayerList[i].RolesInfo.NickName;

                go.transform.Find("SkillA").GetComponent <Image>().sprite
                    = ResManager.Instance.LoadGeneralSkill(s2cMSG.PlayerList[i].SkillA);

                go.transform.Find("SkillB").GetComponent <Image>().sprite
                    = ResManager.Instance.LoadGeneralSkill(s2cMSG.PlayerList[i].SkillB);

                go.transform.Find("Progress").GetComponent <Text>().text
                    = "0%";

                go.gameObject.SetActive(true);
                //缓存克隆出来的游戏物体 更新进度
                playerLoadDIC[s2cMSG.PlayerList[i].RolesInfo.RolesID] = go;
            }

            async = SceneManager.LoadSceneAsync("Level01");
            async.allowSceneActivation = false;//不要激活场景

            //定时的去发送加载进度
            SendProgeress();
        }