轩辕春秋文化论坛 » 设计与修改 » 曹操传剧本编辑器


2005-3-12 21:50 van
曹操传剧本编辑器

7.29更新
修正上一版本修改文字之后会导致剧本不可用的bug

曹操传剧本编辑器 by Van

使用树形控件显示剧本结构
支持剧本间复制、粘贴
可以添加子事件、修改各项代码的参数
可以在剧本中搜索代码
可以显示剧本中使用的变量列表

注:如果你要删除出场设定中的某个武将,可以在编辑对话框的列表框有焦点时(比如你用鼠标点中某个出场武将时),按Del键直接删除

PS:修改之前一定要先备份,以免错误!!

附:
剧本含义中尚未解决的部分,欢迎朋友们提供资料:
代码28,6a含义未知
Para0x36(Code28)含义未知
Para0x26(Code21,45,58,6b)描述未知
Para0x4b-法术(=109)(Code6b)取值对应的含义不清
Para0xd-动作(Code30),Para0x42-物体(Code58)有两个取值的含义未知

还有4e武将方针变更,我们对方针的描述不够准确,在s47的第二个Scene的第一个Section里,出现了周仓等人攻击关羽的说法,3和5究竟应该怎么描述还没有想清楚。

[color=Silver][[i] 本帖最后由 沈浪 于 2011-7-1 21:51 编辑 [/i]][/color]

2005-3-12 21:57 叶落秋寒
树形列表使剧本结构看得更分明,而且通过调用data文件,使人物和物品都不再用代码显示,更贴近大众。通过复制粘贴子事件使增加同一类型事件时操作更简单便捷化。
van太守出手果然俱是精品,支持,up

2005-3-12 22:07 幽人独往来
太守出手,不同凡响~~~
不能批量复制么?
上移下移呢?
还有对话似乎没有换行的设置~~~~

2005-3-12 22:31 van
不能批量复制是因为树形控件不支持多选。zengpoem的编辑器里用列表框就可以多选了。
不知道还有什么意见?

2005-3-12 22:33 博雅张生
我的编辑器也将改为树型控件……

不能批量复制,可以批量新增呀。

2005-3-13 21:06 hubuchou
关于变量问题,显示剧本中使用的变量列表;查找变量,输入变量后能够显示出哪些事件要检测它的值,哪个事件对它赋值。

2005-3-13 21:16 van
我觉得可能全局变量比较难处理,因为这个关系到剧本之间的联系和跳关。但要对全局变量列表需要扫描所有剧本,不是很方便。

至于局部变量列表,需要提供多少信息?仅仅列出即可?

2005-3-13 21:30 hubuchou
那全局变量就暂时不管吧。比如赤壁突围,甘宁军出场的话,变量33被赋值1;这个事件要判断32、33、35三个变量是否为0,我希望就是输入变量代号33,能够显示出哪些事件要检验33这个变量的值;然后找到哪个事件对33这个变量赋值,这样对于设定剧情,改变胜利失败条件等等比较有帮助。

2005-3-13 22:48 van
先加入了搜索功能
变量的部分过些时候再做

2005-3-14 00:34 幽人独往来
增加上移下移的功能吧,还有对话怎么没有分段的设置啊?
另外,全部展开可以不要,最好改成“展开”,也就是可以任意展开某一部分。

2005-3-14 10:35 van
没有分段的问题可能是我使用的函数的问题,我会修改的

上下移是指将代码上下移吗?

2005-3-14 12:00 幽人独往来
上下移是指将代码上下移吗?



对话分段的问题,好奇怪,虽然在这里面是连在一起输入的,可在游戏里却能够自动分段………………

2005-3-14 12:20 van
3.14 12:00更新,加入变量列表显示,修正文字显示时没有换行的bug)
还有其他一些细节上的改动

代码上下移暂时没有提供

