예제 #1
0
        public void InitEnterVirtualAttr(MsgData_sSceneObjectEnterVirtualPlayer hes)
        {
            int server;

            mName    = PlayerData.GetPlayerName(UiUtil.GetNetString(hes.Name), out server);
            VIPLevel = 0;
            mLordId  = 0;
            SetBasicAttrValue((int)BasicAttrEnum.Prof, hes.Job);
            SetBasicAttrValue((int)BasicAttrEnum.Level, hes.Level);
            SetBasicAttrValue((int)BasicAttrEnum.Gender, hes.Gender);
            //SetBasicAttrValue((int)BasicAttrEnum.Speed, CommonTools.ServerValueToClient(hes.Speed));
            SetBasicAttrValue((int)BasicAttrEnum.MaxHP, hes.HP);
            SetBasicAttrValue((int)BasicAttrEnum.CurHP, hes.HP);
            //SetBasicAttrValue((int)BasicAttrEnum.CurHP, hes.HP);
            Dress         = hes.Dress;
            EquipStarMin  = 0;
            Weapon        = hes.Weapon;
            FashionDress  = hes.FashionDress;
            FashionWeapon = hes.FashionWeapon;
            //ShenBing = hes.ShenBin;
            //FashionState = hes.FashionState;
            //TeamID = hes.TeamID;
            GuildID = hes.Guid;
            //HeroTitle = hes.Title[0];
        }
예제 #2
0
        /// <summary>
        /// 好友添加申请。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        private void OnAddApply(MsgData data)
        {
            MsgData_sAddFriendApply info = data as MsgData_sAddFriendApply;

            if (IsFriend(info.RoleID) || IsInBlackList(info.RoleID))            //已经时好友或者被拉黑了则屏蔽
            {
                return;
            }

            RoleSimpleInfo roleinfo = GetAddApplyInfo(info.RoleID);

            if (roleinfo == null)
            {
                int server;
                roleinfo        = new RoleSimpleInfo();
                roleinfo.ID     = info.RoleID;
                roleinfo.Level  = info.Level;
                roleinfo.Name   = PlayerData.GetPlayerName(UiUtil.GetNetString(info.RoleName), out server);
                roleinfo.Server = server;
                mAddApplyList.Add(roleinfo);
            }

            EventParameter ep = EventParameter.Get();

            CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_FRIEND_REMOVE_RELATION, ep);
        }
예제 #3
0
        /// <summary>
        /// 收到系统公告。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        public void OnSystemNotice(MsgData data)
        {
            MsgData_sChatSysNotice info = data as MsgData_sChatSysNotice;
            string param = UiUtil.GetNetString(info.Param).Trim();

            ShowSystemNotice(info.ID, param);
        }
예제 #4
0
파일: TeamData.cs 프로젝트: midgithub/notes
        /// <summary>
        /// 玩家请求加入。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        private void OnJoinRequest(MsgData data)
        {
            MsgData_sTeamJoinRequest info     = data as MsgData_sTeamJoinRequest;
            RequestJoinInfo          joininfo = GetJoinRequestInfo(info.RoleID);

            if (joininfo != null)
            {
                //已经在请求列表中
                return;
            }
            string netname = UiUtil.GetNetString(info.RoleName);
            int    server;

            joininfo        = new RequestJoinInfo();
            joininfo.RoleID = info.RoleID;
            joininfo.Name   = PlayerData.GetPlayerName(netname, out server);
            joininfo.Server = server;
            joininfo.Level  = info.Level;
            joininfo.Power  = info.Power;
            joininfo.Prof   = info.Prof;
            mJoinRequestInfos.Add(joininfo);

            if (AutoAgree)
            {
                SendJoinApproveRequest(info.RoleID, 1);
            }
            else
            {
                EventParameter ep = EventParameter.Get();
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_TEAM_JOIN_REQUEST, ep);
            }
        }
예제 #5
0
 public override void UpdatePetAttr(MsgData_sSceneObjHoneYanLevel attrs)
 {
     Starlevel = attrs.Level;
     Qua       = attrs.Qua;
     OwnName   = UiUtil.GetNetString(attrs.RoleName);
     if (mHealth != null)
     {
         mHealth.OnPetLevelChange();
     }
 }
