标题: 曹操传兵种特性初探, 新增物理攻击与兵种相克部分
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4717
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2005-6-4 09:59 资料 主页 文集 短消息 看全部作者
曹操传兵种特性初探

在exe中有三组状态类兵种特性的描述,可以手工更改为其他,每组的排列为:
{特性兵种,特性概率,特性效果}
{4D50, 4D54, 4D62}  (原值为土偶60%混乱)
{4DB4, 4DB8, 4DC6}  (原值为木人60%中毒)
{4E18, 4E1C, 4E2A}  (原值为驯熊师60%麻痹)

特性兵种即为兵种代码,取值范围00-34;特性概率按百分比计算,取值范围00-64;特性效果取值为为以下效果的或:
02麻痹,04禁咒,08混乱,10中毒


6C33,6C39穿透攻击起止兵种(原值为重炮车至霹雳车)
6C47 穿透类型(原值为十字穿透)
6C3F 穿透攻击兵种(原值为驯虎师)
6C4D 穿透类型(原值为蛇矛穿透)

兵种代码取值范围00-34,注意6C39一定不小于6C33,6C3F一定大于6C39;穿透类型取值如下:
01十字,02九宫,03大没羽箭,04蛇矛,05长蛇矛(穿六个),06大大没羽箭,其余为正常攻击。


每回合起始时对周围8人自动释放状态魔法:
兵种判定:3C627(原值为0C是舞娘)
释放条件:3BC05-06,原值为有人有异常状态时释放,改为9090则无条件释放
策略释放范围:8C968起的64个字节记录了此兵种相对于受计方的位置。共8组坐标,每8个字节一组,前四个是横坐标,后四个是纵坐标。
魔法效果:3BC1B,原值为06,改变异常状态。取值范围为00-08,分别是改变攻防精暴士移异体法的状态,其中改变体法无动画效果。
魔法效果值:3BC16-3BC19,四字节。
对于攻防精暴士移,00为削弱,06为加强,03为正常,移动力没有削弱效果,但00状态时即使使用强行也只能变成03,移动力不会增加。
对于异常状态,02-1E为增加异常状态,具体异常状态代码见本帖状态类兵种特性部分。82-9E为驱除对应异常状态。(原值为9E,驱除所有异常状态)
对于体力和法力,效果值为减少值,即使在这里填上补码也不能变为增加值。若想增加体力,需要把5A02A-2F,5A053-5A057变为90;若想增加法力,需要把5A0E6-6A0EB,5A10F-5A114变为90。

利用最后512字节,可以增强上述效果。


可以考虑把敌方某BOSS兵种改为特性概率64,特性效果1E,穿透类型06,攻击范围大大没羽箭,每回合开始自动在包括自身的没羽箭范围内,释放霸气强行驱除异常大补给。策略动画可以新做,也可以就用用霸气。

战前选择出场时人物的排列顺序:
记录在自85608起的1B字节,第一个19是皇帝,第二个00是群雄。在说岳里岳云的兵种是皇帝,结果就在排岳飞前面,把二者交换即可。

自定义转职等级,请修改以下三个地址开始的六个字节:
1BAE5 转职所需要的等级
1BB05 显示未达到等级使用印绶时的提示:下一个兵种需要多少等级以上
680B3 显示达到等级未转职的兵种颜色为红色
改为:6B、D2、YY、83、C2、XX
其中XX是第一次转职的等级,YY是两次转职的等级差。
敌方小兵转职等级:
第一次转职41D2B、41D82
第二次转职41D5D
新加入武将转职等级:
第一次转职B8A5
第二次转职B896

[ 本帖最后由 东方无翼 于 2006-10-23 10:28 编辑 ]


精华帖
顶部
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4717
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2005-6-12 08:49 资料 主页 文集 短消息 看全部作者


QUOTE:
原帖由幽人独往来于2005-06-12, 0:54:18发表


好像还是不行啊…………

怎么会不行,当然3BC16-3BC19处的魔法效果值必须以补码表示才是增加值,否则是减少值。
而5A02A-2F,5A053-5A057的作用是去高位取低位,相当于屏蔽了补码的效果,如果不改的话,效果值改成补码也是不行的。


精华帖
顶部
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4717
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2005-6-14 09:46 资料 主页 文集 短消息 看全部作者


