コード例 #1
0
        /// <summary>
        /// 加载地图
        /// </summary>
        /// <param name="levelKey"></param>
        /// <param name="fromPosTag">是否从存档中取出生点</param>
        public static void LoadGameMap(string levelKey, LevelMaster.LevelLoadPara para = null)
        {
            if (para == null)
            {
                para = new LevelMaster.LevelLoadPara(); //默认生成一份
            }
            var mapKey  = levelKey.Contains("&") ? levelKey.Split('&')[0] : levelKey;
            var command = levelKey.Contains("&") ? levelKey.Split('&')[1] : "";

            LoadGameMap(ConfigTable.Get <GameMap>(mapKey), para, command);
        }
コード例 #2
0
    public void OnYesBtnClick()
    {
        var loadPara = new LevelMaster.LevelLoadPara();

        loadPara.loadType    = LevelMaster.LevelLoadPara.LevelLoadType.StartAtTrigger;
        loadPara.triggerName = "Level/Triggers/0";

        //加载地图
        var startMap = GameMap.GetGameStartMap();

        LevelLoader.LoadGameMap(startMap, loadPara, "", () =>
        {
            //首次进入游戏音乐
            AudioManager.PlayMusic(16);
            Jyx2_UIManager.Instance.HideUI("GameMainMenu");
        });
    }
コード例 #3
0
    public static void DoLoadGame(int index)
    {
        //加载存档
        var r = GameRuntimeData.LoadArchive(index);

        //初始化角色
        foreach (var role in r.Team)
        {
            role.BindKey();
        }

        var loadPara = new LevelMaster.LevelLoadPara()
        {
            loadType = LevelMaster.LevelLoadPara.LevelLoadType.Load
        };

        //加载地图
        LevelLoader.LoadGameMap(r.CurrentMap, loadPara);
    }
コード例 #4
0
        //加载地图
        public static void LoadGameMap(GameMap map, LevelMaster.LevelLoadPara para = null, string command = "", Action callback = null)
        {
            if (para == null)
            {
                para = new LevelMaster.LevelLoadPara(); //默认生成一份
            }
            LevelMaster.loadPara = para;

            //存储结构
            if (GameRuntimeData.Instance != null)
            {
                //存储上一个地图
                GameRuntimeData.Instance.PrevMap = GameRuntimeData.Instance.CurrentMap;

                //切换当前地图
                if (map != null)
                {
                    GameRuntimeData.Instance.CurrentMap = map.Key;
                    //GameRuntimeData.Instance.CurrentPos = "";

                    //非战斗场景清理数据
                    if (!map.Tags.Contains("BATTLE"))
                    {
                        //MapRuntimeData.Instance.Clear();

                        //清理重复角色
                        //GameRuntimeData.Instance.CurrentTeam.RemoveAll(role => !GameRuntimeData.Instance.Team.Contains(role));

                        //从GameRuntimeData复制队伍信息到地图数据
                        //if (map.Tags.Contains("PLAYER_ONLY"))
                        //{
                        //    MapRuntimeData.Instance.AddToExploreTeam(GameRuntimeData.Instance.CurrentTeam[0]);
                        //}
                        //else
                        //{
                        //    foreach (var role in GameRuntimeData.Instance.CurrentTeam)
                        //    {
                        //        MapRuntimeData.Instance.AddToExploreTeam(role);
                        //    }
                        //}

                        //初始化队伍状态
                        //foreach (var r in MapRuntimeData.Instance.ExploreTeam)
                        //{
                        //    r.Hp = r.Maxhp;
                        //}
                    }
                    //存档
                    //GameRuntimeData.Instance.GameSave();
                }
            }

            if (string.IsNullOrEmpty(command))
            {
                LoadingPanel.Create(map.Key, callback);
            }
            else
            {
                LoadingPanel.Create($"{map.Key}&{command}", callback);
            }
        }
コード例 #5
0
    //执行指令
    public void ExecuteCommand(string command, List <GameObject> paraGameObjects)
    {
        if (string.IsNullOrEmpty(command))
        {
            return;
        }

        m_ParaGameObjects = paraGameObjects;

        string cmd   = command.Split('#')[0].ToLower();
        string value = command.Substring(cmd.Length + 1); //command.Split('#')[1];

        if (cmd == "dialog")
        {
            //dialogPanel.Show("", value, null);
            Jyx2_UIManager.Instance.ShowUI("ChatUIPanel", ChatType.RoleKey, "", value);
        }
        else if (cmd == "selfsay")
        {
            GameRuntimeData.Instance.Player.View.Say(value);
        }
        else if (cmd == "loadlevel")
        {
            SceneManager.LoadScene(value);
        }
        else if (cmd == "loadmap")
        {
            var loadPara = new LevelMaster.LevelLoadPara()
            {
                loadType = LevelMaster.LevelLoadPara.LevelLoadType.Load
            };
            LevelLoader.LoadGameMap(value, loadPara);
        }
        else if (cmd == "mapevt")
        {
            MapEvt mapEvt = ConfigTable.Get <MapEvt>(value);

            if (mapEvt != null)
            {
                //如果已经执行过,返回
                if (mapEvt.IsFinished(runtime))
                {
                    return;
                }

                //标记为正在执行
                mapEvt.MarkAsExecuting(runtime);

                m_CurrentMapEvt = mapEvt;
                PlayStory(mapEvt.ExecuteCode.Split('\n'), mapEvt.Result);
            }
            else
            {
                Debug.LogError("载入了错误的mapevt:" + value);
            }
        }
        else if (cmd == "timeline")
        {
            PlayTimeline(value, null);
        }
        else if (cmd == "runtimestory")
        {
            PlayStory(new string[] { value }, "");
        }
        else if (cmd == "transport")
        {
            var levelMaster = FindObjectOfType <LevelMaster>();
            levelMaster.Transport(value);
        }
        else if (cmd == "win")
        {
            BattleHelper battleHelper = FindObjectOfType <BattleHelper>();
            var          model        = battleHelper.GetModel();
            foreach (var role in model.Roles)
            {
                if (role.team != 0)
                {
                    role.Hp = 0;
                }
                role.CheckDeath();
            }

            HSUtilsEx.CallWithDelay(this, () => {
                battleHelper.SwitchStatesTo(BattleHelper.BattleViewStates.WaitingForNextActiveBattleRole);
            }, 1f);
        }
        else if (cmd == "lose")
        {
            BattleHelper battleHelper = FindObjectOfType <BattleHelper>();
            var          model        = battleHelper.GetModel();
            foreach (var role in model.Roles)
            {
                if (role.team == 0)
                {
                    role.Hp = 0;
                }
                role.CheckDeath();
            }
            HSUtilsEx.CallWithDelay(this, () =>
            {
                battleHelper.SwitchStatesTo(BattleHelper.BattleViewStates.WaitingForNextActiveBattleRole);
            }, 1f);
        }
        else if (cmd == "testlua")
        {
            LuaExecutor.Execute(value);
        }
        else if (cmd == "jyx2event")
        {
            LuaExecutor.Execute("jygame/ka" + value);
        }
        else if (cmd == "battle")
        {
            LevelLoader.LoadBattle(int.Parse(value), null);
        }
    }