-
闪点行动编辑器使用
以下内容参考了
Johan Gustafsson's
Editing Tutorial
当然我根据自己
的理解而写
成。因为我英文水平有限,其中的错误请大家指出。看了后面的方
法,你会发现做一个任
务是很容易的。如果具有编程的基础,中间很多概念都
和编程时相似。当然不会编程也没
关系,我尽我自己的能力来解释这些看起来
复杂变量。
我把文章和编辑器里边常看到的一些单词做一个说明
(
英文有限,如果有误
请指正
)
,后面不再一一说明。
Side
归属方
Type
类型
Unit
单位
Rank
军衔
Skill
技能
Name
名称
Description
说明
Shape
形状
Ellipse
椭圆
Activation
活性
Condition
条件
Effect
效果
< br>下面是一个具体任务的制作过程,其他的象
INTRO
、
ENDING
之类可以用相
同的做法做
出来。有关具体的编辑器的界面或是一些操作方法你可以参考另一
篇文章谢邪翻译的《编
辑器使用教程》。
第一步:
在开始任何的编辑之前,请花几分钟想一想要做什么样的任务。最好的方
式就是对自己提问。比如:
游戏者是指挥官还是普通士兵
p>
?
游戏者可以驾驶
车辆还是不能
?
如果这些你都很从头到尾仔细的考虑过了,那么你做任务的时
候就会变得很很容易。通过对任务文件的研究及试验,我发现任务是由几个部
份构成的。控制这些小的元素
(
这里的
PART
我没有找到一个比较好的词
)
的运动,
使得制做任务非常简单。举个例子,在我…对不起,应该是我们的任务里边,
首先游戏者被要求找到一辆吉普车并且驾驶车辆赶到
Alpha
group
。第二部份,
和
Alpha
group
一起坐卡车到北约基地。这时候到了第三部份,
Al
pha
被飞机
送到敌人的前哨阵地。这个时候,另一部份开始抵
抗北约的进攻。最后,占领
敌人的基地。我们可以这样来写这个过程。
< br>
1.
玩家开车到
Alpha
乘车到北约基地
3.
直升飞机带着
Alpha
到敌人的营地
对敌人进攻
5.
占领敌人领地
< br>这样就可以非常容易就编写任务了。一小股敌人到了北约基地附近,上面
想消灭这
些敌人。于是派
Alpha group
去消灭这一小股敌人。
为了做得更好,
我们这样做。部队被直升飞机带到要去的地方,而玩家开始的时候是在一
个掩
体值勤。他被命令加入到很快就要出去执行任务的
Alph
a
部队中。大约就是这
样了,让我们开始有趣的任务制作吧。<
/p>
读取
Kolgujev
地图开始我们的任务制作。编辑器读取完地图以后,我们找
到坐标点为
Ce46
的地点,这是玩家开始时候的位置。你会看到一个小的灰色的<
/p>
建筑,选择菜单里边的
unit
然后用鼠
标双击房子,现在就可以使用下面的设置
来创建玩家控制的人物了。
Side
:
West
Type
:
Men
Unit
:
Soldier
Rank
:
Private
Skill
:
Best
Name
:
P
我们当然也希望玩家带
着枪,在没有什么目标要进攻的情况下,把枪背在
肩上。这个我们可以用一个脚本来实现
。请注意到一个
Init
区域。我们如何命
令玩家控制的士兵把枪背在背后呢
?
在
OFP
里边所有单元都有一个
behaviour
值,
这个值可以是:
Careless(
无忧无虑
)
、
Saf
e(
安全
)
、
Aware(
小心
)
、
Combat(
战
斗
)
和
Stealth(
隐蔽
)
这几个值。
Safe
模式就可以
得到我们前面希望的让士兵把
枪背在背后的效果,然而如何来设置使得玩家在刚开始任务
的时候处于
Safe
模
式呢
?
记得前面说的
Init
区域吗
?
这个就是游戏引擎在创建这个单元之前读取这
里的值,因此我们可以在这里填入我们想要他做的第一件事。使用命令
s
etbehaviour
,这个命令有一个参数。看下面一行我们的使用方法。
this setbehaviour
这个就
是我们为玩家所控制的角色写的初始化的脚本。注意
this
这
个命令,
它是要告诉脚本编译的时候这个脚本所属于的单元,在这里就是指的
p
。那为
什么我们不就写
p
在那里呢
?
这是一个快捷方式。你会
说我们可以用复制和粘贴
来做同样的事,但是
p
不是任何时候都有效的,这样的话我们每次都要把
p
修
改为相应的值,用代词就会省很多事。我们继续创建一辆吉普车,好让玩家开
车和
Alpha
小队汇合。我们在玩家的右边一点
点双击
(
不是在房子里边
)
,按下
面进行设置。
Side
:
Empty
Type
:
Car
Unit
:
Jeep
Name
:
Jeep
这样就创建了一
个空的吉普车给玩家使用。你可以设置吉普车的
Azimuth(
方位
)
为
0
玩家的为
90
,这样玩家就面向吉普车而吉普车就对着北面。<
/p>
现在我们要命令玩家进入吉普车,如何来做呢
?
< br>选择玩家然后选择菜单里边的
waypoint(
导航<
/p>
)
。双击吉普车创建一个导航点。
Type
:
Get In
Description
:
Player Get In
Jeep(
玩家上吉普车
)
[Always Show]
Get In
< br>这个类型你可以用在需要单元进入不同的交通工具的时候。最后一
行的
Always Show
可以使玩家的视线里边出现导航点的标记,然而这
个在预览
的方式下不起作用。你只有在生成任务以后,在任务里边调出来玩的时候才正<
/p>
常显示。好了现在你可以玩这个任务了,如果觉得里边有什么问题,你可以继
续修改她。
继续编辑我们的任务。把地点移到一个
加油站,坐标为
Ca45
。放一辆卡车
在那里,进行下面的设置。
Side
:
Empty
Type
:
Car
Unit
:
5th truck open
Name
:
Truck
在卡车南边不远的地方,放上一个部队。
Side
:
West
Type
:
Men
Unit
:
Officer
Name
:
Alpha
Rank
:
Colonel
Skill
:
80%-90%
Init Field
:
Alpha
setgroupid[
;
this
setbehaviour
;
this
setcombatmode
Side
:
West Type
:
Men
Unit
:
Soldier
Name
:
Truck_Driver
Rank
:
Private
Skill
:
20%
Side
:
West
Type
:
Men
Unit
:
Machine Gunner
Rank
:
Sergeant
Skill
:
40%
Side
:
West
Type
:
Men
Unit
:
Soldier
Rank
:
Private
Skill
:
20%
Side
:
West
Type
:
Men
Unit
:
Soldier
Rank
:
Private
Skill
:
20%
在我解释之前,
我们必须先建立这个分组。选择
Group
选项从所有士兵拖<
/p>
一条线到指挥官叫做
Alpha
。这样就
建立了这个小队,指挥官是里边级别最高
的人。在这里指挥官名字叫
Alpha
。有一点值得说一下,当你建立小组,小组
的<
/p>
ID
就会从这个小组的指挥官那里得到,因此这个小队属于
Alpha
。我们还记
得
Init
吧,这里在军官的地方使用了。他会使小队里边所有的成员的值都使用
p>
这里的值。这里还看到了另一个命令:
Setcombatmode
,这个命令和
Setbehaviour
差不多,只不过是不同的战斗指令。具体参数如下。
Green
:
Never Fire
Yellow
:
Open Fire
Red
:
Open Fire,Engage at will
当我们想让部队向敌人攻击的时候我们使用
Red
这个参数。可能参数不止
这些,但其他的我不知道了,这些已经足够了。最后
一个命令:
SetgroudID
,
这
个命令是使得
Alpha
小队叫做
Al
pha
小队。呵呵,如果你看到在左下角显示
这个信息,就明白
我说的意思了。现在当
Alpha
小队里边有人在说什么的话,
你会看到象这样的话:
Alpha red
1
;
Alpha 2cease fire
。如果你没有写刚才
的命令,你就会看到其他的小队的名字。你可以使用下面的名字
作为小队的名
字:
Alpha
、
Bravo
、
Ch
arlie
、
Delta
、
Echo
、
Foxtrot
和
Hotel
还有其他的,
我也不知
道了。我们还漏掉了一句
,这个是定义
Alpha
小队的颜
色为
Color
2
,在联网游戏的时候区分不同的小队,一共有
7
种颜色可以使用。
现在我们想让玩家开车到这里和
小队汇合,并且加入
Alpha
小队,然后命
< br>令小队乘卡车。我们选择玩家,然后选择
waypoint
,继续为玩家定义导航点。
我们双击离
Alpha
小队不远的地方进行以下设置。
Type
:
Move
Description
:
Drive
[Always Show]
很容易,对吧
< br>?
现在我们来建立一个触发器来判断玩家到达。在放置导航点
的地方创建一个
Trigger
,进行如下设置。
Shape
:
Ell
ipse(a=10,b=10)
Description
:
Player Join Alpha
Type
:
Switch
Activation
:
(West)(Present)
Condition
:
This On
Activation
:
Tuck_Driver
assignasdriver Truck
;
Join Alpha
我来解释一下触发器。当你选择了
p>
Activation(
激活
)West<
/p>
和
Present
时,
< br>你告诉游戏你想当任何属于
West
的单位进入触发器的
范围就会激活这个事件。
现在看看
Condition(
条件
)
这一行,你会看到这里写了一个
This
。为什么
?
当使
用关键词作为触发条件的时候,我们可以使用刚定义的条件,那就是
West
Present
。
On Activa
tion
这一行是一个脚本当
Trugger(
触发器
)
返回真值的时
候执行
。这里我们使用了命令
assignasdriver
使一个单
位在交通工具里边成为
驾驶员。使用
join
< br>使单元加入一个组。我们先来看看
assignasdriver
Truck_Driver assignasdriver Truck
如果你还记得的话我们前面把小组里边一个成员命名为
Truck_Dri
ver
,把
那辆要使用的卡车命名为
T
ruck
。因此这条命令的意思就是小组里边一个名字
叫
Truck_Driver
的成员成为一种名字叫
Truck
的交通工具上面的驾驶员。呵呵,
有点长有点拗
口,不过应该理解了吧。当收到命令
Get In
的时候,这个
成员就
会进入卡车坐到驾驶的位置上面。下面的命令类似,只不过是让成员成为
Gunner(
炮手
)
、
Cargo(
进入货车车厢
)
或者是
Commander(
指挥
)
,如下所示。
成员名
字
assignasgunner
交通工具的名字
成员名字
assignascargo
交通工具的名字
成员名字
assignascommander
交通工具的名字
好了,现在来看看这个。
join
Alpha
这个
指向指针或是数组,
在你有很多单位需要加入的时候,这会变得非
常有用。后面我会碰到这样的用法。
Alpha
是小组的名字。这是条非常有用的
命令,确信你记住了。
在我们进行下一步之前,我必须告诉你
一件事,在开始任务的时候,
Alpha
小队的成员可能正在走
进触发器的范围。因此,确定你放在离玩家的导航点和
触发器的
10
米以外。
足够远了,所有都工作
很好,现在我们要命令
Alpha
小队进入卡车,我们
如何做到呢
?
我们当然可以写一个脚本来实现,
但是我这里要介绍编辑器里边的
另一个事件:
synchron
ising
,他和导航有很大的联系。选择军官并且选择菜单
里
的
waypoint
,双击卡车,按以下设置。
Type
:
Get in
Description
:
Alpha Get In
Truck
[Always Show]
当完成上面的设置
后,选择
synchronising
选项,在这个导航点和触
发器
拖一条线。你现在可以看到在
waypoint
和
trigger
之间有一条蓝色的线。这是
p>
告诉游戏在触发器被激活以后首先让
Alpha
小队上卡车,这个正是我们想要的。
另一件事,我们在开始任务前应该做一个
init trigg
er(
初始的触发器
)
,
这个触发器在任务的开始就直接设置为激活。我们在吉普车和卡车之间的公路
上建立一个,使用下面设置。
Shape
:
Ellipse(a=150,b=150)
Description
:
Bird
Song Condition
:
True
Effect
:
Environment
:
Tree
Trigger
:
Bird Song
稍微解释一下,
True
表示在开始这个触发器的时候直接把
触发器激活。在
Effects(
效果
)
里边有很多很
Cool
的效果,不过
我们这里只需要声音选项。这
样的话,当你开车去和
Alpha
小队会合的路上就能听到从树林里传出了鸟叫声。
当然也就是这
个触发器的范围之内。
第二步:
<
/p>
是的,我们现在想让卡车开到坐标为
Bh42
的北约基地。如果你研究一下基
地,你会发现一个很好的地方让卡车开去那里。看到
房子旁边的公路没有,为
什么不为
Alpha
< br>小队放一个
waypoint
在这儿呢
< br>?
使用下面的设置。你可能想知
道,为什么用
Alpha
小队而不用卡车来定义
waypoin
t
呢
?
是这样的,首先编辑