你玩WoG多久了?
无他,就想知道这个坛子新手占了多大成分,每天都有新鲜血液这个游戏才有潜力。至于老手,你们对wog熟悉以后会往什么方向发展呢?是骨灰级游戏玩家(讲求游戏技巧战术),还是ERM爱好者,还是地图制作爱好者,还是Mod(游戏修改,包括游戏资源如怪物图片、建筑物图片修改等)爱好者??
我么,ERM爱好者,可惜道行太浅,仅能做简单ERM脚本:$: 我这周才开始玩WoG
恩,那个ERM是什么东西?
作者:Brain1127
WoG 中的ERM简述
1.首先 ERM是什么?
先来看官方的解释:
ERM means Event Related Model and is dedicated to Heroes3: Shadow of Death game and add-on。
ERM表示事件相关的模式,专用于英雄无敌3——死亡阴影游戏以及其附加部分。
下面是我的理解:
首先,ERM是一种模式,正如我们所熟悉的星际争霸有虫族模式,有高达模式;暗黑有黄金物品模式等等一样。在ERM模式里,我们可以使用一些命令对地图的属性进行动态改变。在普通H3中,我们可以通过地图编辑器对地图的属性进行改动,但是修改后必须重新load地图开始游戏才能够看到改动后的地图。通过使用ERM,我们可以修改某些属性而无需重新装载地图。最明显的例子就是WOG中的“拆城”。
其次,不能把ERM称为一种计算机语言。计算机语言的定义是十分严格的,ERM命令还不够资格。ERM只是通过它特有的命令行以及多个命令行的组合来完成特定的任务。然后我们通常会把能够完成一个或一组相关任务的命令行放在一起,然后就构成一个叫做脚本(Script)的东东。学习过DOS的人都知道有批处理文件*.bat,实际上ERM脚本和它差不多,但是复杂一点。
注意:如果你使用的WOG版本是3.57f,那么你的ERM版本是2.60。如果是WOG 3.57,ERM版本是2.50。我这里基本上使用ERM 2.60来进行讲述。
****ERM在WOG中的工作机制初探(——自己的分析,给一些计算机技术背景比较好的人讨论,如果不愿意看,可以跳过):ERM是依附于Heroes3SoD的,它对heroes的文件做了一些改动。
当运行WOG.exe后,启动heroes3,并同时启动ERM编译器以及调用WOG需要的资源。
当选定地图,开始游戏时,就根据事先确定的规则,对地图进行WoG化。默认的WOG化规则在script00~script01.erm 中。如果你地图中本身包含ERM代码,它会提示你是否WOG化该地图。如果你选择“否”,它将不会继续。如果你选择“是”,它仍将根据它本身的规则WOG化(除非你改动了00,01两个脚本)而地图自带的代码将在游戏运行中被执行。如果此时地图中本身含有的ERM语句和默认脚本中的语句发生冲突,则可能发生不可预知的后果。
特别指出一点:如果你选择“地图开始时设定地图规则”,则首先载入script00.erm并根据它的设定进行WOG化。就是刚显示地图到跳出“地图规则”对话框这段时间,你可以看见有许多建筑,资源或怪物发生了变化。然后你可以在对话框中选择你喜欢的地图规则,确定后一直到跳出“Enjoy yourself…”对话框,这段时间根据script01.erm进行操作。
当运行游戏时,遇到事件,或访问建筑,或鼠标左键单击右键单击,或查看英雄状态,查看commander状态,或进城,或战斗……诸如此类就会触发从而运行相应的脚本(script02.erm~script41.erm)。***************
2、ERM命令的语法规则(为方便起见,暂且把它的命令行看成是语言):
(1)、ERM命令都由两部分构成。命令头和命令体。
命令头又由三部分构成。第一部分是命令关键字,它选择使用哪一个方式处理语句,由!!/!?/! #加上一个两个大写字母组成的保留字组成。!?代表是一个触发器;!!代表一个接收器;!#代表一个说明部分。保留字全部是已经定义好的,只能够根据你的需要调用,你不能够对其进行设定。第二部分是标识符,用于标识一个物体(Object),是一个十进制整数,可以到标识符列表中查找出所有的物体相应的编号。第三部分是条件设置,以&开头,用于和标识符进行区分;表示什么情况下运行后面的命令体部分,条件设置可以为空,此时表示“无条件运行命令体”。
命令体紧跟在命令头后面,以冒号“:”开始,以分号“;”结束。命令体的格式随命令头的不同而不同。
(2)、一条ERM命令,只可能是触发器,接收器或说明部分的一种。
通常说明部分在地图显示前执行一次,以后不受时间或事件触发的影响。
触发器和接收器搭配使用,一条触发器语句后面要跟随零条,一条或多条接收器语句,如果没有接收器语句,则为空触发,不执行任何操作。而接收器前面必须保证有一条触发器语句,否则接收器无法执行。
触发器有17类,28种(随标识符不同有所区别)
分别是:
AE 装备宝物;
BA 战斗开始和结束;
BF 生成战场;
BG 战场上动作;
BR 战场上动作(与上一个在战术学存在时略有区别);
CM 鼠标右键点击;
CO 对commander进行操作;
FU 调用函数;
GE 发生一个“Gobal Event”(就是在地图编辑器里map specifiction里面那个)
HE 英雄与英雄发生碰头(敌对或结盟)
HL 英雄升级
HM 英雄移动
IP多人游戏
LE 地图上放置的事件被踩到
OB 物体被访问
TM 时间事件触发(地图编辑器种在城市里设定的)
MW移动的怪物移动,到达或被消灭
接收器有36类,41种不同形式(分别起不同的用途),同时每一个接收器的命令体部分还有不同的选项(option)对不同的情况加以区分。由于篇幅的关系,在这里不一一列举。详细内容可以参考\heroes3\erm_help目录下的文档。
3、ERM可以使用的数据类型:常量,标志位和变量。
(1)常量:由用户直接根据格式填在允许常量存在的位置。注意:常量有格式要求。数值型常量只允许整型十进制数;字符串型常量由两个^括起,中间不允许存在冒号或分号
(2)标志位:标志位又称条件标志,简称CF或flag。是一种最特殊的变量,有点类似于一般意义上的布尔量。可以使用的范围是1到1000,可以赋的值为0(假)或1(真)。可以直接由程序员进行赋值,也可以使用接收器IF根据游戏中的状态赋值。通常,我们把值为0的标志位称为未设置,而1称为设置
(3)变量:变量是ERM中最灵活的部分。由不同的表示方式,可以相应的赋不同类型的值,可以把它的值传递于ERM代码段甚至游戏的不同地图之间。
所有赋数值类型的变量范围都在-2147483647到 +2147483647之间
c 存储当前天数stores today value (game active day number)
d 增加或减少值adds or subtracts values from variables
'f' 到 't': 标准变量Standard variables (原来称为快捷变量quick variables)
v1 到 v10000 : 标准变量Standard variables
w1 到 w100 : 英雄变量Hero variables (每一英雄唯一)
x1 到 x16 : 函数参数变量Function parameters (传值到函数)
y1 到 y100: 函数临时变量Function local variables (每一函数唯一一组)
z1 到 z1000 : 字符串变量String variables
z-1 到 z-10 : 临时字符串变量Function string variables (每一函数唯一一组)
WOG3.57f新增加:e1..e100 临时浮点变量Function floating point variables
WOG游戏中所有属性,都有其编号的详细列表。详细内容参考\heroes3\erm_help\format目录下的文档。包括
A1宝物编号Artifact Numbers
AD英雄特技Specialties
AP宝物位置Position of the artifact
P2宝物位置,专用于UN:A Position of Artifact
BG边境守卫,大门,帐篷Border Guards, Border Gates and Keymaster's Tents
C 生物Creatures
CB各种银行Creature Banks
CG生物生产地Creature Generators
CO组合宝物Combo Artifact Number
E 玩家颜色(二进制位)Colours of players (bits)
E1玩家颜色Colours of the players
H 英雄ID Heroes' id's
OB物体类型 Type of objects
M1单向传送门 One-Way Monoliths
M2双向传送门 Two-Way Monoliths
MI矿 Mines
PK基本技能 Primary Skills
R 资源 Resources
SP魔法 Spells
SS第二技能 Secondary Skills
SQ第二技能以及其等级 Secondary Skills + level
T 城市 Towns
TR地形 Terrain Type
U 建筑 Buildings 貌似04年开始接触WoG。 今10月接吻的:$: 两年左右了:D: MS我三年多了…… 两三年吧,记不大清了,就记得当时的WoG很简陋...... 大概半年吧,那时在玩TDS1.29版,TDS还整天在改版.总打不过去. 我也很早啊,不过现在都跟不上发展 了……所以也就放下了
最开始好像就给了些技能什么的 二年左右吧, 最开始刚出来就是多了8J兵和一些新的宝物....画面树木会动 我玩的最早的版本是357,想当初,为了玩上这个Mod,那个费劲啊,一个一个补丁的打,一个一个补丁的升级,从355升级到356,再从356升级到357,好家伙,357没玩一段时间,又出来357F,好好家伙,357F还没有完全搞明白,358B又出来了,然后是358,358F,现在俺们都在等359了,好辛苦啊~ 玩了两年了,但是不会ERM 恩恩 我是今年初在一个本论坛斑竹(他自己说的)的推荐下玩的 MS玩的还不错:victory: 一星期 我这个ID的注册时间就代表我玩WoG的时间, 还比较新的说~~~:hug: 去年过年的时候吧,也快两年了:): 偶也不知道多久了………………MS有2年以上了吧???
偶搬家都2年了,搬家之前的1年多…………这样一算,好象是3年多了 从99年开始玩H2 H3:):