Example #1
0
 // 重载模型回调
 public override void OnReloadModle()
 {
     base.OnReloadModle();
     if (m_bIsBornCreate)
     {
         Tab_RoleBaseAttr _roleBaseAttr = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);
         if (_roleBaseAttr != null)
         {
             //反溶解特效
             if (_roleBaseAttr.RampType == 1 || _roleBaseAttr.RampType == 3)
             {
                 PlayUnDissolve(0.5f, 0.0f);
             }
             //死亡特效
             if (_roleBaseAttr.BornEffctID != -1)
             {
                 PlayEffect(_roleBaseAttr.BornEffctID);
             }
         }
         m_bIsBornCreate = false;
     }
     //雁门关的BOSS 刷新身上加上一个特效
     if (BaseAttr.RoleBaseID == 58)
     {
         PlayEffect(170);
     }
     ResetEdge();
 }
Example #2
0
    // 立即前往
    void ButtonGo()
    {
        Tab_MissionDictionary DicTab = TableManager.GetMissionDictionaryByID(GlobeVar.PAOSHANG_MISSIONID_H, 0);

        if (DicTab == null)
        {
            LogModule.ErrorLog("Can not find missionDictionary {0}", GlobeVar.PAOSHANG_MISSIONID_H);
            return;
        }

        // 自动寻路
        AutoSearchPoint point = new AutoSearchPoint(DicTab.AccepteNpcSceneID, DicTab.AccepteNpcPosX, DicTab.AccepteNpcPosZ);

        if (GameManager.gameManager && GameManager.gameManager.AutoSearch)
        {
            string           sAutoSearchTargetName = string.Empty;
            Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(DicTab.AcceptNpcDataID, 0);
            if (null != RoleBase)
            {
                sAutoSearchTargetName = RoleBase.Name;
            }
            else
            {
                LogModule.ErrorLog("Can not find roleBaseAttr {0}", DicTab.AcceptNpcDataID);
            }
            GameManager.gameManager.AutoSearch.ProcessAutoSearch(point, sAutoSearchTargetName, false);
        }
    }
 public override void Start()
 {
     base.Start();
     if (m_nTargetID == 0)
     {
         CameraManager.Instance.LookPos(m_TargetPos, CameraMoveOver, m_fDuration);
     }
     if (m_nTargetID < 0)
     {
         if (null != Singleton <ObjManager> .GetInstance().MainPlayer)
         {
             CameraManager.Instance.LookTarget(Singleton <ObjManager> .GetInstance().MainPlayer, CameraMoveOver, m_fDuration);
         }
         else
         {
             Finish();
         }
     }
     if (m_nTargetID > 0)
     {
         Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(m_nTargetID, 0);
         if (null != RoleBase)
         {
             Obj_Character targetCharacter = ObjManager.Instance.FindObjCharacterInSceneByName(RoleBase.Name, true, 20);
             if (null != targetCharacter)
             {
                 CameraManager.Instance.LookTarget(targetCharacter, CameraMoveOver, m_fDuration);
             }
         }
     }
 }
        public override void Start()
        {
            base.Start();
            if (m_nTargetID != -1)
            {
                // 暂时试试以RoleBaseAttr中的名字来取得Obj
                Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(m_nTargetID, 0);
                if (null != RoleBase)
                {
                    Obj_Character character = ObjManager.Instance.FindObjCharacterInSceneByName(RoleBase.Name, true, 20);
                    if (null != character)
                    {
                        Animation animComp = character.AnimLogic.GetAnimation();
                        if (null != animComp)
                        {
                            // 有些动作竟然会跳出屏幕,这还怎么玩?
                            animComp.cullingType = AnimationCullingType.AlwaysAnimate;
                            character.AnimLogic.Play(m_nAnimID, AnimFinishCallback);
                        }
                        else
                        {
                            Finish();
                        }
                    }
                    else
                    {
                        Finish();
                    }
                }
                else
                {
                    Finish();
                }
            }
            else
            {
                Obj_Character character = Singleton <ObjManager> .GetInstance().MainPlayer;

                if (null != character)
                {
                    Animation animComp = character.AnimLogic.GetAnimation();
                    if (null != animComp)
                    {
                        animComp.cullingType = AnimationCullingType.AlwaysAnimate;
                        character.AnimLogic.Play(m_nAnimID, AnimFinishCallback);
                        m_bIsPlayingMainPlayerAnim = true;
                    }
                    else
                    {
                        Finish();
                    }
                }
                else
                {
                    Finish();
                }
            }
        }
Example #5
0
    void ShowOpponentView()
    {
        UIStage       = 1;
        SearchSecond  = 0;
        progress.text = WuLinData.WuLinRounderTip();
        if (WuLinData.OppoViewInfo.guid == Games.GlobeDefine.GlobeVar.INVALID_GUID)
        {
            string text = "";
            if (WuLinData.Rounder == 1)
            {
                text = StrDictionary.GetClientDictionaryString("#{4813}");
            }
            else
            {
                string roundTips = WuLinData.WuLinRoundTipPrefix();
                text = StrDictionary.GetClientDictionaryString("#{4814}", roundTips);
            }

            searchTip.text = text;
            Countdown.text = text;
        }
        else
        {
            searchTip.text = Utils.GetDicByID(1845);
            Countdown.text = Utils.GetDicByID(1845);
            int id = (int)WuLinData.OppoViewInfo.profession;
            Tab_RoleBaseAttr roleBaseAttr = TableManager.GetRoleBaseAttrByID(id, 0);
            if (roleBaseAttr != null)
            {
                Tab_CharModel charModel = TableManager.GetCharModelByID(roleBaseAttr.CharModelID, 0);
                if (charModel != null)
                {
                    HeadIcon.spriteName = charModel.HeadPic;
                }
            }
            // if( id >= 0 && id <  CharacterDefine.PROFESSION_DICNUM.Length)
            {
                Profession.text = Utils.GetProfessionNameByType(id);
                //Utils.GetDicByID(CharacterDefine.PROFESSION_DICNUM[id]);
            }
        }

        Name.text      = WuLinData.OppoViewInfo.name;
        CombatNum.text = WuLinData.OppoViewInfo.combat.ToString();
        HP.text        = WuLinData.OppoViewInfo.hp.ToString();
        MP.text        = WuLinData.OppoViewInfo.mp.ToString();
        Attack.text    = WuLinData.OppoViewInfo.atk.ToString();
        Defense.text   = WuLinData.OppoViewInfo.def.ToString();
        Critical.text  = WuLinData.OppoViewInfo.cri.ToString();
        Speed.text     = WuLinData.OppoViewInfo.spd.ToString();
        dodge.text     = WuLinData.OppoViewInfo.dge.ToString();
    }