QUOTE:
原帖由菜心虫于2005-06-14, 8:54:47发表
我想知道兵种相克在什么地方。想设计一个兵种对另一个兵种有20%加成应该在哪里改呢?

这一段代码较长,能读汇编的朋友不妨自己去看。

0043BDAB起,弓兵、弓骑、炮车对骑兵、驯虎师、驯熊师物理攻击伤害150%。

0043BDDF起,特殊效果为3D-减轻远距损伤的宝物对以上部队伤害的影响。

0043BE35起,步兵对骑兵的物理攻击伤害60%。

0043BE71起,步兵对弓兵、炮车物理攻击伤害150%。

0043BE98起,特殊效果为2D-骑马攻击的宝物对骑兵伤害的影响。

0043BEF0起,反击伤害为原伤害值的75%。

0043BF25起,生成0-6的随机数做为伤害浮动范围。

0043BF75起,伤害值不得超过生命值。
精华帖
顶部
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4717
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2005-6-21 17:50 资料 主页 文集 短消息 看全部作者
转圈的代码非常长,详细描述了那个部队是怎样转圈的,转圈分为几步,每一步对应的朝向、姿势等等,不想转圈的话直接删除就可以了。

释放的条件并不是可选的,若想有新的条件就需要自己手写了。比如HP未满,需要读取当前HP,总HP,两相比较,总之会比较麻烦。
精华帖
顶部
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4717
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2005-8-31 21:58 资料 主页 文集 短消息 看全部作者


QUOTE:
3F450 气合加攻击还是精神 00-02
    依次是策士、风水、道、马策、舞、西凉、黄巾、海盗、熊、虎、都督、咒术、仙人
    00和01表示加精神(不明白为什么要分成两个) 02表示加武力

如果要修改列表以外的兵种气合加什么,或者让某些兵种既加攻击又加精神,很难但并非不能做到,需要修改几十字节的汇编代码。

理论上可以制作出兵种特性的修改器,不过兵种特性修改量大,许多修改方向互相并不兼容;修改次数少,改好后一般不会再动。不太适合做成修改器。

3B822开始12个字节是策略对从西凉骑兵开始的12个兵种的伤害加成,可以改为减少。12个兵种分别是西凉骑兵、黄巾军、海盗、驯熊师、驯虎师、都督、咒术士、仙人、辎重队、粮草队、木人、土偶。
精华帖
顶部
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4717
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2005-9-2 00:05 资料 主页 文集 短消息 看全部作者
观看3B822开始的12个字节,可知策略附加伤害值共有四种取值:00、01、02、03
(以下均用虚拟地址代替exe文件中的实际地址,二者相差00400C00)

:0043C167 8A8122C44300            mov al, byte ptr [ecx+0043C422]
:0043C16D FF248512C44300          jmp dword ptr [4*eax+0043C412]
以上两句中,ecx取值范围00~0B,而eax是00~03,根据eax的不同,程序跳转到不同的地方。

再看0043C412附近的跳转表项:
:0043C412 74C14300                DWORD 0043C174
:0043C416 74C14300                DWORD 0043C174
:0043C41A 88C14300                DWORD 0043C188
:0043C41E 9AC14300                DWORD 0043C19A
00和01跳转到0043C174,02跳转到0043C188,03跳转到0043C19A

跟踪到0043C174进行研究:
:0043C174 8B45FC                  mov eax, dword ptr [ebp-04]
:0043C177 6BC00B                  imul eax, 0000000B
:0043C17A 33D2                    xor edx, edx
:0043C17C B90A000000              mov ecx, 0000000A
:0043C181 F7F1                    div ecx
:0043C183 8945FC                  mov dword ptr [ebp-04], eax
:0043C186 EB12                    jmp 0043C19A
这段表示110%的策略伤害加成,把0043C179的0B改成其他数,可以得到其他增加或者减少的伤害加成,但所有原110%加成的兵种都会同时更改。即除了伤害不变以外(03),只能有两类策略加成(00和01算一类,02算一类),设置位分别是0043C179和0043C18D。

如果想给所有兵种自定义策略伤害加成值,请参考博雅张生的《曹操传策略伤害种类增加方法》
http://www.xycq.net/forum/index.php?showtopic=62824
精华帖
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2025-7-22 23:36
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.013451 second(s), 9 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP