- 积分
- 4835
- 威望
- 6
- 魅力
- 6
- 经验
- 289
- 热心度
- 5
- 注册时间
- 2009-6-21
- 最后登录
- 2025-1-26
- 主题
- 200
- 回帖
- 2624
- 精华
- 21
- 阅读权限
- 90
TA的每日心情 | 开心 2021-2-18 14:28 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]投石矮人

论坛嘉宾
请叫我黑椒哥哥
  
- 积分
- 4835
 

|

楼主 |
发表于 2009-7-30 08:50:18
|
显示全部楼层
第三课:!#的格式和基本应用(一)
第三课:!#的格式和基本应用(一)
这节课之前说一点,那些对ERM来电的新人就不要来这里学了,因为我是给那些对ERM不来电的人讲的,只会糟践你们,请另谋高就。
根据高手的意见,!#最容易使新手有自豪感,那么今天,我们就从!#开始讲起。
!#:说明部分
当游戏运行时,wog在读完ZVSE后,首先读的就是!#了,!#的作用就是描述对象的作用、背景和定义。(不明白先不管)
那么!#的格式是怎么样子的呢?
我们首先看看官方ERM帮助是如何定义的:(随便看一眼,千万不要认真看,保证你头痛!)
格式
所有的触发器 (Triggers)、接收器( Receivers )和说明部分(Instructions )都使用相同的格式如:Header [:Body] ;
可选部分用方括号括起。特别的,触发器没有Body部分。
Header部分包括此目标的信息,以如下缩写表示:触发器 (T)、 接收器(R)、说明部分(I) 。 它也可以包含一些可选信息表示此目标是否为可执行的。
Body部分包括可执行的 ERM 命令,只有两种(R or I)有此部分。
Headers 部分从以下格式: !{?|!|#}AB [ Identifier ] [ Conditions ]
大括号{}中被"|"分隔的?','!','#'只能选择其一( '?','!','#'- 分别对应的代表 T, R, I )。
字符串 'AB' 定义种类为 T, R 或 I (见后).
Identifier 标识符 - 数字以表明对象。
Conditions条件 - 执行接下来的可执行的Body部分所需的条件。
如果没有条件,那么T, R, I 就“无条件”执行。
Identifiers 标识符从以下格式: N[/N[/N[...]]]
符号 'N' 代表十进制数字,决定于的T, R, I 种类 (见后).
Conditions 条件从以下格式: &N[/N[/N[...]]]
符号 '&' 分隔 Conditions 和 Identifier的数字。
执行与否取决于Conditional Flags (CF) (有1000种供选)。如果你希望取决于CF,那么必须填入一个数字(1到1000)。
如果标志位为正,那么条件为“如果标志设置”如果为负,则“如果标志未设置”。
变量比较可以用于执行条件。更多有关变量的信息,参见 VR接收器一段
Body 也有格式,取决于 T, R, I 的种类(见后).
如果命令参数表示为$表示此参数值存储于变量。如表示为 # 表示只能被设置而不能被读取。如果表示为?$ 则表示只能被读取而不能设置。
————————————————————分界线——————————————————————————————————
我们绝对不像这么讲,我用我自己的方式来讲:
Header就是“标题”的意思,通俗地讲就是引导信息
Body就是主要部分的意思,那么!#的格式是遵从:引导[:主体];
(中括号只是为了让大家区分,在真正使用ERM的时候不要输出来)
那么先讲引导,引导首先就是命令类型(也就是!#,在今天的内容中)
这个很简单,不多说。
然后是对象类型,也就是AB,这个AB就是你要执行的那个对象的类型符号,比如说怪物就是MA,物件就是OB等等(详细查阅ERM帮助文档)。
然后是标识符Identifiers,一般就是对象的坐标(简单来说)或编号。
接下来就是Conditions 条件,这个比较难,目前不讲。
Identifiers的格式是:a/b/c,其中的字母是代表数字,比如说一个坐标为15,68,地面的事件,它的标识符为15/68/0。
然后是条件,我们不讲,暂时当它没有(当条件不存在时,此命令为无条件执行,该条件仅限于该命令)
主体:前面那个引导出来的对象所做的动作(或者叫命令),这个我们知道一下就可以了。
所以整个!#的格式为:
符号(!#)种类(AB)[对象(标识符)][条件(可以当它不存在)][:动作(主体)];
这样简单地排列下来后,我们就来看它们的关系
它们的关系是:当满足Conditions条件之后,一种叫做(被标识作)Identifiers的AB类型的物品将会发生Body动作。
而假如没有条件就是:一种叫做(被标识作)Identifiers的AB类型的物品中的Body动作被无条件执行。
那么在该命令中他们分别就是:
!#:标点符号
AB:主语
标识符:修饰主语的定语
条件:条件状语
主体:修饰主语的定语、谓语、宾语、宾补
其实ERM语言也是一门语言,和我们平时说话一样,只不过是把位置调换了而已,用一些符号、字母来简写我们的文字。明白就好,这点深深记住,对你们以后的学习很有帮助。
这条我们称之为:ERM{语言}概念
关于条件的补充:一句命令只能做一个很小的动作,如果一串动作中的某一个动作因为条件限制不能执行,就有可能影响到整串动作的执行(这个以后会说)
明白木?不明白的说。
PS:明天的课就是实践和应用了,应该会比较有趣。
第四课见55楼:点击以下连接http://bbs.h3wog.com/viewthread.php?tid=19338&page=3&fromuid=38028#pid201794
[ 本帖最后由 da3338280 于 2009-7-31 09:37 编辑 ] |
|