Board logo

标题: 致命一击的改良 [打印本页]

作者: godtype    时间: 2009-2-20 10:54     标题: 致命一击的改良

以原版曹操传为例,当攻击武将的士气大于等于被攻击武将的士气的3倍时,致命一击的机率为100%,必定致命一击,必定攻击伤害是150%。
士气再高,机率也是100%,伤害也是150%,个人认为有点浪费。所以我就对致命一击作出小小的改良,当致命一击的机率大于100时,致命一击的伤害为 致命一击伤害*致命一击机率
比如A武将对B武将的普通攻击伤害是100,A武将对B武将的致命一击机率为110%,以前的最终伤害是150,我改良后就是100*150%*110%=165。

具体的修改是:
00405D9B  |. 6A 29          PUSH 29
00405D9D  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
00405DA0  |. 8B48 08        MOV ECX,DWORD PTR DS:[EAX+8]
00405DA3  |. E8 611C0000    CALL 00407A09
00405DA8  |. 85C0           TEST EAX,EAX
00405DAA  |. 74 04          JE SHORT 00405DB0
00405DAC  |. B0 64          MOV AL,64
00405DAE  |. EB 3E          JMP SHORT 00405DEE
00405DB0  |> 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
00405DB3  |. 6BC9 03        IMUL ECX,ECX,3
00405DB6  |. D1E9           SHR ECX,1
00405DB8  |. 394D FC        CMP DWORD PTR SS:[EBP-4],ECX
00405DBB  |. 72 15          JB SHORT 00405DD2
00405DBD  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00405DC0  |. 2BC1           SUB EAX,ECX
00405DC2  |. 69C0 8C000000  IMUL EAX,EAX,8C
00405DC8  |. 33D2           XOR EDX,EDX
00405DCA  |. F775 F8        DIV DWORD PTR SS:[EBP-8]
00405DCD  |. 83C0 1E        ADD EAX,1E
00405DD0  |. EB 1C          JMP SHORT 00405DEE
00405DD2  |> 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
00405DD5  |. 394D FC        CMP DWORD PTR SS:[EBP-4],ECX
00405DD8  |. 72 12          JB SHORT 00405DEC
00405DDA  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00405DDD  |. 2BC1           SUB EAX,ECX
00405DDF  |. 6BC0 1C        IMUL EAX,EAX,1C
00405DE2  |. 33D2           XOR EDX,EDX
00405DE4  |. F775 F8        DIV DWORD PTR SS:[EBP-8]
00405DE7  |. 83C0 02        ADD EAX,2
00405DEA  |. EB 02          JMP SHORT 00405DEE
00405DEC  |> B0 01          MOV AL,1
00405DEE  |> 8BE5           MOV ESP,EBP
00405DF0  |. 5D             POP EBP
00405DF1  \. C3             RETN
上面是致命一击机率的计算,我这里是改成了岳飞传的爆击率,再将100的上限去掉了。下面的才是伤害的计算。

00405E06   . 83EC 20     SUB ESP,20

00405EFB   . E8 69FEFFFF    CALL 00405D69  -----获取致命一击的机率
00405F00   . E9 12340000    JMP 00409317

(注:如果是STAR175带必杀的引擎,这里要加一条 MOV DWORD PTR SS:[EBP-20],0)
00409317     8945 E0        MOV DWORD PTR SS:[EBP-20],EAX
0040931A     3C 64          CMP AL,64
0040931C     76 02          JBE SHORT 00409320
0040931E   . B0 64          MOV AL,64
00409320   > 25 FF000000    AND EAX,0FF
00409325   .^E9 DBCBFFFF    JMP 00405F05

先将机率数值存入[EBP-20]里面,如果机率超过100,将机率改回100,接后面的机率测试函数;如果不超过100,直接接后面的机率测试函数。


00405F4B   . 6BC0 03        IMUL EAX,EAX,3
00405F4E   . 99             CDQ
00405F4F   . 2BC2           SUB EAX,EDX
00405F51   . E9 D4330000    JMP 0040932A

0040932A   > D1F8           SAR EAX,1
0040932C   . 33C9           XOR ECX,ECX
0040932E   . 8B4D E0        MOV ECX,DWORD PTR SS:[EBP-20]
00409331     83F9 64        CMP ECX,64
00409334     76 0C          JBE SHORT 00409342
00409336   . 0FAFC1         IMUL EAX,ECX
00409339   . 33D2           XOR EDX,EDX
0040933B   . B9 64000000    MOV ECX,64
00409340   . F7F1           DIV ECX
00409342   > 8B4D FC        MOV ECX,DWORD PTR SS:[EBP-4]
00409345   .^E9 0CCCFFFF    JMP 00405F56

计算最后的致命一击伤害。先取出存在[EBP-20]的数值,如果这个值不超过100就跳过,接回原来的;如果超过100,就在原来150%的伤害的基础上,再乘以这个数值

实际的测试效果,A武将士气286,B武将士气131,A武将攻击B武将,普通的伤害是116,按上面的爆击率计算出来的爆击率是126%,原来的最终伤害是177(174+3),改良后就变成了217(219-2)

经过改良后,士气越高,威力越大。

[ 本帖最后由 godtype 于 2009-3-9 08:43 编辑 ]
作者: dimeterio    时间: 2009-2-20 11:30

反对!
士气本身还兼有策略命中的功能,所以这么改,改变了士气的权重,破坏平衡性。
作者: ChinaPR    时间: 2009-2-20 12:07

如果是曹操传,士气的作用本来就很突出。

如果是岳飞传,士气的作用已经被削弱很多了。

每项属性的权重,单独看也没什么意义,还是要和兵种以及整体游戏设定结合起来看。平衡是最终的平衡,又不是光看五围值决定平衡。
作者: younger3    时间: 2009-2-20 12:18     标题: 回复 #2 dimeterio 的帖子

