public int Seat;                   //当前创建角色界面对应的位置 由外部设置

        public void Awake(A0008_GetUserInfo_G2C message)
        {
            //保存帐号信息
            messageUser = message;

            //获取父级"包"
            FUI CreateCharacter = this.GetParent <FUI>();

            Controller = CreateCharacter.Get("Controller"); //Get有先后顺序
            Gender     = Controller.GObject.asCom.GetController("c1");
            Career     = Controller.GObject.asCom.GetController("c2");
            Step       = Controller.GObject.asCom.GetController("c3");
            Holder     = CreateCharacter.Get("Holder");
            NameInput  = Controller.Get("NameInput");
            Prompt     = Controller.Get("Prompt");

            //加载默认模型 男/战士
            OnControllerChanged();

            //添加事件
            //Gender.selectedIndex = 1; //设置被选中的页面
            //Gender.SetSelectedIndex(1); //设置被选中的页面而不触发Change事件
            Controller.Get("Back").GObject.asButton.onClick.Add(OnBack);            //返回角色列表或者退出游戏
            Controller.Get("Complete").GObject.asButton.onClick.Add(OnCheckCreate); //检验角色名称是否合法
            Gender.onChanged.Add(OnControllerChanged);
            Career.onChanged.Add(OnControllerChanged);
            //aObject.OnGearStop.Add(OnGearStop); //缓动结束通知

            isCreateComplete = true;
            Log.Debug("加载完创建角色界面");
        }
        //退出界面需要重置所有元件属性
        public override void Dispose()
        {
            if (this.IsDisposed)
            {
                return;
            }
            base.Dispose();

            Log.Debug("退出创建角色界面");
            Controller.Get("Back").GObject.asButton.onClick.Remove(OnBack);
            Controller.Get("Complete").GObject.asButton.onClick.Remove(OnCheckCreate);
            Controller.Get("Back").Dispose();
            Controller.Get("Complete").Dispose();

            Holder.Dispose();
            Demo                = null;
            Wrapper             = null;
            isCreateComplete    = false;
            isCreatingCharacter = false;
            messageUser         = null;
            Controller.Dispose();
            Gender = null;
            Career = null;
            Step   = null;
            NameInput.Dispose();
            Prompt.Dispose();
            Seat = 0;
        }
Ejemplo n.º 3
0
        public static void Create(A0008_GetUserInfo_G2C message)
        {
            FUIComponent fuiComponent = Game.Scene.GetComponent <FUIComponent>();
            FUI          fui          = ComponentFactory.Create <FUI, GObject>(UIPackage.CreateObject(FUIType.Sekia, FUIType.CreateCharacter));

            fui.Name = FUIType.CreateCharacter;
            fui.AddComponent <CreateCharacterComponent, A0008_GetUserInfo_G2C>(message);
            fuiComponent.Add(fui);
        }
Ejemplo n.º 4
0
        public void Awake(A0008_GetUserInfo_G2C message)
        {
            //保存帐号信息
            messageUser = message;

            //获取父级"包"
            FUI SelectCharacter = this.GetParent <FUI>();

            Controller   = SelectCharacter.Get("Controller"); //Get有先后顺序
            SeatSelect   = Controller.GObject.asCom.GetController("c1");
            NoneorExist1 = Controller.GObject.asCom.GetController("c2");
            NoneorExist2 = Controller.GObject.asCom.GetController("c3");
            NoneorExist3 = Controller.GObject.asCom.GetController("c4");
            Holder1      = Controller.Get("Holder1");
            Holder2      = Controller.Get("Holder2");
            Holder3      = Controller.Get("Holder3");
            Money1       = Controller.Get("Money1");
            Money2       = Controller.Get("Money2");
            Money3       = Controller.Get("Money3");
            Mail1        = Controller.Get("Mail1");
            Mail2        = Controller.Get("Mail2");
            Mail3        = Controller.Get("Mail3");
            Level1       = Controller.Get("Level1");
            Level2       = Controller.Get("Level2");
            Level3       = Controller.Get("Level3");
            Location1    = Controller.Get("Location1");
            Location2    = Controller.Get("Location2");
            Location3    = Controller.Get("Location3");

            //设置当前激活序列 由上次登陆游戏/注册的角色决定
            SeatSelect.SetSelectedIndex(messageUser.LastPlay - 1);

            //加载帐号设置 形象/金钱/邮件/等级/位置
            OnLoadCharacters(messageUser.Characters[0], Holder1, NoneorExist1, Money1, Mail1, Level1, Location1);
            OnLoadCharacters(messageUser.Characters[1], Holder2, NoneorExist2, Money2, Mail2, Level2, Location2);
            OnLoadCharacters(messageUser.Characters[2], Holder3, NoneorExist3, Money3, Mail3, Level3, Location3);

            //添加事件
            Controller.Get("Select1").GObject.asButton.onClick.Add(OnSelect1); //选择一个角色位置 进入游戏或创建角色
            Controller.Get("Select2").GObject.asButton.onClick.Add(OnSelect2);
            Controller.Get("Select3").GObject.asButton.onClick.Add(OnSelect3);

            Log.Debug("加载完选择角色界面");
        }
