守望先锋工坊怎么制作地图

巴黎埃菲尔铁塔2022-08-24  9

守望先锋地图工坊零基础入门教程 守望先锋地图工坊新手教程

先锋地图工坊太神奇了。它给我们带来了实现自己想法的机会。不过写第一个游戏需要一定的基础。以下是玩家 龙牙 写一篇地图工坊零基础新手教程。让我们看一看。

守望先锋地图工坊基础入门教程

本文的目的是从0开始入门。如果你已经了解了map workshop是怎么回事,那么这篇文章可能对你帮助不大。

让我们从几个问题开始 揭开 作坊的神秘地图 面纱 :

车间的地图是什么?这是一个自定义模式,功能更多。

地图工坊能做什么?在这个阶段,它可以做一些有趣的游戏。相信你已经体验过地图工坊的作品了。

地图工坊不能做什么?离不开游戏的基本框架。比如OW限制只有12个玩家,地图工坊也不能让你的房间塞下更多的人。目前还不能更换模型,改变地形。

地图工作室在哪里?不难找到。创建一个新的自定义房间,打开设置,你会发现一个大 地图工坊 纽扣。车间的所有设置都在这里。

什么是规则?

车间的地图由许多 规则 由...组成。规则是什么?你可以把它想象成一个接一个 规定 。何时 规则 该跑的时候就会跑。比如生活中,上班迟到,老板会扣你工资。当你的闹钟在早上响起时,你就应该起床了。这些都是生活中的 规则 。

规则由三部分组成:事件、条件和动作。还是上面的例子,当你上班迟到,今天又不是休息日,那么老板会扣你的工资。这篇文章 规则 , 上班迟到 是事件, 今天不是休息日。是一个条件, 工资扣除 是行动。

如何在游戏中体现出来?比如我们知道DVA的核爆会对一定范围内的敌人造成伤害,所以 机甲爆炸 是事件, 玩家在爆炸范围内,玩家和DVA敌对 是一个条件, 造成伤害 是行动。(PS:这里只是用 机甲爆炸 例如,让你理解事件、条件和动作之间的关系)

一句话,规律就是:当某件事(事件)发生,条件满足,做某件事。

编写规则

我相信你已经知道了 规则 那么,接下来,我们将通过的是什么?规则 做一件简单的事:让玩家每受伤一次恢复10点生命值。

其实过程很简单:玩家受伤 rarr回血。那么相应的规则应该是什么样的呢?

翻看事件列表,发现有一个事件恰到好处:玩家受伤了。那我们就把它当做一个事件。

我们没有什么特殊要求,所以不需要 条件 。

动作是给玩家回血。我们应该使用什么动作?在查阅文件时,我们发现了一个 待遇 行动。它需要选择几样东西:玩家,治疗者,治疗量。

玩家 就是这个行动的目标,也就是治疗谁。我们如何让游戏知道治疗的对象是受伤的玩家?我们可以用 事件 。顾名思义, 事件 指触发事件的玩家。我们使用了 这就去。玩家受伤 事件,然后,这里是 事件 指的是受伤的选手。同样,如果我们用 玩家被杀 作为一个事件,那么你可以用 事件 来指代战死沙场的玩家。

在这种情况下,治疗师是谁并不重要,所以我们选择 。无 去做吧。

最后我们把治疗量定在10点,所以我们选择 数字 ,然后输入10。

可变的

没有接触过编程的朋友可能会觉得这个东西有些难以理解。但是没你想的那么难。我们可以用数学来理解它。

比如我们有一个等式:y=x+1。数学上,我们称x为独立变量:当我们放入不同的x,y是不同的。我们的 等式 它只是定义了一个从x到y的过程。

在上面的例子中,我们有一个动作:用10点生命值治疗事件玩家。在这方面, 事件 是一个变量 mdash mdash因为可以有很多玩家触发事件。这个过程就是对待玩家。我们通常称之为 常数 mdash mdash因为不会变,不管哪个球员受伤,治疗金额都是10。