2005-3-14 13:15 peacockwang
[quote]原帖由[i]hubuchou[/i]于2005-03-13, 21:30:12发表
那全局变量就暂时不管吧。比如赤壁突围,甘宁军出场的话,变量33被赋值1;这个事件要判断32、33、35三个变量是否为0,我希望就是输入变量代号33,能够显示出哪些事件要检验33这个变量的值;然后找到哪个事件对33这个变量赋值,这样对于设定剧情,改变胜利失败条件等等比较有帮助。 [/quote]
我来说下我总结的变量名称规律,曹操传的变量使用就像开关一样,默认情况下是零(大多情况),也就是开,在事件结束后,给变量赋值为1,即关,所以该事件不会再执行。

下面是一些有规律的变量名称
用于回合的变量名从10起;
用于武将进入指定地点的,从20起;
用于武将进入指定区域的,从30起;
用于武将相邻的,从40起;
用于武将状态的,从50起;
胜利条件,设定为0;
失败条件,设定为1;
保住某武将,给与指定道具的,从600起;
未保住某武将,给与其他道具或不给道具,从700起;(这个描述可能不准确)
全局变量从500起,即第一关500,第二关501-----(可能和关卡选择有关)

特殊变量,个位数字,通常为6,用于判断某些事件条件是否成立,和其他变量配合使用

另外,还有个变量从100起,还不清楚,请高人指点

上述变量名是可以随便取的,但是为了编辑方便,最好还是沿用这种命名方式。

以上信息希望对大家有帮助。

2005-3-15 20:45 van
更新了一下
加入代码上下移功能,修正了hubuchou提到的修改变量测试的bug

2005-3-15 21:18 hubuchou
好快的动作啊^_^

为什么不能添加Code0、1、2呢?

小问题,武将状态调整(4d)里漏了移动力。
武将Index为1027一般用在击退敌方武将时,似乎就是用来表示杀人的那个武将。

2005-3-15 21:38 van
屏蔽0,1,2主要是为了避免不必要的错误
0插入子事件时会自动添加,1是与插入子事件在一起的。2的话一般都是做为子事件的开始出现的(换言之,一般都有子节点,Section下面的2在新增Section时也会自动添加),所以也放在插入子事件中

如果觉得不方便的话,可以用粘贴复制,这个不做类似的检查
另外上下移也不做有效性检查

2005-3-15 21:42 van
4d里的状态确实是漏掉了(又是输入的时候疏忽了,呵呵)
那个1027能不能告诉我在那个剧本出现过?我想具体看一下

2005-3-15 21:54 龙王
好像VAN的图象导入工具同时导入红色西凉和典韦的att形象时有一个会出错。能不能请VAN提一下如何分析EXE文件的过程,例如控制形象个数的代码的分析.

2005-3-16 13:39 hubuchou
发现一个问题,我改s_14吕布包围战的时候,在战斗胜利测试里面仿照汜水关,增加了一个如果胜利时刘备不死,则得到一个敏捷果的子事件,结果在保存之后发现在第一部分末尾的5A 00 0B 00 04 00 02 02 00 00 27 00 01 00 08 00 2E 00 01 00 00 00这22个字节丢了~~

2005-3-16 19:02 van
可以讲一下具体的修改过程吗?我想具体调试一下

2005-3-16 19:33 hubuchou
就是s_14第二部分的倒数第二个Section,战斗胜利测试,在4f战场对话转向曹操向南和59战利品之间加入了一个子事件,变量测试无;Var58(刘备未撤退),对话,然后得到一个敏捷果,其它没了,保存之后进入游戏不能正常开始,用UE一看少了一段。

2005-3-16 22:07 van
我加了子事件5:变量测试,再在里面添加对话和获得物品
保存后没有出现第一段结尾丢失的情况。
这个现象比较奇怪,照说后面的修改不应该影响到前面的部分。我觉得可能出问题的部分包括:你是否使用了上下移、剪切操作,有无删除代码

理论上讲,如果你用的是调试版的话,第一段结尾丢失的话,保存后再打开会报错的