Ejemplo n.º 5
0
        //退出界面需要重置所有元件属性
        public override void Dispose()
        {
            if (this.IsDisposed)
            {
                return;
            }
            base.Dispose();

            Log.Debug("退出选择角色界面");
            Controller.Get("Select1").GObject.asButton.onClick.Remove(OnSelect1);
            Controller.Get("Select2").GObject.asButton.onClick.Remove(OnSelect2);
            Controller.Get("Select3").GObject.asButton.onClick.Remove(OnSelect3);
            Controller.Get("Select1").Dispose();
            Controller.Get("Select2").Dispose();
            Controller.Get("Select3").Dispose();

            messageUser = null;
            Controller.Dispose();
            SeatSelect   = null;
            NoneorExist1 = null;
            NoneorExist2 = null;
            NoneorExist3 = null;
            Holder1.Dispose();
            Holder2.Dispose();
            Holder3.Dispose();
            Money1.Dispose();
            Money2.Dispose();
            Money3.Dispose();
            Mail1.Dispose();
            Mail2.Dispose();
            Mail3.Dispose();
            Level1.Dispose();
            Level2.Dispose();
            Level3.Dispose();
            Location1.Dispose();
            Location2.Dispose();
            Location3.Dispose();
            isWaiting = false;
        }
Ejemplo n.º 6
0
        public static async ETVoid Login(string account, string password)
        {
            SekiaLoginComponent login = Game.Scene.GetComponent <FUIComponent>().Get(FUIType.SekiaLogin).GetComponent <SekiaLoginComponent>();

            Session         sessionRealm = Game.Scene.GetComponent <NetOuterComponent>().Create(GlobalConfigComponent.Instance.GlobalProto.Address);
            A0002_Login_R2C messageRealm = (A0002_Login_R2C)await sessionRealm.Call(new A0002_Login_C2R()
            {
                Account = account, Password = password
            });

            sessionRealm.Dispose();
            login.Prompt.GObject.asTextField.text = "正在登录中...";

            //判断Realm服务器返回结果
            if (messageRealm.Error == ErrorCode.ERR_AccountOrPasswordError)
            {
                login.Prompt.GObject.asTextField.text = "登录失败,账号或密码错误";
                login.AccountInput.Get("Input").GObject.asTextInput.text  = "";
                login.PasswordInput.Get("Input").GObject.asTextInput.text = "";
                login.isLogining = false;
                return;
            }
            //判断通过则登陆Realm成功

            //创建唯一Session
            Session sessionGate = Game.Scene.GetComponent <NetOuterComponent>().Create(messageRealm.GateAddress);

            if (SessionComponent.Instance == null)
            {
                //Log.Debug("创建唯一Session");
                Game.Scene.AddComponent <SessionComponent>().Session = sessionGate;
            }
            else
            {
                SessionComponent.Instance.Session = sessionGate;
            }

            A0003_LoginGate_G2C messageGate = (A0003_LoginGate_G2C)await sessionGate.Call(new A0003_LoginGate_C2G()
            {
                GateLoginKey = messageRealm.GateLoginKey
            });

            //判断登陆Gate服务器返回结果
            if (messageGate.Error == ErrorCode.ERR_ConnectGateKeyError)
            {
                login.Prompt.GObject.asTextField.text = "连接网关服务器超时";
                login.AccountInput.Get("Input").GObject.asTextInput.text  = "";
                login.PasswordInput.Get("Input").GObject.asTextInput.text = "";
                sessionGate.Dispose();
                login.isLogining = false;
                return;
            }
            //判断通过则登陆Gate成功

            login.Prompt.GObject.asTextField.text = "";
            User user = ComponentFactory.Create <User, long>(messageGate.UserID);

            GamerComponent.Instance.MyUser = user;
            //Log.Debug("登陆成功");

            //获取角色信息判断应该进入哪个界面
            A0008_GetUserInfo_G2C messageUser = (A0008_GetUserInfo_G2C)await sessionGate.Call(new A0008_GetUserInfo_C2G());

            //消息中包含了3个CharacterInfo

            //正常的角色等级为正整数
            if (messageUser.Characters.Count == 3 &&
                messageUser.Characters[0].Level == 0 &&
                messageUser.Characters[1].Level == 0 &&
                messageUser.Characters[2].Level == 0)
            {
                //进入创建角色界面
                CreateCharacterFactory.Create(messageUser);
                CreateCharacterComponent creater = Game.Scene.GetComponent <FUIComponent>().Get(FUIType.CreateCharacter).GetComponent <CreateCharacterComponent>();
                creater.Seat = 1; //创建第一个空位的角色
            }
            else if (messageUser.Characters.Count == 3 &&
                     (messageUser.Characters[0].Level > 0 ||
                      messageUser.Characters[1].Level > 0 ||
                      messageUser.Characters[2].Level > 0))
            {
                //进入角色选择界面
                SelectCharacterFactory.Create(messageUser);
            }

            Game.EventSystem.Run(EventIdType.SekiaLoginFinish);
        }
