教程六:如何制作任务

+

教程六:如何制作任务

要制作好的任务必须配合上一章的内容。根据小黄棋的提示来完成任务。(当然你不用小黄旗也是可以的)

我们先来做个最简单的任务。

首先在右上角的界面里击system标签然后把把属性里把name写成objective,后在把type里面选择成primary objictive 1.意思是这个是主要任务一,再把army设置成PLA,意思是PLA的任务。如图所示:

这样任务就能显示了。

不过现在还没有任务的实际内容,所以我们还要写level.lua

再拖一个到地图上,再随便拖一辆坦克在地图上并且在name里设置为tank1.然后后打开.lua

输入以下代码:

function onDeath_tank1(victim, killer)

OFP:setObjectiveState("objective"," COMPLETE ");

End

这个代码很容易懂。

意思是:

当tank1被摧毁

触发:任务objective完成。

效果:把坦克打爆,则任务完成

哈哈 是不是超级简单

当然这里你要把的属性栏里面的linked to里面选择tank1。这样才能准确的定位坦克的位置,不然任务和内容就不匹配了。

这样一个简单的任务就制作完成了。

还可以对该代码改进一下,如:

function onDeath_tank1(victim, killer)

OFP:setObjectiveState("objective"," COMPLETE ");

OFP:missionCompleted();

end

意思是该任务完成并且所有任务完成退出游戏。

下面介绍下复杂一点的任务编辑。

我们怎样来制作2个或3任务呢?

那就很简单了直接放两个分别命名为objective1和objective2,设置好阵营,分别设置primary objictive 1和primary objictive 2

然后拖到地图上。再分别拖一辆坦克命名为但tank1个一个兵命名为bin1,如图所示:

代码为:

function onDeath_tank1(victim, killer)

OFP:setObjectiveState("objective1"," COMPLETE ");

end

function onDeath_bin1(victim, killer)

OFP:setObjectiveState("objective2"," COMPLETE ");

end

很好理解:

意思为:

当tank1爆炸则任务1完成

当bin1死亡则任务2完成

2个任务制作很简单吧!!!哈哈

不过细心的同学发现了,以上代码是无论你先完成哪个任务都可以,但如果想完成了任务1才能完成任务2那怎么办

我们必须加入个判断:

代码修改如下:

function onMissionStart()

ob=0;

end

function onDeath_tank1(victim, killer)

OFP:setObjectiveState("objective1"," COMPLETE ");

ob=1;

end

function onDeath_bin1(victim, killer)

if ob==1 then

OFP:setObjectiveState("objective2"," COMPLETE ");

OFP:missionCompleted();

end

end

我们详细讲解下:

首先看到function onMissionStart()就知道是“当游戏开始时"

下面ob=0;则是设定了个变量!!且把0(为假)赋值给ob

再看下一段

function onDeath_tank1(victim, killer)

OFP:setObjectiveState("objective1"," COMPLETE ");

ob=1;           ---这里多了个ob=1,意思是当objective1这个任务完成后让1(真)赋值给ob

end

接着看最后段

function onDeath_bin1(victim, killer)

if ob==1 then     ---这里是如果 ob等于1则触发objective2任务完成,达到了完成任务1后才能完成任务2的效果。注意下语法结构

OFP:setObjectiveState("objective2"," COMPLETE ");

OFP:missionCompleted();

end  - -这里注意凡有if必须有end结束

end  - -这里的end对function

超级简单吧!! 哈哈

其实不外乎多1个变量让他完成任务1时ob变成1,任务判断ob是否等于1才触发第二个任务!

那么三个任务就不多讲了!

此章介绍到这里。

任务完成可以是多样性的,可以是某单位被杀,或者进入某区域,或者某段时间内。

学到这里应该可以制作“1公里开外匍匐在草丛中,抬个狙,听着风吹过草地的声音,等待着目标的出现!!!狙杀!!!!!!!“

大家灵活应用可以做出绚丽的任务来!