文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

英雄竞技场和角色选择

文/SD_Ryoko

简介

本教程是关于玩家选择角色区域的创建。 这在英雄竞技场地图中是十分常见的, 玩家能得到一个小精灵, 或“选择单位”,可以选择他们想玩的角色。 本教程将介绍如何创建一个用于选择角色的竞技场, 以及如何设置创建它们的触发器。

参见: 英雄酒馆

初级角色安装

我们今天要使用的安装程序,在许多英雄竞技场地图上都能看到。 地图上一个偏远位置就会出现一组角色 每个角色附近都有一个力量圈。 每个玩家进入圈子后,都会拥有一个小精灵,也会有一个创造出来的角色。

第 1 段(可获 1.89 积分)

我们需要在地图上为你的角色指定一个区域。 每一次选择时,我们需要一个角色, 一个力量圈和一个地区。 地图上的人物只是为了告诉玩家他们可以选择哪一个角色而已, 并无其他。角色应当属于中立无源, 所以他们不会四处游荡或攻击他人。 如果需要的话,地图初始化的时候你就可以把角色设置成免疫, 以防止其他玩家攻击他们。

角色前面的力量圈是小精灵去选择角色的地方。 在力量圈之中,我们也会需要一个地区。 现在,我们开始用两个角色举一下例子。

第 2 段(可获 1.53 积分)
  • 为地图中出现每个英雄都放置一个被选英雄。
  • 在英雄附近创建一个力量圈。
  • 在力量圈内创建一个适合的区域。
  • 英雄应该属于中立被动的。

Hero Choose
创建一个英雄选择的区域。

创造小精灵

游戏中每位玩家都会需要一个小精灵(或其他选择器型类型的单元)来选择他们想玩的角色。 游戏开始后,我们希望每个玩家都能看到可用的角色, 这样,我们就能在该竞技场内某处,为玩家创建开始位置。 开始单位不要放置得相互过近, 否则小精灵将无法创造成功。

第 3 段(可获 1.41 积分)

接下来我们需要造小精灵。 在角色旁边为玩家配备小精灵很简单, 但是,如果玩家不现身的话, 坐在地图上的小精灵是休眠的。 我更愿意只给游戏中的玩家配备小精灵。 所以我们要用触发器为每个玩家 创建小精灵.另外,我的触发器只用来为比赛中真人控制的玩家创造一个小精灵,不包括旁观和战败的玩家。

  • 为角色附近的每个玩家创建一个开始位置。
  • 添加可为玩家创造小精灵的触发器。
Create Wisp
    Events
        Map initialization
    Conditions
    Actions
        Player Group - Pick every player in (All players) and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Picked player) controller) Equal to User
                        ((Picked player) slot status) Equal to Is playing
                    Then - Actions
                        Unit - Create 1 Wisp for (Picked player) at ((Picked player) start location) facing Default building facing degrees
                    Else - Actions
                        Do nothing
第 4 段(可获 1.33 积分)

选择英雄的规则

每个地图都有不同的规则选择英雄。 一些地图允许玩家选择他们喜欢的任何英雄。 其他地图只允许选择每个英雄种的一个。 通常,现代地图仅允许选择每个英雄中的一个,并且具有诸如-repick和-random的选项。 在这个例子中,我们将英雄限制在每种类型之一,并添加一个repick系统。 如果您愿意,稍后可以添加更多选项。

首先跟踪已经选择的英雄,我们需要将它们存储在一个变量 中。 我们要创建一个整数型变量,它是一个数组。 默认情况下,所有的整数都为零。 每个整数代表地图上的一个英雄。 在触发器模块内,单击编辑变量并创建一个变量,如图所示。

第 5 段(可获 1.79 积分)
  • 整数变量存储已经选择的英雄。
  • 在变量编辑器中创建一个整数数组。
  • 地图也可以有像-repick和-random这样的选项。

Hero Choose

添加一个变量来控制英雄。

使用触发器创建英雄

我们需要做的最后一件事是添加一个触发器来创建英雄。 如果你的触发器代码更高级,你可以将你的英雄类型和区域存储在数组中。 这个例子将保持简单。 我们对每个可用的英雄都有一个触发器。 这个工作量有点多,但是一旦你完成了第一个触发器,你可以复制并改变它用于下一个英雄。