Ejemplo n.º 7
0
        //请求创建角色 参数:角色位置 角色名 骨骼编号 职业编号
        public static async ETVoid CreateNewCharacter(int seat, string name, int skeleton, int career)
        {
            //模型本身由复数的部件构成 玩家先加载模型编号指定的默认模型再根据身上穿着的装备进行更换装备
            SkeletonType skeletonType = SkeletonType.Man;;
            CareerType   careerType   = CareerType.Warror;

            //将控制器页数转换为消息参数
            string gender = "";

            switch (skeleton)
            {
            case 0:
                gender       = "男";
                skeletonType = SkeletonType.Man;
                break;

            case 1:
                gender       = "女";
                skeletonType = SkeletonType.Women;
                break;

            default:
                break;
            }

            switch (career)
            {
            case 0:
                Log.Debug("创建" + gender + "战士" + " 名称:" + name);
                careerType = CareerType.Warror;
                break;

            case 1:
                Log.Debug("创建" + gender + "法师" + " 名称:" + name);
                careerType = CareerType.Mage;
                break;

            default:
                break;
            }

            CreateCharacterComponent creater = Game.Scene.GetComponent <FUIComponent>().Get(FUIType.CreateCharacter).GetComponent <CreateCharacterComponent>();

            //发送创建角色请求
            A0009_CreateNewCharacter_G2C messageCreate = (A0009_CreateNewCharacter_G2C)await SessionComponent.Instance.Session.Call(new A0009_CreateNewCharacter_C2G()
            {
                Name     = name,
                Skeleton = skeletonType,
                Career   = careerType,
                Seat     = seat
            });

            //判断Gate服务器返回结果
            if (messageCreate.Error == ErrorCode.ERR_CreateNewCharacter)
            {
                creater.Prompt.GObject.asTextField.text = "名称已被占用";
                creater.NameInput.Get("Input").GObject.asTextInput.text = "";
                creater.isCreatingCharacter = false;
                return;
            }
            //判断通过则创建角色成功

            //获取角色信息判断应该进入哪个界面
            A0008_GetUserInfo_G2C messageUser = (A0008_GetUserInfo_G2C)await SessionComponent.Instance.Session.Call(new A0008_GetUserInfo_C2G());

            if (messageUser.Characters.Count == 3 &&
                messageUser.Characters[0].Level == 0 &&
                messageUser.Characters[1].Level == 0 &&
                messageUser.Characters[2].Level == 0)
            {
                //报错
                Log.Error("没有正确创建角色");
            }
            else if (messageUser.Characters.Count == 3 &&
                     (messageUser.Characters[0].Level > 0 ||
                      messageUser.Characters[1].Level > 0 ||
                      messageUser.Characters[2].Level > 0))
            {
                //进入角色选择界面
                SelectCharacterFactory.Create(messageUser);
            }

            Game.EventSystem.Run(EventIdType.CreateCharacterFinish);
        }