yunings 发表于 2006-2-11 23:50:56

ERM基础教程(一)

基础教程 OB 触发器 与 接收器 的简单阐述
ERM模型,作者:Qurqirish Dragon翻译后加工:yunings
更多ERM知识和教程,请访问:http://www.h3wog.com/ 和 http://h3wog.com/

在大多数情况下,人们喜欢在地图上自己创建或更改一个物体。但有时候地图上并没有你想要的东西,怎么办?你可以从前述的主题贴中找寻一下是否有合适的脚本。地图编辑器不能提供给你一个更改全局设置的能力,所以,我们必须自己创造一个。

在本节中,我将向大家介绍OB 命令的使用。

首先,是触发器:

正如所有触发器一样,该命令以!?作为起始。由于地图物体通常有硬编码的效果,如“星轴”等,因此有两种触发器的形式。
!?OB 是用于运行地图物体正常效果前的脚本触发器。
!$OB 是用于运行地图物体正常效果后的脚本触发器。
如果你使用一个无硬编码(所谓硬编码,简单的说就是用ERM也无法更改的东西,已写入游戏主程序——译者)效果的物体,那么上述两者的作用是一致的。但是,考虑到某些脚本也会用到这些东西,则所有“访问前”脚本将在任意“访问后”脚本运行。

“访问前”与“访问后”触发器的工作方式是相同的,因此我只介绍“访问前”触发器的格式。它们的唯一区别仅仅是触发器命令头前的起始符号的不同。

你可以在触发器后最多跟随3个数字,每个数字都有其不同的意义:

1)只用一个数字,那么所有相同类型的物体(即物体编号相同)都将可以使脚本运行。如:
!?OB17;
该触发器将在任何生物招募地(类型17)被访问时触发。具体的地图物体列表,请查阅 Format OB 列表。

2)跟随两个数字,第一个数字代表所有的该数字类型的物体,第二个数字代表该物体的亚类型,意即,某一类型的亚类型的物体将触发脚本运行。在 OB 格式页面,任何具有亚类型的物体都有一个下划线,点击后可以看到详细列表。如:
!?OB17/81;

该触发器将在访问任意一个钻石龙招募地(类型17,亚类型81)后触发脚本。

3)使用三个数字,则表示位于(x,y,层面)的特定物体。如:
!?OB2/2/0;
该触发器只有物体位于地面的(2,2)位置时才能被访问触发。注意,在这个命令中,访问位置必须对应于地图编辑器中物体的黄色小方块(你可以通过点击地图编辑器工具栏上的“显示通过能力”按钮来查看地图建筑的入口,即黄色小方块——译者),该方块表示物体的触发点,也就是英雄访问物体时马头抬起的位置。

============================================
OB 接收器 的使用方法则不同,它用于检查或修改某一存在物体的属性。它的一般命令形式如下:
!!OB#1/#2/#3:XXXX;

命令后随的三个数字表示物体在地图的具体坐标(x,y,层面)。注意,某些物体具有一个以上的黄色方块,因此,如果你要使用其中一个,你需为两个方块设置完全一样的命令。当然,你也可以使两个方块的作用效果完全不同(如一个为“入口”一个为“出口”)。通常情况下,XXXX表示命令后面可以跟随其他的选项。

最后,在我介绍选项前,注意一下某些地图物体具有特殊的接收器,并且它们具有一般OB 格式所没有的附加选项。
查看Other Objects (Miscellaneous object receivers)列表,可以看到是否有扩展的功能可以用于物体脚本编辑。一般来说,这些物体主要是资源、宝物、或者第二技能。它们具有可以让你详细制定功能的命令。一共有23种特殊物体接收器。注意,它们只是扩展接收器。对于一个触发器来说,OB接收器已经足够使用,无论物体是何种类型。

下面,介绍一般!!OB 选项。注意,我跳过了C选项,因为我也不太能确定它的功能:

B
该选项用于除去某一物体的暗示描述(就是右键点击物体给出的提示信息)。如果某一物体具有默认的暗示文本,该选项可以将其存储于消息中。因此,如果你想让某一物体恢复原有正常功能,你可以利用该选项存储暗示文本而不用手动设置它。

D#
该选项用于阻止某一特定玩家使用该建筑。你会发现这个比用边界守卫来阻止玩家访问建筑来的更加方便。

E#
该选项用于让某一特定玩家使用该建筑。注意,联合使用D和E命令,你可以创建属于自己风格的连先知小屋都无法实现的冒险任务。简单的用D命令来阻止某一玩家使用一个建筑,而当某一条件满足后,你可以重新使用(用E命令)建筑。这也可以允许你让多个玩家完成同一个冒险任务。

H$
到/从一个z变量读取或设置某一物体的暗示文本。注意,你不需要存储默认文本——B选项支持这一功能。

M$1/$2/$3
该命令让你自动面对一个回答“是”或“否”类型的对话框。如帮助文件指出那样,该命令还处于测试中,所以,如果你需要完整的细节信息,你可以检查这里的命令。一般来说,如果你想要迫使某一对建筑访问的动作有提示问题,最好的办法是禁用这个物体,再用OB 触发器命令来编写你想要实现的代码。(既然命令还处于测试,大家可以不用花太多精力在这里,看看就是了——译者)

R 和 S
这两个是独立的,用于对所有玩家启用和禁用某些设置的命令。这样,你就无须使用D或E命令来完成一个物体的开启或关闭。

T$
该命令用于获取或设置访问物体的类型。举例来说,如果你在(4,5,1)处放置了一个钻石龙招募地,那么:
!!OB4/5/1:T?y1;
将会设置变量y1为17(生物招募地的类型为17——译者)。

!!OB4/5/1:T2;
则会保留原有坐标位置,并更改招募地为转换祭坛(物体类型为2)

U$
该命令用于设置物体的亚类型。因此,如果你设置物体类型为17,并给出如下命令:
!!OB4/5/1:U?24;
那么,它将会让该建筑变成一个绿龙招募地,同时保留原始坐标设置。

以上就是所有的 OB 命令。下一篇,我将详述!!HE接收器的命令列表。

lizy_2004 发表于 2017-10-17 14:38:24

不算挖坟,你可以继续。

信徒 发表于 2018-2-13 20:45:00

这个要好好的学习下,谢谢分享哈

五四企启 发表于 2018-5-25 20:10:34

终于看到基础教程了……感谢

hbyanjunan 发表于 2019-4-19 10:02:35

完全看不懂,两眼一抹黑;cn;

施里伟 发表于 2020-9-20 02:54:18

来学习一下,看看自己行不行。
页: [1]
查看完整版本: ERM基础教程(一)

捐赠