轩辕春秋文化论坛 » 设计与修改 » 三国志英杰传 分析结果


2004-10-23 17:05 周瑜
白河寒秋兄,看清楚我的图形是针对重阳的被包围后攻击顺序,被包围后不能使用策略、不能移动、不按物理攻击价值而直接按照图中顺序进行攻击。
而你举的例子是龙吟老大研究的是未被包围的情况,在物理攻击价值相等时的攻击顺序。
显而易见,两个顺序是完全相反的。

2004-10-23 17:19 小将军
[quote]原帖由[i]白河寒秋[/i]于2004-10-23, 16:57:25发表
按照以前小将军的打法,汜水关第5回合有这样一个情况:
[/quote]
现在大家都使用的范水关的打法不是我提出来的,是dizzy提出来的。原贴在下面:
[url=http://www.xycq.net/forum/index.php?showtopic=12632]http://www.xycq.net/forum/index.php?showtopic=12632[/url]

2004-10-23 20:26 阿尔法孝直
[quote]原帖由[i]游客丁[/i]于2004-10-23, 10:06:10发表
周瑜真牛,打英杰还要计算器。。。。 [/quote]
不就是计算器嘛,我也在用。

2004-10-24 11:13 阿尔法孝直
不知天气是如何计算的……概率都是1/3吗?晴天和云天什么区别?

2004-10-24 11:56 shia1967
用gb4追了一下,雨天代码04,05,阴天03,晴天01,02

2004-10-24 15:58 周瑜
首页附件已修正,请大家重新下载。

2004-10-25 13:52 龙吟
三国志英杰传 分析结果 补充(一)

1.天气变化的算法:
   1)天气代码:00、01、02表示晴天 03表示阴天  04、05表示雨天
   2)变化算法
        第一步:
        变量A=0-5的随机数
        变量B=上一回合天气
        第二步:
        如果变量B小于变量A,则变量C=变量B+1
        如果变量B大于变量A,则变量C=变量B-1
        如果变量B等于变量A,则变量C=变量B
        第三步:
        如果变量C等于00,则本回合天气=05
        如果变量C等于05,则本回合天气=00
        如果变量C是01~04,则本回合天气=变量C
     3)如此看下来,晴天出现的概率大约为一半,雨天大约是1/3,阴天是1/6。
        如果上一回合是晴天,本回合有13/18的概率出现晴天,有3/18的概率出现阴天,有2/18的概率出现雨天。
        如果上一回是阴天,本回合有3/6的概率出现晴天,1/6的概率出现阴天,2/6的概率出现雨天。
        如果上一回是雨天,本回合有2/12的概率出现晴天,4/12的概率出现阴天,6/12的概率出现雨天。

2.WINDOWS版必然晴天的修改方法:
   修改 R3WIN.EXE  偏移为 0x02A48F 的地方
   将        3A  46   FE  76  05
   修改为  B0  00  90  EB  2D
   (如果要修改为必然雨天,则是:B0  05  90  EB  2D )

另:因为网络有问题,所以贴楼顶帖的附件时残缺,现在已经修复。特此向大家致歉。

2004-10-26 12:19 阿尔法孝直
还有一个问题没解决:援军的位置如果被人占领,那么援军的位置偏移的[color=blue]顺序[/color]是什么?

2004-10-26 12:20 阿尔法孝直
晴天和云天对策略的影响不同吗?

2004-10-26 14:28 游客丁
似乎没有不同,只是晴天和阴天下一天的天气的概率不同

2004-10-29 18:15 老六
龙吟兄能否给个GameTools的下载链接,兄弟的电脑上次崩掉后就折了它,在网上没找着?

2004-10-30 11:27 阿尔法孝直
[quote]原帖由[i]老六[/i]于2004-10-29, 18:15:07发表
龙吟兄能否给个GameTools的下载链接,兄弟的电脑上次崩掉后就折了它,在网上没找着? [/quote]
[url=http://www.xycq.net/forum/index.php?showtopic=6486&st=40&hl=]http://www.xycq.net/forum/index.php?showto...=6486&st=40&hl=[/url]

2004-10-30 13:36 张筱怡
设计这款游戏的人也不如楼主分析的透彻

2004-11-14 20:59 周瑜
[quote]原帖由[i]龙吟[/i]于2004-10-25, 13:52:04发表
1.天气变化的算法:
   1)天气代码:00、01、02表示晴天 03表示阴天  04、05表示雨天
   2)变化算法
        第一步:
        变量A=0-5的随机数
        变量B=上一回合天气
        第二步:
        如果变量B小于变量A,则变量C=变量B+1
        如果变量B大于变量A,则变量C=变量B-1
        如果变量B等于变量A,则变量C=变量B
        第三步:
        如果变量C等于00,则本回合天气=05
        如果变量C等于05,则本回合天气=00
        如果变量C是01~04,则本回合天气=变量C
     3)如此看下来,晴天出现的概率大约为一半,雨天大约是1/3,阴天是1/6。
        如果上一回合是晴天,本回合有13/18的概率出现晴天,有3/18的概率出现阴天,有2/18的概率出现雨天。
        如果上一回是阴天,本回合有3/6的概率出现晴天,1/6的概率出现阴天,2/6的概率出现雨天。
        如果上一回是雨天,本回合有2/12的概率出现晴天,4/12的概率出现阴天,6/12的概率出现雨天。 [/quote]
根据重阳的计算结果:
[url=http://www.xycq.net/forum/index.php?showtopic=31678&view=findpost&p=389195]http://www.xycq.net/forum/index.php?showto...ndpost&p=389195[/url]
00和05的出现概率为1/32
01和04的出现概率为5/32
02和03的出现概率为5/16
由于a0~a2表示的是晴天,a3是阴天,a4~a5是雨天,所以晴天的概率是1/2,阴天的概率5/16,雨天的概率是3/16。

2004-11-14 22:50 慕容血
血大胆估计,使用炸弹的随机数应该是0~20!
血用襄阳I刘备带赤兔第一回合炸一次以及瓦口第一回合炸了四十次,出现的最小值为1350,最大值1650!

2004-11-15 07:39 阿尔法孝直
[quote]原帖由[i]慕容血[/i]于2004-11-14, 22:50:54发表
血大胆估计,使用炸弹的随机数应该是0~20!
血用襄阳I刘备带赤兔第一回合炸一次以及瓦口第一回合炸了四十次,出现的最小值为1350,最大值1650! [/quote]
龙吟说的是1~14,而你认为是1~20
我认为是1~19!

2004-11-15 10:34 慕容血
临界值问题,血遇到过1350和1650,那么0~20应该是没错的了!
你可以用瓦口测试一下,第一回合就能炸到,炸完就全军撤退再炸!

2004-11-15 11:00 重拳猛击
[quote]原帖由[i]慕容血[/i]于2004-11-15, 10:34:57发表
炸完就全军撤退再炸! [/quote]
杀人如麻先生看到这句话也要退避三舍啊。

2004-11-15 12:20 阿尔法孝直
求:每回合开始时混乱恢复率公式

2004-11-26 12:35 阿尔法孝直
咦,龙吟这几天跑哪去了?

2004-12-16 13:49 xixid2000
感觉用gb4s/l天气还不如直接用补丁,省事多了,龙吟给出win版的地址,不知dos版英杰传main.exe文件中天气的地址是多少?如何修改?如有高人知道,请告知,谢谢!

2005-2-6 23:23 BT土偶
[quote]策略闪避=(智力×等级÷100+智力)÷2×2[/quote]
怎麼這些作者都不會先把數式簡化呢……頭昏@@

2005-2-7 10:27 阿尔法孝直
这不能简化。你以为除以2再乘以2可以简化?其实不然。
举个例子:
49/2=24.5,由于英杰传是整数算法,所以取整:49/2=24;
然后24*2=48,所以49/2*2=48,不等于49。

2005-2-7 19:06 BT土偶
[quote]原帖由[i]阿尔法孝直[/i]于2005-02-07, 10:27:10发表
这不能简化。你以为除以2再乘以2可以简化?其实不然。
举个例子:
49/2=29.5,由于英杰传是整数算法,所以取整:49/2=29;
然后29*2=48,所以49/2*2=48,不等于49。 [/quote]
呵呵~我不服气呢  

一﹑這种算式有碍直观,应加以注明。
二﹑我怀疑部份算式还是可以简化,像曹操伝一样,最終计算結果捨去小数点。

2005-2-9 00:22 阿尔法孝直
当然我也希望如此。可事实偏偏就与我们相违背。

2005-3-18 17:57 周瑜
[quote]原帖由[i]龙吟[/i]于2004-10-25, 13:52:04发表
三国志英杰传 分析结果 补充(一)

1.天气变化的算法:
   3)如此看下来,晴天出现的概率大约为一半,雨天大约是1/3,阴天是1/6。
    如果上一回合是晴天,本回合有13/18的概率出现晴天,有3/18的概率出现阴天,有2/18的概率出现雨天。
    如果上一回是阴天,本回合有3/6的概率出现晴天,1/6的概率出现阴天,2/6的概率出现雨天。
    如果上一回是雨天,本回合有2/12的概率出现晴天,4/12的概率出现阴天,6/12的概率出现雨天。

2.WINDOWS版必然晴天的修改方法:
  修改 R3WIN.EXE 偏移为 0x02A48F 的地方
  将    3A 46  FE 76 05
  修改为 B0 00 90 EB 2D
  (如果要修改为必然雨天,则是:B0 05 90 EB 2D )
[/quote]
[url=http://www.xycq.net/forum/index.php?showtopic=31678]http://www.xycq.net/forum/index.php?showtopic=31678[/url]
在这帖中,重阳已经计算出晴天的概率是1/2,阴天的概率5/16,雨天的概率是3/16,与龙吟的估计有所出入。

2005-4-3 13:15 冥火
太牛了,顶

[color=blue][size=4]别总是顶啊,给点建议什么的[/size][/color]

2005-4-23 02:13 tobywhcheng
大體把這些都加進我曹操傳的工作表裏了,就行動方式沒有

龍吟能把那個對仇人的物理攻擊bug給改回來嗎?
照這樣看傻瓜應該不是bug
編程的應該會考慮到士氣歸0也可能沒混亂而做成不撤退
要是沒有考慮到,那就是bug了(好一句肺腑之言)
不過我認為這個不太可能

等我好好研究再實測一些數據再貼上分析比較結果來

2005-5-28 00:26 周瑜
参照龙吟的win版研究结果,对DOS版进行研究,成功得到锁定晴天(雨天)的修改方法:

  1.锁定晴天:在main.exe文件中,修改自02779B起的5个字节:
初始值:[font=Fixedsys]3A、46、FE、76、05[/font]
修改为:[font=Fixedsys]B0、00、90、EB、2B[/font]
  2.锁定雨天:在main.exe文件中,修改自02779B起的5个字节:
初始值:[font=Fixedsys]3A、46、FE、76、05[/font]
修改为:[font=Fixedsys]B0、05、90、EB、2B[/font]

由于修改很简单,这里就不提供补丁下载了。

2006-3-4 13:02 snowwaft
奖励经验值=64÷(攻击方等级-防御方等级+2)

这个式子好象不大正确,假设攻击方等级是10及,防御方等级是12级,这样被除数就是0了

2006-10-5 20:03 阿尔法孝直
有一个问题:巨鹿的张合在村中很喜欢牵制刘备,这说明牵制的行动价值也存在仇人的问题。为什么龙吟没分析出来?
还有,不走奇袭中洛阳的徐庶很奇怪,他不爱攻击我方,这是为什么?他的AI值是多少?
许昌2中的司马懿很喜欢用物理攻击,怎么回事?他的AI值是多少?

2006-10-6 11:32 阿尔法孝直
[quote]原帖由 [i]snowwaft[/i] 于 2006-3-4 13:02 发表
奖励经验值=64÷(攻击方等级-防御方等级+2)

这个式子好象不大正确,假设攻击方等级是10及,防御方等级是12级,这样被除数就是0了 [/quote]

我晕,这个公式成立的条件是攻等级>防等级

2006-10-6 14:03 阿尔法孝直
还有,按照下一回合的天气算法,那么第一回合的天气又该如何算?

2006-10-7 12:30 阿尔法孝直
另外,我打汜水时,关张围攻鹿岩中的赵岑。
某一回合,关羽50多兵,张飞200多兵,结果赵岑攻击关羽将关羽击退。
可此时攻关羽的伤害应比攻张飞时的小一些啊。说明攻关羽的价值应比攻张飞时的小啊!为什么赵岑选择攻关羽?这说明计算行动价值时如果可以击退人,那么行动价值应该有加成!

2006-10-7 12:32 KYOKO
回复 #94 阿尔法孝直 的帖子

敌人应该是优先攻击能击退的敌人

2006-10-7 12:34 阿尔法孝直
为什么龙吟没分析出来?没分析出来的DD好多啊!!!

另求,每一关友/敌军的AI值。

2006-10-7 23:49 雲哥
这个出来了MOD不知道还远不远:unsure:

2006-10-10 12:09 阿尔法孝直
《三国志英杰传》关于天气问题的补充

第一回合之前,“上一回合”天气代码为00,之后第一回合的天气的算法中的“上一回合”就是00,而战斗胜利或重新游戏或读取存档后,天气代码会重置回00
(但偶不敢肯定。连续的战役第一战结束后会不会重置会00,尚未测试。)

2006-10-10 12:51 阿尔法孝直
关于移动力的问题:

这时候为什么轻骑兵的移动范围只到四周一格?

2006-10-10 23:32 周瑜
[quote]原帖由 [i]阿尔法孝直[/i] 于 2006-10-7 00:30 发表
另外,我打汜水时,关张围攻鹿岩中的赵岑。
某一回合,关羽50多兵,张飞200多兵,结果赵岑攻击关羽将关羽击退。
可此时攻关羽的伤害应比攻张飞时的小一些啊。说明攻关羽的价值应比攻张飞时的小啊!为什么赵岑选择攻关羽?这说明计算行动价值时如果可以击退人,那么行动价值应该有加成! [/quote]

攻击伤害相差在16点以内应该视为相等的吧,这时按照上右下左的顺序选择攻击对象。

2006-10-11 12:14 阿尔法孝直
[quote]原帖由 [i]周瑜[/i] 于 2006-10-10 23:32 发表


攻击伤害相差在16点以内应该视为相等的吧,这时按照上右下左的顺序选择攻击对象。 [/quote]

可是赵岑攻击张飞的伤害应在110左右啊,攻击关羽才50多,相差快60了!远不止16!

2006-10-14 10:29 阿尔法孝直
关于分析结果,我提几个问题:

1、
      (5)如果是假情报系
        如果敌人已混乱,加权值=0
        随机值=(0~299)的随机数
        根据假情报系策略全分析中的算法计算策略是否成功,[color=Red]如果计算结果是策略成功,加权值=随机数+300。[/color]
        (PS:这里计算的结果并不表示策略一定成功,因为使用策略时还会再计算一次。)

[color=Blue]如果计算结果是策略失败,那么加权值=?[/color]

2、[color=Blue]主动型的敌军如何朝着目标坐标移动(当敌人还距离我方很远的时候)?
    也就是说移动范围内存在多个行动价值相等的坐标时,怎样确定如何移动?
  (例如长坂坡之战)[/color]

[[i] 本帖最后由 阿尔法孝直 于 2006-10-14 15:25 编辑 [/i]]

2006-10-15 16:29 阿尔法孝直
3、为什么基本看不见妖术师用假情报/牵制?

4、如果出现多个价值相等的策略,如何选择?

[[i] 本帖最后由 阿尔法孝直 于 2006-10-15 17:07 编辑 [/i]]

2006-10-17 15:41 阿尔法孝直
有AI列表吗?

2006-10-26 17:23 godhelpu
习惯潜水了,不过每次看到楼主对游戏的分析,都不禁感叹:实在太变态了。。

龙吟大大能否对追踪过程指导一二?难道真的是bpx下断,单步trace下来的?若果如此,兄足以当小弓虽之称号了。

再赞一个,有兄若此,实是我等玩家之福!

2006-10-27 17:24 019037226
前期略微有点紧张,后期就不缺钱。中期可以把手套,团牌卖掉一些,也有很多钱

2007-3-9 18:13 阿尔法孝直
[quote]2.仇人和目标
    在英杰传中,存在仇人和目标的概念。
    以英杰传WINDOWS版为例,在内存中,每只部队的附加属性占据14个字节,说明如下:
      偏移+00  占2字节  人物代码(刘备=0000,关羽=0001)
      偏移+02  占1字节  战场代码(00=我军第1只部队、0E=我军第15只部队,0F=敌军第1只部队)
      (注:00-0E是我军,[color=Red]共15个位置[/color],但不一定用完,0F-2C是敌军,共30个位置,但不一定用完)
      偏移+03  占1字节  部队横坐标(以左上角为0,0)
      偏移+04  占1字节  部队纵坐标
      偏移+05  占1字节  仇人代码(FF表示没有仇人)
      偏移+06  占2字节  目标横纵坐标(0000表示没有目标)
[color=Red]      偏移+08   占1字节  不明[/color]      偏移+09  占1字节  部队撤退标志(00=消失 01=未出场 02=正常 04=撤退)
      偏移+0A  占1字节  部队状态(从低位开始:第2位为1表示混乱,第3位为1表示全屏移动,第6位为0表示伏兵,第8位为1表示行动结束)
      偏移+0B  占1字节  部队AI类型(见后)
      偏移+0C  占1字节  部队士气
      偏移+0D  占1字节  部队策略值
[/quote]

1、我发现了英杰传中16个人参加的战役!
  是长安!除了原始的11个人之外,外加姜维、3个异民族、还有徐庶,共16个人!
2、我猜到“不明”指什么了!是部队脸的朝向!

2007-5-9 11:08 woaixuanyuan
将三国志英杰传和孔明传合2为1做成曹操传的MOD!

曹操传MOD有很多题材,怎么就没人把当年最为经典的2款战棋游戏英杰传和孔明传做成MOD呢?如果有真有人要做英杰传和孔明传,我建议将这2款游戏合2为1,叫做刘备传.整个模式,场景,地图,剧情可以延续前作,稍加改动,最好是战场特殊形象要多,再将曹操传里面的优点融入进去,例如:练果子,策略和宝物的追加,兵种相克和地理优势等等.

2007-5-11 12:42 kkk999z
详尽的分析
十分棒

2007-7-12 11:06 bb123456
强。超强。以后都没什么秘密了啊。

2007-7-12 17:05 阿尔法孝直
楼上抄袭2楼,很无耻。

2007-7-18 12:04 ws02175161
路过 看上去已经觉得华丽

2007-10-22 10:39 土狼
随机数算法分析出来了吗?
特别想知道,我军行动对随机数是怎样影响的
在哪能找到?

2007-10-29 23:47 周瑜
[quote]原帖由 [i]土狼[/i] 于 2007-10-21 22:39 发表
随机数算法分析出来了吗?
特别想知道,我军行动对随机数是怎样影响的
在哪能找到? [/quote]

即使找出来也没法计算。

以下引自英雄无敌三升级技能提升的随机数算法:
随机数r由游戏开始产生,随机数种子r0由等级和r决定,
r0={r*26497+(等级+1)*343fd+259df}
此后迭代如下:
r1={r0*343fd+269ec3}
r2={r1*343fd+269ec3}
r3={r2*343fd+269ec3}.
.................................

由ri产生n内随机数的算法:
取ri的高16位数并去掉最高位得到di,di除以n得到余数ki.

当需要产生随机数时,由ri得到ki,并且将ri变成r(i+1),各个游戏公式不同,原理类似。

英杰传中,普通攻击不产生随机数,如果攻击贼兵/武术家或者使用牵制/援助产生一次随机数,即由r1变成r2。使用焦热等产生两次随机数,即由r2变成r4。

[[i] 本帖最后由 周瑜 于 2007-10-29 11:52 编辑 [/i]]

2008-7-29 08:01 路过没有错过
这个帖子强
必须要顶!

2008-8-5 13:46 飘逸周郎
:qDD+

2008-8-28 16:09 jlw472776067
强啊以后都没什么秘密了啊。

2009-6-8 17:40 土狼
关于援助和策略攻击那段的分析是不是有点问题,没见过敌人放弃火龙而选择援助:wacko:

2009-6-8 18:23 阿尔法孝直
[quote]原帖由 [i]土狼[/i] 于 2009-6-8 17:40 发表
关于援助和策略攻击那段的分析是不是有点问题,没见过敌人放弃火龙而选择援助:wacko: [/quote]


[quote]      (7)如果攻击系策略
        基本值=策略基本威力+攻击方策略能力-防御方策略能力[b][size=3][color=red]-100[/color]
[/size][/b]        (PS:策略基本威力和策略能力的计算方法见策略攻击全分析)
        如果是在树林中使用焦热系策略或在雨天使用漩涡系策略,基本值=基本值+基本值÷4。(增幅25%)
        随机值=(0~基本值÷50-1)的随机数
        加权值=基本值+随机值
        (PS:这里全体攻击系策略的加权值只按接受攻击点的那只部队计算,不计算其相邻部队,因此基本上看不到敌人使用大焦热、大火龙的策略;似乎应当是绝对,但龙吟不敢肯定,这应该是一个BUG)[/quote]

我怀疑红字部分是笔误,真正的应该是[b][size=3][color=red]+100[/color][/size][/b]。因为我把骑兵改成会漩涡在信都进行测试,发现漩涡行动价值偏小。

对比策略攻击伤害公式:
[quote]   1)第一步
   人物策略能力=智力×等级÷50+智力
   策略攻击杀伤=攻击方人物策略能力×2-防御方人物策略能力+基本策略杀伤[/quote]

该公式可以改写成:

[b][size=2][color=#ff0000]策略攻击杀伤=基本策略杀伤+攻击方人物策略能力-防御方人物策略能力+攻击方人物策略能力[/color][/size][/b]

对照伤害公式和行动价值公式,我觉得[size=3][color=red][b]+100[/b][/color][/size]更合理一些。

2009-6-8 21:57 土狼
就算是+100好像还不对

火龙行动价值=([color=DarkOrange]策略基本威力600[/color]+[color=Olive]攻击方策略能力-防御方策略能力[/color]+[color=Green]随机数[/color]+[color=Blue]100[/color])/16
随机值=(0~基本值÷50-1)
人物策略能力=智力×等级÷50+智力


援助行动价值=([color=DarkOrange]策略基本威力600[/color]+[color=Olive]使用者智力×使用者等级÷20[/color]+[color=Teal]随机数[/color]+[color=Blue]策略附加值100[/color])/16
随机值=0~(基本值÷10-1)

第一项和最后一项完全一样,第二项我们经常遇到的是我方等级*智力比敌方多;第三项基本值类似的情况下肯定是÷10的随机数多的时候多,

似乎还应该援助行动价值偏高:doubt:

页: 1 [2] 3


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.