教程六:如何制作任务
要制作好的任务必须配合上一章的内容。根据小黄棋的提示来完成任务。(当然你不用小黄旗也是可以的)
我们先来做个最简单的任务。
首先在右上角的界面里击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公里开外匍匐在草丛中,抬个狙,听着风吹过草地的声音,等待着目标的出现!!!狙杀!!!!!!!“
大家灵活应用可以做出绚丽的任务来!