예제 #6
0
        /// <summary>
        /// 构造函数。
        /// </summary>
        /// <param name="chat">聊天网络消息。</param>
        public ChatMessage(MsgData_sChat chat)
        {
            int server;

            mContent = chat;

            mShowType = mContent.SenderID == PlayerData.Instance.RoleID ? 3 : 2;
            //byte[] bytes = mContent.Text.ToArray();
            mText       = UiUtil.GetNetString(mContent.Text);
            mSenderID   = mContent.SenderID;
            mSenderName = PlayerData.GetPlayerName(UiUtil.GetNetString(mContent.SenderName), out server);
            mChannel    = mContent.Channel;
        }
예제 #7
0
        /// <summary>
        /// 好友查找结果。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        private void OnFindResult(MsgData data)
        {
            MsgData_sFindFriendTarget info = data as MsgData_sFindFriendTarget;
            int server;

            mFindRole.ID     = info.RoleID;
            mFindRole.Name   = PlayerData.GetPlayerName(UiUtil.GetNetString(info.RoleName), out server);
            mFindRole.Server = server;
            mFindRole.Level  = info.Level;

            EventParameter ep = EventParameter.Get();

            CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_FRIEND_FIND, ep);
        }
예제 #8
0
        /// <summary>
        /// 初始化数据。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        public void OnInitData(MsgData data)
        {
            MsgData_sMeInfo info = data as MsgData_sMeInfo;

            MainRole.Instance.serverID = info.RoleID;
            MainRole.Instance.faction  = info.ZhenYing;
            mBasicAttr.ClearBasicAttr();
            mRoleID                  = info.RoleID;
            mBasicAttr.Wing          = info.Wing;
            mBasicAttr.ZhenFa        = info.ZhenFaID;
            mBasicAttr.Faction       = info.ZhenYing;
            mBasicAttr.Dress         = info.Dress;
            mBasicAttr.EquipStarMin  = info.EquipStarMin;
            mBasicAttr.Weapon        = info.Weapon;
            mBasicAttr.FashionWing   = info.FashionWing;
            mBasicAttr.FashionDress  = info.FashionDress;
            mBasicAttr.FashionWeapon = info.FashionWeapon;
            mBasicAttr.FashionState  = info.FashionState;
            mBasicAttr.ShenBing      = info.ShenBing;
            ShenBingId               = info.ShenBing;
            mBasicAttr.Name          = GetPlayerName(UiUtil.GetNetString(info.RoleName), out mServerGroup);
            mBasicAttr.SetBasicAttrValue((int)BasicAttrEnum.Gender, info.Gender);
            mBasicAttr.SetBasicAttrValue((int)BasicAttrEnum.Prof, info.Job);
            mBasicAttr.Lord = info.GuanZhi;
            mIcon           = info.Icon;
            CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PLAYER_INFO, EventParameter.Get());
            CoreEntry.gAutoAIMgr.ReloadConfig();
            NetLogicGame.Instance.SendReqDianfengInfo();
            NetLogicGame.Instance.SendReqGetMailList();

            //若已经创建了玩家对象则更新
            if (CoreEntry.gActorMgr.MainPlayer != null)
            {
                CoreEntry.gActorMgr.MainPlayer.mBaseAttr.Name = mBasicAttr.Name;
                CoreEntry.gActorMgr.MainPlayer.mBaseAttr.Lord = mBasicAttr.Lord;
                CoreEntry.gActorMgr.MainPlayer.Faction        = info.ZhenYing;
            }
            mTeamData.SendTeamInfoRequest();

            //Lua层初始化
            LuaTable           G     = LuaMgr.Instance.GetLuaEnv().Global;
            LuaTable           table = G.Get <LuaTable>("ModelManager");
            MemberFunctionCall fun   = table.Get <MemberFunctionCall>("InitPlayerData");

            if (fun != null)
            {
                fun(table);
            }
        }
예제 #9
0
        /// <summary>
        /// 有好友礼包通知。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        private void OnHaveReward(MsgData data)
        {
            MsgData_sFriendReward info     = data as MsgData_sFriendReward;
            RoleSimpleInfo        roleinfo = new RoleSimpleInfo();
            int server;

            roleinfo.ID     = info.RoleID;
            roleinfo.Name   = PlayerData.GetPlayerName(UiUtil.GetNetString(info.RoleName), out server);
            roleinfo.Server = server;
            roleinfo.Level  = info.Level;
            mHaveReward.Add(roleinfo);

            EventParameter ep = EventParameter.Get();

            CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_FRIEND_HAVE_REWARD, ep);
        }