Example #6
0
    //获取当前队伍某位置的单位的训练状态
    public TroopState GetTroopState(int index)
    {
        MarchVo march = playerProxy.marchList [marchIndex];
        //临时处理
        TroopVo troop = null;

        if (march.troopList.Count <= index)
        {
            if (addTrainList.Count > index - march.troopList.Count)
            {
                troop = addTrainList [index - march.troopList.Count];
            }
        }
        else
        {
            troop = march.troopList [index];
        }

        List <Tab_RoleBaseAttr> attrList = TableManager.GetRoleBaseAttrByID(troop.type);
        Tab_RoleBaseAttr        roleAttr = attrList [troop.level - 1];
        int totalHP = roleAttr.MaxHP * 18;

        if (troop.health < totalHP)
        {
            for (int i = 0; i < playerProxy.city.trainList.Count; i++)
            {
                if (playerProxy.city.trainList[i].queueIndex == troop.queueIndex)
                {
                    if (playerProxy.city.trainList[i].troopType <= 0)
                    {
                        break;
                    }
                    //类型为0说明没有训练了 时间到了等于训练结束了
                    System.DateTime dt1 = System.Convert.ToDateTime("1970-1-1 00:00:00");
                    long            now = System.DateTime.Now.ToFileTimeUtc() - dt1.ToFileTimeUtc();
                    float           a   = now / 10000000;
                    int             aa  = Mathf.FloorToInt(a);
                    //等于0也算是空闲
                    if (playerProxy.city.trainList[i].troopType >= 0)
                    {
                        if (playerProxy.city.trainList[i].endTime <= aa)
                        {
                            return(TroopState.Training);                           //训练中
                        }
                    }
                }
            }
            return(TroopState.NeedTrain);
        }

        return(TroopState.TrainFull);
    }
        /// <summary>
        /// 后期可以 看情况 跟OtherPlayer的创建 合并
        /// </summary>
        /// <param name="initData"></param>
        public static void CreateZombieUser(Obj_Init_Data initData)
        {
            if (null == initData)
            {
                return;
            }

            //mwh 根据RoleBase的ID获得路径
            Tab_RoleBaseAttr roleBaseAttr = TableManager.GetRoleBaseAttrByID(initData.m_RoleBaseID, 0);

            if (null == roleBaseAttr)
            {
                return;
            }
            initData.m_CharModelID = roleBaseAttr.CharModelID;
            GameObject otherPlayer = ResourceManager.InstantiateResource("Prefab/Model/OtherPlayerRoot", initData.m_ServerID.ToString()) as GameObject;

            if (null != otherPlayer)
            {
                Obj_ZombieUser objZombiePlayer = otherPlayer.AddComponent <Obj_ZombieUser>();

                if (null != objZombiePlayer && objZombiePlayer.Init(initData))
                {
                    objZombiePlayer.CanLogic = true;
                }

                Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(objZombiePlayer.ModelVisualID, 0);
                if (tabItemVisual == null)
                {
                    tabItemVisual = TableManager.GetItemVisualByID(GlobeVar.DEFAULT_VISUAL_ID, 0);
                    if (tabItemVisual == null)
                    {
                        return;
                    }
                }
                int           nCharmodelID = objZombiePlayer.GetCharModelID(tabItemVisual, objZombiePlayer.Profession);
                Tab_CharModel charModel    = TableManager.GetCharModelByID(nCharmodelID, 0);
                if (charModel == null)
                {
                    return;
                }
                Singleton <ObjManager> .Instance.AddPoolObj(objZombiePlayer.ServerID.ToString(), objZombiePlayer);

                LoadModelToRoot(nCharmodelID, EResourceType.CharacterModel, LoadModelComplete, otherPlayer, charModel,
                                null);
            }
        }
Example #8
0
    void ShowMissionUI(string missionContent, bool defaultDialog)
    {
        m_bIsDefaultDialog = defaultDialog;
        if (m_bIsDefaultDialog)
        {
            UIManager.HideAllUIExceptStory();
        }
        //LogModule.ErrorLog("________________________________ " + missionContent);
        m_StoryDialogBottomLabel.text = missionContent;
        Obj_NPC TargetNpc = Singleton <DialogCore> .GetInstance().CareNPC;

        if (TargetNpc == null)
        {
            return;
        }

        if (TargetNpc.ModelID < 0)
        {
            return;
        }

        Tab_RoleBaseAttr roleBase = TableManager.GetRoleBaseAttrByID(TargetNpc.BaseAttr.RoleBaseID, 0);

        if (roleBase == null)
        {
            return;
        }

        Tab_CharModel charModel = TableManager.GetCharModelByID(TargetNpc.ModelID, 0);

        if (null == charModel)
        {
            return;
        }

        if (m_SpeakerName && m_StoryDialogBottomRole)
        {
            m_SpeakerName.text = roleBase.Name;
            m_StoryDialogBottomRole.mainTexture = ResourceManager.LoadResource("Texture/MissionRole/" + charModel.NPCSpriteName, typeof(Texture)) as Texture;
        }
#if BOBJOYSTICK
//        RefreshJoyGUI(MissionUIType.TYPE_NONE);
#endif
    }
    void UpdateNPCInfo()
    {
        Obj_NPC TargetNpc = Singleton <DialogCore> .GetInstance().CareNPC;

        if (TargetNpc != null)
        {
            if (TargetNpc.ModelID >= 0)
            {
                Tab_RoleBaseAttr roleBase = TableManager.GetRoleBaseAttrByID(TargetNpc.BaseAttr.RoleBaseID, 0);
                if (roleBase != null)
                {
                    Tab_CharModel charModel = TableManager.GetCharModelByID(TargetNpc.ModelID, 0);
                    if (charModel != null && m_NPCHead && m_NPCName)
                    {
                        m_NPCName.text = roleBase.Name;

                        Texture curTexture = ResourceManager.LoadResource("Texture/MissionRole/" + charModel.NPCSpriteName, typeof(Texture)) as Texture;
                        if (null != curTexture)
                        {
                            m_NPCHead.gameObject.SetActive(true);
                            m_NPCHead.mainTexture = curTexture;
                        }
                        else
                        {
                            m_NPCHead.gameObject.SetActive(false);
                        }
                    }
                }
            }
            if (m_curOptionDialogId != -1)
            {
                Tab_NpcOptionDialog _npcOptionInfo = TableManager.GetNpcOptionDialogByID(m_curOptionDialogId, 0);
                if (_npcOptionInfo != null)
                {
                    m_NPCTalk.text = StrDictionary.GetClientString_WithNameSex(_npcOptionInfo.CenterText);
                }
                //RESET AWARD TEXT FOR TW
                if (m_curOptionDialogId == AWARD_DIALOGID && PlatformHelper.IsChannelTW())
                {
                    m_NPCTalk.text = StrDictionary.GetClientDictionaryString("#{5248}");
                }
            }
        }
    }
