winok 发表于 2009-8-16 20:41:23

[高阶研究]如何在单人任务中加入参考和反应舰队以及任务外部调用

[高阶研究]如何在单人任务中加入参考和反应舰队以及任务外部调用

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如何在单人任务中加入参考和反应舰队
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

作者:Mecha
原文出处:http://forums.relicnews.com/showthread.php?t=27763

翻译:Hiigara
出自:家园官方论坛

在单人任务地图中加入反应舰队的触发点:
addReactiveFleetSlot(<sSobGroup>, <iPlayerIndex>, ?, {x, y, z}, ?, ?, ?, <sShipType>)

x,y,z是地图上增加的敌方舰只的坐标,而那些?, ?, ?据猜测是进入点的旋转角度。

下面的内容是relic论坛上Mecha同志(这家伙是relic公司的,参与了HW2的制作)所写,相关帖子在:http://forums.relicnews.com/showthread.php?t=27763

一 简介

家园2会用“电脑舰只对比程序”(AI’s ship comparison routines)来比较一下玩家的舰队是否达到了游戏设计者设定的相应规模。如果你的舰只很多,那么就会给电脑增加相应多的船只。如果你的船只很少,那么系统就会在地图上增加较多的资源让你能够在以后能生产更多的舰只。这篇文章就是解释如何为玩家在不同的地图上设置相应的反应舰队,定义了增援的舰队从如何出现以及精确定义要增加那些船只。

二 反应舰队通道(Slots)

在maya中,用level ed工具你可以设置一个反应舰队出现通道(Slots),它看上去是一个线型的球体,让你定义不同玩家增援舰队的出现位置。在通道(Slots)的属性中你可以定义玩家指标,增援舰队是否以超太空跳跃出现和增援舰队的级别(sob group)。当然这个sob group也不是必须的。但在这个例子里我们会建立一个新的增援舰队,每一个通道(Slots)都可以定义从中允许出现的增援飞船的类型,字符串为空时表示允许所有类型的舰只,如果你想限制飞船类型,那么就要在那个标记着允许船只类型(Allowed Ship Types)的文字框里输入舰只类型,之间用逗号隔开。

三 资源增加

如果万家的舰队规模太小达不到所需的估摸,那么程序讲会在地图中增加相应资源,在maya中你可以设置可根据反应舰队系统(reactive fleet system)而变化的一片资源。玩家舰队与参考舰队间的资源差额会以分散的资源形式表现出来。你也可以为新的陨石定义通道(Slots),它们所包含的资源数首先会被用来填补万家舰队的资源差额,填满差额后剩余资源就会以分散的形式分布在地图中。

四 参考舰队

在level文件夹下创建一个叫做ReferenceFleet.lua的文件,这个文件内容如下:
******
Fleet =
{
      -- 这些是我们希望玩家拥有的舰队:
      {
                Type = "Sp_Tanker",
                Number = 6,
      },
      {
                Type = "Hgn_Mothership",
                Number = 1,
      },
      {
                Type = "Hgn_ResourceCollector",
                Number = 4,
      },
      {
                Type = "Hgn_Interceptor",
                Number = 2,
      },
      {
                Type = "Hgn_Scout",
                Number = 2,
      },
      {
                Type = "Hgn_AttackBomber",
                Number = 2,
      },
}

-- 这些是我们想让玩家拥有的资源:
RUs = 500

******

在fleet区块中,你需要定义为玩家增援的舰队。这些舰队用来平衡你和敌方的差距。Fleet也能够定义增援玩家的其它东西,而不仅仅只是舰船。因此,在这个来自于第二关的例子中,你也可以定义增援玩家的资源数。

五 增援舰队

你需要规定好用于增援玩家的舰只,这需要在level目录下创建一个叫做PlayerReinforce.lua的文件,为了能涵盖系统中你想包括的的每一个玩家,比如玩家2,那么你就要在目录下建立一个叫做Player2Reinforce.lua的文件。

这个文件的格式应该是这个样子:
******
-- 为每一个玩家的增援选项
Reinforcements =
{
      {
                Type = "Vgr_Interceptor",
                Weight = 1,
      },
      {
                Type = "Vgr_Bomber",
                Weight = 1,
      },
}
******

在Reinforcements区块中,你罗列了用于增援玩家的船只类型。Weighting变量设置的是飞船类型的指定出现优先级。某种飞船类型出现的的几率是由其Weighting的值在所有Weighting变量的和中占的比率决定的。在这个例子中,轰炸机和拦截机各有一半的出现机会(就是说1÷ (1+1)=0.5)。

649485663 发表于 2010-4-17 17:55:23

好难,好难

Johndoe 发表于 2010-8-7 14:24:23

领会精神...

germanynacui 发表于 2010-8-12 15:59:00

有点晕有点晕
页: [1]
查看完整版本: [高阶研究]如何在单人任务中加入参考和反应舰队以及任务外部调用