2005-3-16 23:48 幽人独往来
报告问题:
原剧本正常,我用江东的编辑器在S里加了几个特殊装备,再用该剧本编辑器打开就报错了!我再用江东的编辑器把添加的特殊装备删除又正常了。

2005-3-17 00:24 van
我加了之后可以打开啊(s_00,加了一个张梁),然后全删掉也没问题
要不你把剧本传上来或者贴一下调试版的出错信息?

2005-3-17 00:32 van
我用zengpoem的试了一下,如果用江东的新增的话,会出现未知代码的错误。江东好像把输出代码写错了(没有在Code1后面跟Code2)

2005-3-17 01:41 幽人独往来
太守,那个添特殊装备的我在江东的修改器里把特殊装备删掉也就解决了,可我用江东的添加了一个友军,同样打不开了,而且我删掉甚至用UE打开把友军那一段还原也还是打不开  但运行游戏似乎没发现什么问题(我没备份  )
剧本传上来了,麻烦看一下。

或者江东你看看是不是你的修改器的问题?

2005-3-17 11:02 van
你传的剧本打不开和江东的修改器无关
我在剧本编辑器里面加了如下的限制
如果Scene下只有一个Section,那么这个Section后面必须是Code2、Code0。如果Scene下有不止一个Section,那么Code2和Code0之间还允许其它测试代码。

加这个检查主要是为了和原来的剧本匹配
因为原来的R剧本中,每个Scene都只有1个Section,只有最后一个出战例外,而里面是有测试代码的
而S剧本都由3个Scene组成。第一和第三个是由1个Section组成。中间的则是一系列事件,由多个Section组成,其中可以加测试代码

你的剧本里有4个Scene,其中第二个只有一个Section,所以不能打开。你将它和后面的Scene合并就可以了

2005-3-17 11:31 叶落秋寒
我做个人装备设定时没有区分装备类型及默认或卸载的状态,用van的把武器设默认或卸载,用zengpoem把武器设为0或1后,我的都会报错。

2005-3-17 13:42 幽人独往来
问题解决,多谢太守,也向江东致歉

另外提个小建议:
1、增加不同剧本间的复制粘贴功能,因为很多剧本都有大块相似的部分,这样的话可以大大提高工作效率;
2、有很多参数太守是不加描述的,如下拉式选择框的“战场动作1,2,3…………”,复选式的Para38等等。这样很多时候就必须参照样例或者进游戏试验,很不方便,因此我想,这个描述能否具体起来(当然,描述是一个很麻烦的事情,现在回头看看我们以前的描述有很多都不准确。而像法术号、音效号之类的可以直接察看的可以最后弄,甚至维持现状问题都不大,而Para之类的是否勾选倒是很麻烦)

2005-3-17 15:26 van
多谢你的建议,其实我也一直想把参数弄全之后再更新的,不过有些琐碎,所以几次更新都没有做完。有时间我会完整的弄一下。

剧本间的复制,我可能以后会改成MDI多文档界面,这样就可以在剧本间拷贝了,不过可能需要等些时候。

2005-3-18 14:44 van
改用MDI界面,为以后剧本间互相拷贝做准备
应幽人的要求,参数重新修订,现在几乎所有的含义都给出了,同时也改动了一下修改的界面。

因为做这个主要是为三十的剧本修改器做准备,所以还是希望大家对界面和使用方面多提意见。我的初步打算是用曹操传剧本编辑器的这种界面和模式来写

2005-3-18 15:02 博雅张生
请教下列代码的含义:

4 询问测试
54 战场撤退确认
5E 武将不同测试

2005-3-18 16:23 van
4 询问测试
游戏里弹出对话框“可以吗?”
54 战场撤退确认
确保所有HP为0的武将撤退
5E 武将不同测试
检查两个武将是不是同一个人(感觉没什么用)

2005-3-18 19:33 hubuchou
嗯,好用了许多:)

