红色警戒2任务制作基础教程:关于变量 来源:红警任务之家 作者:OPERATE
编者按:红色警戒是一款好玩的即时战略游戏,支持各种玩家自制mod、任务地图的扩展安装。正是有了这些各种特色的新任务地图,才使的古老的RA2唤发着新鲜诱人的魅力!来自任务之家版主“OPERATE”的红色警戒2任务制作基础教程,希望对任务爱好者有所帮助!
红警2任务地图编辑器下载:http://www.uc129.com/bd/ra2gj/5633.html
首先提醒 本文不太适合新手 不过或许是新手可以理解的范围,阅读此文前请确保初中数学已经过关
首先地图编辑器自身是不存在变量的概念的,变量这个概念是我们人工引入的。变量在任务中表示某个特定事物的数量,比如地图上雷达的总数量,玩家建造的某坦克数量。
让我们来尝试解决以下问题:占领电脑10个建造场中的任意3个,则玩家胜利(不讨论占领后又被摧毁的问题,只要占领过就算)
这个问题有两个笨办法:第一个是将10个建造场设定为特殊作战方,当损失建筑为3时则玩家胜利。这个办法是不好的,因为摧毁也算是损失建筑。
第二个比较直观,给10个建造场分别设置10个变量,讨论所有可能,然后只要达成一种就胜利。但经过计算我们知道可能性为120种。如果要占领4个或者5个,那么可能性则为210种和252种,一般的任务触发不会超过100个,明显这样的方法也很不好。
因此我们便需要动用到变量论了。
现在我们假设,玩家已占领过的建造场数量为X。如何判断X=3呢?由于地图编辑器没有变量的概念,X=3只是一个抽象的信息而不能存在于地图编辑器的实例中,它不能直接进行比较。因此我们需要一定的信息转换。比如,X=3时,50X=150.我们知道防空炮耗电量为50。假设现在某作战方的电力为149,那么当这个作战方有三个防空炮时,它就停电。停电是地图编辑器中一个具体可以测算的概念。也就是说X=3时,A就停电,那么就说明玩家占领了3个建造场,玩家胜利了。因此我们可以为10个建造场分别关联上以下10个触发(所属方都是A):
1进入事件 参数为玩家
125 在指定路径点建造建筑……路径点即你希望建造防空炮的10个地点(一般地图外任意地方都可以),类型是防空炮
这样一来,每当玩家占领一个建造场后,A就会在某个特定地点建造一个防空炮。
然后我们给A摆上一个苏联发电厂,令它稍稍破损,这样A的电力便略低于150.那么当A电力不足时,玩家胜利
这样一来,我们就可以随时判断X是否大于3了。从以上例子我们可以知道,变量是可以通过一定信息转化来与特定数值比较大小的。
那么变量之间能否比较大小呢?答案是可以的。但是累计过程必须是一样的。现在我们指定以下信息转化过程:玩家每占领一个建造场,A就派出一架坦克到指定地点。电脑每占领一个建造场,A就派出一架坦克到另一个指定地点。假设30分钟后游戏终止,比较双方谁占的建造场多,即可根据坦克数量来判断多少。这个累计过程中,坦克小队的类型、数量必须是一样的。我们为这些坦克增加攻击某个路径点的脚本,并在这两个路径点上摆放同类型的建筑。在30分钟计时完毕前,这两个路径点一直保持铁幕的状态。如此一来,30分钟后坦克就会摧毁这两个建筑,但是坦克多的一方一定摧毁得更快。根据两个建筑摧毁速度的快慢,可以比较两个变量的大小。但这其中,除了坦克数量以外,其他条件必须保持一致。
我们再来进一步探究变量的功能。
这里提出一个问题:变量是否可以无上限地累计呢?
红警之家 » 红色警戒2任务制作基础教程:关于变量