第 6 段(可获 1.38 积分)

当小精灵踏进圈内, 我们要首先检查看看,角色是否占用了。 如果没有,我们就创造角色, 标记上角色占用,并从游戏中去除小精灵。 为了视觉效果,我们要 在地图上隐藏 角色,其他玩家就会知道这个角色不可用了。

我的触发器将在地图中心创建角色。 如果你想在别处创造小精灵, 可以在地图的某个地方创造一个新区域。 通常情况下,玩家和队伍有不同的起始位置, 你选择一或两个区域来放置角色。 最后,如果你想稍后添加一个重新挑选系统,只需在地图上隐藏角色, 并为角色把变量设置为零。

第 7 段(可获 1.75 积分)
  • 为地图的每个可用角色创建一个触发器。
  • 在地图上隐藏英雄。
  • 为小精灵的主人创建角色。
  • 从游戏中移除小精灵或选择器单元。

我的变量对应于我的区域。 角色一是区域一,角色二是区域二。

Choose Hero 1
    Events
        Unit - A unit enters Hero 1 Region <gen>
    Conditions
        ((Unit-type of (Triggering unit)) Equal to Wisp) and (Pick_Taken[1] Equal to 0)
    Actions
        Set Pick_Taken[1] = 1
        Unit - Hide Demon Hunter 0001
        Unit - Create 1 Demon Hunter for (Owner of (Triggering unit)) at (Center of Start Region <gen>) facing Default building facing degrees
        Camera - Pan camera for (Owner of (Triggering unit)) to (Center of Start Region <gen>) over 0.00 seconds
        Unit - Remove (Triggering unit) from the game

Choose Hero 2
    Events
        Unit - A unit enters Hero 2 Region <gen>
    Conditions
        ((Unit-type of (Triggering unit)) Equal to Wisp) and (Pick_Taken[2] Equal to 0)
    Actions
        Set Pick_Taken[2] = 1
        Unit - Hide Sorceress 0002
        Unit - Create 1 Sorceress for (Owner of (Triggering unit)) at (Center of Start Region <gen>) facing Default building facing degrees
        Camera - Pan camera for (Owner of (Triggering unit)) to (Center of Start Region <gen>) over 0.00 seconds
        Unit - Remove (Triggering unit) from the game
第 8 段(可获 0.64 积分)

重新挑选触发器

现在我想在地图添加一个“重新挑选触发器”。 它的运作与其他角色触发器类似, 但它会逆向工作。任何玩家点击--重新挑选, 我想隐藏虚拟单元, 为角色0设置成挑选_占用变量, 就可以再次使用了。我注意到,如果不让角色再次可用, 你就开始消耗角色了。 我们会使用如果语句,来确定玩家有什么角色。 取消隐藏的虚拟单元后,我们将从游戏中移除他的角色,为玩家创造一个新的小精灵使用。

  • 选择一个玩家拥有的角色单位。
  • 取消隐藏该类型单元。
  • 并为其改变变量。
  • 从游戏中删除角色。
  • 为玩家创造一个新的小精灵。
第 9 段(可获 1.78 积分)

如果你需要角色再次可用, 就对单元取消隐藏,把挑选_占用设置为0

Repick Hero
    Events
        Player - Player 1 (Red) types a chat message containing -repick as An exact match
        Player - Player 2 (Blue) types a chat message containing -repick as An exact match
        Player - Player 3 (Teal) types a chat message containing -repick as An exact match
    Conditions
    Actions
        Unit Group - Pick every unit in (Random 1 units from (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))) and do (Actions)
            Loop - Actions
                Unit - Remove (Picked unit) from the game
        Camera - Pan camera for (Triggering player) to ((Picked player) start location) over 0.00 seconds
        Unit - Create 1 Choose A Hero for (Triggering player) at (Center of WispRegions[(Player number of (Triggering player))]) facing (Center of Start Region <gen>)
第 10 段(可获 0.26 积分)

总结

把所有的基础掌握后, 您可以添加高级选项。 地图工作模式很多都是个人喜好, 但这应该让你有一个良好的开始。 完成的时候,你应该在你的地图上有一个看起来像这样的区域。

Hero Choose
成品角色竞技场。

第 11 段(可获 0.65 积分)

文章评论