Example #10
0
        public override bool OnDie()
        {
            if (IsDie())
            {
                return(false);
            }
            base.OnDie();
            if (m_NameBoard)
            {
                m_NameBoard.color = CharacterDefine.NPC_COLOR_DIE;
            }

#if UNITY_ANDROID
            if (NavAgent != null)
            {
                NavAgent.enabled = false;
            }
#endif

            //死亡特效
            Tab_RoleBaseAttr _roleBaseAttr = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);
            if (_roleBaseAttr != null)
            {
                //溶解特效
                if (_roleBaseAttr.RampType == 2 || _roleBaseAttr.RampType == 3)
                {
                    float fSpeed = 1.0f / (_roleBaseAttr.CorpseTime / 1000.0f - 0.5f);
                    PlayDissolve(fSpeed, 0.5f);
                }
                //死亡特效
                if (_roleBaseAttr.DieEffectID != -1)
                {
                    PlayEffect(_roleBaseAttr.DieEffectID);
                }
            }

            StartCoroutine("DelaySceond");

            return(true);
        }
Example #11
0
        /// <summary>
        /// NPC复活后,重新值下溶解相关值
        /// </summary>
        public void PlayUnDissolve()
        {
            if (BaseAttr == null)
            {
                return;
            }

            m_bIsPlayDissolve   = false;
            m_bIsPlayUnDissolve = false;
            Tab_RoleBaseAttr _roleBaseAttr = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);

            if (_roleBaseAttr != null)
            {
                //溶解特效
                if (_roleBaseAttr.RampType == 2 || _roleBaseAttr.RampType == 3)
                {
                    ShowDissolveNPC();
                }

                _roleBaseAttr = null;
            }
        }
Example #12
0
    void UpdateNPCInfo()
    {
        Obj_NPC TargetNpc = Singleton <DialogCore> .GetInstance().CareNPC;

        if (TargetNpc != null)
        {
            if (TargetNpc.ModelID >= 0)
            {
                Tab_RoleBaseAttr roleBase = TableManager.GetRoleBaseAttrByID(TargetNpc.BaseAttr.RoleBaseID, 0);
                if (roleBase != null)
                {
                    Tab_CharModel charModel = TableManager.GetCharModelByID(TargetNpc.ModelID, 0);
                    if (charModel != null && m_NPCHead && m_NPCName)
                    {
                        m_NPCName.text = roleBase.Name;
                        Texture curTexture = ResourceManager.LoadResource("Texture/MissionRole/" + charModel.NPCSpriteName, typeof(Texture)) as Texture;
                        if (null != curTexture)
                        {
                            m_NPCHead.gameObject.SetActive(true);
                            m_NPCHead.mainTexture = curTexture;
                        }
                        else
                        {
                            m_NPCHead.gameObject.SetActive(false);
                        }
                    }
                }
            }
            Tab_NpcDialog DialogLine = TableManager.GetNpcDialogByID(TargetNpc.DefaultDialogID, 0);
            if (DialogLine != null)
            {
                if (m_NPCTalk)
                {
                    m_NPCTalk.text = StrDictionary.GetClientString_WithNameSex(DialogLine.Dialog);
                }
            }
        }
    }
Example #13
0
    public void SetSquadInfor(CObjInfor tObjInfor)
    {
        mID              = tObjInfor.id;
        mSquadCamp       = (SquadCamp)tObjInfor.camp;
        mUnitCount       = tObjInfor.unitcount;
        mHP              = tObjInfor.hp;
        mHPMax           = tObjInfor.maxhp;
        mSquadAttack     = tObjInfor.attack;
        mSquadDefence    = tObjInfor.defence;
        mSp              = tObjInfor.sp;
        mlevel           = tObjInfor.level;
        mBornPosionX     = tObjInfor.posx;
        mBornPosionZ     = tObjInfor.posz;
        mSquadTemplateID = tObjInfor.unitDataId;
        mBornPosionIndex = tObjInfor.arrangeindex;
        Tab_RoleBaseAttr tRoleBaseAttr = TableManager.GetRoleBaseAttrByID(tObjInfor.unitDataId)[0];

        mUnitTemplateID = tRoleBaseAttr.UnitDataID;
        mSkillIDList    = tObjInfor.skilldataid;
        Tab_SkillEx tSkillEx = TableManager.GetSkillExByID(mSkillIDList[0])[0];

        SkillTemplateID = tSkillEx.SkillDataID;
    }
Example #14
0
        //行走状态处理
        void ProcessDeathAnimState()
        {
            if (AnimLogic != null && m_Objanimation != null)
            {
                //是否在播放动作
                if (m_Objanimation.isPlaying && AnimLogic.CurAnimData != null)
                {
                    //击飞是不播死亡动画
                    if (AnimLogic.CurAnimData.AnimID != (int)CharacterDefine.CharacterAnimId.Knockback_01 &&
                        AnimLogic.CurAnimData.AnimID != (int)CharacterDefine.CharacterAnimId.Knockback_02)
                    {
                        m_AnimLogic.Stop();
                        m_AnimLogic.Play((int)(CharacterDefine.CharacterAnimId.Die));
                    }
                }
                else
                {
                    m_AnimLogic.Stop();
                    m_AnimLogic.Play((int)(CharacterDefine.CharacterAnimId.Die));
                }
            }
            Tab_RoleBaseAttr roleBaseAttr = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);

            if (roleBaseAttr != null)
            {
                Tab_CharModel charModel = TableManager.GetCharModelByID(roleBaseAttr.CharModelID, 0);
                if (charModel != null)
                {
                    int nDeadSoundCount = charModel.getDeadSoundCount();
                    int nRandNum        = Random.Range(0, nDeadSoundCount - 1);
                    if (charModel.GetDeadSoundbyIndex(nRandNum) >= 0)
                    {
                        PlaySoundAtPos(ObjType, charModel.GetDeadSoundbyIndex(nRandNum), Position);
                    }
                }
            }
        }
Example #15
0
        public void AddDialogMission()
        {
            Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);

            if (RoleBase == null)
            {
                return;
            }

            Tab_NpcDialog DialogLine = TableManager.GetNpcDialogByID(RoleBase.DialogID, 0);

            if (DialogLine != null)
            {
                m_nDefaultDialogID = RoleBase.DialogID;
                for (int i = 0; i < DialogLine.getMissionIDCount(); ++i)
                {
                    int nMissionID = DialogLine.GetMissionIDbyIndex(i);
                    if (nMissionID >= 0)
                    {
                        m_listMissionID.Add(nMissionID);
                    }
                }
            }
        }
