在CraftLand中具体的GameFlow被隐藏,但你仍旧可以通过设置或是图元修改GameFlow中的参数和流程来改变地图的玩法和时间。
概念说明
以下概念说明是根据CraftLand中的自定义模式为基础进行说明
我们的游戏流程是由阶段构成的,游戏从固定的游戏开始阶段开始,经过设置的若干个阶段,到固定的游戏结束阶段结束。
每个阶段会在设置的时间结束后自动按照流程进入下一阶段,每个阶段最少的持续时间为5秒。
其中游戏开始、游戏结束两个阶段必须存在,且作为游戏的起点和终点。
回合是一种特殊的阶段,它是若干个阶段的集合,并且可以指定循环的次数。每当流程进入回合时,会在回合中重复地按顺序执行它所包含的若干阶段,并在达成循环次数后结束回合继续向下进行。回合中不可以包含回合。在CraftLand中默认一个回合有3个阶段。
阶段名 | 图示 | 描述 |
---|---|---|
Start | ![]() |
游戏开始阶段,此阶段通常是为了等待玩家连入游戏内。 |
Preparation | ![]() |
游戏准备阶段,此阶段通常是为了等待玩家加载地图。 |
Round | ![]() |
回合开始阶段,代表着回合循环的开始。 |
Round Phase 1 | ![]() |
回合中的第一个阶段,通常是为了给玩家购买武器预留时间。 |
Round Phase 2 | ![]() |
回合中的第二个阶段,一般该阶段时间最长为回合中玩家的主要游玩阶段。 |
Round Phase 3 | ![]() |
回合中的第三个阶段,该阶段为结算时间,会对全体玩家宣布该回合的胜利属于哪一方队伍。 |
End | ![]() |
游戏结束阶段,进入该阶段代表着游戏结束,所有玩家会退出游戏。 |
举例说明
以下会根据Clash Squad 模板模式来详细举例游戏流程所对应的阶段
阶段名 | 图示 | 所对应的游戏流程 | 描述 |
---|---|---|---|
Start | ![]() |
![]() |
当所有玩家进入游戏的一瞬间,Start阶段的加载已全部完成,Start阶段主要用作等待玩家加入游戏及加载游戏。 |
Preparation | ![]() |
![]() |
进入游戏会等待数十秒的时间,这就是游戏开始前的准备阶段,显示双方队伍的成员信息及队伍信息,在准备阶段玩家无法离开安全区。 |
Round Start | ![]() |
![]() |
在回合开始阶段会弹出一个非常明显的UI来提示玩家当前为第几个回合 |
Round Phase 1 | ![]() |
![]() |
在回合开始的第一个阶段为玩家的买枪时间,在这个阶段中玩家无法离开安全区,玩家有数十秒的时间来购买合适的道具和枪械。 |
Round Phase 2 | ![]() |
![]() |
在回合开始的第二个阶段,安全区会消失,商店也会关闭,这一阶段为玩家的主要游玩阶段,双方队伍需要团灭对方队伍来取得回合胜利。 |
Round Phase 3 | ![]() |
![]() |
当任意一方队伍团灭时,第二阶段会自动结束并进入回合的第三阶段,第三阶段是结算阶段,CS模式中会通过明显的UI显示获胜方及双方队伍的当前比分。 |
End | ![]() |
![]() |
在CS模式中,当任意一方队伍率先获得比赛的赛点时,游戏就会进入结束阶段,会在UI上显示获胜的队伍,并等待数秒后全体玩家会自动退出当前游戏。 |
阶段配置的修改方法
没有特殊说明的情况下,下文中的”阶段“会包含回合的概念。
目前在CraftLand中你可以通过两种方法去改变GameFlow的配置,游戏设置以及图元。
游戏设置
通过游戏设置,点击编辑器左上角【Setting】,再点击右侧【GAMEPLAY SETTINGS】,点击【Edit GamePlay Rules】,就可以看见我们在游戏设置中给CraftLand的创作者们提供了一些简单和常用的修改选项,并且根据不同的预设模板所展示的可调节配置也会不同。
图元
阶段索引
在CraftLand中每个阶段都会根据流程顺序获得一个唯一ID,我们可以使用图元来判断当前阶段是否是指定的阶段ID来修改对应阶段的参数和事件。
如何获取阶段索引id?
我们可以通过两行简单的图元就可以知道所有阶段的索引id,以下为图元示例。
首先我们在全局脚本中放置‘阶段开始’和‘打印日志’两个图元。
然后我们再关闭图元编辑器,点击‘debug’按钮,进行地图试玩。
进入试玩后点击界面右上方‘日志’入口进入日志界面
在日志中,随着游戏流程的推进,阶段的索引的id就会自动打印在日志界面中,每次打印的id都是对应当前正在进行中的阶段
图示:
根据上图所示我们便可以知道每一个阶段所对应的index id
回合中的阶段并不会因为重复的循环得到新的id,比如第一回合的中所有的阶段索引为3、4、5、6,那么第二回合中所有的阶段索引依旧是3、4、5、6
回合索引从0开始
编辑阶段图元
在图元中我们提供了4个事件来监听回合或是阶段的开始和结束,合理的使用这4个事件可以有效的改变地图模式更加快的实现创作者的目标。
列表 | 示例图 |
---|---|
回合开始时; | ![]() |
回合结束时; | ![]() |
阶段开始时; | ![]() |
阶段结束时; | ![]() |
‘阶段开始时’会在每一个阶段开始进行一次判断
’阶段结束时‘会在每一个阶段结束时进行一次判断
‘回合开始时’只会在每一个回合阶段开始时进行一次判断
’回合结束时‘只会在每一个回合的最后一个阶段结束时进行一次判断
这里将回合与阶段区分开了,阶段开始/结束时只会触发当阶段开始时、当阶段结束时事件;而不会触发当回合开始时、当回合结束时事件。回合同理。
实例1:当指定阶段开始时
实例2:当指定阶段结束时
实例3 :当指定回合开始时
实例4:当指定回合结束时
实战应用
设定玩家单个回合内准备时间和结算时间都为5秒钟,对局时间设置为90秒,对局时间内玩家每次造成击杀都可以为所属的队伍获得1积分,当任意一方队伍在对局时间内首先到达20积分则该队伍取得当前回合胜利并结束当前回合。
-
创建参数和修改基础设置
首先调整回合对局时间到90秒
点击界面左上角【Setting】,再点击右侧【Edit Gameplay Rules】进入设置界面后再点击【Property Settings】进入规则编辑界面,然后我们在【Team Rules】栏位中添加一个‘TeamKills’参数作为后续判断双方队伍击杀数的依据。
2.建立图元
图元逻辑:当阶段索引为5的阶段开始时则遍历双方队伍的‘TeamKills’参数,若任意一方队伍TeamKills达到20则阶段结束
首先,我们在‘当阶段开始’事件中添加条件判断,通过阶段索引找到我们想要添加方法的阶段(阶段索引5)
当任意一方队伍的击杀数即我们刚刚添加的参数‘TeamKills’大于或等于20时,则结束掉当前阶段