MM7 Event Language

Last-modified: 2009-10-04 (日) 13:05:57

MM7 Event Language

 

GAMEフォルダ内のEvents.lodにある.evtファイルのバイナリは、下記規則で並んでいます。
これをうまく編集して他のファイルもそれに合わせて変えれば、オリジナルのMM7を構成できるはずです。
もっとも、コマンドのすべてが解明されたわけではありませんし、あまり変えるとフリーズするようですが‥
さしあたり、「巨人の国に至る通路」を付け替えてみたところ、それはすんなり成功しました。

 

下記命令は、MM6のIcon.LOD内の.EVTファイルに対しても有効のようです。

 

しかし‥ひとりでMM7もMM6も解析し改造を試みるのは、さすがに勤め人の手には余ります。
賛同者HELP‥

 

COMMAND STRUCTURE


cc eeee ss pp *

cc-command length in bytes :まずは全体の命令の長さが記載されています。
ee-event number      :イベント番号で、枝番がつきます。
ss-sequence number     :枝番で、ジャンプ命令で場合分けなどを管理しています。
pp-command type      :下記命令群です。06ならテレポートを意味します。
_*-arguments        :その他、命令により違いますが、各種パラメータです。


COMMAND TYPES


01 STOP (05h arguments, 1 parameters):枝番の最後には必ず登場する、サブルーチンエンドのような命令です。

	Stop processing.
	01 00

02-SHOW 2DEvent (08h arguments)   :ドアを開けたら宿屋の主人が出てくるときなどに使われます。

	Show shop, house etc..
	1E tttttttt
	tt-reference to 2devents.txt

04 MOUSEOVER (05h arguments, 1 parameters):画面直下に表示される文字のことではないかと。

	Show text on mouseover
	04 ww
	ww-Can be:
		-string in .str (3DObjects)
		-string in 2Devent (shopdoor probably faces?)

06 TELEPORT (26h arguments):ドアから出るのも、洞窟に入るのも、すべてこの命令です。

	Teleport party to map w given coordinates
	06 xxxxxxxx yyyyyyyy zzzzzzzz ffffffff gggggggg uuuuuuuu uuuu ddii n*
	xx-x coord
	yy-y coord
	zz-z coord
	ff-facing x coord
	gg-facing y coord
	dd-dialog from trans.txt
	ii-miniicon
	uu-unknown (always 03 so far)
	n*-zeroterminated filename of the map

07 OPEN CHEST         :言うに及ばず、指定の宝箱の表示へ飛ぶ命令です。これで岩もきっと‥

	Opens chest
	07cc
	cc-chest

08 SHOW FACIAL EXPRESSION

	08 tt ii
	tt-affected
	ii-image id

0C CHANGE 3DOBJECT FACE BITMAP

	0C tttttttt ffffffff nnnnnnnn ll
	tt-3dobject number
	ff-face
	nn-zeroterminated new bitmap name
	ll-maxlength of name

0D CHANGE SPRITE //POSSIBLY BAD OR ERROR IN BDJ MOD :使わない方がよさそうです。

	0D tttttttt uu n*
	tt-sprite number
	uu-unknown
	n*-zeroterminated new sprite name

0E BRANCH IF EQUALS (or maybe greater or equals)

	0E wwww pppppppptt
	ww-what to modify
	pp-parameter(number or item reference), see ww for details
	tt-where to go if statement is true

10 ADD 0A        :落ちているものを拾ったり、パラメータを変化させたりするときに使うのか?

	10ww 00pppppppp
	ww-what to modify
	pp-parameter(number AutoNote QuestAward)

11 DELETE 0A      :食べ物を削ってアイテムをくれた誰かさんがいましたよね?多分そこでこれは‥

	11ww 00pppp0000
	ww-what to modify
	pp-parameter(number AutoNote QuestAward)

12 SET

	Set Stat or AutoNote or QuestAward or Item
	0Aeeeess 12ww 00pppp0000
	ww-what to modify
	pp-parameter(number AutoNote QuestAward)

13 CREATE LOCAL MONSTER 1b :そのマップの特有のNPCを生み出します。多分、MAPSTAT.TXTで指定したモンスが。

	13 gg tt nn xxxxxxxx yyyyyyyy zzzzzzzz uuuuuuuu uuuuuuuu
	gg-specie
	tt-subspecie (0,1,2,3)
	nn-number of creatures
	xx-x coordinate
	yy-y coordinate
	zz-z coordinate
	uu-unknown

15 CAST SPELL 1f  :大砲から打ち出される代物も、実はこの命令で魔法として打ち出されています。

	15 cc ll mm xxxxxxxx yyyyyyyy zzzzzzzz uuuuuuuu uuuuuuuu uuuuuuuu
	cc-spell number (from spells.txt)
	ll-level
	mm-skill level
	xx-x coordinate
	yy-y coordinate
	zz-z coordinate
	uu-unknown

16 SHOW NPC 08

	16 tttt0000
	tt-NPC id

1D-SHOW Local text 08

	1D tttt0000
	tt-STR id

1E-SHOW NPC text 08

	1E tttt0000
	tt-STR id

22 UNKNOWN VOLCANO EFFECT MM6


23 EVALUATE NEXT COMMAND BY PARTY MEMBER 05

	23tt
	tt-target:
		0-first char
		1-second char
		2-third char
		3-fourth char
		4-selected char
		5-all chars
		6-random char?

24 GOTO 05    :条件分岐時に使用されます。

	24ww
	ww-where to go

25 EXECUTE COMMAND ON LEVEL RELOAD

	25

26 EXECUTE COMMAND ON ELAPSED TIME 0E :イベント内の時間をコントロールしていると思われます(トランペットなど)。

	Executes commands after a specified time
	26 xxmmwwxxxxddxxxxxxxx
	xx-time
	mm-month
	ww-week
	dd-day

27 SET NPC TEXT/TOPIC

	27 tttttttt ii nnnnnnnnnn

28 SET NPC TO 2DLOCATION


2C

	something with items, maybe put in hand?
	2Cww00pppp0000uu
	ww-what
	pp-parameter
	uu-unknown

31 something to do with NPCs

	31 tttt 0000uu000000bb
	tt-target NPC
	uu-unknown
	bb-unknown 0 or 1

32 something to do with NPCs 

	32 tttt 0000uu000000
	tt-target NPC
	uu-unknown

33 BRANCH IF NO HOSTILES 0b

	3301 1400000000tt - no hostiles
	tt-to go

35

	3500

39 SET GROUP ATTRIBUTE 0D  :NPCを消したり出したりできるのでしょうか。多分、ゴブリンの大群も‥

	39 gg 0000000000ww00nn
	gg-group number
	ww-what to modify (10 invisibility, 08 hostile?)
	nn-number

3B Something to do with "the door is locked"


3C

	3c bb000000uuuu000001
	bb-unknown 0 or 1
	uu-unknown (can be: 9202, 4000, a302)

example: 0BDA00020E11009902000008

	 is:	-11 byte long command (0B)
		-Event #218 (DA00)
		-sequence 2 (02)
		-branch if equals (0E)
		-in inventory (1100)
		-item ref. 665: Tatalia Teleporter Key, in BDJ mod (9902)
		-jump to sequence 8 (000008)
 

なお、解析の具体例をここに示します。

 

http://www.celestialheavens.com/forums/viewtopic.php?t=9945
などでは具体的なアドバイスなどが交わされています。

トップへ戻る