예제 #10
0
        /// <summary>
        /// 副本信息。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        private void OnInitData(MsgData data)
        {
            MsgData_sZhiYuanFbData info = data as MsgData_sZhiYuanFbData;

            mIsInit = true;
            string str = UiUtil.GetNetString(info.EnterNumList);

            string[] numstr = str.Split(',');
            mEnterNum.Clear();
            mBuyNum.Clear();
            for (int i = 0; i < numstr.Length; ++i)
            {
                string nstr = numstr[i].Trim();
                int    num;
                if (int.TryParse(nstr, out num))
                {
                    mEnterNum.Add(num % 16);
                    mBuyNum.Add(num / 16);
                }
            }
            mVeilList.Clear();
            mVeilList.AddRange(info.VeilList);
            mStageInfo.Clear();
            for (int i = 0; i < info.StageList.Count; ++i)
            {
                MsgData_sStagevo stage = info.StageList[i];
                mStageInfo.Add(stage.ID, stage);
            }

            //触发事件
            EventParameter ep = EventParameter.Get();

            CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_RESLEVEL_INIT, ep);

            //显示UI
            if (mInitShowUI)
            {
                mInitShowUI = false;
                MainPanelMgr.Instance.ShowPanel("UIResLevel");
            }
        }
예제 #11
0
파일: TeamData.cs 프로젝트: midgithub/notes
        /// <summary>
        /// 成员退出。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        private void OnMemberExit(MsgData data)
        {
            MsgData_sTeamRoleExit info = data as MsgData_sTeamRoleExit;

            if (info.RoleID == PlayerData.Instance.RoleID)
            {
                //自己离开了队伍,直接整个刷新
                mTeamID         = 0;
                TargetID        = 0;
                PowerLimit      = 0;
                GloryLevelLimit = 0;
                mMembers.Clear();
                mJoinRequestInfos.Clear();
                m_AutoTeamTimeStamp = Time.realtimeSinceStartup;

                EventParameter ep = EventParameter.Get();
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_TEAM_INFO, ep);
            }
            else
            {
                string rname = string.Empty;
                for (int i = 0; i < mMembers.Count; ++i)
                {
                    if (mMembers[i].RoleID == info.RoleID)
                    {
                        rname = UiUtil.GetNetString(mMembers[i].RoleName);
                        mMembers.RemoveAt(i);
                        break;
                    }
                }

                EventParameter ep = EventParameter.Get();
                ep.longParameter   = info.RoleID;
                ep.stringParameter = rname;
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_TEAM_EXIT, ep);
            }
        }
예제 #12
0
        /// <summary>
        /// 通过角色进场数据初始化属性。
        /// </summary>
        /// <param name="es">进场数据。</param>
        public void InitOtherPlayerAttr(MsgData_sSceneObjectEnterHuman hes)
        {
            int server;

            mName    = PlayerData.GetPlayerName(UiUtil.GetNetString(hes.RoleName), out server);
            VIPLevel = hes.VipLv;
            mLordId  = hes.GuanZhi;
            SetBasicAttrValue((int)BasicAttrEnum.Prof, hes.Prof);
            SetBasicAttrValue((int)BasicAttrEnum.Level, hes.Level);
            SetBasicAttrValue((int)BasicAttrEnum.Gender, hes.Sex);
            SetBasicAttrValue((int)BasicAttrEnum.Speed, CommonTools.ServerValueToClient(hes.Speed));
            SetBasicAttrValue((int)BasicAttrEnum.MaxHP, hes.MaxHp);
            SetBasicAttrValue((int)BasicAttrEnum.CurHP, hes.CurHp);
            Dress         = hes.Dress;
            EquipStarMin  = hes.EquipStarMin;
            Weapon        = hes.Weapon;
            FashionDress  = hes.FashionDress;
            FashionWeapon = hes.FashionWeapon;
            ShenBing      = hes.ShenBin;
            FashionState  = hes.FashionState;
            TeamID        = hes.TeamID;
            GuildID       = hes.GuildID;
            HeroTitle     = hes.Title[0];
        }
