Esempio n. 1
0
    private void CreatEnemyCreature(PMatchInfo info)
    {
        //创建敌人
        ShowCreatureInfo showInfo = ConfigManager.Get <ShowCreatureInfo>(10);
        Vector3_         pos      = new Vector3_(1.3, 0, 0);
        Vector3          rot      = new Vector3(0, -110, 0);

        if (showInfo != null)
        {
            for (int i = 0; i < showInfo.forData.Length; i++)
            {
                if (showInfo.forData[i].index == info.roleProto)
                {
                    pos = showInfo.forData[i].data[0].pos;
                    rot = showInfo.forData[i].data[0].rotation;
                    break;
                }
            }
        }

        var weaponInfo = ConfigManager.Get <PropItemInfo>(info.fashion.weapon);

        if (weaponInfo == null)
        {
            return;
        }

        moduleGlobal.LockUI("", 0.5f);
        Level.PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(info), (r) =>
        {
            if (!r)
            {
                return;
            }

            enemy = moduleHome.CreatePlayer(info, pos, CreatureDirection.BACK);
            enemy.transform.localEulerAngles = rot;
            moduleGlobal.UnLockUI();
        });
        if (info.pet != null && info.pet.itemTypeId != 0)
        {
            var rPet   = PetInfo.Create(info.pet);
            var assets = new List <string>();
            Level.PrepareAssets(Module_Battle.BuildPetSimplePreloadAssets(rPet, assets, 2), b =>
            {
                var rGradeInfo = rPet.UpGradeInfo;
                var show       = ConfigManager.Get <ShowCreatureInfo>(rPet.ID);
                if (show == null)
                {
                    Logger.LogError("没有配置config_showCreatureInfo表。宠物ID = {0}, 没有出生位置信息。宠物模型创建失败", rPet.ID);
                    return;
                }
                var showData = show.GetDataByIndex(0);
                var data     = showData.data.GetValue <ShowCreatureInfo.SizeAndPos>(0);
                enemyPet     = moduleHome.CreatePet(rGradeInfo, pos + data.pos, data.rotation, Level.current.startPos, true, Module_Home.FIGHTING_PET_OBJECT_NAME + "_Enemy");
                enemyPet.transform.localScale      *= data.size;
                enemyPet.transform.localEulerAngles = data.rotation;
            });
        }
    }
Esempio n. 2
0
    private void CreatePlayer()
    {
        if (master)
        {
            master.Destroy();
            master = null;
        }

        var oc = ConfigManager.Get <ShowCreatureInfo>(20000)?.GetDataByIndex(modulePlayer.proto) ?? null;

        if (oc != null && oc.data != null && oc.data.Length > 0)
        {
            startCameraOffset = oc.data[0].pos;
            ResetMainCamera();
        }

        PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(), r =>
        {
            if (!r)
            {
                return;
            }

            master          = moduleHome.CreatePlayer();
            originMasterPos = master.position_;

            if (modulePVP.opType != OpenWhichPvP.None)
            {
                moduleMatch.DispatchModuleEvent(Module_Match.EventComeBackHomeScence);
            }
        });

        CreateFightingPet(modulePet.FightingPet);
    }
Esempio n. 3
0
    protected override List <string> BuildPreloadAssets()
    {
        var asstes = base.BuildPreloadAssets();

        if (!moduleNPCDating.isDebug)
        {
            asstes.AddRange(Module_NPCDating.GetDatingPreAssets(moduleNPCDating.enterSceneData.eventId));
        }
        asstes.AddRange(Module_Battle.BuildPlayerSimplePreloadAssets());//Ô¤¼ÓÔØÖ÷½Ç×ÊÔ´
        return(asstes);
    }
Esempio n. 4
0
    private void CreatTeamCreature(PMatchProcessInfo info, int index)
    {
        //创建敌人
        var t   = GetTransform(info, index);
        var pos = t.pos;
        var rot = t.rotation;

        var weaponInfo = ConfigManager.Get <PropItemInfo>(info.fashion.weapon);

        if (weaponInfo == null)
        {
            return;
        }

        moduleGlobal.LockUI("", 0.5f);
        m_memberLoadCoroutine = Level.PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(info), r =>
        {
            if (!r)
            {
                return;
            }

            teamPlayer                            = moduleHome.CreatePlayer(info, pos, CreatureDirection.FORWARD);
            teamPlayer.uiName                     = Module_Home.TEAM_OBJECT_NAME;
            teamPlayer.gameObject.name            = Module_Home.TEAM_OBJECT_NAME;
            teamPlayer.transform.localEulerAngles = rot;
            teamPlayer.transform.localScale       = Vector3.one * t.size;
            moduleGlobal.UnLockUI();
        });

        if (info.pet != null && info.pet.itemTypeId != 0)
        {
            var rPet   = PetInfo.Create(info.pet);
            var assets = new List <string>();
            Level.PrepareAssets(Module_Battle.BuildPetSimplePreloadAssets(rPet, assets, 2), b =>
            {
                var rGradeInfo = rPet.UpGradeInfo;
                var show       = ConfigManager.Get <ShowCreatureInfo>(rPet.ID);
                if (show == null)
                {
                    Logger.LogError("没有配置config_showCreatureInfo表。宠物ID = {0}, 没有出生位置信息。宠物模型创建失败", rPet.ID);
                    return;
                }
                var showData  = show.GetDataByIndex(0);
                var data      = showData.data.GetValue <ShowCreatureInfo.SizeAndPos>(0);
                teamPlayerPet = moduleHome.CreatePet(rGradeInfo, pos + data.pos, data.rotation, Level.current.startPos, true,
                                                     Module_Home.TEAM_PET_OBJECT_NAME);
                teamPlayerPet.transform.localScale      *= data.size;
                teamPlayerPet.transform.localEulerAngles = data.rotation;
            });
        }
    }