今天发现,吕布包围战的那个问题是我的错,呵呵,以前用UE改的时候,个人装备设定增加了一个,EH和12H的两个地址更新了,但是18H和29H两个长度没改,结果就导致第一部分末尾被删了一段,惭愧惭愧~~不过这两个地址的数值出错之后,居然不影响游戏,我用有错的剧本玩的时候可以正常玩,这游戏的容错性还真是强啊~~

另外,强烈建议把单挑里的左方武将、右方武将改成敌方武将、我方武将~~

2005-3-18 19:57 van
是啊,光荣的容错性确实不错。不过它内部可能是根据Code0判断结束的,除非需要跳转才会用到len,所以不会出错。

不过单挑的时候也可以让我方武将在右边啊,呵呵。
以后会改的

2005-3-18 23:02 van
更新了一下
支持剧本间互相拷贝,将单挑中的左右方改成敌我方
另外加入了出错处理(很简单的),现在如果剧本有语法错误,编辑器将指出出错原因并显示当前能够正确Parse的部分,以供检查
因为有了简单的出错处理,所以不再提供Debug版了

2005-3-22 18:30 van
做了一些细节上的调整
差不多就这样了。如果觉得添加一些有固定格式的事件不方便的话,可以自己做个事件库,需要的时候直接粘贴。或者可以用zengpoem的,我懒得再写对话框了。

2005-3-22 20:31 烈火消魂
希望越改越完善啊.要是能读取地图在地图上改就好了.就像英雄无敌的编辑器一样.
那样就非常方便了!

2005-3-25 12:03 van
更新了一下,支持修改友军和敌军的出场设定,另外对修改对话框作了一些调整
另外加了一个简单的S剧本模板

2005-3-25 12:55 博雅张生
提个小建议:

如果Section的第一个子字节点是内部信息,那么不妨把内部信息显示在Section后面,这样不用展开就可知道其内容了。

2005-3-25 15:07 van
多谢你的建议,不过一般的剧本里面,Section下跟的内部信息都是空,或者仅仅是“战中处置”之类,可能也提供不了太多的信息

2005-3-25 15:14 hubuchou
不如就自动排序一下,然后显示section 1,section 2之类的。
友军和敌军出场现在改起来还是有点麻烦,要是也做成一条一条地,可以添加删除的那样就好了。

2005-3-26 11:53 博雅张生
[quote]原帖由[i]van[/i]于2005-03-25, 15:07:01发表
多谢你的建议,不过一般的剧本里面,Section下跟的内部信息都是空,或者仅仅是“战中处置”之类,可能也提供不了太多的信息 [/quote]
我觉得我们制作新剧本时应当把内部信息写得明确一些,这样便于交流。

2005-3-26 13:10 van
更新了一下,
1、调整了修改友军和敌军出场设定的对话框,现在修改起来应该方便一些(当列表框有焦点时(比如你用鼠标点中某个出场武将时),你可以按Del键直接删除选中的出场武将)。
2、现在默认打开剧本时将展开Section,方便查看Section的用途

PS:我比较懒,如果加内部信息进去的话修改之后还要动态更新,所以我用了一个折衷的办法,就是打开剧本的时候直接把Section展开。因为Section下一般只有4~5个条目,还是比较容易分辨的。如果Section比较多,也可以用代码查找来看,比如单挑就找单挑开始的代码。

2005-3-26 21:36 幽人独往来
[quote]原帖由[i]zengpoem[/i]于2005-03-26, 11:53:43发表
我觉得我们制作新剧本时应当把内部信息写得明确一些,这样便于交流。 [/quote]
这一点我赞同,现在大家做Mod一般都不改内部信息的解说,当然这个不影响游戏,但是一来不方便自己的查看与修改,也不方便别人的学习。我想这个也应该算是一个良好的习惯吧。

2005-3-29 13:57 李小嘴
我修改S文件后,试玩一下,再不能修改了,文件出错.

2005-3-31 11:41 李小嘴
我把华雄改装备黄金铠,死后战利品是黄金铠,可到了游戏又变回是手套.再想修改次,文件显示有错.,怎么都不能正常游戏了.就是R和S内容结在一起进行,反常了.

2005-4-1 10:16 李小嘴
[quote]原帖由[i]幽人独往来[/i]于2005-03-16, 23:48:06发表
报告问题:
原剧本正常,我用江东的编辑器在S里加了几个特殊装备,再用该剧本编辑器打开就报错了!我再用江东的编辑器把添加的特殊装备删除又正常了。 [/quote]
我现在才发现问题出在这里.

2005-4-6 14:06 hubuchou
修改中遇到的问题:

11剧本跳转,参数有误,应该是0表示s0,1表示r1,2表示s1,3表示r2,4表示s2……奇数为r,偶数为s。另外使用中发现跳转语句必须放在条件判断里,或者是12选择框的case里,否则不能跳转。

40行动方测试,0是我军行动之前,1是我军行动之后,友军行动之前,2是友军行动之后,敌军行动之前。

还有4e武将方针变更,我们对方针的描述不够准确,在s47的第二个Scene的第一个Section里,出现了周仓等人攻击关羽的说法,3和5究竟应该怎么描述还没有想清楚。

2005-4-6 14:33 博雅张生
[quote]原帖由[i]hubuchou[/i]于2005-04-06, 14:06:24发表
修改中遇到的问题:

11剧本跳转,参数有误,应该是0表示s0,1表示r1,2表示s1,3表示r2,4表示s2……奇数为r,偶数为s。另外使用中发现跳转语句必须放在条件判断里,或者是12选择框的case里,否则不能跳转。

40行动方测试,0是我军行动之前,1是我军行动之后,友军行动之前,2是友军行动之后,敌军行动之前。

还有4e武将方针变更,我们对方针的描述不够准确,在s47的第二个Scene的第一个Section里,出现了周仓等人攻击关羽的说法,3和5究竟应该怎么描述还没有想清楚。 [/quote]
我在实验添加剧本时,在R_00里增加了一条剧本跳转。发现加到末尾就可以跳转,加到开始则不成。

2005-4-7 11:01 van
hubuchou兄再看看以下一些问题,这样以后一起更新
代码c,28,6a含义未知
Para0x10(Code21),Para0x36(Code28)含义未知
Para0x26(Code21,45,58,6b)描述未知
Para0x30-状态(&80)(Code4d),Para0x4b-法术(=109)(Code6b),这两个取值对应的含义不清
Para0xd-动作(Code30),Para0x42-物体(Code58)有两个取值的含义未知

2005-4-7 12:48 hubuchou
[quote]原帖由[i]van[/i]于2005-04-07, 11:01:21发表
hubuchou兄再看看以下一些问题,这样以后一起更新
代码c,28,6a含义未知
Para0x10(Code21),Para0x36(Code28)含义未知
Para0x26(Code21,45,58,6b)描述未知
Para0x30-状态(&80)(Code4d),Para0x4b-法术(=109)(Code6b),这两个取值对应的含义不清
Para0xd-动作(Code30),Para0x42-物体(Code58)有两个取值的含义未知 [/quote]
[quote]原帖由[i]van[/i]于2005-04-07, 11:01:21发表
hubuchou兄再看看以下一些问题,这样以后一起更新
代码c,28,6a含义未知[/quote]
c,28,6a从来没出现过,猜测可能是本打算做一些功能,后来放弃了,就不知道是连代码的功能也删了,还是仅仅闲置在那里。


[quote]
Para0x10(Code21),Para0x36(Code28)含义未知[/quote]
21战场物体添加,Para16后面如果是0则放火,是1则火消失,恢复原先的地形。两个Para38不知道,改了之后没感觉到有什么不同。


[quote]
Para0x26(Code21,45,58,6b)描述未知[/quote]


[quote]
Para0x30-状态(&80)(Code4d),Para0x4b-法术(=109)(Code6b),这两个取值对应的含义不清[/quote]
4d武将状态变更,&80之后表示取消该项状态。


[quote]
Para0xd-动作(Code30),Para0x42-物体(Code58)有两个取值的含义未知[/quote]
很多东西都是,改了之后感觉不到有变化,只好暂时不管了。


另外3d获得物品,里面的Para38为1时应该是显示动作,0无动作,而“得到**”这个消息一定会显示出来的。

2005-4-7 16:05 van
那些代码都是有功能,只不过从程序看不出具体的作用
比如代码C是return 8,代码28是给剧本的对应结构中的某个变量赋值,而代码6A是给战斗状态赋值

40行动方测试,我看AI里面觉得可能0、1、2分别是我军阶段、友军阶段、敌军阶段(这个应该是对应AI的不同阶段)

2005-4-7 16:20 hubuchou
我编程不行的,只能猜一猜。

有没有类似于测试攻击力是否上升,是否混乱、中毒什么的?

2005-4-7 16:23 van
另外代码11只是给当前全局剧本编号赋值,所以后面还需要相应的代码才能实现真正的跳关(这个函数return 9)
至于剧本里的设定的AI类型和游戏内部具体使用的AI类型还不一样,我就不是太清楚了

2005-4-7 16:41 van
从原有的那些剧本来看,代码11后面必须直接跟代码0。其它的要求倒是没有

比如r_32中,
Scene
        Section
                2:内部信息 马超  去投奔张鲁
                37:钱、剧本跳转、忠奸测试 野心 16 <
                0:事件结束
                        a:初始化局部变量
                        2f:清除人物
                        8:菜单处理 false
                        11:剧本跳转 S_45.eex
                        0:事件结束

2005-4-7 17:36 hubuchou
问题来了~~
我在R53的Section白色祭坛前面加了个Section,里面只有一个剧本跳转,变成这样:

Scene
  Section
    2:内部信息
    0:事件结束
      11:剧本跳转 s_57.eex
      0:事件结束
  Section
    2:内部信息 白色祭坛
    ……

结果出错,关闭再打开说无效代码,好像12H那个0x02应该是01,不过进UE改了之后好像还不行,改成01之后再打开,这个剧本跳转还在,那个白色祭坛的Section在编辑器里找不到了。

然后又试了一下,在一个R的开头加上一个Secne,Section里面只有一个跳转,结果被无视了……

2005-4-7 21:09 van
这个问题以前说过的,这个编辑器假定如果Scene下面有多个Section,那么这些Section在Code2后必须包含测试条件。(主要是为了和原来的剧本规范一致)
你最好另外新建一个Scene,而不要在不包含测试代码的Section前面或后面另外新增一个不包含测试代码的Section

关于游戏不理睬直接的跳转,我没有试验过。不过理论上跳转还是应该有个测试条件的,不然又何必跳转呢

2005-4-7 21:17 博雅张生
[quote]原帖由[i]van[/i]于2005-04-07, 21:09:56发表
这个问题以前说过的,这个编辑器假定如果Scene下面有多个Section,那么这些Section在Code2后必须包含测试条件。(主要是为了和原来的剧本规范一致)
你最好另外新建一个Scene,而不要在不包含测试代码的Section前面或后面另外新增一个不包含测试代码的Section

关于游戏不理睬直接的跳转,我没有试验过。不过理论上跳转还是应该有个测试条件的,不然又何必跳转呢 [/quote]
直接的跳转我试过呀。就是前两天试验剧本上限,在R_00的最后加了一条剧本跳转。
我一直是把Code 2 也理解成是一个测试条件的……

各个Section似乎是并列的。表现在S剧本中。如果同时触发了两个Section的测试条件,不能确定哪个Section先发生。有时候会出问题。

页: [1] 2 3 4
查看完整版本: 曹操传剧本编辑器


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.