Example #16
0
        //待机状态处理
        void ProcessIdleAnimState(bool playEffectImmediately = true)
        {
            if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER)
            {
                // 玩家装备了坐骑
                Obj_MainPlayer MainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer;

                if (MainPlayer.IsDie() == false && MainPlayer.GetEquipMountID() > 0 && MainPlayer.MountObj)
                {
                    m_AnimLogic.Play((int)CharacterDefine.CharacterAnimId.Stand);
                    MainPlayer.MountObj.PlayMountPlayerAnima(CharacterDefine.MountAction.STAND, MainPlayer);
                }
                else
                {
                    if (MainPlayer.InDizzy)
                    {
                        m_AnimLogic.Stop();
                        m_AnimLogic.Play((int)CharacterDefine.CharacterAnimId.DizzyId);
                        return;
                    }

                    if (MainPlayer.InCombat)
                    {
                        m_AnimLogic.Play((int)CharacterDefine.CharacterAnimId.AttackStand);
                    }
                    else
                    {
                        m_AnimLogic.Play((int)CharacterDefine.CharacterAnimId.Stand);
                    }
                }
            }
            else
            {
                if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER)
                {
                    Obj_OtherPlayer OtherPlayer = this as Obj_OtherPlayer;
                    if (OtherPlayer && OtherPlayer.IsDie() == false && OtherPlayer.MountID > 0 && OtherPlayer.MountObj)
                    {
                        m_AnimLogic.Play((int)CharacterDefine.CharacterAnimId.Stand);
                        OtherPlayer.MountObj.PlayMountPlayerAnima(CharacterDefine.MountAction.STAND, OtherPlayer);
                    }
                    else
                    {
                        if (OtherPlayer.InDizzy)
                        {
                            m_AnimLogic.Stop();
                            m_AnimLogic.Play((int)CharacterDefine.CharacterAnimId.DizzyId);
                            return;
                        }
                        m_AnimLogic.Play((int)(CharacterDefine.CharacterAnimId.Stand));
                    }
                }
                else
                {
                    if (this.InDizzy)
                    {
                        m_AnimLogic.Stop();
                        m_AnimLogic.Play((int)CharacterDefine.CharacterAnimId.DizzyId);
                        return;
                    }
                    //如果是其他Obj,就需要根据DataID区分是否为战斗型的NPC
                    //非战斗NPC默认播放Stand动作
                    //战斗NPC播放AttackStand动作
                    Tab_RoleBaseAttr roleBaseTab = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);
                    if (null != roleBaseTab && roleBaseTab.CombatNPC > 0)
                    {
                        //是战斗NPC,播放AttackStand
                        if (playEffectImmediately)
                        {
                            m_AnimLogic.Play((int)(CharacterDefine.CharacterAnimId.AttackStand));
                        }
                    }
                    else
                    {
                        m_AnimLogic.Play((int)(CharacterDefine.CharacterAnimId.Stand));
                    }
                }
            }
            if (ObjEffectController != null)
            {
                ObjEffectController.OnIdle();
            }
        }