Esempio n. 5
0
    protected override List <string> BuildPreloadAssets()
    {
        var assets = base.BuildPreloadAssets();

        for (var i = 0; i < moduleSelectRole.roleList?.Length; i++)
        {
            Module_Battle.BuildPlayerSimplePreloadAssets(moduleSelectRole.roleList[i], assets);
        }
        assets.Add(StoryConst.THEATRE_MASK_ASSET_NAME);
        assets.Add(GeneralConfigInfo.defaultConfig.roleSelectEffect.effect);
        assets.Add("ui_selectcharacter");
        return(assets);
    }
Esempio n. 6
0
    protected override List <string> BuildPreloadAssets()
    {
        var assets = base.BuildPreloadAssets();

        //收到角色信息后才预加载。否则采用动态加载
        if (moduleEquip.weaponID != 0)
        {
            assets.AddRange(Module_Battle.BuildPlayerSimplePreloadAssets());
        }

        assets.AddRange(Module_Battle.BuildPetSimplePreloadAssets(modulePet.FightingPet, null, 2));

        //切换场景回到主城的时候,需要预加载未完成的资源
        if (moduleGuide.currentGuide != null)
        {
            assets.AddRange(moduleGuide.GetPreLoadAssets(moduleGuide.currentGuide));
        }

        assets.AddRange(FaceName.cachedAssets);
        return(assets);
    }
Esempio n. 7
0
    private void OnPostGmLockClass(Event_ e)
    {
        var mm = (bool)e.param1;

        if (!mm || !master)
        {
            CreatePlayer();
        }
        else
        {
            moduleGlobal.LockUI("拼命加载中...", 1.0f, 5.0f);
            PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(), f =>
            {
                moduleGlobal.UnLockUI();
                if (!f || !master)
                {
                    return;
                }

                master.UpdateWeapon(moduleEquip.weaponID, moduleEquip.weaponItemID);
            });
        }
    }
Esempio n. 8
0
    private void CreateRole(PRoleSummary rRole, RoleEntry rEntry)
    {
        if (rEntry?.root == null || rRole == null)
        {
            return;
        }
        rEntry.materialList.Clear();

        //没有时装数据的角色不创建模型。避免报错
        if (rRole.fashion.weapon == 0)
        {
            return;
        }
        Vector3 pos = Vector3.zero, rot = Vector3.zero;
        var     info = ConfigManager.Get <ShowCreatureInfo>(20001 + rEntry.index);
        var     d    = info?.GetDataByIndex(rRole.proto);

        if (d != null && d.data?.Length > 0)
        {
            pos = d.data[0].pos;
            rot = d.data[0].rotation;
        }
        var assets = new List <string>();

        Level.PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(rRole, assets), b =>
        {
            rEntry.creature = Creature.Create(modulePlayer.BuildPlayerInfo(rRole), rEntry.root.position + pos, rot, true, rRole.name, rRole.name, false);
            rEntry.creature.transform.SetParent(rEntry.root);
            rEntry.creature.localRotation = Quaternion.Euler(rot);
            rEntry.creature.roleId        = rRole.roleId;

            CharacterEquip.ChangeCloth(rEntry.creature, rRole.fashion);

            var renderers = rEntry.creature.gameObject.GetComponentsInChildren <Renderer>();
            foreach (var r in renderers)
            {
                rEntry.materialList.AddRange(r.materials);
            }

            //暂时不显示宠物了

            /*if (rRole.pet == null || rRole.pet.itemId == 0)
             *  return;
             *
             * var rPet = PetInfo.Create(rRole.pet);
             * var rGradeInfo = rPet.UpGradeInfo;
             * var show = ConfigManager.Get<ShowCreatureInfo>(rPet.ID);
             * if (show == null)
             * {
             *  Logger.LogError("没有配置config_showCreatureInfo表。宠物ID = {0}, 没有出生位置信息。宠物模型创建失败", rPet.ID);
             *  return;
             * }
             * var showData = show.GetDataByIndex(0);
             * var data = showData.data.GetValue<ShowCreatureInfo.SizeAndPos>(0);
             * rEntry.pet = moduleHome.CreatePet(rGradeInfo, data.pos + rEntry.creature.position, data.rotation, rEntry.root, true,
             *  Module_Home.TEAM_PET_OBJECT_NAME);
             * rEntry.pet.transform.localScale *= data.size;
             * rEntry.pet.transform.localEulerAngles = data.rotation;
             *
             * renderers = rEntry.pet.gameObject.GetComponentsInChildren<Renderer>();
             * foreach (var r in renderers)
             *  rEntry.materialList.AddRange(r.materials);*/
        });
    }