太阁立志传5两个编写问题,请高手指点!
难呀!剧情这方面,你到游侠网的太阁版块找那群疯子去!太恐怖了!太无耻了!太下流了!那技术!疯子呀!
我只能给你说这些了!自己给分吧!
前天从网上下了那个日本人做的千阶堂太阁五补全计划, 利用这个软件可以实现小游戏等等的功能. 但是我怎么试都不成功, 大概是因为日语操作系统的不同而导致的文件读取功能有差异吧, 本机上的EVM文件, 用那个软件怎么都读不进去.
然而我却从这个软件的说明中得到了启发, 经过试验, 终于发现了给剧本加入小游戏的办法.
首先是EVM文件的结构, EVM文件中的一句话通常是这样构成的:
命令代码+参数值1+参数值2+...
例如自语的指令:
ひとりごと:[[自言自语内容]]//12
它在EVM文件中表示为
12 00 00 00 (后面是"自言自语内容"这个中文字符串的BIG5码)
再例如代入的命令代码为0B
那么代入a:(1)语句在EVM文件中表示为
0B 86 17 00 80 00 00 00
其它的还有个人战斗的45, 军团指令的4E等等.
那么小游戏命令也必然有一个代码; 通过反复的实验, 本人发现这个代码是46.
具体的格式为:
46 03 10 50
占四个字节. 其中第二个字节表示游戏编号, 03为木材组合; 三字节表示监修人物编号, 10是十进制的16, 对应的人物为浅井长政; 四字节表示游戏的难度, 这里设置为5.
另外, 执行了这条语句也就是说完成小游戏之后, 会给系统内部属性值 <参考値>自动代入一个数据, 这个数据就是小游戏的结果, 用户可以根据参考值的不同, 执行不同的指令.
举个例子: 有如下源代码:(注意!)
太合立志伝5イベントソース
//此脚本说明
チャプター:{//脚本开始
イベント:jinbutsu2{//jinbutsu2 开始
属性:一度だけ
発生契机:ゲームスタート时
発生条件:{
代入参考値:(0)
}//条件结束
スクリプト:{ //执行开始
武将死亡:(青山忠成)
调査:(参考値)>=(1)
分岐:(真){
会话:(忍者,主人公)[[很好,为了奖励你,就给你这个。]]
SEスタート:(成功音)
スチル表示:(カード,苦无天下一,无効,无効,フェード)
更新:(カード::苦无天下一.所持フラグ)(1)
}
}//执行结束
}//jinbutsu2 结束
}//脚本结束 (完成)
编译之后得到了EVM文件用16进制编辑器打开:(抱歉不知道怎么复制那些16进制代码);
[attach]1792886[/attach]
从中找到30 00 00 00, 这句话表示让青山忠成死亡, 把它改作46 03 10 50;
[attach]1792887[/attach]
然后直接编译EVM文件而不编译原文本文件, 得到了剧本文件, 放到指定目录下,
最后进入新游戏, 自己看看会出现什么样的结果?
现在已知的游戏编号:
ミニゲーム种类には、数値(3 とか12とか、0~13まで)、および以下の
「破壊工作」「水路建设」「金鉱探索」「木合わせ」「21の计」
「人物捜索」「茶器并べ」「薬剤调合」「军学上海」「鉄炮射的」
「弓术射的」「数穴埋め」「礼法九面」「马弓回避」
另外, 监修人物只占一个字节? 这是不可能的, 但是用两个字节又太多了, 于是最后一个数字用来辅助表示监修人物, 例如, 将上例中的50 改作51的话, 那么监修人物就不是10的线井长政, 而是110的另外一个人物.
附件为例子所编辑成的剧本.
本作尚未解决的问题:
1.应该还有个参数, 表示主人公是否在修业, 如果那个参数设为1, 则表示主人公修业, 而无视自己设置的难度; 但我现在还没找到.
2.小游戏也不是很全, 赌博的小游戏在哪里?
3.难度还是有点问题,50的难度玩人物搜索却是4*4的格子, 却不知道5*5应该设成什么?
希望大家能够***同探讨一下. 恳请大家指正.
我的QQ:249476488
E-mail:nklinan@163.com
题外补充: 3E 00 00 00命令出来的是个战教学, 肯定还有合战和攻城战教学的命令, 不过对于写剧本没什么用, 就不研究它了.
另外这些也有可能是隐藏命令, 欢迎大家继续研究:
20 26 2B 2C 40 41 42 43 44 47 48 4A 4B 4C 4D 4F 52 53 54 55 56.
已知值最大的命令是:
御用商人になる:(主人公商家,主人公大名家)//58
值是58.
3D是据点改名, 已在下个帖子中说明了.