Example #17
0
        public uint Execute(PacketDistributed ipacket)
        {
            GC_CREATE_PLAYER packet = (GC_CREATE_PLAYER)ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }

            //enter your logic
            //判断是MainPlayer还是其他Obj
            PlayerData playerDataPool = GameManager.gameManager.PlayerDataPool;

            if (playerDataPool.EnterSceneCache.EnterSceneServerID == packet.ServerId &&
                playerDataPool.EnterSceneCache.EnterSceneSceneID == packet.SceneClass)
            {
                playerDataPool.MainPlayerBaseAttr.RoleBaseID = packet.DataId;
                playerDataPool.MainPlayerBaseAttr.RoleName   = packet.Name;
                playerDataPool.MainPlayerBaseAttr.Force      = packet.Curforce;
                playerDataPool.MainPlayerBaseAttr.Die        = packet.IsDie == 1 ? true : false;
                //未存入BaseAttr而保存在Obj类中的时候,需要存入EnterSceneCache,然后在创建完Obj_MainPlayer的时候赋值,之后清空EnterSceneCache
                playerDataPool.EnterSceneCache.EnterSceneRoleBaseID = packet.DataId;
                playerDataPool.EnterSceneCache.Guid       = packet.Guid;
                playerDataPool.EnterSceneCache.Profession = packet.CurProfession;
                playerDataPool.PkModle = packet.PKModle;
                playerDataPool.m_objMountParam.MountID      = packet.MountID;
                playerDataPool.MainPlayerBaseAttr.MoveSpeed = (int)(packet.MoveSpeed / 100);
                playerDataPool.StealthLev = packet.StealthLev;
                if (packet.HasReliveTime)
                {
                    playerDataPool.ReliveEntryTime = packet.ReliveTime;
                }
                //临时代码,将OtherPlayer的ModelID赋值,从RoleBase表中读取
                Tab_RoleBaseAttr roleBaseAttr = TableManager.GetRoleBaseAttrByID(packet.DataId, 0);
                if (null != roleBaseAttr)
                {
                    playerDataPool.EnterSceneCache.EnterSceneCharModelID = roleBaseAttr.CharModelID;
                }
                playerDataPool.EnterSceneCache.ModelVisualID   = packet.ModelVisualID;
                playerDataPool.EnterSceneCache.WeaponDataID    = packet.WeaponDataID;
                playerDataPool.EnterSceneCache.WeaponEffectGem = packet.WeaponEffectGem;
                if (packet.HasPaoshangState)
                {
                    playerDataPool.EnterSceneCache.PaoShangState = packet.PaoshangState;
                }
                if (packet.HasVipCost)
                {
                    playerDataPool.VipCost = packet.VipCost;
                }
                if (packet.HasCombatValue)
                {
                    playerDataPool.PoolCombatValue = packet.CombatValue;
                }
                if (packet.HasBindparent)
                {
                    playerDataPool.MainBindParent = packet.Bindparent;
                }
                if (packet.HasLightSkillLevel)
                {
                    playerDataPool.MainPlayerBaseAttr.LightSkillLevel = packet.LightSkillLevel;
                }
                playerDataPool.MainBindChildren.Clear();
                for (int nindex = 0; nindex < GlobeVar.BIND_CHILDREN_MAX; ++nindex)
                {
                    if (nindex < packet.bindchildrenCount)
                    {
                        playerDataPool.MainBindChildren.Add(packet.GetBindchildren(nindex));
                    }
                    else
                    {
                        playerDataPool.MainBindChildren.Add(-1);
                    }
                }
                if (GameManager.gameManager.RunningScene == GameManager.gameManager.PlayerDataPool.EnterSceneCache.EnterSceneSceneID &&
                    GameManager.gameManager.PlayerDataPool.EnterSceneCache.EnterSceneServerID != -1 &&
                    GameManager.gameManager.PlayerDataPool.EnterSceneCache.EnterSceneRoleBaseID != -1)
                {
                    //创建MainPlayer
                    if ((int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_LOGIN != GameManager.gameManager.RunningScene &&
                        (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_FB_CABALINTRO != GameManager.gameManager.RunningScene)
                    {
                        Singleton <ObjManager> .GetInstance().CreateMainPlayer();
                    }
                }
            }
            else
            {
                //如果不是主角则是其他玩家
                //其他玩家创建的时候首先判断场景ID
                if (GameManager.gameManager.RunningScene != packet.SceneClass)
                {
                    return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
                }

                Obj_Init_Data initData = new Obj_Init_Data();
                initData.m_ServerID   = packet.ServerId;
                initData.m_Guid       = packet.Guid;
                initData.m_fX         = ((float)packet.PosX) / 100;
                initData.m_fZ         = ((float)packet.PosZ) / 100;
                initData.m_RoleBaseID = packet.DataId;
                //LogModule.DebugLog("Player GUID===================" + initData.m_Guid);
                //临时代码,将OtherPlayer的ModelID赋值,从RoleBase表中读取
                Tab_RoleBaseAttr roleBaseAttr = TableManager.GetRoleBaseAttrByID(initData.m_RoleBaseID, 0);
                if (null != roleBaseAttr)
                {
                    initData.m_CharModelID = roleBaseAttr.CharModelID;
                }
                initData.m_Force                = packet.Curforce;
                initData.m_StrName              = packet.Name;
                initData.m_nProfession          = packet.CurProfession;
                initData.m_strTitleName         = packet.Titlename;
                initData.m_CurTitleID           = packet.CurTitleID;
                initData.m_isInMainPlayerPKList = (packet.IsInPkList == 1 ? true : false);
                initData.m_IsDie                = packet.IsDie == 1 ? true : false;
                initData.m_MountID              = packet.MountID;
                initData.m_PkModel              = packet.PKModle;
                initData.m_MoveSpeed            = ((float)packet.MoveSpeed) / 100;
                initData.m_fDir                      = (float)packet.Facedir / 100;
                initData.m_ModelVisualID             = packet.ModelVisualID;
                initData.m_WeaponDataID              = packet.WeaponDataID;
                initData.m_WeaponEffectGem           = packet.WeaponEffectGem;
                initData.m_StealthLev                = packet.StealthLev;
                initData.m_GuildGuid                 = packet.GuildGuid;
                initData.m_bIsWildEnemyForMainPlayer = (packet.IsEnemy2Self == 1);
                if (packet.HasVipCost)
                {
                    initData.m_nOtherVipCost = packet.VipCost;
                }
                if (packet.HasCombatValue)
                {
                    initData.m_nOtherCombatValue = packet.CombatValue;
                }
                if (packet.HasBindparent)
                {
                    initData.m_BindParent = packet.Bindparent;
                }
                initData.m_BindChildren.Clear();
                for (int nindex = 0; nindex < GlobeVar.BIND_CHILDREN_MAX; ++nindex)
                {
                    if (nindex < packet.bindchildrenCount)
                    {
                        initData.m_BindChildren.Add(packet.GetBindchildren(nindex));
                    }
                    else
                    {
                        initData.m_BindChildren.Add(-1);
                    }
                }
                if (packet.HasPaoshangState)
                {
                    initData.m_nPaoShangState = packet.PaoshangState;
                }
                if (packet.HasFollowState)
                {
                    initData.m_bIsInTeamFollow = (packet.FollowState == 1 ? true : false);
                }

                //稍后添加消息包
                initData.m_changeState = packet.ChangeState;
                initData.m_FlyWingId   = packet.FlyWingId;
                Singleton <ObjManager> .GetInstance().NewCharacterObj(Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER, initData);

                //魂器
                Dictionary <UInt64, Dictionary <int, Belle> > AllOtherPlayerBellDic = BelleData.AllOtherPlayerBelleMap;
                Dictionary <int, Belle> otherPlayerBelleDic;
                if (AllOtherPlayerBellDic.TryGetValue(packet.Guid, out otherPlayerBelleDic))
                {
                    AllOtherPlayerBellDic.Remove(packet.Guid);
                }
                otherPlayerBelleDic = new Dictionary <int, Belle>();
                AllOtherPlayerBellDic.Add(packet.Guid, otherPlayerBelleDic);

                if (packet.BelleIdCount == packet.BelleCloseCount && packet.BelleCloseCount == packet.BelleLevelCount)
                {
                    for (int i = packet.BelleIdCount - 1; i > -1; --i)
                    {
                        otherPlayerBelleDic.Add(packet.GetBelleId(i), new Belle(packet.GetBelleId(i), packet.GetBelleClose(i), packet.GetBelleLevel(i)));
                    }
                }
            }

            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Example #18
0
        public override void OnBindOpt(Obj_Character obj)
        {
            base.OnBindOpt(obj);

            //婚车特殊摆设
            if (BaseAttr.RoleBaseID == GlobeVar.PARADE_BUSID && obj != null)
            {
                Transform playermodel = obj.transform.FindChild("Model");
                Transform ridepoint   = gameObject.transform.FindChild("Model/All/Bip01/Bip01 Pelvis/Bip01 Spine/Ride_Point01");
                Transform seatpoint   = gameObject.transform.FindChild("Model/All/Bone02/Ride_Point02");
                if (playermodel == null || ridepoint == null || seatpoint == null)
                {
                    return;
                }
                if (GetBindChildIndex(obj.ServerID) == 0 && ridepoint.childCount < 1)
                {
                    obj.gameObject.transform.localPosition = new Vector3(0.0f, 0.78f, -0.47f);
                    GameObject fakeobj = (GameObject)Instantiate(playermodel.gameObject);
                    if (fakeobj != null)
                    {
                        fakeobj.SetActive(true);
                        fakeobj.transform.parent        = ridepoint;
                        fakeobj.transform.localPosition = Vector3.zero;
                        fakeobj.transform.localRotation = Quaternion.Euler(90.0f, 0.0f, 0.0f);
                        fakeobj.transform.localScale    = Vector3.one;

                        AnimationLogic al = ridepoint.gameObject.AddComponent <AnimationLogic>();
                        if (al != null)
                        {
                            al.InitState(fakeobj);

                            Tab_RoleBaseAttr role = TableManager.GetRoleBaseAttrByID(obj.BaseAttr.RoleBaseID, 0);
                            if (role != null)
                            {
                                Tab_CharModel mo = TableManager.GetCharModelByID(role.CharModelID, 0);
                                if (mo != null)
                                {
                                    al.AnimResFilePath = mo.AnimPath;
                                }
                            }

                            //   int animId = -1;
                            //sl/ts/dl/xy
                            //if (obj.BaseAttr.RoleBaseID == 0)
                            //    animId = 153;
                            //else if (obj.BaseAttr.RoleBaseID == 1)
                            //    animId = 155;
                            //else if (obj.BaseAttr.RoleBaseID == 2)
                            //    animId = 159;
                            //else if (obj.BaseAttr.RoleBaseID == 3)
                            //    animId = 157;

                            //  if (animId > 0)
                            {
                                al.Play(227);
                            }
                        }
                    }
                    return;
                }
                if (GetBindChildIndex(obj.ServerID) == 1 && seatpoint.childCount < 1)
                {
                    obj.gameObject.transform.localPosition = new Vector3(0.0f, 0.47f, -1.83f);
                    GameObject fakeobj = (GameObject)Instantiate(playermodel.gameObject);
                    if (fakeobj != null)
                    {
                        fakeobj.SetActive(true);
                        fakeobj.transform.parent        = seatpoint;
                        fakeobj.transform.localPosition = Vector3.zero;
                        fakeobj.transform.localRotation = Quaternion.Euler(90.0f, 0.0f, 0.0f);
                        fakeobj.transform.localScale    = Vector3.one;

                        AnimationLogic al = seatpoint.gameObject.AddComponent <AnimationLogic>();
                        if (al != null)
                        {
                            al.InitState(fakeobj);

                            Tab_RoleBaseAttr role = TableManager.GetRoleBaseAttrByID(obj.BaseAttr.RoleBaseID, 0);
                            if (role != null)
                            {
                                Tab_CharModel mo = TableManager.GetCharModelByID(role.CharModelID, 0);
                                if (mo != null)
                                {
                                    al.AnimResFilePath = mo.AnimPath;
                                }
                            }

                            //int animId = -1;
                            ////sl/ts/dl/xy
                            //if (obj.BaseAttr.RoleBaseID == 0)
                            //    animId = 146;
                            //else if (obj.BaseAttr.RoleBaseID == 1)
                            //    animId = 148;
                            //else if (obj.BaseAttr.RoleBaseID == 2)
                            //    animId = 152;
                            //else if (obj.BaseAttr.RoleBaseID == 3)
                            //    animId = 150;
                            //if (animId > 0)
                            {
                                al.Play(225);
                            }
                        }
                    }
                    return;
                }
            }
        }
Example #19
0
    void Start()
    {
        m_curSceneID = GameManager.gameManager.RunningScene;

        //根据加载场景ID获取场景信息
        m_curTabScene = TableManager.GetSceneClassByID(m_curSceneID, 0);
        if (null == m_curTabScene)
        {
            LogModule.ErrorLog("current is not defined in table: " + m_curSceneID.ToString());
            return;
        }
        // 地图名字
        m_SceneName.text = m_curTabScene.Name;
        // 初始化NPC信息
        if (m_curNPCListScene != GameManager.gameManager.RunningScene)
        {
            m_FriendNPCRecycleList.Clear();
            Dictionary <int, List <Tab_SceneNpc> > curTabSceneNPCDic = TableManager.GetSceneNpc();
            foreach (KeyValuePair <int, List <Tab_SceneNpc> > curPair in curTabSceneNPCDic)
            {
                if (curPair.Value[0] != null && curPair.Value[0].SceneID == GameManager.gameManager.RunningScene)
                {
                    Tab_RoleBaseAttr curRoleBase = TableManager.GetRoleBaseAttrByID(curPair.Value[0].DataID, 0);
                    if (curRoleBase != null && curRoleBase.Camp == 1)
                    {
                        Tab_NianShouNpcScence nianshounpcTab = TableManager.GetNianShouNpcScenceByID(GameManager.gameManager.RunningScene, 0);
                        if (nianshounpcTab != null)
                        {
                            if (curPair.Value[0].GroupID == VillainData.NianShouGroupID)
                            {
                                if (false == GlobalData.IsNianShouOpen())
                                {
                                    continue;
                                }
                            }
                        }

                        Tab_VillainScene VillainSceneTab = TableManager.GetVillainSceneByID(GameManager.gameManager.RunningScene, 0);
                        if (VillainSceneTab != null)
                        {
                            if (curPair.Value[0].GroupID == VillainData.NormalNpcGroupID || curPair.Value[0].GroupID == VillainData.SuperNpcGroupID)
                            {
                                //规则来来回回改变已经第四版,希望这是今年最终版了
                                FriendNPCData newVillainData = m_FriendNPCRecycleList.GetNewItem();
                                newVillainData.m_name  = curRoleBase.Name;
                                newVillainData.m_nType = FRIEND_NPC_TYPE.FRIEND_NPC_VILLAIN_GULDE;
                                newVillainData.m_pos   = new Vector3(curPair.Value[0].PosX, 0, curPair.Value[0].PosZ);
                                m_FriendNPCRecycleList.Add(newVillainData);
                                continue;
                            }
                        }
                        FriendNPCData newData = m_FriendNPCRecycleList.GetNewItem();
                        newData.m_name  = curRoleBase.Name;
                        newData.m_nType = FRIEND_NPC_TYPE.FRIEND_NPC_NORMAL;
                        newData.m_pos   = new Vector3(curPair.Value[0].PosX, 0, curPair.Value[0].PosZ);
                        m_FriendNPCRecycleList.Add(newData);
                    }
                }
            }
            m_curNPCListScene = GameManager.gameManager.RunningScene;
        }

        for (int i = 0; i < m_FriendNPCRecycleList.UsingList().Count; i++)
        {
            if (m_FriendNPCRecycleList.UsingList()[i] != null)
            {
                GameObject newNPCDot = null;
                if (m_FriendNPCRecycleList.UsingList()[i].m_nType == FRIEND_NPC_TYPE.FRIEND_NPC_VILLAIN_GULDE)
                {
                    newNPCDot = GameObject.Instantiate(m_ObjMapNpcForVillain) as GameObject;
                }
                else if (m_FriendNPCRecycleList.UsingList()[i].m_nType == FRIEND_NPC_TYPE.FRIEND_NPC_NORMAL)
                {
                    newNPCDot = GameObject.Instantiate(m_ObjMapNpc) as GameObject;
                }
                if (null != newNPCDot)
                {
                    newNPCDot.transform.parent        = m_MapRoot;
                    newNPCDot.transform.localScale    = Vector3.one;
                    newNPCDot.transform.localPosition = ScenePosToMapPos(m_FriendNPCRecycleList.UsingList()[i].m_pos, m_curTabScene);
                    newNPCDot.SetActive(true);
                }
            }
        }

        for (int i = 0; i < GlobeVar.MAX_TEAM_MEMBER; i++)
        {
            GameObject newNPCDot = GameObject.Instantiate(m_ObjMapDot) as GameObject;
            if (null != newNPCDot)
            {
                newNPCDot.transform.parent     = m_MapRoot;
                newNPCDot.transform.localScale = Vector3.one;
//                UITexture npcTexture = newNPCDot.GetComponent<UITexture>();
                m_ObjMapFriendDotList.Add(newNPCDot.transform);
            }
        }

        if (m_curSceneID == GameDefine_Globe.WORLDBOSS_SCENE_ID && WorldMapWindow.WorldBossOpen == 1)
        {
            m_ObjMapBoss.transform.localPosition = ScenePosToMapPos(new Vector3(GameDefine_Globe.WORLDBOSS_X, 0, GameDefine_Globe.WORLDBOSS_Z), m_curTabScene);
            m_ObjMapBoss.SetActive(true);
        }

        ShowSceneInfo(m_curTabScene);

        if (GameManager.gameManager.ActiveScene.IsCopyScene())
        {
            m_BtnChangeChannel.isEnabled = false;
        }
        else
        {
            m_BtnChangeChannel.isEnabled = true;
        }

        StartCoroutine(UpdateTeamPos());
    }
Example #20
0
        public override void Start()
        {
            base.Start();
            // 如果是NPC
            if (m_nTargetID > 0)
            {
                Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(m_nTargetID, 0);
                if (null != RoleBase)
                {
                    m_TargetCharacter = ObjManager.Instance.FindObjCharacterInSceneByName(RoleBase.Name, true, 20);
                    if (null != m_TargetCharacter)
                    {
                        // 强制停止自动移动
                        if (m_TargetCharacter.AutoMoveComponent != null)
                        {
                            m_TargetCharacter.AutoMoveComponent.ForceStopMove();
                        }
                        m_StartPos = m_TargetCharacter.Position;
                        m_fTimer   = m_fDuration;

                        // 关掉寻路组件,防止寻路组件强行设置位置导致一些莫名其妙的问题
                        if (null != m_TargetCharacter.NavAgent)
                        {
                            m_TargetCharacterNavAgentOrigState = m_TargetCharacter.NavAgent.enabled;
                            if (m_TargetCharacterNavAgentOrigState == true)
                            {
                                m_TargetCharacter.NavAgent.enabled = false;
                            }
                        }

                        if (m_fDuration <= 0)
                        {
                            // 只有瞬移的时候这个参数才有意义,否则旋转是算出来的
                            m_TargetCharacter.Rotation = Quaternion.Euler(0, m_fDir, 0);
                            Finish();
                        }
                        else
                        {
                            Vector3 dir = m_TargetPos - m_StartPos;
                            dir.y = 0;
                            m_TargetCharacter.ObjTransform.forward = dir;
                        }
                    }
                    else
                    {
                        base.Finish();
                    }
                }
            }
            // 如果是玩家
            else
            {
                m_TargetCharacter = Singleton <ObjManager> .GetInstance().MainPlayer;

                if (null != m_TargetCharacter)
                {
                    m_StartPos = m_TargetCharacter.Position;
                    m_fTimer   = m_fDuration;

                    // 关掉寻路组件,防止寻路组件强行设置位置导致一些莫名其妙的问题
                    if (null != m_TargetCharacter.NavAgent)
                    {
                        m_TargetCharacterNavAgentOrigState = m_TargetCharacter.NavAgent.enabled;
                        if (m_TargetCharacterNavAgentOrigState == true)
                        {
                            m_TargetCharacter.NavAgent.enabled = false;
                        }
                    }

                    if (m_fDuration <= 0)
                    {
                        // 只有瞬移的时候这个参数才有意义,否则旋转是算出来的
                        m_TargetCharacter.Rotation = Quaternion.Euler(0, m_fDir, 0);
                        Finish();
                    }
                    else
                    {
                        Vector3 dir = m_TargetPos - m_StartPos;
                        dir.y = 0;
                        m_TargetCharacter.ObjTransform.forward = dir;
                    }
                }
                else
                {
                    base.Finish();
                }
            }
        }
        public uint Execute(PacketDistributed ipacket)
        {
            GC_CREATE_NPC packet = (GC_CREATE_NPC )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }

            //判断ServerID是否合法
            if (packet.ServerId < 0)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            //安全措施,如果发现ServerID已经存在,则先移除掉
            if (Singleton <ObjManager> .GetInstance().IsObjExist(packet.ServerId))
            {
                Singleton <ObjManager> .GetInstance().RemoveObj(packet.ServerId);
            }

            // boss Effect
            if (GameManager.gameManager.ActiveScene.IsStoryCopyScene())
            {
                Tab_RoleBaseAttr tabRoleBaseAttr = TableManager.GetRoleBaseAttrByID(packet.DataId, 0);
                if (tabRoleBaseAttr != null)
                {
                    if (tabRoleBaseAttr.NpcType == (int)GameDefine_Globe.NPC_TYPE.BOSS)
                    {
                        if (BackCamerControll.Instance() != null)
                        {
                            BackCamerControll.Instance().PlaySceneEffect(611);
                        }
                    }
                }
            }

            Obj_Init_Data initData = new Obj_Init_Data();

            // initData.CleanUp();
            initData.m_ServerID       = packet.ServerId;
            initData.m_fX             = ((float)packet.PosX) / 100;
            initData.m_fZ             = ((float)packet.PosZ) / 100;
            initData.m_RoleBaseID     = packet.DataId;
            initData.m_Force          = packet.Curforce;
            initData.m_StrName        = packet.Name;
            initData.m_IsDie          = packet.IsDie == 1 ? true : false;
            initData.m_MoveSpeed      = ((float)packet.Movespeed) / 100;
            initData.m_fDir           = (float)packet.Facedir / 100;
            initData.m_StealthLev     = packet.StealthLeve;
            initData.m_bNpcBornCreate = (packet.IsBorn == 1 ? true : false);
            if (packet.HasModelVisualID)
            {
                initData.m_ModelVisualID = packet.ModelVisualID;
            }
            if (packet.HasWeaponDataID)
            {
                initData.m_WeaponDataID = packet.WeaponDataID;
            }
            if (packet.HasProfession)
            {
                initData.m_nProfession = packet.Profession;
            }
            if (packet.HasBindparent)
            {
                initData.m_BindParent = packet.Bindparent;
            }
            initData.m_BindChildren.Clear();
            for (int nindex = 0; nindex < GlobeVar.BIND_CHILDREN_MAX; ++nindex)
            {
                if (nindex < packet.bindchildrenCount)
                {
                    initData.m_BindChildren.Add(packet.GetBindchildren(nindex));
                }
                else
                {
                    initData.m_BindChildren.Add(-1);
                }
            }
            initData.m_SceneNpcId = packet.SceneNpcId;
            Singleton <ObjManager> .GetInstance().NewCharacterObj(Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC, initData);

            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Example #22
0
        public override bool Init(Obj_Init_Data initData)
        {
            if (null == m_ObjTransform)
            {
                m_ObjTransform = transform;
            }

            m_ObjTransform.position = ActiveScene.GetTerrainPosition(new Vector3(initData.m_fX, 0, initData.m_fZ));

            BaseAttr.RoleBaseID = initData.m_RoleBaseID;
            BaseAttr.MoveSpeed  = initData.m_MoveSpeed;
            Tab_RoleBaseAttr roleBaseTab = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);

            if (roleBaseTab != null)
            {
                m_NpcType = (Games.GlobeDefine.GameDefine_Globe.NPC_TYPE)roleBaseTab.NpcType;
                //初始化CharModelID,并读取部分客户端信息
                ModelID = roleBaseTab.CharModelID;
                Tab_CharModel charModel = TableManager.GetCharModelByID(ModelID, 0);
                if (null != charModel)
                {
                    BaseAttr.HeadPic = charModel.HeadPic;
                    //设置动作路径
                    AnimationFilePath = charModel.AnimPath;
                    //设置名字版高度
                    DeltaHeight = charModel.HeadInfoHeight;

                    transform.localScale = Vector3.one;
                }
            }

            //服务器发过来的信息
            this.ServerID = initData.m_ServerID;
            this.BornPosX = initData.m_fX;
            this.BornPosY = gameObject.transform.position.y;
            this.BornPosZ = initData.m_fZ;

            BaseAttr.RoleName       = initData.m_StrName;
            BaseAttr.Force          = initData.m_Force;
            BaseAttr.Die            = initData.m_IsDie;
            m_ObjTransform.rotation = Utils.DirServerToClient(initData.m_fDir);
            StealthLev      = initData.m_StealthLev;
            m_bIsBornCreate = initData.m_bNpcBornCreate;
            OptStealthLevChange();
            // NPC挂任务
            AddDialogMission();

            //组件在初始化数据后进行

            //初始化寻路代理
            InitNavAgent();

            //初始化动画,需要在AnimationFilePath被赋值后进行
            AnimLogic = gameObject.GetComponent <AnimationLogic>();
            if (AnimLogic == null)
            {
                AnimLogic = gameObject.AddComponent <AnimationLogic>();
            }

            //初始化特效
            ObjEffectController = gameObject.GetComponent <CharacterEffectBehaviourController>();
            if (ObjEffectController == null)
            {
                ObjEffectController = gameObject.AddComponent <CharacterEffectBehaviourController>();
            }

            //初始化AutoMove功能模块
            if (gameObject.GetComponent <AutoMove>() == null)
            {
                gameObject.AddComponent <AutoMove>();
            }

            if (IsDie())
            {
                OnCorpse();
            }
            else
            {
                if (Objanimation != null)
                {
                    Objanimation.Stop();
                }
                CurObjAnimState = Games.GlobeDefine.GameDefine_Globe.OBJ_ANIMSTATE.STATE_NORMOR;
            }

            //创新跟玩家一样的模型
            m_ModelVisualID   = initData.m_ModelVisualID;
            m_nProfession     = initData.m_nProfession;
            m_WeaponDataID    = initData.m_WeaponDataID;
            m_WeaponEffectGem = initData.m_WeaponDataID;
            if (initData.m_ModelVisualID != GlobeVar.INVALID_ID && initData.m_nProfession != -1)
            {
                ReloadPlayerModelVisual(initData.m_ModelVisualID, initData.m_nProfession);
            }

            //初始化名字版
            //InitNameBoard();
            if (!m_IsNameBoard)
            {
                InitNameBoard();
            }
            else
            {
                if (m_MissionBoard != null)
                {
                    //m_MissionBoard.SetActive(true);
                    ShowNameBoard();
                }
            }

            m_mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer;

            // 帮会活动NPC判断
            m_bIsGuildActivityBoss = IsGuildBoss();

            m_SceneNpcId = initData.m_SceneNpcId;
            return(base.Init(initData));
        }
Example #23
0
    /// <summary>
    /// 设置对话UI信息
    /// </summary>
    /// <param name="bTopUI">是否为顶部UI</param>
    /// <param name="strRolePicName">角色头像图片名</param>
    /// <param name="strDialog">对话内容</param>
    void ShowStoryUI(bool bTopUI, string strRolePicName, string strDialog, int nDataID)
    {
        //InitAniDialog(strDialog, bTopUI);
        // 暂时不手动设置altas
        if (bTopUI)
        {
            m_StoryDialogTop.SetActive(true);
            m_StoryDialogTopRole.spriteName = strRolePicName;
            // 对话内容交由动态显示设置
            // 又让改回去了
            m_StoryDialogTopLabel.text = strDialog;
        }
        else
        {
//            m_StoryDialogBottom.SetActive(true);
            // 对话内容交由动态显示设置
            // 又让改回去了
            DialogLabel.text = strDialog;
            //LogModule.ErrorLog("________________________ " + strDialog);
            if (-1 == nDataID)
            {
                string strSpeakerName = "";
                int    nProfession    = 0;

                if (Singleton <ObjManager> .GetInstance().MainPlayer != null)
                {
                    strSpeakerName = Singleton <ObjManager> .GetInstance().MainPlayer.BaseAttr.RoleName;

                    nProfession = Singleton <ObjManager> .GetInstance().MainPlayer.Profession;
                }
                else
                {
                    strSpeakerName = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.RoleName;
                    nProfession    = GameManager.gameManager.PlayerDataPool.EnterSceneCache.Profession;
                }

                SpeakerName.text = strSpeakerName;
                if (null != m_MainPlayerHalfPic[nProfession])
                {
                    //m_StoryDialogBottomRole.spriteName = m_MainPlayerHalfPic[nProfession];
                    if (m_nDialogType == 0)
                    {
                        RoleHeadIcon.mainTexture = ResourceManager.LoadResource("Texture/MissionRole/" + m_MainPlayerHalfPic[nProfession], typeof(Texture)) as Texture;
                    }
                    else if (m_nDialogType == 1)
                    {
                        m_StoryDialogAsyncRole.spriteName = strRolePicName;
                    }
                    else if (m_nDialogType == 3)
                    {
                        m_StoryDialogAsyncRole.spriteName = strRolePicName;
                    }
                    else if (m_nDialogType == 3)
                    {
                        RoleHeadIcon.mainTexture = ResourceManager.LoadResource("Texture/MissionRole/" + m_MainPlayerHalfPic[nProfession], typeof(Texture)) as Texture;
                    }
                }
            }
            else
            {
                Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(nDataID, 0);
                if (RoleBase != null)
                {
                    SpeakerName.text = RoleBase.Name;
                }
                else
                {
                    SpeakerName.text = "";
                }

                if (m_nDialogType == 0)
                {
                    RoleHeadIcon.mainTexture = ResourceManager.LoadResource("Texture/MissionRole/" + strRolePicName, typeof(Texture)) as Texture;
                }
                else if (m_nDialogType == 1)
                {
                    m_StoryDialogAsyncRole.spriteName = strRolePicName;
                }
                else if (m_nDialogType == 2)
                {
                    m_StoryDialogAsyncRole.spriteName = strRolePicName;
                }
                else if (m_nDialogType == 3)
                {
                    RoleHeadIcon.mainTexture = ResourceManager.LoadResource("Texture/MissionRole/" + strRolePicName, typeof(Texture)) as Texture;
                }
                //m_StoryDialogBottomRole.spriteName = strRolePicName;
            }
        }
    }