我的想法正好相反

一般來說玩家重的都是敏捷
敏捷高除了可連擊
減少被連擊機率外
還影響到格擋機率
也就是敏捷撐高可以變成物免

士氣高就是致命一擊率高
和較不會受到致命一擊

兩相比較
其實敏捷是比士氣重要許多的

就我而言
我可以忍受武將士氣低  但是我不能接受他敏捷低
這也就是原版曹操傳于禁比徐晃好用的原因


但是當改這個新的計算公式
士氣的重要性直逼敏捷

因為要是士氣高到嚇人
真的可以產生致命"一"擊的狀況


新手不同意見   獻醜
大家研究一下
作者: 小小KS    时间: 2009-2-20 12:18

不太实用吧……
关键是平衡了
CCZ里各项数值都很平衡
这么改的话士气好像就非常重要了……
那么士气高的兵种就完全变成了主力
作者: godtype    时间: 2009-2-20 12:23     标题: 回复 #2 dimeterio 的帖子

本主题不是讨论帖,请不要随便用“反对“字眼。

如果MOD制作人不需要用本主题的内容,是有权不用,有权不修正。
作者: sddciwei    时间: 2009-2-20 12:44

士气本身具有致命一击率,法术命中率和法术持续时间,目前加了一个影响暴击伤害的特性我认为是LZ提供的一种思路而已。
谁有这种需求就可以用,看个人喜好。
作者: 幻世え风    时间: 2009-2-20 14:11



QUOTE:
原帖由 小小KS 于 2009-2-20 12:18 发表
不太实用吧……
关键是平衡了
CCZ里各项数值都很平衡
这么改的话士气好像就非常重要了……
那么士气高的兵种就完全变成了主力

只是稍微加强了而已,效果上跟敏捷高兵种其实还是有差距的
作者: yjjhsfy    时间: 2009-2-20 15:18

这样士气就显得不是很鸡肋了,有了玉玺士气高还有用
作者: zhouhuan    时间: 2009-2-20 15:37

其实爆发力也可以这样改改,当连击率超过100%时,第二击的伤害=原伤害*连击率
作者: 乱世枭雄    时间: 2009-2-20 18:00

godtype 又做出新的效果了啊,支持一个!这样士气不再是鸡肋了啊,实用性大增!我是用原来你帮我改过的新引擎2号补丁EXE,这个EXE能帮我修改成你这种效果吗?谢谢godtype 兄了!

[ 本帖最后由 乱世枭雄 于 2009-2-21 12:59 编辑 ]
作者: godtype    时间: 2009-2-21 11:27

已重新改,取消了集气。

[ 本帖最后由 godtype 于 2009-2-23 11:03 编辑 ]

附件: Ekd5aa.rar (2009-2-23 11:03, 222.98 K) / 该附件被下载次数 46
http://www.xycq.org.cn/forum/attachment.php?aid=72754
作者: 乱世枭雄    时间: 2009-2-21 12:59     标题: 回复 #12 godtype 的帖子

谢谢godtype 兄了,我测试下看看有没有什么问题,再反馈给你啊!
作者: 乱世枭雄    时间: 2009-2-21 13:14     标题: 回复 #12 godtype 的帖子

经过刚刚简单的测试,系统没有什么问题。再次感谢godtype 兄!呵呵,但是在游戏里表现好猛啊。。。。出了必杀几乎都秒的,后期800多的血都能被秒,好可怕的战斗力~
作者: szwd1997    时间: 2009-2-21 16:02

这个要支持  这样一来致命一击名副其实了:)
作者: 乱世枭雄    时间: 2009-2-21 16:20     标题: 回复 #12 godtype 的帖子

刚刚继续测试了一下,似乎只要是出了必杀都是秒杀,不管对方防御是多高,血有多少?我刚刚是再水里80%的地形,攻击敌军显示损失1点血,但是必杀打出来对方7百多血的直接秒杀。。。。。太厉害了~不知道是不是BUG?
作者: godtype    时间: 2009-2-21 17:27     标题: 回复 #16 乱世枭雄 的帖子

我本来是在旧引擎改的,没有在新引擎中改过,所以可能会出点错,我有时间再看一下。
作者: godtype    时间: 2009-2-21 23:00     标题: 回复 #16 乱世枭雄 的帖子

已经测试过了,没有发现你所说的问题。
作者: 小小KS    时间: 2009-2-22 00:53     标题: 回复 #16 乱世枭雄 的帖子

很明显的是个BUG= =
不知道旧引擎修改版里有没有加入这个效果?
作者: 乱世枭雄    时间: 2009-2-22 01:27

也许是前期的必杀不明显吧,但是我在实际游戏中确实是这样的,战斗离台可怕了,出了必杀就秒一个人,敌人也一样秒我。。。。。有图为例:请看

图片附件: 4.gif (2009-2-22 01:27, 96.67 K) / 该附件被下载次数 28
http://www.xycq.org.cn/forum/attachment.php?aid=72703



图片附件: 5.gif (2009-2-22 01:27, 88.21 K) / 该附件被下载次数 33
http://www.xycq.org.cn/forum/attachment.php?aid=72704



图片附件: 6.gif (2009-2-22 01:27, 42.61 K) / 该附件被下载次数 33
http://www.xycq.org.cn/forum/attachment.php?aid=72705



图片附件: 7.gif (2009-2-22 01:27, 22.64 K) / 该附件被下载次数 26
http://www.xycq.org.cn/forum/attachment.php?aid=72706



图片附件: 8.gif (2009-2-22 01:27, 60.31 K) / 该附件被下载次数 23
http://www.xycq.org.cn/forum/attachment.php?aid=72707


作者: godtype    时间: 2009-2-22 08:02     标题: 回复 #20 乱世枭雄 的帖子

果然是必杀的问题。
我用旧引擎来改的原因就是因为对必杀非常不了解。

暂时没办法了,如果要用必杀就用不了改良,或者等STAR175来解答。
作者: yanguodong    时间: 2009-2-22 13:30



QUOTE:
原帖由 younger3 于 2009-2-20 12:18 发表
我的想法正好相反

一般來說玩家重的都是敏捷
敏捷高除了可連擊
減少被連擊機率外
還影響到格擋機率
也就是敏捷撐高可以變成物免

士氣高就是致命一擊率高
和較不會受到致命一擊

兩相比較
其實敏捷 ...

我们之所以会觉得敏捷会比士气重要是 因为每关的敌人大多是武将,文官太少了
作者: 乱世枭雄    时间: 2009-2-22 17:41     标题: 回复 #21 godtype 的帖子

如果可以把必杀去掉就好了,我也不是很喜欢必杀,有时候必杀回打乱战略部署的
作者: KYOKO    时间: 2009-2-22 17:47

实际的测试效果,A武将士气286,B武将士气131,A武将攻击B武将,普通的伤害是116,按上面的爆击率计算出来的爆击率是126%,原来的最终伤害是177(174+3),改良后就变成了217(219-2)



286也就131的2倍多一点,怎么出来的概率是100多???
作者: godtype    时间: 2009-2-22 18:18     标题: 回复 #24 KYOKO 的帖子

因为我改用了岳飞传的爆击公式:(286-131*1.5)*140/131+30=126
作者: isamu2004    时间: 2009-2-23 11:07

是不是数值有点高啊
作者: star175    时间: 2009-2-23 11:21     标题: 回复 #21 godtype 的帖子

初步测试了一下,如果要用使必杀时的伤害正常,应该给ebp-20预先设置一个<=64的值,设0即可
作者: KYOKO    时间: 2009-2-23 12:03

那图怎么回事,普通一击1伤害,致命一击600多???

双方的士气比365:570,根本就不到100%嘛
作者: 乱世枭雄    时间: 2009-2-23 16:57



QUOTE:
原帖由 KYOKO 于 2009-2-23 12:03 发表
那图怎么回事,普通一击1伤害,致命一击600多???

双方的士气比365:570,根本就不到100%嘛

这个是我在游戏里截出来的,新引擎必杀的问题
作者: 乱世枭雄    时间: 2009-2-23 16:59     标题: 回复 #25 godtype 的帖子

再次谢谢godtype 的及时修改,我再测试看看,有问题再反馈!
作者: 蛇夫座    时间: 2009-2-24 07:21

请godtype在帮我看看,以下地址应该在那修改(第四版加强版地址不同,我改了之后进不了游戏):

图片附件: 00405EFB与00405F00处.jpg (2009-2-24 07:21, 85.88 K) / 该附件被下载次数 129
http://www.xycq.org.cn/forum/attachment.php?aid=72831



图片附件: 00409317处起.jpg (2009-2-24 07:21, 89.42 K) / 该附件被下载次数 124
http://www.xycq.org.cn/forum/attachment.php?aid=72832



图片附件: 00405F4B处起.jpg (2009-2-24 07:21, 92.25 K) / 该附件被下载次数 124
http://www.xycq.org.cn/forum/attachment.php?aid=72833



图片附件: 0040932A处起.jpg (2009-2-24 07:21, 83.77 K) / 该附件被下载次数 124
http://www.xycq.org.cn/forum/attachment.php?aid=72834


作者: 蛇夫座    时间: 2009-3-1 18:23     标题: 回复 #31 蛇夫座 的帖子

抱歉推一下~~

godtype大请帮我看看要改那几个地址才对
作者: idiot66    时间: 2009-3-2 02:09

支持一下
作者: idiot66    时间: 2009-3-2 02:10

支持一下
作者: godtype    时间: 2009-3-2 08:18     标题: 回复 #31 蛇夫座 的帖子

抱歉,有一段时间无上,现在才看到。

顶楼的所有跳转出去的地方都是跳到空白地方,要自己找的。
作者: younger3    时间: 2009-3-2 22:32

抱歉問個爛問題啊

其實我憋很久了
今天總算鼓起勇氣

你也知道我向來都用舊引擎改
你這帖子發怖沒多久我就急著照著改來測試了

發現改了沒效
就是無論我用修改器把測試武將的士氣調得多高
(最後我把張飛的士氣調到8000    士兵士氣90)

發現還是打一樣多><

加上今天這次我已經改第4次了
每條指令都對照過是不用說的了

請問問題到底出在哪?
為什麼我改了後完全無效呢><
作者: 蛇夫座    时间: 2009-3-8 17:00

我照上面找到空位置写入代码跳转后,测试发现必杀一击必然必杀,但伤害显示还是原来的
star175的解决方法是:初步测试了一下,如果要用使必杀时的伤害正常,应该给ebp-20预先设置一个<=64的值,设0即可
我试着在ebp-20两个位置分别都改为0发现,第一处战斗时自动结束游戏,第二处,无效果还是一击必杀

请问godtype版主如才能将ebp-20设为0(什么语句)呢??
作者: godtype    时间: 2009-3-8 17:41     标题: 回复 #37 蛇夫座 的帖子

00405EFB   . E8 69FEFFFF    CALL 00405D69  -----获取致命一击的机率
00405F00   . E9 12340000    JMP 00409317

MOV DWORD PTR SS:[EBP-20],0
00409317     8945 E0        MOV DWORD PTR SS:[EBP-20],EAX
0040931A     3C 64          CMP AL,64
0040931C     76 02          JBE SHORT 00409320

将红色那一句加进去。
作者: godtype    时间: 2009-3-8 17:44     标题: 回复 #36 younger3 的帖子

如果对照顶楼所写的确定是没有错,最好将出错EXE发上来。
作者: 蛇夫座    时间: 2009-3-8 19:06

我将红色那一句加进去之后发现必杀伤害跟无修改之前一样,唯有请版主帮忙看看了
      (可以的请版主指出错处,好学习学习)

[ 本帖最后由 蛇夫座 于 2009-3-17 20:07 编辑 ]

图片附件: 所需地址01.jpg (2009-3-8 19:06, 65.54 K) / 该附件被下载次数 119
http://www.xycq.org.cn/forum/attachment.php?aid=73975



图片附件: 所需地址02.jpg (2009-3-8 19:06, 36.29 K) / 该附件被下载次数 111
http://www.xycq.org.cn/forum/attachment.php?aid=73976



图片附件: X.jpg (2009-3-17 20:07, 770 bytes) / 该附件被下载次数 113
http://www.xycq.org.cn/forum/attachment.php?aid=73977


作者: younger3    时间: 2009-3-8 19:38

第一次發附件

不知道會不會成功...
作者: younger3    时间: 2009-3-8 19:44     标题: 回复 #41 younger3 的帖子

果然失敗了....
不知道如何發附件><
作者: godtype    时间: 2009-3-8 23:03

对蛇夫座和younger3非常报歉,原来我漏了一条指令的修改没有帖出来。

必须将
00405E06   . 83EC 1C                    SUB ESP,1C
改成
SUB ESP,20

否则[EBP-20]会无效。
作者: 蛇夫座    时间: 2009-3-8 23:26     标题: 回复 #43 godtype 的帖子

再次感谢版主了!!
    经测试绝对有较(士气越高伤害越大),如果把显示也修正的话就更完美了。
作者: younger3    时间: 2009-3-9 09:28     标题: 回复 #43 godtype 的帖子

說什麼抱歉呢?
又要當版主又要忙著幫大家修改出好東西
這麼忙出點錯難免的

我測試過也沒問題了^^

唯一美中不足的是
若持有"必定致命一擊"寶物特效
則以上公式對它無效

例如原版曹操傳若裝備玉璽
那他怎麼爆擊都是只有150%

希望godtype大將它改為即使裝備玉璽仍然有效
這樣這個設定就近乎完美了~~


感恩godtype大的熱心奉獻
作者: godtype    时间: 2009-3-9 11:45     标题: 回复 #45 younger3 的帖子

因为致命一击的宝物特效是固定100,所以要另外修改爆击率的函数,具体要按实际需要来修改。
作者: younger3    时间: 2009-3-9 19:08     标题: 回复 #46 godtype 的帖子

我自己不會改><
但是我希望致命一擊寶物特效也能用這條公式
不然還不如加成士氣的寶物來得威呢

知道godtype大你忙
有空更新的話再幫我改吧

感恩~~
作者: godtype    时间: 2009-3-9 20:06     标题: 回复 #47 younger3 的帖子

我个人的做法是将致命一击特效改成辅助致命一击机率,根据DATA中设置的数值来增加致命一击的机率。
不知你觉得如何?如果觉得没问题,可以上传附件,或者mail给我,个人资料中有。
作者: summer3965    时间: 2009-3-12 02:14     标题: 回复 #48 godtype 的帖子

我也要學..
阿毅別藏私
這樣改比原本更好
有空的話把怎麼修改的教學也貼出來嘛


作者: godtype    时间: 2009-3-12 09:04     标题: 回复 #49 summer3965 的帖子

我帖出来吧,这是帮younger3改的:

00405D69   $ 55              PUSH EBP
00405D6A   . 8BEC            MOV EBP,ESP
00405D6C   . 83EC 10         SUB ESP,10
00405D6F   . 894D F4         MOV DWORD PTR SS:[EBP-C],ECX
00405D72   . 8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
00405D75   . 8B48 0C         MOV ECX,DWORD PTR DS:[EAX+C]
00405D78   . E8 02990300     CALL ekd5y.0043F67F
00405D7D   . 8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
00405D80   . 8B4D F4         MOV ECX,DWORD PTR SS:[EBP-C]
00405D83   . 33D2            XOR EDX,EDX
00405D85   . 8A51 01         MOV DL,BYTE PTR DS:[ECX+1]
00405D88   . 8BCA            MOV ECX,EDX
00405D8A   . 6BC9 24         IMUL ECX,ECX,24
00405D8D   . 81C1 502C4B00   ADD ECX,ekd5y.004B2C50
00405D93   . E8 E7980300     CALL ekd5y.0043F67F
00405D98   . 8945 F8         MOV DWORD PTR SS:[EBP-8],EAX

00405D9B   . 8B4D F8         MOV ECX,DWORD PTR SS:[EBP-8]
00405D9E   . 6BC9 03         IMUL ECX,ECX,3
00405DA1   . D1E9            SHR ECX,1
00405DA3   . 394D FC         CMP DWORD PTR SS:[EBP-4],ECX
00405DA6   . 72 15           JB SHORT ekd5y.00405DBD
00405DA8   . 8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00405DAB   . 2BC1            SUB EAX,ECX
00405DAD   . 69C0 8C000000   IMUL EAX,EAX,8C
00405DB3   . 33D2            XOR EDX,EDX
00405DB5   . F775 F8         DIV DWORD PTR SS:[EBP-8]
00405DB8   . 83C0 1E         ADD EAX,1E
00405DBB   . EB 1C           JMP SHORT ekd5y.00405DD9
00405DBD   > 8B4D F8         MOV ECX,DWORD PTR SS:[EBP-8]
00405DC0   . 394D FC         CMP DWORD PTR SS:[EBP-4],ECX
00405DC3   . 72 12           JB SHORT ekd5y.00405DD7
00405DC5   . 8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00405DC8   . 2BC1            SUB EAX,ECX
00405DCA   . 6BC0 1C         IMUL EAX,EAX,1C
00405DCD   . 33D2            XOR EDX,EDX
00405DCF   . F775 F8         DIV DWORD PTR SS:[EBP-8]
00405DD2   . 83C0 02         ADD EAX,2
00405DD5   . EB 02           JMP SHORT ekd5y.00405DD9
00405DD7   > B0 01           MOV AL,1
00405DD9   > 8945 F0         MOV DWORD PTR SS:[EBP-10],EAX
将计算爆击率移到前面来,并将计算出来的爆击率暂时保存在[EBP-10]中

00405DDC   . 6A 29           PUSH 29                                  ; /Arg1 = 00000029
00405DDE   . 8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]             ; |
00405DE1   . 8B48 08         MOV ECX,DWORD PTR DS:[EAX+8]             ; |
00405DE4   . E8 201C0000     CALL ekd5y.00407A09                      ; \ekd5y.00407A09
00405DE9   . 85C0            TEST EAX,EAX
00405DEB   . 74 0F           JE SHORT ekd5y.00405DFC
00405DED   . 6A 29           PUSH 29
00405DEF   . 8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
00405DF2   . 8B48 08         MOV ECX,DWORD PTR DS:[EAX+8]
00405DF5   . E9 50350000     JMP ekd5y.0040934A
(位置不够用,跳到空白位置再继续写)
0040934A   > E8 A3E7FFFF     CALL ekd5y.00407AF2                      ; \ekd5y.00407AF2
0040934F   . 25 FF000000     AND EAX,0FF
00409354   . 0145 F0         ADD DWORD PTR SS:[EBP-10],EAX
00409357   .^E9 A0CAFFFF     JMP ekd5y.00405DFC
上面就是从DATA中设置数值,加进之前计算出来的爆击率,“致命一击攻击”的特效就要改名为“辅助致命一击”


00405DFA     90              NOP
00405DFB     90              NOP
00405DFC   > 8B45 F0         MOV EAX,DWORD PTR SS:[EBP-10]
00405DFF   . 8BE5            MOV ESP,EBP
00405E01   . 5D              POP EBP
00405E02   . C3              RETN
作者: godtype    时间: 2009-3-12 09:12

这个是我自用的(整条爆击率函数搬去其他位置):
004D0DA0   55               PUSH EBP
004D0DA1   8BEC             MOV EBP,ESP
004D0DA3   83EC 10          SUB ESP,10
004D0DA6   894D F4          MOV DWORD PTR SS:[EBP-C],ECX
004D0DA9   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
004D0DAC   8B48 0C          MOV ECX,DWORD PTR DS:[EAX+C]
004D0DAF   E8 CBE8F6FF      CALL Ekd5-G.0043F67F
004D0DB4   8945 FC          MOV DWORD PTR SS:[EBP-4],EAX
004D0DB7   8B4D F4          MOV ECX,DWORD PTR SS:[EBP-C]
004D0DBA   33D2             XOR EDX,EDX
004D0DBC   8A51 01          MOV DL,BYTE PTR DS:[ECX+1]
004D0DBF   8BCA             MOV ECX,EDX
004D0DC1   6BC9 24          IMUL ECX,ECX,24
004D0DC4   81C1 502C4B00    ADD ECX,Ekd5-G.004B2C50
004D0DCA   E8 B0E8F6FF      CALL Ekd5-G.0043F67F
004D0DCF   8945 F8          MOV DWORD PTR SS:[EBP-8],EAX
004D0DD2   8B4D F8          MOV ECX,DWORD PTR SS:[EBP-8]
004D0DD5   D1E1             SHL ECX,1
004D0DD7   394D FC          CMP DWORD PTR SS:[EBP-4],ECX
004D0DDA   72 15            JB SHORT Ekd5-G.004D0DF1
004D0DDC   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004D0DDF   2BC1             SUB EAX,ECX
004D0DE1   6BC0 50          IMUL EAX,EAX,50
004D0DE4   90               NOP
004D0DE5   90               NOP
004D0DE6   90               NOP
004D0DE7   33D2             XOR EDX,EDX
004D0DE9   F775 F8          DIV DWORD PTR SS:[EBP-8]
004D0DEC   83C0 14          ADD EAX,14
004D0DEF   EB 1C            JMP SHORT Ekd5-G.004D0E0D
004D0DF1   8B4D F8          MOV ECX,DWORD PTR SS:[EBP-8]
004D0DF4   394D FC          CMP DWORD PTR SS:[EBP-4],ECX
004D0DF7   72 12            JB SHORT Ekd5-G.004D0E0B
004D0DF9   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004D0DFC   2BC1             SUB EAX,ECX
004D0DFE   6BC0 12          IMUL EAX,EAX,12
004D0E01   33D2             XOR EDX,EDX
004D0E03   F775 F8          DIV DWORD PTR SS:[EBP-8]
004D0E06   83C0 02          ADD EAX,2
004D0E09   EB 02            JMP SHORT Ekd5-G.004D0E0D
004D0E0B   B0 01            MOV AL,1
004D0E0D   8945 F0          MOV DWORD PTR SS:[EBP-10],EAX
004D0E10   6A 29            PUSH 29
004D0E12   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
004D0E15   8B48 08          MOV ECX,DWORD PTR DS:[EAX+8]
004D0E18   E8 EC6BF3FF      CALL Ekd5-G.00407A09
004D0E1D   85C0             TEST EAX,EAX
004D0E1F   74 17            JE SHORT Ekd5-G.004D0E38
004D0E21   6A 29            PUSH 29
004D0E23   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
004D0E26   8B48 08          MOV ECX,DWORD PTR DS:[EAX+8]
004D0E29   E8 C46CF3FF      CALL Ekd5-G.00407AF2
004D0E2E   25 FF000000      AND EAX,0FF
004D0E33   0145 F0          ADD DWORD PTR SS:[EBP-10],EAX
004D0E36   EB 13            JMP SHORT Ekd5-G.004D0E4B
004D0E38   8B55 F4          MOV EDX,DWORD PTR SS:[EBP-C]
004D0E3B   8B4A 08          MOV ECX,DWORD PTR DS:[EDX+8]
004D0E3E   E8 CD57F3FF      CALL Ekd5-G.00406610
004D0E43   3C 28            CMP AL,28
004D0E45   75 04            JNZ SHORT Ekd5-G.004D0E4B
004D0E47   8345 F0 1E       ADD DWORD PTR SS:[EBP-10],1E
004D0E4B   8B45 F0          MOV EAX,DWORD PTR SS:[EBP-10]
004D0E4E   3D C8000000      CMP EAX,0C8
004D0E53   76 05            JBE SHORT Ekd5-G.004D0E5A
004D0E55   B8 C8000000      MOV EAX,0C8
004D0E5A   8BE5             MOV ESP,EBP
004D0E5C   5D               POP EBP
004D0E5D   C3               RETN
作者: summer3965    时间: 2009-3-12 17:52

阿毅的教學非常詳細啊
一次就改成功了

現在已經改成輔助致命一擊+爆擊傷害增強了
衷心的感謝阿毅辛苦的指導


作者: 乱世枭雄    时间: 2009-3-13 15:45



QUOTE:
原帖由 godtype 于 2009-3-9 20:06 发表
我个人的做法是将致命一击特效改成辅助致命一击机率,根据DATA中设置的数值来增加致命一击的机率。
不知你觉得如何?如果觉得没问题,可以上传附件,或者mail给我,个人资料中有。

godtype 兄,这个做法我觉得很棒,能帮我把我的这个引擎也改成这样吗?感激不尽!!

附件: Ekd5.rar (2009-3-13 15:45, 222.07 K) / 该附件被下载次数 148
http://www.xycq.org.cn/forum/attachment.php?aid=74353
作者: godtype    时间: 2009-3-13 17:29     标题: 回复 #53 乱世枭雄 的帖子

这几天有点忙,过几天吧。

或者看有哪位论坛会员能够照我帖的帮你改出来的话,我发个红包给他吧。
作者: 乱世枭雄    时间: 2009-3-13 17:42



QUOTE:
原帖由 godtype 于 2009-3-13 17:29 发表
这几天有点忙,过几天吧。

或者看有哪位论坛会员能够照我帖的帮你改出来的话,我发个红包给他吧。

感谢godtype兄百忙之中还能抽出时间来回复我的帖子,如果有其他热心坛友能帮助我改好,我也一样感激!红包也应该是我来发,怎么能让godtype兄帮我出钱白打工呢?谢谢了~
作者: 乱世枭雄    时间: 2009-3-13 23:37



QUOTE:
原帖由 godtype 于 2009-3-13 17:29 发表
这几天有点忙,过几天吧。

或者看有哪位论坛会员能够照我帖的帮你改出来的话,我发个红包给他吧。

另外请问下godtype兄,如果可以的话能帮改出东吴志的凤凰奥义(能力重新计算)这个效果出来吗?star175 的5.1版有这个效果,但是我这个第四版2号补丁EXE是你帮我改过的,变动和增加的地方挺多的,如果换5.1版的话又要重新弄好久了,因此问问看能不能改出来,可以的话就好了~谢谢
作者: summer3965    时间: 2009-3-14 03:18     标题: 回复 #55 乱世枭雄 的帖子

新引擎不敢亂改,而且也沒有新引擎的劇本可以測試行不行...
所以還是請阿毅幫忙測試一下,不能用就只好讓阿毅動手囉
只改了阿毅50樓的教程,沒有改暴擊傷害加強
最後一小段用的地址是 405BFE,原本是90 90 90...

還有把致命一擊攻擊這些字改成輔助致命一擊,當然是簡體的
沒有測試過不知道會不會有副作用,不過還好有阿毅在

[ 本帖最后由 summer3965 于 2009-3-14 03:42 编辑 ]

附件: [依照50樓修改] Ekd5.rar (2009-3-14 03:42, 223 K) / 该附件被下载次数 125
http://www.xycq.org.cn/forum/attachment.php?aid=74370
作者: 乱世枭雄    时间: 2009-3-14 14:50     标题: 回复 #57 summer3965 的帖子

刚刚简单的测试了一下,好像没有什么问题,但是如果能显示出来数值就好了,比如:辅助致命一击+30%这样。这个暴击加强阿毅已经帮我改过了的,不用改这个了。另外还有一个问题想请教,就是我设置了100%几率致命一击特效的兵种现在是否还有效呢?还有我前面提到的“从新计算能力”这个特效,希望阿毅也能帮弄出来,谢谢了~等改好了红包一并奉上,感谢两位的热心帮助!~

[ 本帖最后由 乱世枭雄 于 2009-3-14 15:18 编辑 ]
作者: 乱世枭雄    时间: 2009-3-14 15:27     标题: 回复 #58 乱世枭雄 的帖子

刚刚我继续测试了下,现在我设置的100%几率致命一击特效的兵种已经无效了,我想保留这个兵种特效,并且是用新的暴击公式的,暴击伤害跟士气有关,士气越高暴击伤害也越高,这个要怎么弄呢?谢谢
作者: younger3    时间: 2009-3-14 16:12     标题: 回复 #59 乱世枭雄 的帖子

"设置的100%几率致命一击特效的兵种"
這個我也設置過(參照norton大的帖子)
但輸入新公式就會無效
因為寫公式的地方cover到

另外
"暴击伤害跟士气有关,士气越高暴击伤害也越高"
這個就一開始godtype大發的文啊
你下個ob
一條條輸入照改就可以

你會發現"輔助致命一擊"加太多很無趣
因為太強


顯示數值:
用UE找到6176B字節開始
順序代表寶物增加能力顯示數值
第24個(原致命一擊攻擊)改成05
就可以了
作者: godtype    时间: 2009-3-14 16:43     标题: 回复 #59 乱世枭雄 的帖子

兵种特效是要照我自用的那一段改。
作者: summer3965    时间: 2009-3-14 17:03

阿毅你的意思是說,你是新寫了一個「輔助致命一擊」的效果,就是說「致命一擊攻擊」和「輔助致命一擊」效果是分開的,是這樣嗎?

可是這樣的話,保留的致命一擊兵種應該是原本致命一擊的算法(也就是致命一擊必定100%),這樣不就不能套用新的暴擊公式了?

另外,稍微研究了一下,好像判斷致命一擊的兵種跳轉沒有對好,可是我不知道怎麼改,因為跟norton的致命一擊兵種的ob代碼不一樣,所以沒辦法調,怕不小心就改錯了。所以還是請阿毅直接改吧。順便向樓下岱瀛大師問好+致敬

[ 本帖最后由 summer3965 于 2009-3-14 20:54 编辑 ]
作者: 岱瀛    时间: 2009-3-14 17:38


这个改良效果不错。个人觉得这里的所谓平衡破坏,远比设计一件BT宝物小得多。

也许这个修改放在具体某一个游戏中,确实会引起一些反平衡异常,但个人觉得那不是这个特性修改的错。因为原先游戏里可能就是按照原来士气的权重意义定义了相关的人物Data和兵种Data.

如果真有平衡异常,适当调整下Data是能完全平衡过来的,所以我不认为这个修改会破坏平衡,反而使五围中本来地位最低的士气得到小量的提升,能使五围之间的数据对比更平衡,所以个人很支持Goodtype的修改,因为这里面有新意而又不破坏整体娱乐性.
作者: 乱世枭雄    时间: 2009-3-14 18:00     标题: 回复 #62 summer3965 的帖子

我想也是这样的,但是要保留致命一击特效兵种,又要用新的暴击公式,这个如果能实现就再好不过了~
作者: 白马银枪杨再兴    时间: 2009-3-14 20:34

提议不错
作者: 蛇夫座    时间: 2009-3-14 20:47

岱老大上线了,我来一下。再次感谢godtype版主为我们这些新手所作的耐心教导。
作者: 乱世枭雄    时间: 2009-3-19 00:11

经过简单测试,没有发现问题,谢谢godtype兄帮忙!
作者: 天照之火    时间: 2009-6-13 21:56



QUOTE:
原帖由 godtype 于 2009-2-20 10:54 发表
具体的修改是:
00405D9B  |. 6A 29          PUSH 29
00405D9D  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
00405DA0  |. 8B48 08        MOV ECX,DWORD PTR DS:[EAX+8]
00405DA3  |. E8 611C0000    CALL 00407A09
00405DA8  |. 85C0           TEST EAX,EAX
00405DAA  |. 74 04          JE SHORT 00405DB0
00405DAC  |. B0 64          MOV AL,64
00405DAE  |. EB 3E          JMP SHORT 00405DEE
00405DB0  |> 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
00405DB3  |. 6BC9 03        IMUL ECX,ECX,3
00405DB6  |. D1E9           SHR ECX,1
00405DB8  |. 394D FC        CMP DWORD PTR SS:[EBP-4],ECX
00405DBB  |. 72 15          JB SHORT 00405DD2
00405DBD  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00405DC0  |. 2BC1           SUB EAX,ECX
00405DC2  |. 69C0 8C000000  IMUL EAX,EAX,8C
00405DC8  |. 33D2           XOR EDX,EDX
00405DCA  |. F775 F8        DIV DWORD PTR SS:[EBP-8]
00405DCD  |. 83C0 1E        ADD EAX,1E
00405DD0  |. EB 1C          JMP SHORT 00405DEE
00405DD2  |> 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
00405DD5  |. 394D FC        CMP DWORD PTR SS:[EBP-4],ECX
00405DD8  |. 72 12          JB SHORT 00405DEC
00405DDA  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00405DDD  |. 2BC1           SUB EAX,ECX
00405DDF  |. 6BC0 1C        IMUL EAX,EAX,1C
00405DE2  |. 33D2           XOR EDX,EDX
00405DE4  |. F775 F8        DIV DWORD PTR SS:[EBP-8]
00405DE7  |. 83C0 02        ADD EAX,2
00405DEA  |. EB 02          JMP SHORT 00405DEE
00405DEC  |> B0 01          MOV AL,1
00405DEE  |> 8BE5           MOV ESP,EBP
00405DF0  |. 5D             POP EBP
00405DF1  \. C3             RETN
上面是致命一击机率的计算,我这里是改成了岳飞传的爆击率,再将100的上限去掉了。下面的才是伤害的计算。

如果我只改致命一击率的计算,那要在哪里加上100的上限
作者: godtype    时间: 2009-6-15 09:25     标题: 回复 #68 天照之火 的帖子

00405DEE  |> 83F8 64        CMP EAX,64
00405DF1  |. 72 05          JB SHORT 岳飞.00405DF8
00405DF3  |. B8 64000000    MOV EAX,64
00405DF8  |> 8BE5           MOV ESP,EBP
00405DFA  |. 5D             POP EBP
00405DFB  \. C3             RETN

前面有些跳转也要改,详细请自行参考岳飞传。
作者: 天照之火    时间: 2009-6-15 15:41

岳飞传exe是不是加密了,打开乱七八糟的....
作者: godtype    时间: 2009-6-15 19:01     标题: 回复 #70 天照之火 的帖子

完整的岳飞传爆击率计算:
00405D69  /$ 55             PUSH EBP
00405D6A  |. 8BEC           MOV EBP,ESP
00405D6C  |. 83EC 0C        SUB ESP,0C
00405D6F  |. 894D F4        MOV DWORD PTR SS:[EBP-C],ECX
00405D72  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
00405D75  |. 8B48 0C        MOV ECX,DWORD PTR DS:[EAX+C]
00405D78  |. E8 02990300    CALL 岳飞.0043F67F
00405D7D  |. 8945 FC        MOV DWORD PTR SS:[EBP-4],EAX
00405D80  |. 8B4D F4        MOV ECX,DWORD PTR SS:[EBP-C]
00405D83  |. 33D2           XOR EDX,EDX
00405D85  |. 8A51 01        MOV DL,BYTE PTR DS:[ECX+1]
00405D88  |. 8BCA           MOV ECX,EDX
00405D8A  |. 6BC9 24        IMUL ECX,ECX,24
00405D8D  |. 81C1 502C4B00  ADD ECX,岳飞.004B2C50
00405D93  |. E8 E7980300    CALL 岳飞.0043F67F
00405D98  |. 8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
00405D9B  |. 6A 29          PUSH 29                                  ; /Arg1 = 00000029
00405D9D  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]             ; |
00405DA0  |. 8B48 08        MOV ECX,DWORD PTR DS:[EAX+8]             ; |
00405DA3  |. E8 611C0000    CALL 岳飞.00407A09                         ; \岳飞.00407A09
00405DA8  |. 85C0           TEST EAX,EAX
00405DAA  |. 74 04          JE SHORT 岳飞.00405DB0
00405DAC  |. B0 64          MOV AL,64
00405DAE  |. EB 48          JMP SHORT 岳飞.00405DF8
00405DB0  |> 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
00405DB3  |. 6BC9 03        IMUL ECX,ECX,3
00405DB6  |. D1E9           SHR ECX,1
00405DB8  |. 394D FC        CMP DWORD PTR SS:[EBP-4],ECX
00405DBB  |. 72 15          JB SHORT 岳飞.00405DD2
00405DBD  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00405DC0  |. 2BC1           SUB EAX,ECX
00405DC2  |. 69C0 8C000000  IMUL EAX,EAX,8C
00405DC8  |. 33D2           XOR EDX,EDX
00405DCA  |. F775 F8        DIV DWORD PTR SS:[EBP-8]
00405DCD  |. 83C0 1E        ADD EAX,1E
00405DD0  |. EB 1C          JMP SHORT 岳飞.00405DEE
00405DD2  |> 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
00405DD5  |. 394D FC        CMP DWORD PTR SS:[EBP-4],ECX
00405DD8  |. 72 12          JB SHORT 岳飞.00405DEC
00405DDA  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00405DDD  |. 2BC1           SUB EAX,ECX
00405DDF  |. 6BC0 1C        IMUL EAX,EAX,1C
00405DE2  |. 33D2           XOR EDX,EDX
00405DE4  |. F775 F8        DIV DWORD PTR SS:[EBP-8]
00405DE7  |. 83C0 02        ADD EAX,2
00405DEA  |. EB 02          JMP SHORT 岳飞.00405DEE
00405DEC  |> B0 01          MOV AL,1
00405DEE  |> 83F8 64        CMP EAX,64
00405DF1  |. 72 05          JB SHORT 岳飞.00405DF8
00405DF3  |. B8 64000000    MOV EAX,64
00405DF8  |> 8BE5           MOV ESP,EBP
00405DFA  |. 5D             POP EBP
00405DFB  \. C3             RETN
作者: hs_wjxgjgf    时间: 2009-6-15 22:59

岳飞传的exe怎么解密啊?
作者: 双溪赵云    时间: 2009-6-16 00:30

提点非技术的建议:致命一击攻击这种属性其实也没必要再提高其伤害了,高士气的装备这个要么太强,但却又有些浪费;低士气的装备了暴击率一般也不会超过100%吧。
作者: 周瑜    时间: 2009-6-16 10:12

其实玉玺和致命一击攻击的效果可以改为致命一击的概率增加100%
作者: 双溪赵云    时间: 2009-6-16 13:38



QUOTE:
原帖由 周瑜 于 2009-6-16 10:12 发表
其实玉玺和致命一击攻击的效果可以改为致命一击的概率增加100%

如果按照lz的改良方案,增加100%的概率造成的伤害是极为恐怖的。所以致命一击这属性保留为原计算方式就可以了
作者: godtype    时间: 2009-6-16 17:40



QUOTE:
原帖由 双溪赵云 于 2009-6-16 13:38 发表

如果按照lz的改良方案,增加100%的概率造成的伤害是极为恐怖的。所以致命一击这属性保留为原计算方式就可以了

如果不想用,不改就是了,这个改良也不是强制用的。
作者: 周瑜    时间: 2009-6-16 20:48



QUOTE:
原帖由 双溪赵云 于 2009-6-16 01:38 发表

如果按照lz的改良方案,增加100%的概率造成的伤害是极为恐怖的。所以致命一击这属性保留为原计算方式就可以了

恐怖的原因是楼主采用了岳飞传的计算公式,如果换回曹操传中,除了攻击骑策木人黄巾和驯虎这几个不常出现的兵种,等级相差不大时不可能有100%致命一击的情况,因此将玉玺改为增加100%概率是完全合理的。

不过我觉得更有意义的还是穿透攻击时针对每一个被攻击目标分别计算是否发生致命一击。

[ 本帖最后由 周瑜 于 2009-6-16 10:43 编辑 ]
作者: a951183668    时间: 2009-7-27 08:34

用了这个之后,爽多了。随便一下就秒杀。




欢迎光临 轩辕春秋文化论坛 (http://www.xycq.org.cn/forum/) Powered by Discuz! 5.0.0