忆三国游戏网整理发布star175制作的曹操传6.1版引擎,exe和支持jpg的动态链接库文件。
2014.09.09更新
修正了用形象指定器修改内场景地形后导致游戏卡死的bug。
2014.4.19更新
1、修正上一版的已知bug
2、实现了meff和Mcall的真彩,见本帖表格中的说明,Meff.e5编辑器下载
3、5.9版里有一个让特定武将学会特定策略的功能,但需要先在exe手工设置,容易出错,另外也无法在游戏过程中改变,所以这次增加了通过剧本指令来实现的方法
剧本写法见图
数字信息必须填4,
第一行为策略编号,从0开始计算,如灼热就是0
第二行为习得时的人物等级()
第三行为人物data号
最后一行为注释,可有可无
另外通过设置第二行的数字,也可以让人物忘记已习得的策略,比如开始让某个武将学会了一个策略,后来由于某种原因,又想让他忘记这个策略那就再写一个一样的指令,把第二行数字设为一个不可能达到的等级,如254,不过不要设为255
4、指针变量存档化,这个是来自WHITESHIP的修改,
这个我考虑了很久,还是加上了,不过新手慎用
指针变量以前有2048(0-2047)个,现在大幅度缩减为406(0-405)个,0-299用法照旧,也不进行特殊记录,一般情况下使用0-299编号的指针变量基本就能满足需求。300-405则进行存档化,特殊场合下使用
此项修改发现bug,具体表现为如果在指针变量运算前存一个档,指针变量运算后再读取这个档,会发现 通过指针变量运算来改变的数据已经改变了。很拗口吧,反正自己理解了,所以300-405的指针变量暂时别用了。
另外顺带完成了指针变量全部运算符的byte和word运算,以前只有+、-、=可支持byte和word运算,现在*、、%也可支持byte和word运算
5、半透明的对话背景和不同颜色的对话文字,这个是来自Godtype的,
剧本写法
运行效果
6、强化了神魔护体这个效果
A:以前神魔护体是影响兵种成长,现在直接影响人物成长
比如效果为4时,人物能力还必须达到90,才有4点成长,现在不论人物能力有多少,成长均为4点
B:以前还有可能使得某项能力下降,现在不会了
-----------------------------------------------------------------------------------------
1 修正测试版中的已知BUG
2 采取新的开始界面。
模拟按钮的图片是jiansan提供的,自己再拼凑了一下,不满意也可以自行继续加工。图片放在U_select.e5中。请下载附件中的相关文件,再替换原来的即可
3 加入了来自godtype的关于6b指令的一些修改和扩充
主要有以下几个用法
第一个6b指令同原版,第二个6b指令本来要用2次,现在一次即可
第一个72指令的写法
数字信息必须填1
文字框第一行表示让指定武将的血量改变,可以填写正负数或0
正数表示增加HP,不会超过HP上限(正数前不要有“+”号)
负数则减少,可以降到0并撤退
0则不改变
第二行表示使用哪一个策略动画。这里要注意2点
1 只能使用meff中的策略动画,不能使用mcall里的大动画
2 如果使用了一个攻击性策略动画,那么第一行的数值就不要填写正数,这样虽然不影响程序运行,但会比较怪异
第三行取值为0或1,表示是否切换视点
第四行是一些人物的data号,表示对这些人物使用策略,data号之间用“|”号分隔
第五行是注释,自己看的,可有可无
第二个72指令的写法
数字信息必须填2
第四行是一些地点的坐标,表示对这些地点使用策略,横坐标和纵坐标之间用",”分隔,坐标之间用“|”号分隔
其余几行意义同上
如果某个坐标正好有部队在,那么这支部队的HP会根据第一行设置的数字而改变
第三个72指令的写法
数字信息必须填3
第四行只要2个坐标,表示一个区域的左上角和右下角,横坐标和纵坐标之间用",”分隔,坐标之间用“|”号分隔
其余几行意义同上
如果某个坐标正好有部队在,那么这只部队的HP会根据第一行设置的数字而改变
在以上三个72指令中,除了注释外的所有数字和符号都要用半角符号;除最后的注释可有可无外,其余每一行都不能少
4 应求增加了3个空白对话框,再加上以前的开始对话框,就有4个
本次发布的三个附件都要重新下载
关于图片使用的一些补充说明
6.0引擎已经发布一段时间了,综合各方面的信息反馈,对图片使用中的一些问题进行一些说明
1、对于部分仍然使用256色的图片,处理方法还是按原来的方法处理好调色板就没有任何问题,这方面已有很多教程,不多做解释
2、游戏中的背景图(内场景、外场景、logo、单挑背景、战场地图、城门)
这些图片只有战场地图是强制要求使用jpg格式,其余的既可以使用24位bmp图,也可使用jpg格式的图片,但是出于减少文件体积考虑,建议使用jpg格式
3、头像 这个分为2种情况
A:采用镂空头像,这种情况下,发现如果转jpg会有一些粉色的杂点出现,这是因为jpg属于有损压缩,原本是f700ff色转了jpg之后会有一些改变,虽然肉眼分辨不出,但电脑却最擅长这个,所以不会对这些近似f700ff的颜色进行透明处理,因而保留下了这些杂点,由于目前无论是图片处理还是程序设计都没有可靠的方法,所以如果要使用镂空头像还是直接使用24位bmp图更好
B:不采用镂空头像,这种情况下不必做透明处理,可以使用jpg格式
4、R、S形象
这些可兼容256形象,如果仍然使用256的形象,不解释
如果是使用真彩形象那么就与使用镂空头像的情况是一样的,所以也是使用24位bmp图更好
希望有擅长美工的朋友研究一下如何在转了jpg之后仍然可以有效的保留下f700ff色,毕竟bmp格式体积要大很多。
已经有方法了,参考http://www.xycq.online/forum/viewthread.php?tid=283927
5、城门
目前出现的6.0游戏中城门是花的,这种情况一般出现在从低版本升级过来的mod中,如果是新设计的城门,一般不会出现这个问题。
这其实是作图的问题,说说我的方法
对于任何一个城门,首先要搞清楚它对应的战场地图,然后先用叶落的地形编辑器先把这个战场地图导出,再用rpgviewer导出城门,接着用ps打开这2个图,先导出战场地图的颜色表(图像-模式-颜色表-储存),在把这个颜色表导入到城门里(图像-模式-颜色表-载入),这个时候城门就不会花了,此时再转为rpg位图,保存后导入即可
------------------------------------------------------------------------
本次exe更新后,主要是需要对一些图形文件进行重新处理,剧本只需要重设大地图头像的座标即可,下表是各图形文件的处理说明
序号 | 文件名 | 用途 | 图片处理说明 | 相关文件 |
1 | Unit_spc | s形象 | 原则上要求全部转为真彩,但由于目前没有,所以可兼容256色形象 | 无 |
2 | Unit_mov | s形象 | 原则上要求全部转为真彩,但由于目前没有,所以可兼容256色形象 | 无 |
3 | Unit_atk | s形象 | 原则上要求全部转为真彩,但由于目前没有,所以可兼容256色形象 | 无 |
4 | Logo | 1.开局 5.开战前 7.结束 8.战败 13.第三波 | 1: 第2,3,4(三只铜雀) 9,10,11,12(底纹) 以上7张图照旧使用256色位图,其余必须转为真彩图片. | 调色板文件Logo_p.e5可以删除 |
单挑背景 | 2: 所有的单挑背景尺寸改为604*364(原来的是624*384),logo图尺寸不变,仍然是640*400 | |||
5 | Mmap | 1-40 外场景 115 中国地图 其余为内场景 | 全部转为真彩图片,图片尺寸不变.(640*400) | 调色板文件Pmpalet.e5可以删除 |
6 | U_select | 出战选人 练武场 对话背景 | 全部转为真彩图片,图片尺寸不变.本次新增2张图片,做为对话背景,目前是白框,可自行替换.(会提供) | 无 |
7 | Pmapobj | r形象 | 原则上要求全部转为真彩,但由于目前没有,所以可兼容256色形象 | 无 |
8 | Face | 头像 | 重新启用face.e5,废除tou.dll.头像尺寸为120*120,全部要转为真彩图 | 无 |
9 | Gate | 城门 | 全部要转为真彩图 | 无 |
10 | HM??.e5 | 战场地图 | 全部要转为真彩图.现在直接使用jpg文件作为战场地图,图片放入要放入map文件夹,图片的命名规则为m000.jpg,m001.jpg,依次类推 | 调色板文件spalet.e5可以删除 战场小地图Smlmap.e5 可删除 |
战场小地图可自动生成 | ||||
11 | Meff.e5 | 策略图 小 | 原则上要求全部转为真彩,可兼容256色图片 | 无 |
12 | Mcall??.e5 | 策略图 大 | 原则上要求全部转为真彩,可兼容256色图片 | 无 |
尤其是头像要注意,如果是使用tou.dll里的镂空头像,从tou.dll导出后,一定要把黑色背景换成f700ff,再导入到face.e5
这是我的转换时的设置
PS v7.0.1
小结 ccz的图片大体上有18个(dll不算,mcall有9个,只算一个),支持真彩的现有12种,小地图可以删除,只剩下了5个仍然使用256色位图
effarea | 穿透范围图 |
Hitarea | 攻击范围图 |
Item.e5 | 物品图标 |
Mark.e5 | 各种图标 火 船 59和60交换一下 |
Weather | 天气图 |
使用中如发现图片花掉,请确认相应图片是否按上述表格说明进行过处理
注意 RS形象也已经实现了真彩,不过由于目前还没有真彩的形象,我只能把现有的形象转为rgb图用于显示,所以看起来效果还是256色,但实际已能够支持真彩形象了.
6.1版功能
1、合并 Itemicon.dll和Item.e5
Itemicon.dll存放了物品图标,有大小2种;Item.e5只有大图标。
但是二者的大图标是一样的,为了减少重复劳动,去掉了Item.e5(可以删掉这个文件了)
合并后还有一个好处是Itemicon.dll的图标可以使用真彩色
2、meff策略图可以使用黑色作为透明色。
3、增加内置加速器
在环境设定里增加了一个加速选项,共有4个速度,用键盘上方的0(不加速)或 1、 2、 3 、4(最快)切换
4、存档扩充为200(普通存档)+1(自动存档)个,同时每个存档的文件由4个合并为1个。
目前的存档文件的名称从Sv000.e5s到Sv200.e5s,其中Sv000.e5s为自动存档
存档实际上就是以前的sv??b+sv??d+sc??e+sv??s
5、出战位置预览
最初为豪曹设计了这个,这次加入了exe,这是个可选功能
写法如下
这些指令要用在R剧本的06指令之后(从1:子事件设定――到0:事件结束)
第一个77指令4076=0 设置dword运算
第二个77指令4057=0 设置地图编号,一定要和接下来的S剧本中使用的地图编号要一致
注意:4057这个变量在5.9版是决定地图头像大小,但6.0以后都是大头像了,所以把这个变量用在这里了。
接下来是一些4B指令,表示出场的武将的出场位置,本例可出5人,就要写5个4B指令,其实这里也要和接下来的S剧本中的4B指令要一致。一般可以先写好s,再复制一遍到R
加了上述指令后,出场选人这里的战场位置按钮可用,点开后可以看到人物的出场位置
如果在R剧本中不写这些指令,那么战场位置按钮不可用
这里增加了2个图,用来区别隐藏或不隐藏,图片放在U_select.e5中,要下载本次的相关文件替换原来的文件
图片比较粗糙,请自行美化
6、继续完善功勋系统
功勋在最初设计时是不能自由分配的,后来改为可自由分配后就产生2个缺陷
A: 当某项能力达到上限后,该项功勋不再增加。
B: 某项不重要的能力得到了提升,如文官的武力。
为了避免上述2种情况发生,以致于不得不经常去对人物功勋进行调节,实在是很烦人
现在能力达到上限后,该项功勋依然可以增加,并且可以勾选若干项优先提升的能力,而未勾选的能力即使功勋达到提升条件也不会生效,这下再也不用担心功勋被浪费了。
此外,能力提升后的提示信息也比以前更为详细
7、装备自动升级
设置整形变量4039=1,则开启装备自动升级,每次进入战场后,出战人物的武器和护具会根据全队的平均等级进行提升。
由于是根据全队平均等级来提升装备的,所以请注意平均练级。通过练武场来让等级低的人员不要掉队,这次顺带修正了练武场会异常退出的bug
如果开启了此功能,买卖装备不论等级,固定为8000金币,也不会得到果子
8、加强了地形的作用
原版的地形只影响物理攻击时的攻防加成,现在全面加强,包含双击率 命中率 暴击率 策略伤害 策略命中。有了这个以后,在大河上遇到一群海盗就要小心了
9、信息传送增加2个用法
A:指定兵种或武将学会兵种技能或个人天赋
说明
数字信息必须填5
第一行是技能编号,用形象指定器可以看到所有技能的编号,图中的81就是H51(鬼神之勇)
第二行是这个武将存放的位置,因为每个技能最多可以同时给3个武将和一个兵种,这里是0,实际上是放在第一个位置
这一行取值范围是0-3,0-2表示武将的个人天赋,3表示兵种技能
第三行是武将data号(当第二行取值0-2时)或兵种编号(当第二行取值3时)
第四行为注释,可有可无
B: 指定人物习得必杀技
说明
数字信息必须填6
第一行是必杀编号,用形象指定器可以看到所有必杀的编号,图上的26就是H1a(急袭 穿透3格)
第二行是这个武将存放的位置,因为每个必杀最多可以同时给5个武将,这里是0,实际上是放在第一个位置
这一行取值范围是0-4
第三行是必杀的领悟等级
第四行是武将data号
第五行为注释,可有可无
当然,有个前提是要开启必杀,同时这个武将的兵种是武将类必杀才会有效果。
10、新增2个效果, 调整2个效果
新增效果众矢之的,类似嘲讽,会影响AI对攻击目标的选择,需要设置data效果值,取值范围1-3,1只对物理攻击有效,2只对策略攻击有效,3全部有效,装备了这个效果的队伍会吸引AI优先对其进行攻击。不过如果没有友军的话,只给敌军装备这个没有意义。
新增效果策略暴击,这个效果和现有的致命攻击共用一个效果号,那么要注意以前致命攻击是不要设置效果值的,但是现在就需要设置了,取值范围1-3,1只对物理攻击有效,2只对策略攻击有效,3全部有效,
策略暴击只在释放损血策略时有效,伤害在125%至150%之间,但可以秒杀的策略是无效的
还有一点请注意,有时虽然装备了策略暴击的装备,但使用一般的损血策略时却没有发生暴击,那是因为这次的策略攻击没有命中
同仇敌忾需要设置效果值,来指定攻击次数(如果要无限攻击次数,data效果值设为255)
一夫当关在周围有队友的情况下仍然能发挥一半的效果
11、调整了几个游戏中的光标,这些图片是放在Mark.e5中的
先下载5.8的相关文件,再用本贴相关文件替换掉相同的文件
本帖相关文件里有一个SouSou文件夹,这个文件夹要放在RV的目录下,直接替换即可
替换后才能用RV打开Mark.e5里新增加的几个图片。
另外6.x本身虽然不再需要Spalet.e5(调色板)文件,但有些仍然使用255色的图还是要用RV才能编辑,而RV是需要Spalet.e5文件的,所以在mod的制作阶段这个文件还是留着比较好
12、结局头像和制作群的展示
原版的f结局设定指令是固定在1号到25号武将之中选择出阵数高的24个展示,在展示头像的同时还会展示一组制作组成员,因此0号武将是不会展示的,这样的设定难以满足要求
修改后结局头像的展示通过设置整形变量4056来实现,共有4种方式,总有一种适合你
A:设置4056=255 默认的方式,同原版
B:设置4056=254 只展示结局时尚在我方阵营的武将
C:设置4056=253 只要是曾经加入过我方阵营的武将都会展示,如果结局时已经不在队中,会展示为黑白头像,而3号武将(原版的关羽)是展示黑框
以上三种方式要先设置好4056,再使用f指令
D:自己指定要展示的武将
使用万能的72指令
72指令写法如下
数字信息必须填9,文字消息里的就是要展示的人物的data号了,这里要注意这些数据要一直输入,让它自动换行,而不要强制换行,所以我这里看起来是3行数据,实际上只有一行。
制作群的展示,先贴一个原版的制作群
仔细看一下,18过了就直接到21了,没有19和20,也就是说最后的25其实应该是23,由于制作群是从0开始编号的,到23号实际总共要展示24次制作群,这里和原版只显示24个头像是一致的,但是如果是自己做的mod制作群肯定不同,也未必还是24组,所以如果是自己编辑制作群时编号请按顺序来(从0开始),不要象原版那样中间缺号,编完之后看下最后的数字是几,然后转16进制,再修改一下这句代码就行了。
00430505 |. 807D E8 17 |CMP BYTE PTR SS:[EBP-18],17 ’17即为原版的23(16进制)
编辑制作群时一定要记得不要缺号,然后是注意每一组必须以//数字开始,以半角的分号结束,每组最多5行,每行文字最多11字节
比如我随便改的25号文字
最后展示时如果头像数少于制作群数,那么多出的制作群会比较快的展示完,反之,制作群的文字会停留在最后一组,等待头像展示结束。
13、剧本破百
这个问题早就有人提出过,在5.9也初步进行过一些修改,不过未最终完成,这次也把这个功能完善了
剧本破百要突破一些限制,既有exe本身的限制,也有一些是来自剧本编辑器的,大体上有4个方面:
A:首先遇到的问题是剧本文件名的扩充,目前剧本编号仅支持2位数的,即00-99,破百就要扩充到3位数的文件名000-999,
这里先要改动2个地方
00409A47 |> 6A 02 PUSH 2
00417F22 |. 6A 02 PUSH 2
把push 2 改为push 3 ,剧本编号就可支持3位数的文件名
如果真的打算想做一个百关以上的mod,就要先修改好以上2处代码,这是剧本破百的前提条件,然后剧本文件名也要先修改好,如R_00.eex要改为R_000.eex、R_01.eex要改为R_001.eex,依次类推
B:然后是剧本的流转,通常有2种情况
一般的剧本自动增加,如S_099结束后会自动跳到R_100,这个不用特别处理。
如果用11 剧本跳转指令想跳到100之后的剧本,可通过整形变量来设置
C:剧本的问题解决后,接下来就是R剧本下的商店,商店的数据是放在data中的,共有128个,依次对应R_000至R_127,这个继续扩充既麻烦也浪费,所以我修改为R128开始的商店都是用R127的商店(一般打到这个阶段,商店都是可有可无的,只是为了保证游戏功能的完整性),唯一可能改变的是打开仓库和买卖物品的人物,这里可以使用72指令来指定一下
D:接着下来就可以进S剧本了,进入S剧本要面对战役名称和战场地图这2个问题
战役名称是放在imsg中的,共有99(对应的战场地图是0-98)个,如果直接扩充imsg,和扩充data一样是个麻烦的事情,所以把这个2个问题用一个72 指令来解决
下面用一个实例来说明剧本的写法(在已经完成了以上A项前提条件的情况下)
比如在任意一关想通过11指令把剧本跳到R_137,并且能正常进入S_137
首先在要跳关的地方要写以下剧本
这样剧本就可跳到R137(就是1*100+37)
进入R137后,到战前准备阶段(出现4按钮),这时候点买卖或装备按钮先会有一个人说话,这里都是使用第127号商店,商店买卖的物品可以一样,但说话的人可能会变化,所以可以使用72指令来专门指定一下
只要在军帐设定这个section里写一个72指令
数字信息必须填7,10和20是人物的data号,表示打开仓库和买卖物品的人
注意 1 本例是到了R137,超出了可使用的商店数量,所以才要这样设置,如果是R127之前的剧本,是不需要这要设置的
2 有些人干脆修改去掉了这2个说话的人,那也就不必这样设置了
3 有些剧本不进军帐,而是直接进入S剧本,用4a指令出战,同样可以无视商店
接下来可以出兵了,剧本是可以自动切换到S137的,但是剧本编辑器有限制,使用27指令战场地图只能使用到98号地图,(在6.x版本里对应m098.jpg),这里先修改了27指令的最后一个“无”对应m099.Jpg
例如要使用m137.jpg作为战场地图就写以下剧本指令
其中72指令的写法为
数字信息必须填8,第一行的1表示地图要使用1*100+37=137号战场地图(m137.jpg),第二行的则是本关的战役名称
注意 如果是使用第99号地图,那么72指令的第一行要填0,27指令要选最后一个“无”
如果是使用98或更前的战场地图,那么照旧按以前的写法,不需要72指令。
S_137结束后会自动转到R_138,无需特别处理。
综上,在不扩充data和imsg的情况下,实现了剧本破百,理论上可以达到R_999
-------------------分割线---------------------------------------------------------------------分割线-------------------------------------------------------------------分割线----------------------------
问题解答
Q:6.1引擎和扳手不兼容?
A:经测试,问题出在战场功能,这个功能区的保存按钮千万不要点,如果点了并保存了进度,那么这个进度必定会造成游戏异常退出。
万一出现了这样的坏存档,要么删掉这个存档,要么用UE打开有问题的存档,修改1003E处为0
Bug修正
一、 6.1引擎开了装备自动升级后,人物如果19级却在自动商店里买到了中级装备带出场后,中级装备会直接升到5级……
方法1:因为开启了自动商店,而自动商店中高级装备出现的等级分别是平均等级18、38,而正常的应该是20、40,二者不一致,导致人物19级却能在自动商店里买到中级装备
所以可以修改下面2个位置
00472C15 |. 3C 12 CMP AL,12 ‘商店中级装备出现等级 18级 要改为20
00472C1A |. 3C 26 CMP AL,26 ‘商店高级装备出现等级 38级 要改为40
其实应该要放在全局设置里比较好,漏了。
这个方法比较简单,但治标不治本,要想完全解决,看方法二
方法2:
00407DC6 |. /76 21 JBE SHORT 00407DE9
00407DCA |. /EB 1D JMP SHORT 00407DE9
00407DDA |. /EB 0D JMP SHORT 00407DE9
00407DE1 |. 50 PUSH EAX ; /Arg1
00407DE2 |. E8 B2010000 CALL 00407F99 ; 00407F99
00407DE7 |. 59 POP ECX
00407DE8 |. 40 INC EAX
00407DE9 |> C9 LEAVE
0040C993 . 83EC 20 SUB ESP,20
0040C9E4 . 894D E4 MOV DWORD PTR SS:[EBP-1C],ECX
0040C9E7 . E8 D66D0700 CALL 004837C2
0040C9EC . 894D F0 MOV DWORD PTR SS:[EBP-10],ECX
0040C9EF . E8 8A310C00 CALL 004CFB7E
0040C9F4 . 8945 EC MOV DWORD PTR SS:[EBP-14],EAX
0040C9F7 . FF75 F4 PUSH DWORD PTR SS:[EBP-C]
0040C9FA . 8B4D F0 MOV ECX,DWORD PTR SS:[EBP-10]
0040C9FD . E8 A1B3FFFF CALL 00407DA3
0040CA02 . 894D E0 MOV DWORD PTR SS:[EBP-20],ECX
0040CA05 . 8945 DC MOV DWORD PTR SS:[EBP-24],EAX
0040CA08 . 8B4D F0 MOV ECX,DWORD PTR SS:[EBP-10]
0040CA0B . E8 D1EAFFFF CALL 0040B4E1
0040CA10 . E9 47020000 JMP 0040CC5C
0040CA15 90 NOP
0040CA16 90 NOP
0040CA17 90 NOP
0040CA18 90 NOP
0040CA19 90 NOP
0040CA1A 90 NOP
0040CA1B 90 NOP
0040CA1C 90 NOP
0040CA1D 90 NOP
0040CA1E 90 NOP
0040CA1F 90 NOP
0040CC5C > 85C0 TEST EAX,EAX
0040CC5E . 75 18 JNZ SHORT 0040CC78
0040CC60 . 8B4D F0 MOV ECX,DWORD PTR SS:[EBP-10]
0040CC63 . 0FB651 11 MOVZX EDX,BYTE PTR DS:[ECX+11]
0040CC67 . D1EA SHR EDX,1
0040CC69 . 0FB682 272448>MOVZX EAX,BYTE PTR DS:[EDX+482427]
0040CC70 . 0345 E0 ADD EAX,DWORD PTR SS:[EBP-20]
0040CC73 . 3945 E4 CMP DWORD PTR SS:[EBP-1C],EAX
0040CC76 . 77 22 JA SHORT 0040CC9A
0040CC78 > 8A45 DC MOV AL,BYTE PTR SS:[EBP-24]
0040CC7B . 3A45 E8 CMP AL,BYTE PTR SS:[EBP-18]
0040CC7E . 73 03 JNB SHORT 0040CC83
0040CC80 . 8A45 E8 MOV AL,BYTE PTR SS:[EBP-18]
0040CC83 > 8B4D EC MOV ECX,DWORD PTR SS:[EBP-14]
0040CC86 . E8 E12E0C00 CALL 004CFB6C
0040CC8B . 8AE2 MOV AH,DL
0040CC8D . 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
0040CC90 . 6BC9 03 IMUL ECX,ECX,3
0040CC93 . 034D F8 ADD ECX,DWORD PTR SS:[EBP-8]
0040CC96 . 66:8941 2F MOV WORD PTR DS:[ECX+2F],AX
0040CC9A >^ E9 26FDFFFF JMP 0040C9C5
方法二要用ob才行,比较复杂,能力不足者慎用