当然,这只是变量最基本的概念。事实上,变量就像一个 框 我们可以放东西进去或者取出里面的东西。

在OW中,变量和常量统称为 价值 。

实现 冷冻炸弹

现在让我们写一个稍微复杂一点的规则。我们希望让麦克雷的子弹成为 冷冻炸弹 mdash mdash被麦克雷击中的玩家将被冻结1秒。

同样,我们先想想过程:玩家被McCrae rarr冻结播放器。

我们发现 事件 没有 麦克雷打了他 事件。我该怎么办?是时候让 条件 我们走吧。被麦克雷打是一种伤害,所以 事件 我们可以继续使用 玩家受伤 。但是我们有一个附加条件:损坏的来源应该是MacRae播放器。

我们浏览了文件,发现了 攻击者 可以参考伤害来源。但是要直接比较吗?仔细想想, 玩家在用McRae 比较的应该是英雄,而不是玩家。所以,我们继续摸索如何知道玩家用的是什么英雄。最后,我们找到了 Hero 这个选项。条件是:英雄(攻击者)= =英雄(麦克雷)

注意:等号的左右两边必须是同一类型,即相似事件player = = hero (McRae)是不正确的,因为左边是玩家,右边是英雄。正确的写法是Hero(事件玩家)= = Hero(麦克雷)

应该采取什么行动? 冻结 是官方状态之一,我们可以直接用 设置状态 :球员,助攻,状态,时长。

玩家 如上,使用 事件 去做吧。助手是 攻击者 。是 冻结 。 持续时间 输入 1 。

二 特别 的事件

通过以上内容,我们已经知道什么是规则了,基本的规则都写好了。但是你发现 事件 只有几项。如果我们想做一些其他的功能,比如想让玩家重生后立刻移动到某个位置,无论是受伤的事件,还是行动中被杀的事件,都无法满足要求。这时候就需要用连续事件+条件了。

持续事件不同于其他事件。其他事件是 发生这种情况时 而连续事件是 我会等到条件满足 。

例如,我们可以使用 生存 来判断一个玩家是否被杀。并且结合上面提到的持续事件,我们可以写出这样的规则:

事件:连续-每个玩家

条件:生存(事件玩家)= =真

这是什么意思?根据上面的介绍,我们把它 翻译 来到这里,也就是等到玩家活着,再做下面的动作。

官方文件中有这样的解释: 当第一次检查满足条件时,将执行操作。当不满足条件列表,但随后又满足时,将再次尝试该操作 。

所以,我们上面的规则,其实就是:玩家被杀,游戏就等着 mdash mdash等到玩家复活,再做相应的动作。之后玩家再次被杀,游戏继续等待。重复上述过程。

同样,我们现在要写一个规则,可以响应不在场上的玩家按下交互键(F),所以可以这样写。

事件:连续-每个玩家

条件:

在地面上(事件玩家)= =假

按下按钮(事件播放器,交互)= =真

做一个模式。

通过上面的文章,我们已经知道如何写规则了。但是我相信你还是不知道怎么写一个简单的游戏。不知道大家有没有玩过 小心火 被称为 烫手山芋。格局?这里,我们就以这种模式为例。

注意:因为本文是教程文章,不会完全覆盖整个游戏模式。

传递火焰

我们来思考一下这种模式是如何运作的。用 火 通过攻击其他玩家(不管什么方式),有些玩家可以把 火 传给其他人。

那么,这个过程是如何被规则描述的呢?我们可以这样说:当一个玩家受伤,他没有火,但是攻击他的玩家有火,把火传给这个玩家。

从上面的描述不难看出,我们应该选择 玩家受伤 事件。但是,我们怎么知道玩家有没有 火 那又怎么样?我想知道你是否记得Ash的 延期雷管 mdash mdash我们可以用点火状态来表示火。通过浏览手册,我们可以找到 有地位 还有 设置状态 、 清除状态 一些事情。这样就可以结合条件了。

条件是受伤的玩家没有火,而进攻者有火。因为我们用了 玩家受伤 因此,我们用 事件 前者说,“攻击者 后者说。条件是:

状态(事件播放器,点亮)= =假

With state(攻击者,点燃)= = true

动作就是把火打开 传递给 另一个玩家。 Pass 过程,并分成一个玩家 失去 火,和一个玩家 获取 着火了。因此,有两条规则:

设置(事件播放器、无、点火、9999)

清除状态(攻击者,亮起)

此外, Ignite 只是效果 mdash mdash看能不能用,只好再加一个 伤害 动作:

持续开始伤害(事件玩家,无,9999,50)

设置玩家变量(事件玩家,A,最后持续伤害效果ID)

长时间停止伤害(玩家变量(攻击者,A))

我们在这里使用变量。你可以结合上面的变量部分来思考为什么要这么做。(PS:你可以把变量想成一个 框 ,设置为 框 放点东西进去)

最终规则如图所示:

奖励奖励积分

俗话说 万事开头难 。现在我们已经做好了最基础的东西,接下来就可以做下一个东西了:胜利判断。我们的逻辑是:剩下一个选手的时候,给这个选手加一分。

我们不知道什么时候会剩下一个玩家 mdash mdash可能是玩家死亡后,也可能是玩家退出游戏后。我们不能确定是什么时候,但是我们的条件很明确:只剩下一个活着的玩家。所以我们用连续事件+条件来做到这一点。翻阅手册,可以找到一个叫 幸存玩家的数量 的价值。我们直接使用它:

事件:持续-全局

条件:幸存玩家数量(所有队伍)== 1

我们要做的就是给他一分。我们在手册里找到一个叫 所有幸存的玩家 但是注意:它是一个数组。因为很多玩家可能会在游戏中幸存,或者根本没有。游戏没有那么智能,它不知道我们的规则里必须只有一个玩家。因此,我们需要使用 数组中的值 :

修改玩家分数(数组中的值(所有幸存玩家(所有队伍),0),1)

接下来,我们将复活所有玩家,开始新游戏:

重生(所有玩家(所有队伍))

最终规则如图所示:

随机火灾传播

现在大体框架已经有了,但是我们还没有处理一些特殊情况:比如玩家死亡,或者玩家退出游戏,导致 火 当它消失时,我们需要把 火 把它给一个随机的玩家。如上,我们使用持久事件+条件。

我们的条件应该是所有玩家都没有火的时候。换句话说,就是带火玩家数量=0的时候。游戏不能直接用火得到玩家,但是我们可以利用 过滤后的数组 这样吧:难道就不能从所有幸存的玩家中筛选出带火的玩家吗?

对于条件,应该这样写:number(过滤后的数组(所有幸存玩家,带状态(当前数组元素,lit)) == 0。(如果你不太明白这个规则,请试着拆开括号,从里到外,结合说明书,一点一点看)

动作是从幸存的玩家中随机选择一个玩家,让他拥有 火 。同样,我们必须使用 数组 的:

设置全局变量(a,数组的随机值(所有幸存玩家(所有队伍)))

设置(全局变量(a),点火)

开始损坏(全局变量(A),无,9999,50)

设置玩家变量(全局变量(A),A,最后持续伤害效果ID)

最终规则如下:

修复:死亡从火中掉落。

现在邀请几个好友,或者多开几个账号进入游戏。开始游戏。你的一个队员在火灾中牺牲了。但是,你发现 火 没有传给下一个人。开房主人 Workshop viewer 看看吧。随机火传规律为什么没跑?

原来死亡不会自动灭火,我们还是要手动处理:

事件:玩家在行动中被杀。

状态(事件播放器,点亮)= =真

火 其实就是去掉状态,所以动作也很简单,基本就是复制粘贴上面的规则:

清除状态(事件播放器,亮起)

长时间停止伤害(玩家变量(事件玩家,A))

最终规则如下:

摘要

通过一些规则,我们编写了一个简单的 烫手山芋 模式。我相信你已经发现这并不难。你需要的只是把一件事变成一件小事,然后用规则去完成它。

转载请注明原文地址:https://juke.outofmemory.cn/read/1320730.html

最新回复(0)