- 积分
- 8265
UID10906
好友
记录
日志
相册
回帖0
主题
分享
精华
积分8265
阅读权限60
注册时间2013-10-23
最后登录1970-1-1
在线时间 小时
卖家信用
买家信用
听众
收听
性别保密
|
楼主 |
发表于 2015-4-9 12:38
|
显示全部楼层
5.9 正式版特别更新 修正头像变化的bug
2013-4-3 特别更新
1 修正头像变化的bug
这个bug一直伴随新引擎而存在了好几年,带来了无数的困扰,但以前一直不知道它的触发机制,无法进行修正,这次由于WHITESHIP发现了原因,终于可以解决了
改法很简单,就两句代码
00483EF8 |. 68 00100100 PUSH 11000
00483FC7 |. 81C2 00100100 |ADD EDX,11000
5.6-5.8通用
2 增加了辅助物品的可装备兵种的修改
3 增加了为特定武将指定特定策略
以上两个我曾经发过帖子http://www.xycq.net/forum/thread-278060-1-1.html介绍
注意第三点,此次发布的exe中的函数代码如下
00450931 /$ 55 PUSH EBP ; 武将习得策略
00450932 |. 8BEC MOV EBP,ESP
00450934 |. 51 PUSH ECX ; 82
00450935 |. 52 PUSH EDX
00450936 |. E8 42B5FBFF CALL Ekd5.0040BE7D
0045093B |. 50 PUSH EAX
0045093C |. BA A45B4600 MOV EDX,Ekd5.00465BA4
00450941 |. EB 01 JMP SHORT Ekd5.00450944
00450943 |> 42 /INC EDX
00450944 |> 803A FF CMP BYTE PTR DS:[EDX],0FF
00450947 |.^ 75 FA |JNZ SHORT Ekd5.00450943
00450949 |. 42 |INC EDX
0045094A |. 803A FF |CMP BYTE PTR DS:[EDX],0FF
0045094D |. 74 29 |JE SHORT Ekd5.00450978
0045094F |. 8B4D FC |MOV ECX,DWORD PTR SS:[EBP-4]
00450952 |. 3A0A |CMP CL,BYTE PTR DS:[EDX]
00450954 |.^ 75 ED \JNZ SHORT Ekd5.00450943
00450956 |> 42 /INC EDX
00450957 |. 8B45 F4 |MOV EAX,DWORD PTR SS:[EBP-C]
0045095A |. 66:3B02 |CMP AX,WORD PTR DS:[EDX]
0045095D |. 74 0A |JE SHORT Ekd5.00450969
0045095F |. 803A FF |CMP BYTE PTR DS:[EDX],0FF
00450962 |. 74 14 |JE SHORT Ekd5.00450978
00450964 |. 83C2 02 |ADD EDX,2
00450967 |.^ EB ED \JMP SHORT Ekd5.00450956
00450969 |> 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
0045096C |. E8 5F5CFBFF CALL Ekd5.004065D0
00450971 |. 8A4A 02 MOV CL,BYTE PTR DS:[EDX+2]
00450974 |. 3AC1 CMP AL,CL
00450976 |. 73 04 JNB SHORT Ekd5.0045097C
00450978 |> 33C0 XOR EAX,EAX
0045097A |. EB 06 JMP SHORT Ekd5.00450982
0045097C |> 33C0 XOR EAX,EAX
0045097E |. 40 INC EAX
0045097F |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
00450982 |> 8BE5 MOV ESP,EBP
00450984 |. 5D POP EBP
00450985 \. C3 RETN
和帖子里的位置不一样,数据地址在465BA4,目前用两个FF填充了,表示没有给任何武将特别指定策略
4 直接使用BMP文件作为战场地图,并自动生成小地图
这个改动是参考了砖家叫兽的改法,并对代码进行了优化
以往的战场地图要先制作好bmp索引文件,然后用战场地形编辑器转化为引擎可识别的战场地图,同时还要生成小地图和调色板,并要以文件的形式保存
如果采用这个功能,只需要用战场地形编辑器编辑好战场地形即可,战场地图转换和战场小地图都由引擎即时生成,这样就可废除spalet.e5(战场地图调色板) 和Smlmap.e5 (s战场小地图)这两个文件了。
使用整形变量4045来控制
该变量默认为0 照旧
设置为1时,直接使用bmp文件作为战场地图,文件名要改为HM??.Bmp的样式
5 修正了case 指令不能嵌套使用的bug
6 关于在战斗中改变HPcur和MPcur
这个貌似有三条指令可以实现,不过测试后发现都有缺陷
38指令 虽然有这个选项,但根本没用
4d指令 只能减少,不能增加或直接指定
78指令 不能防止数据溢出
本次修正了38和4d指令,修正后
38指令可正常使用
4d指令通过预先设置整形变量4044来使用(在需要改变HPcur和MPcur时才需要设置4044的值)
4044=0 减少 (最多减少到1)
4044=1 增加 (可防止溢出)
4044=2 等于 (可防止溢出)
------------------------------------------------------------
5.9正式版说明
1 修复了大地图中真彩头像的淡入淡出以及单挑阵亡者头像的变黑白效果
2 新增了功勋的自由分配功能
在开启功勋的情况下, 功勋可以自由分配,有2种模式
通过整形变量4047(默认为0) 来设置
4047为0时 每个武将的功勋只能自由分配给自己
4047为1时 武将之间可以相互分配功勋 在这种情况下,还能通过设置整形变量4048的值作为全队的奖励功勋
3 剧本放入RS文件夹
4 修正测试版的一些bug
5.9测试版说明
本次主要是综合了论坛里许多网友的一些研究成果
1. 自定义武将
这个在论坛里已经发布很久了,5.6至5.8均有相应的修改版本,因此这次给加上了,功能基本上都差不多,只是区分了姓 名 字,以方便使用
在exe里的一些可自行修改的代码 (红色字体部分)
0045A649 |. 3C 01 |CMP AL,1 ; 可选择的兵种数 最多8 个,目前设置为01 表示可选兵种只有1个,
; 注意01的地址是45A64A
0045A64D |. 0FB680 6AEF4C>|MOVZX EAX,BYTE PTR DS:[EAX+4CEF6A]; 可选择的兵种类型在4CEF6A开始的8个字节,可直接
; 改exe ,也可在剧本中利用指针变量来设置。 建议用
; 指针变量,利用剧本指令随时调节
例如要自定义0号武将,使用下面的剧本指令
剧本示例
18:事件名称设定 原创武将登场
14:对话 &吕布\n对了,本游戏还有个特色,就是自创人物。\n现在就请您输入自创人物名称和能力吧!
1:子事件设定
2:内部信息 ; 指针变量的运算是用来定制可选兵种
; 使用71指令来调用自定义武将对话框,参数为0或1。
; 整形变量4054作为 71指令的前置参数,代表需要自定义或重命名的武将data号。
3b:武将加入 0:刘备 Data加入 +2级 ;自定武将必须先加入,再自定义,否则能力仍然是从data里获取
77:变量运算 指针变量(p) 0 = 常数 4564554 ;先给指针变量0赋值,4564554的16进制就是45A64A
77:变量运算 整型变量 4076 = 常数 1 ;准备做Byte运算 要预先设置4076为1
77:变量运算 指针变量(*p) 0 = 常数 8 ;做Byte运算 设置45A64A的值为8(8为最大值),这样可选兵种
达到8个
;以上设置完成后,可选兵种达到8个,可根据具体需要设置,如果不
;设置,则只有一个兵种可选
――――――――――下面是设置可选的兵种类型――――――――――――――――
77:变量运算 指针变量(p) 0 = 常数 5042026 ;给指针变量0赋值,5042026的16进制就是4CEF6A
77:变量运算 整型变量 4076 = 常数 0 ;准备做Dword运算 预先设置4076为0
77:变量运算 指针变量(*p) 0 = 常数 50462976 ;给指针变量0赋值,50462976的16进制就是03020100,设置
; 后可以选择00-03号兵种可根据具体需要设置。
77:变量运算 指针变量(p) 0 += 常数 4 ;给指针变量0的地址 +4,指向4CEF6E
77:变量运算 指针变量(*p) 0 = 常数 117835012 ;给指针变量0赋值,117835012的16进制就是07060504,设置
;后可以选择04-07号兵种可根据具体需要设置。以上指令执行
; 后,可选兵种数为8个,可选类型为00-07号兵种
;注意 上面蓝色的指令如果没有,就是按exe原始的设置,只能选择一个0号兵种
77:变量运算 整型变量 4076 = 常数 0 ;准备做Dword运算 预先设置4076为0
77:变量运算 整型变量 4054 = 常数 0 ;整形变量4054放在71指令之前,表示要自定义的武将data号
71:特效请求 0 ;71指令的特效号可以使用0 或1 。
;如果用0那么“姓名字”都必须输入;用1则可不用输入“字”,但剧本中也
;不能使用表示“字”的格式化文字
执行71指令后的截图
图片附件: a1.jpg (2013-1-18 23:29, 13.19 K)
14:对话 &*.0\n你好!我姓*+0名*,0字*-0。\n*+0是*.0的*+0,\n*,0是*.0的*,0,\n他们一般叫我*+0*-0
;这里是一些格式化后的文字
;*.0表示人物姓名 *+0表示人物的姓 *,0表示人物的名 *-0表示人物的字;其中0表示人物data号
;可以根据需要搭配使用。 诸如 *+0将军(表示姓+将军) *+0*-0(表示姓+字)这类的用法
图片附件: a2.jpg (2013-1-18 23:29, 24.01 K)
14:对话 &吕布\n您的自创人物名称是“*.0”。
0:事件结束
注意 1 自定义武将后,剧本中所有涉及到他的姓名的指令都要使用这样的格式化文字来代替
2 最多可自定义9名武将
3 如果作者提供给玩家的可选兵种太多,就需要准备多套s形象,并且在上面的指令后还要判断玩家选择的兵种,然后再指定s形象
所以我建议可选兵种数量不要太多,按默认值一个最好,只需要设置一下可选兵种类型就行
―――――――――――――――以上是自定义武将的使用方法―――――――――――――――――――――――
此外,又根据自定义武将的功能扩展了一个重命名武将的功能
这个功能我主要是考虑用在2个方面,更多功能靠大家自己去发掘。
1 战场上的敌军和友军 一般战场上的总是杂兵占多数,这样就要在data里设置大量杂兵,而且大部分兵种都要有杂兵,由于5.7版开始就
扩充了兵种数,如果每个兵种都设置杂兵,要占用很多data里的人物位置,如果利用重命名功能并配合兵种改变功能,就可以减少data
里的杂兵数量。一般给常用的常规兵种设多一些杂兵,比较冷门的兵种可以不设杂兵,利用 重命名功能+整形变量4081+兵种改变来实现
2 不会上战场的npc 比如说要做一个大量自由R的mod,会需要大量的npc来做为点击场景标示,有可能出现npc不够用的情况,有了武将
重命名功能就能很好的解决这个问题,只要少数npc重命名后就可以反复使用
注意 重命名武将最多可以有48个,第一次改名时可以任意选择一名武将,但会占用掉一个改名位置,再次改名时可以继续选择这名武将,不会再占用新的位置,也就是说同一名武将可以通过改名和改兵种来扮演不同的角色
剧本示例
用于R剧本的改名指令
3b:武将加入 1:关羽 Data加入 默认等级; ;给我军改名必须先加入
1:子事件设定
2:内部信息 ;整形变量4054: 作为 72 指令前置参数,代表需要自定义或重命名的武将data号 72指令参数为0 文字信
;息表示修改后的名字 如果是data加入,必须加入后改名
;如果不会加入我军或内存加入 则无任何限制,可以随时改名\n\n永远不会
;上s战场的npc也可以随时改名,而会上战场的则要在46 47指令后改名
77:变量运算 整型变量 4054 = 常数 1 ;4054 72 指令前置参数,代表需要自定义或重命名的武将data号
72:信息传送 0 关二 ;72指令参数为0 文字信息表示修改后的名字,和自定义武将的区别是不必输“字”
77:变量运算 整型变量 4054 = 常数 2
72:信息传送 0 张三
77:变量运算 整型变量 4054 = 常数 117 ;如果这是一个不会上s的npc,可以随时改名
72:信息传送 0 焉刘
0:事件结束
说明 上面的指令里有三次使用了72指令来改名,其实给我军改名意义不大,主要是第三次是给npc的改名,这名npc可以通过改名和改R形
象出现在不同的R场景下
――――――――――――――――
剧本示例
用于S剧本的改名指令
Scene
Section
2:内部信息 战前过渡
0:事件结束
44:战斗初始化
45:战场全局变量 未知0 未知0 3 默认等级 Para50-0 无 Para50-1 0:刘备 晴好 晴/晴/阴/晴/阴
46:友军出场设定
47:敌军出场设定
………省略………
27:背景显示 战场地图 无 无 无 HM00
1c:绘图
24:CD音轨 Track32
1:子事件设定
2:内部信息 友军敌军改名要放在46 和47指令后 注意 不能重名 否则改名会失败
77:变量运算 整型变量 4076 = 常数 0 ;准备做Dword运算
77:变量运算 整型变量 4054 = 常数 315 ;
72:信息传送 0 茂邓 ;改变了315号武将的名字,315号武将要在前面的46 47指令里设置出场
77:变量运算 整型变量 4054 = 常数 309 ;同上
72:信息传送 0 小学生
――――――――――――――――――以上只是简单的改名―――――――――――――――――――――
77:变量运算 整型变量 4054 = 常数 426 ;准备改变426号武将的名字
72:信息传送 0 猛将1 ;改变了426号武将的名字
77:变量运算 整型变量 4081 = 常数 1 ;设置整形变量4081为1 表示改变兵种后还要重新计算能力
52:兵种改变 426:弩兵1 群雄 ;改变兵种并重新计算能力
;以上四条指令就是一个完整的指令写法
;把data里的426号武将的名字由 弩兵1改为了 猛将1,兵种改成了群雄
――――――――――――――――――以上既改了名又改了兵种――――――――――――――――――
77:变量运算 整型变量 4054 = 常数 484
72:信息传送 0 山贼改
77:变量运算 整型变量 4054 = 常数 586
72:信息传送 0 猛将2
77:变量运算 整型变量 4054 = 常数 788
72:信息传送 0 大将 ;这里改变了多名武将的姓名,到另一个s里还可以继续改名
………省略………
77:变量运算 整型变量 4053 = 常数 1 ; 这里设置本关援军是否会攻击敌军 默认0 否 设置1 是
; 关卡结束后要记的改回0
5a:战场操作开始
8:菜单处理 false
0:事件结束
2 可对攻的敌方
敌方阵营可以设置为援军,不过原版在正常情况下,援军和敌军是不会相互攻击的,现在可通过设置整形变量4053来让其相互攻击,
需要先在47指令中,把一部分敌军设置为援军,在设置一下整形变量4053的值为1即可。用法参考前面的s剧本示例最后的蓝色文字部分
3 存档扩充为20个,其中最后一个存档为自动存档位置,不能手动存档,只能读取
4 整合AutoDll.dll的功能
AutoDll.dll具有两个效果 是否自动存档和是否自动点鼠标, 现在把这两个效果整合到exe里了,这样AutoDll.dll可以不要了
而Autodll.ini虽然保留,但只有一个作用,即设置是否允许自动存档,而存档位置是在exe里被强制指定为第20号存档,
并不在是通过Autodll.ini来设置;另一个自动点鼠标功能则是自动被允许的,需要通过ctrl键来回切换,
5. 战场座标和地形即时显示,把战场座标和地形显示在战役框里
6 战前准备的修改 为了减少战前装备花费的时间,增加了2个按钮,一个默认装备设置按钮,一个自动装备按钮,
默认装备设置按钮 把队伍中所有武将正在装备的道具设为他们的默认装备,换句话说也就是为装备指定了主人
自动装备按钮 不论装备当前在谁的身上或是仓库里,都会被强制装备到主人身上,不过如果主人在本关强制不出战,则装备会
扔回仓库,让别人使用
这个只是个辅助功能,并不影响手动换装备,自动装备上的物品仍然可以手动换掉
这个功能只认物品编号,不考虑装备等级和经验
比如A武将本来装备1级武器,B武将装备2级武器,此时设置默认装备,再用自动装备,2个武将的武器可能会互换
7. 修正了辅助策略命中不能突破命中上限的问题
强化了爆击的杀伤力,最大可达到到200%的伤害
限制了僵尸打法,在装备了龙鳞铠的情况下,MP有可能会被一下打光,具体情况视伤害而定
8. 增加2个效果
鬼神之勇 其实就是早已有的逆境攻击的全属性强化版,只是算法不同
这里是把损血的比率的一半强化到五项能力上.
这个效果需要设置一个data效果值, 为强化比率的上限
从理论上来说HP损失率最大可达到99%,一半就是48%,这个比率还是非常高,再就是为了避免一些极度冒险的打法,因此做了一点限制,
必须要设置一个data值,为强化比率的上限。
MP攻击
一般武将的MP大多没什么用处,这个效果就可让装备者的MP直接加到攻击力上.但是每次受到攻击会损失一些MP
这个效果必须设置一个data效果值,当MPcur减少到这个比率,就不再减少
比如某个武将的MPmax为100,而这个装备的data效果值设为了50,
那么在装备以后,该武将每次受到攻击除了损失HP外,还会损失一定的MP(目前设置为1),
直到MPcur剩下100*50%=50时,就不会再减少了
9 把存档文件和wav文件放到子文件夹里去了
存档文件的文件夹为SV ,wav文件的文件夹为WAV。
注意 必须在游戏目录里新建一个SV文件夹才能存档,另外相关文件里有一些wav文件,记得也要放到WAV文件夹里去
10 对58指令进行了修改,可以批量增加战场障碍物,该项功能只能用于58指令的前4个物体,城门照旧
对于58指令的前4个物体,原版每次只能设置一个格子的障碍物,现在可以一次设置一个矩形区域。
这里需要使用整形变量4050配合58指令来完成
4050必须在58指令前设置,用来表示矩形区域的左上角坐标,58指令里的座标表示矩形区域右下角
剧本示例
如果要把(13,12) 至 (17,15) 这个区域全部设置火,就用下面的指令
77:变量运算 整型变量 4076 = 常数 2 ‘要作word运算,先设置4076=2
77:变量运算 整型变量 4050 = 常数 3340 ‘(13,12)这个坐标转16进制是(0D,0C),0D0C转10进制是3340 左上角坐标
58:战场障碍设定 火 显示 平原 (17,15) 未知0 未知0 ‘设置障碍 (17,15)是区域的右下角坐标
只需3条指令即可
如果上面2条77指令省略,或2个座标相同,则效果和原版一样只设置一个坐标的障碍
通过对2个座标的设置,可以实现点 线 面的战场障碍添加
要取消这些障碍也是同样用这些指令
77:变量运算 整型变量 4076 = 常数 2 ‘要作word运算,先设置4076=2
77:变量运算 整型变量 4050 = 常数 3340 ‘(13,12)这个坐标转16进制是(0D,0C),0D0C转10进制是3340
58:战场障碍设定 火 不显示 平原 (17,15) 未知0 未知0 ‘取消障碍
另外58指令还可以选择“未知”这个障碍物,效果是显示一个白框,这里可用整形变量4049来控制 默认0显示,设为1不显示,这样就
可以用来隐密的改变战场地形。
剧本里还有一个21指令,不过这个指令只能添加火,因此这个指令其实完全可以用58指令替代
如果仍然要使用21指令,写法如下
77:变量运算 整型变量 4076 = 常数 2 ‘要作word运算,先设置4076=2
77:变量运算 整型变量 4050 = 常数 3340 ‘(13,12)这个坐标转16进制是(0D,0C),0D0C转10进制是3340
21:战场物体添加 (17,15) 放火 未知0 未知0 ‘添加火 (17,15)是区域的右下角坐标
还有一点需要说明 由于exe本身的限制,最多只能添加250个障碍物,再多的话就不会有任何效果
11 77 、79指令的一些补充说明
经常有人反映这两条指令有时得不到正确结果,检查后发现原因如下
在5.6版就可以通过设置整形变量4076来进行byte、word 或dword运算或比较(具体说明见5.6发布贴)
这个功能在5.8版本略有扩展,不过发布贴忘记说明了,所以有时运算时得不到正确结果
现在的功能如下
77指令
左边的变量类型可以选择*P或整形变量 运算符可以是+=、-=、= ,右边的变量类型可以选择常数或*P (5.8已有)
79指令
左边的变量类型只能选择*P 运算符三种都可以 右边的变量类型可以选择常数或*P
其余的变量类型或运算符均为dword运算
此外本次还修了了77指令的 %= 的运算,原来是模运算,好像没啥用处,所以按剧本表示的改为了百分比运算,这个功能扩展后,上
面提及到的变量运算均受到4076的影响,由于4076并不会自动恢复,而写剧本时也很难记住上一次把4076设置成了何值,因此可能
导致运算错误,建议每次在运算前都根据需要设置一下
12 指令 5e 武将不同测试 的修改
这个是一个无意义的指令,现在改为武将攻击(被攻击)测试
左边设置攻击方 右边设置被攻击方
可以测试普通攻击 策略攻击 围攻和必杀
引导攻击和奋战攻击只能测试出最后一个被攻击的武将
必须在一次完整的攻击结束后才能触发,如果有反击要在反击结束后触发
13 人物特效对话框
这个原来只是在看武将情报时点击头像弹出,现在出兵 装备 买进都能点击头像弹出
14 修正了练武场自动退出的恶性bug
使用这个exe必须重新开始游戏
一些有特殊意义的整形变量
4044 配合4d指令使用,表示HPcur和MPcur的运算方式
4045 战场地图是否直接使用bmp文件
4047 功勋分配模式
4048 为分配的功勋
4049 用于58指令 默认0 显示 为1时不显示未知的白框
4050 批量修改地形或添加障碍的左上角座标 配合58指令或21指令使用
4052 可以和友军交换装备 默认0 否 设置4 是
4053 援军和敌军是否对攻 默认0 否 设置1 是
4054 71 72 指令前置参数 代表需要自定义或重命名的武将data号
4055 练武场下能否获得功勋 默认0 可以获得
4057 地图头像大小
4058 兵种特性向下继承
4059 禁止必杀
4060 历史情报排序是否显示ID
4061 必杀所需SP
4062 升级显示能力增加对话框 默认0 不显示 1 显示
4063 AI行动顺序
4064 历史情报排序
4065 开启AI地形利用
4066 开启攻击方向伤害加成
4067 保留 测试丢弃物品
4068 丢弃物品 记录物品持有者的Data 使用6F指令后自动赋值
4069 记录被丢弃物品的等级 使用6F指令后自动赋值
4070 记录被丢弃物品的经验 使用6F指令后自动赋值
4071 历史情报 配合16指令使用
4072 键盘
4073 开启破百的能力加成 由于吃果上限为100,所以想要获得破百加成的前提是使用功勋模式(能力上限为110),否则只能是
靠修改了。
4074 启用我方功勋系统
4075 功勋系统 开启AI方成长和新加武将成长
4076 辅助77 79 指令 1 byte 2 word 0 dword
4077 使用伪随机 默认2 不使用
4078 用来设置第6个新策略的效果
默认状态为0 敌方中招后成为可控制友军
设置为1 敌方中招后成为不可控制友军
设置为2 敌方中招后暂停行动
4079 精进状态下是否获得人物exp
默认为0 只能获得双倍的装备经验,设置为1 还能获得双倍的人物经验
4080 得到新的物品
4081 改变兵种后是否重新计算能力
4082 单挑失败方是否阵亡 默认为 0 不阵亡 1 阵亡
4083 指令单挑模式(S战场形式) 默认为 0 自动单挑 1 舌战模式 2 单挑模式
4084 返回比武结果
4085 敌方HP
4086 敌方四能力
4087 练武场单挑模式(对话框形式) 默认为0 自动单挑 1 升级模式 2 单挑模式
4088 4088来设置,默认为0,即开启自动商店,设置1关闭,但需要在Data中设置商店物品
有时为了游戏需要,会把普通装备设为特殊装备或者没有使用这个类型的装备,但此时如果开启自动商店,这些装备仍然会出现在商店里,要解决这个问题,可以修改482427处的数据
原值如下
00482427 00 DB 00 ; 武器1 加攻击
00482428 03 DB 03 ; 武器2 加攻击
00482429 06 DB 06 ; 武器3 加攻击
0048242A 09 DB 09 ; 武器4 加攻击
0048242B 0C DB 0C ; 武器5 加攻击
0048242C 0F DB 0F ; 武器6 加攻击
0048242D 12 DB 12 ; 武器7 加攻击
0048242E 15 DB 15 ; 武器1 加精神
0048242F 18 DB 18 ; 武器2 加精神
00482430 1B DB 1B ; 武器3 加攻击和精神
00482431 39 DB 39 ; 护具1 铠甲
00482432 3C DB 3C ; 护具2 武将衣服
00482433 3F DB 3F ; 护具3 文官衣服
如第一个数据是00,表示编号为0、1、2的三件装备(剑类)会根据平均等级依次出现在商店。可是如果把这三件装备设为了特殊装备或没有使用,不想让它们出现在商店时,只要把00改为FF即可
5.8、5.9、6.0通用
4089 4089的值来获得2种使用地雷的工具的出售, 0 默认 没有 1有铲子 2 有遥控器
4090 4090的值来获得6种地雷的出售,默认为0,就是没有,6就是全部都有出售
4091 4091的值来获得3类地雷的出售,取值0-2 0默认 有触发雷 1 引发雷 2 遥控雷
4092 4092的值来获得5种攻击性道具的出售,默认为0,就是没有,5就是全部都有
4093 4093 这个变量默认值为0,就是以前的古代战争,为1就是现代战争
4094 4094变量默认为0,如果改为1可以让部队在升级时重新计算能力
4095 4095变量默认为0,如果改为1可以让复活的部队保留之前的SP
注意 :相关文件和配套的落叶修改器请到5.8发布贴下载
[ 本帖最后由 star175 于 2014-6-14 12:17 编辑 ]
附件: [5.9exe] Ekd5.rar (2013-4-3 10:44, 250.63 K)
该附件被下载次数 82411
附件: [RS形象指定器] rs.rar (2013-4-3 10:44, 174.87 K)
该附件被下载次数 125601
剧本指令的用法差异
exe经过多次修改,和原版相比,一些指令增加了新功能,在使用上也有些差异,虽然在一些回帖中也多有解释,但都比较零散,这次整理出来,方便使用
(没有提及的用法不变)
06我军出场限制 必须三条连用,强制出场或不出场均可设置15人(如果使用相关文件里的16人出战指令片段,可出16人)
0a初始化局部变量 除了清除局部变量外,还可清除上一关所有武将积累的SP
10许子将指导 这个指令其实没有修改过,但是有些制作者使用后会导致游戏跳出。原因就是必须让学生(0号武将)、陪练(32号武
将)、老师(157号武将)三者的相对位置要和原版一样,比如老师一开始要在陪练的上面6格处。三者的具体位置看
下原版就知道了。
15对话2 可在R剧本使用
16 信息 可配合整形变量4071进行历史情报的设置,详细介绍见5.8发布贴
另外在制作时可以设置整形变量4060=1,这样可以显示出每条记录的ID号
21战场物体添加 可配合整形变量4050对一个矩形区域放火 这个是本次新增的功能
35武将R形象改变 这条指令被废除,现在请使用77,78指令共同完成
示例
77:变量运算 整形变量0=常数 20 ;这个20就是在形象指定器里看到的R形象编号
78:整形变量赋值 0==> 0:刘备 R形象
38武将能力设定 新增功能 可以临时禁止某个武将的交换功能
38:武将能力设定 2:张飞 头像 + 1 ;禁止某个武将的交换功能
38:武将能力设定 2:张飞 头像 + 0 ;恢复某个武将的交换功能
注意 38指令的其他属性设置效果不变。
3b武将加入 用于R时的新用法
3b 武将加入 27:糜竺 离开 默认等级 '这样离开会留下物品(这个是最普遍的用法)
3b 武将加入 27:糜竺 离开 +1级 '这样离开会带走全身物品,不留痕迹
3b 武将加入 27:糜竺 内存加入 -1级 '这样重新加入后和离队时数据完全一样(能力,装备),需要先设置剧本编辑器
的人物等级和exe中的我方最高等级(原值为99级)要一致
3b 武将加入 27:糜竺 内存加入 默认等级 '这样重新加入后会调整到平均等级,并自动转职,而且会再给一套装备
Data加入无变化
新增用法用于S,实现武将的战场倒戈
data加入,目标武将倒戈为我方
内存加入,目标武将倒戈为友方
离开, 目标武将倒戈为敌方
注意 武将是带着装备倒戈的。并且相应的阵营最好留有出场位置,否则倒戈的武将直接撤退,同时在这种情况下如果是倒
戈为我方,即使当时撤退了,该武将仍然会加入我方队伍中。
如果是倒戈为友方或敌方,则该武将的AI统一转为主动出击
3d获得物品 配合整形变量4080=1 来得到新增加的物品,这些物品都是放在Star.e5中,这个指令下拉列表的第27件物品对应
第一件新增物品
3e加入装备设定 由于扩充了物品,必须修改剧本编辑器的CaoCaoSceEditor.ini文件,这个指令才能正常显示物品列表,具体说明见
5.8发布贴
45战场全局变量 这条指令用法其实一样,只要注意必须设置剧本编辑器右方列表中的人物等级和exe中的我方最高等级(原值为99
级)要一致才行,否则会出现敌方等级异常的现象。如果修改了exe中的我方等级上限,也要同时修正剧本编辑器的
人物等级和这条指令的等级加成
47敌军出场设定 如果设置了敌军为援军,可通过设置整型变量4053 (默认0 否、1 是 )来让敌军和援军互相攻击
48敌方装备设定 和3e加入装备设定 一样必须修改剧本编辑器的CaoCaoSceEditor.ini文件
4a我军出场强制设定 和06指令一样 必须连用3条
52兵种改变 配合整形变量4080=1 ,在改变兵种后重新计算能力
同时还要修改剧本编辑器的配置文件 CaoCaoSceEditor.ini
TroopNum=80 ; 才能读取到所有兵种
58战场障碍设定 和 21战场物体添加 一样
59战利品 配合整形变量4080 来得到新增加的物品,4080取值1-3,具体用法见5.6发布贴,物品的对应关系和3d获得物品一 样
5e武将不同测试 改为武将攻击测试 是本次新增的功能
68单挑开始 这个主要是新增手动单挑和舌战,具体用法见5.6发布贴和相关文件里的剧本示例
以下为原版没有的新指令
6C武将能力复制 把左边武将的能力 装备 及功勋复制给右边的武将,如果两个武将为同一人,则是重新计算该武将的能力
6F丢弃物品 还是用整形变量4080 来丢弃新增加的物品,物品的对应关系和3d获得物品一样
71特效请求 配合整型变量4054来自定义武将 是本次新增的功能
72信息传送 配合整型变量4054来重命名武将 是本次新增的功能
77变量运算 可以通过设置整形变量4076来进行byte、word 或dword运算
79数字/指针变量测试 可以通过设置整形变量4076来进行byte、word 或dword 比较
特别说明
对于手动单挑如何设置敌方能力很多人搞不懂,这里再讲解一下
基本知识
4086号整形变量用来设置敌方的4个能力值,通过这项设置可以对单挑难度进行一些调节(如果是通过菜单来使用练武场,则敌方该项能力默认为0)
由于每一个整形变量是由4个Byte型变量组成,为了较好的进行说明,我把这4个byte型变量用ABCD表示
对应关系
A 调节我方突击对敌方回避的成功率
算法:我方的该项能力-A值
B 调节敌方突击对我方回避的成功率
算法:64H+B值-我方的该项能力
C 调节敌方攻击对我方防御的成功率
算法:64H+C值-我方的该项能力
D 调节我方攻击对敌方防御的成功率
算法:我方的该项能力-D值
在5.6帖子里举的例子是01020304,看来是误导了不少人,以至不少人都看不懂
这里另举一例
如果想降低我方突击对敌方回避的成功率,就要通过增加A值来实现,原来的例子是1,现在改为5
想增加敌方突击对我方回避的成功率,就要通过增加B值来实现,原来的例子是2,现在改为10
想增加敌方攻击对我方防御的成功率,就要通过增加C值来实现,原来的例子是3,现在改为6
想降低我方攻击对敌方防御的成功率,就要通过增加D值来实现,原来的例子是4,现在改为12
首先要把这4个数据转为16进制数据,就是 05 0A 06 0C
直接拼在一起就是50A060C,再把这个16进制数转为10进制数就是84542988
剧本写出来就是
77 变量运算 整形变量 4076=0 ;要做dword运算 4076设置为0
77 变量运算 整形变量 4086=84542988 ; 设置敌方能力
77 变量运算 整形变量 4085=7 ; 设置敌方HP 随便给
77 变量运算 整形变量 4083=2 ; 68指令的前置参数 准备调用手动单挑
然后才是使用68 单挑指令
要是这样还是看不懂那我也没办法了 |
|