2010-4-20 08:13
阿尔法孝直
已经解开,然后呢?
[color=Silver][[i] 本帖最后由 阿尔法孝直 于 2010-4-20 08:15 编辑 [/i]][/color]
2010-4-20 08:24
godtype
然后……慢慢研究中:hz1026:
2010-4-20 08:43
godtype
还没有找到我军成员加入部分,但是参考英杰传,找到了敌军出战设定。先记录一下,以免忘记了:
SNR0D里面,1674H是第1关独眼的编号42 00(2字节),跟着是横坐标08(1字节),纵坐标00(1字节),后面的未分析,估计也是跟英杰传一样。
往前数,157EH是赵云的编号以及坐标,1563H是孔明的。
现在继续向前看,应该可以找到加入部分。
2010-4-20 08:55
godtype
找到了,格式是 39(1) 编号(2)增加等级(1),刘备(0100)的位置是120EH,其他人跟在后面。
随便找到一个内场景的坐标,相当于曹操传里面的30武将出现的指令。
格式是0A(1) 编号(2) 坐标(2)朝向(1)未知(1)。
例如赵云是1252H,0A 06 00 30 25 02 00,坐标的设置不太理解,我将30 25改成了30 29,出现附图的情况,点击赵云后,孔明自动走到赵云后面谈话。
2010-4-20 09:20
阿尔法孝直
刚刚把刘备出场等级分别改成99、96、161,都没有出现dimeterio说的问题。
2010-4-20 09:35
阿尔法孝直
终于搞懂了蓝字的意思:
[color=Blue]如果 武将当前等级 > (99-升了多少级) 的时候,升级量 = 99 - 武将当前等级。(我觉得很奇怪,有没有人碰到这种情况?)[/color]
如果战斗过程中升级,“升了多少级”就是1。当部队达到99级时,99>(99-1),升级量=99-99=0
但是实际上,当部队到达或超过99级时,任何动作都不会带来经验值。那么蓝字部分应该是调试时用的。
[color=Silver][[i] 本帖最后由 阿尔法孝直 于 2010-4-20 09:38 编辑 [/i]][/color]
2010-4-20 09:39
godtype
回复 #65 阿尔法孝直 的帖子
所以光荣写的蓝色那段代码似乎是多余的。
另外剧本中战后金钱和战后经验,还有物品获得的代码暂时未确定,英杰传用的是:
获得资金 2B 02 xx xx
获得物品 1B xx
战后经验 2B 04 xx xx
孔明传的似乎是
获得资金 2B 04 xx xx
获得物品 未知
战后经验 2B 05 xx xx
但是核对你的另外一篇帖里面的资料又似乎很多对不上,要实际打几关才能确定。
2010-4-20 09:42
dimeterio
回复 #66 阿尔法孝直 的帖子
也就是說,如果改出一個120級的武將,他升級時是等級不變。
同等情況英杰傳是變回99,可以改一個人試試。
2010-4-20 10:15
阿尔法孝直
如果一个150级出场加入的武将,
1>(99-149)
升级量=99-1=98?
不对,99-149之后要转成BYTE类型?99-149+256=206,仍然是1<=206,用第1条,升级量=149
那么1只能大于0,即99-99
即100级出场加入的武将。
升级量=99-1=98。
也就是说,100级加入和99级加入的效果是一样的,升级量都是98。但是101级加入就不一样了,此时升级量变成100了。
[color=Silver][[i] 本帖最后由 阿尔法孝直 于 2010-4-20 10:17 编辑 [/i]][/color]
2010-4-22 13:02
阿尔法孝直
没想到,随便上网搜搜,居然搜到这个......
不过这个作者是根据经验统计出来的,而且极不准确。。。。。。
[color=Silver][[i] 本帖最后由 阿尔法孝直 于 2010-4-22 13:11 编辑 [/i]][/color]
2010-5-26 19:10
小马828
强人都是骑兵。会混乱的兵种太多了
2010-6-3 14:22
lewulezo
关于敌人加入的等级,函数竟然如此复杂。可以简化一下吧
如果是高级兵种,
[i]第1步是按对应的低级兵种的成长值A+A*2+3计算出一个B值,然后再按B+B*4计算出一个C值,接着等级值减15;[/i]
A+A*2+3 = 3*A+3
C = B+B*4 = 5*B = 5*(3*A+3) = 15 * (A+1)
[b]简单的说,就是按照低级兵种成长值+1来算15次[/b]
[i]第2步是按对应的中级兵种的成长值D+D*2+3计算出一个E值,然后再按E+E*4计算出一个F值,并加进C值里面,接着等级值再减15;[/i]
D+D*2+3 = 3*D+3
F=E+E*4 = 5*E = 5*(3*D+3) = 15 * (D+1)
[b]简单的说,就是按照中级兵种成长值+1来算15次[/b]
第3步是按自身兵种的成长值G加1,然后乘以等级值(注意已经减去了30),并加进C值里面,此时的C值就是最终的成长,加上初始能力就是最终出场的能力了。
[b]简单的说,就是按照自身兵种成长值+1,乘上等级。[/b]
结论:
如果是高级兵种,那么最终值相当于按照低级兵种升级了15级,然后又按照中级兵种升级了15级,再按照最高级兵种升级了剩余的等级。如果当前兵种不足30级,则倒扣到相应等级。
如果是中级兵种,那么最终值相当于按照低级兵种升级了15级,再按照当前兵种升级了剩余的等级。如果当前兵种不足15级,倒扣到相应等级。
所有的地方兵种的升级,都已标准升级值+1来计算。
[color=Silver][[i] 本帖最后由 lewulezo 于 2010-6-3 14:24 编辑 [/i]][/color]
2010-6-6 23:29
lewulezo
我发现39后对应的似乎是武将升级的代码
具体说来就是打开解压后的SNR0D.E2
UE 0x120EH
39 01 00 04
刘备 4级
39 02 00 04
关羽 4级
...
表示出场时候,刘备、关羽各升4级,因此出场即为5级。
后面单挑升级似乎也是用的这个代码。
咳咳,没仔细看上面的帖子,重复了。。。
[color=Silver][[i] 本帖最后由 lewulezo 于 2010-6-9 12:13 编辑 [/i]][/color]
2010-7-1 00:24
阿尔法孝直
[quote]原帖由 [i]lewulezo[/i] 于 2010-6-3 14:22 发表
关于敌人加入的等级,函数竟然如此复杂。可以简化一下吧
如果是高级兵种,
第1步是按对应的低级兵种的成长值A+A*2+3计算出一个B值,然后再按B+B*4计算出一个C值,接着等级值减15;
A+A*2+3 = 3*A+3
C = B ... [/quote]
有时候,我真的搞不懂,一个式子,明明只需要一次加法和一次乘法就解决的问题,但是为什么程序却写得如此复杂。
典型的例子还有英杰传里面策略值的计算:(等级+10)*智力*5/200。为什么不是(等级+10)*智力/40……
就算是遇到取整的误差问题,可是先乘后除,应该不存在此类问题啊。
2011-5-29 00:53
阿尔法孝直
[quote]原帖由 [i]godtype[/i] 于 2010-4-19 21:06 发表
蓝色部分我也是觉得不可思议,但是的确程序里面是这样设定,我也无法解释。
程序分析我会尽量的。 [/quote]
突然想到了一种情况:
举个例子,斩马谡之前,我军有人超过了94级,假设说是96级,而斩马谡后全军加5级(孔明不加),那么96+5>99,于是实际加的等级就是99-96=3。
[color=Silver][[i] 本帖最后由 阿尔法孝直 于 2011-6-7 15:48 编辑 [/i]][/color]
2012-2-20 17:19
高翔的泪水
谢谢楼主
页:
1
[2]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.