原帖由 rockymei2k 于 2009-4-29 01:05 发表 
嗯,老大说的对,事件id可以这样处理。
事件标志好像也会重复,不同插件间可能要用到共同的事件标志,就不太好实现了 :P
还有root老大能把evm文件的格式给俺讲一讲筏?我自己摸索了一下,有些收获,没有完全弄清楚 ...
太复杂了,我也没有完全研究清楚。举过例子:
00000000h: 54 35 45 4D 09 00 13 00 01 00 00 00 6E 20 00 00 ;
00000010h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ;
这是每个evm文件的前两行,红色部分是每个evm文件都相同的,而6E 20 00 00 最大事件id,00 00 00 00 则是最大事件标志,这个文件中没有事件标志,所以是0。
00000020h: 04 00 04 00 03 00 F1 02 38 00 00 00 12 34 56 78 ;
00000030h: 00 00 00 00 4C 00 00 00 6E 20 00 00 00 00 00 00 ;
00000040h: F5 7F DE 00 00 21 4C 00 00 02 00 00
接下来两行,首先注意,00000030h中的6E 20 就是事件id。4C是整个evm文件的字节数。00000040h中的00 02 00 00是evm的结尾,所有evm都相同。而00 21 4C 00 则是条件部分的结尾,会随契机的不同而不同,其规律不明。F5 7F DE 00 则是契机的参数,参数多的,字节会更长,如果没有参数,这个部分就没有。 最后来看00000020h。04 00 表示的是从事件id处到00 21 4C 00的字节数除以4,04 00 就是契机的代码。03是属性。38 00 00 00 表示的文件开头到事件id之前的字节数。其余字符没有特殊意义无特殊意义。 这个evm的源文件是: 太閤立志伝5イベントソース//此脚本说明 チャプター:{//脚本开始
イベント:test2{ //test開始
属性:何度でも|ひかえめ
発生契機:人物会話時(発生人物)
発生条件:{
//条件开始
}//条件结束
スクリプト:{ //執行开始
}//執行结束
}//事件結束
}//脚本结束
|