예제 #1
0
        public void HideModel()
        {
            mVisiable = false;
            HideSelf();
            HideBlobShadow();
            HideEffect();
            HideHorse();
            HideWing();
            HideMagic();
            HideZhenFa();

            List <ActorObj> pets = CoreEntry.gActorMgr.GetAllPetActors();

            for (int i = 0; i < pets.Count; i++)
            {
                PetObj pet = pets[i] as PetObj;
                if (null != pet && pet.m_MasterServerID == serverID)
                {
                    pet.HideSelf();

                    break;
                }
            }
        }
예제 #2
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);
        }