예제 #13
0
파일: TeamData.cs 프로젝트: midgithub/notes
        /// <summary>
        /// 邀请加入。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        private void OnInviteRequest(MsgData data)
        {
            MsgData_sTeamInviteRequest info     = data as MsgData_sTeamInviteRequest;
            InviteJoinInfo             joininfo = GetInviteJoinInfo(info.TeamID);

            if (joininfo != null)
            {
                //已经在邀请列表中
                return;
            }

            string netname = UiUtil.GetNetString(info.LeaderName);
            int    server;

            joininfo            = new InviteJoinInfo();
            joininfo.TeamID     = info.TeamID;
            joininfo.LeaderName = PlayerData.GetPlayerName(netname, out server);
            joininfo.Type       = info.Type;
            mInviteJoinInfos.Add(joininfo);

            EventParameter ep = EventParameter.Get();

            CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_TEAM_INVITE_REQUEST, ep);
        }
예제 #14
0
        public GameObject LoadPet(MsgData_sSceneObjectEnterPet petStruct)
        {
            LuaTable petCfg = ConfigManager.Instance.HeroConfig.GetHeroConfig(petStruct.ConfigID);

            if (null == petCfg)
            {
                return(null);
            }

            float   s          = petCfg.Get <float>("scale");
            Vector3 position   = CommonTools.ServerPosToClient(petStruct.PosX, petStruct.PosY);
            Vector3 eulerAngle = CommonTools.ServerDirToClient(petStruct.Dir);
            Vector3 scale      = new Vector3(s, s, s);

            if (petStruct.Job <= 0)
            {
                return(null);
            }
            int modelid = petCfg.Get <int>("model" + petStruct.Job);

            if (petStruct.Level > 0)
            {
                LuaTable petShengjieCfg = ConfigManager.Instance.HeroConfig.GetHeroShengjieConfig(petStruct.ConfigID * 100 + petStruct.Level);
                if (petShengjieCfg != null)
                {
                    modelid = petShengjieCfg.Get <int>("model" + petStruct.Job);
                }
            }
            GameObject obj = CreateGameObject(modelid, position, eulerAngle, scale);

            if (obj == null)
            {
                return(null);
            }

            //obj.transform.localScale = Vector3.one;

            ActorObj actorObject = null;

            actorObject = obj.GetComponent <ActorObj>();
            if (null != actorObject)
            {
                Object.DestroyImmediate(actorObject);
            }

            PlayerAgent agent = obj.GetComponent <PlayerAgent>();

            if (null != agent)
            {
                agent.enabled = false;
            }

            PetObj pet = obj.AddComponent <PetObj>();

            pet.Starlevel = petStruct.Level;
            pet.Qua       = petStruct.Qua;
            pet.OwnName   = UiUtil.GetNetString(petStruct.RoleName);

            pet.SetMaster(petStruct.Owner);
            //Debug.LogError("pet :" + petStruct.Owner + " id:" + petStruct.ConfigID);
            pet.Init(modelid, petStruct.ConfigID, petStruct.Guid);
            pet.ServerID = petStruct.Guid;
            pet.InitSpeed(CommonTools.ServerValueToClient(petStruct.Speed));
            CoreEntry.gActorMgr.AddActorObj(pet);

            //宠物创建时,需要检查主人的显示隐藏属性
            if (pet.m_MasterActor && !pet.m_MasterActor.Visiable)
            {
                pet.HideSelf();
            }

            //ActorObj owner = CoreEntry.gActorMgr.GetPlayerActorByServerID(petStruct.Owner);
            //if (null != owner)
            //{
            //    if (owner.mActorType == ActorType.AT_LOCAL_PLAYER)
            //    {
            //        pet.ChangeWeapon(PlayerData.Instance.GetWeaponModelID());
            //    }
            //    else
            //    {
            //        MsgData_sSceneObjectEnterHuman ownerData = CoreEntry.gSceneObjMgr.GetEntityData(petStruct.Owner) as MsgData_sSceneObjectEnterHuman;
            //        if (null != ownerData)
            //        {
            //            pet.ChangeWeapon(GetWeaponModelID(ownerData.FashionState == 0 ? ownerData.FashionWeapon : 0, ownerData.ShenBin, ownerData.Weapon, ownerData.Prof));
            //        }
            //    }
            //}

            return(obj);
        }