Board logo

标题: 三国志英杰传 分析结果 [打印本页]

作者: 龙吟    时间: 2004-7-27 18:16     标题: 三国志英杰传 分析结果

一、部队的各项属性的计算方法:
    1.攻击力:
        攻击力=((4000÷(140-武力)+兵种基本攻击力×2+士气)×(等级+10)÷10)×(100+宝物攻击加成)÷100
        【兵种基本攻击力表】
        短兵  40  长兵  60  战车  60
        弓兵  30  连弩兵  60  投石车  80
        轻骑兵  60  重骑兵  70  近卫队  80
        山贼  50  恶贼  60  义贼  70
        军乐队  20  猛兽兵团  80  武术家  70
        妖术师  20  异民族  70  民众  20  运输队  20
        【宝物攻击加成表】
        宝物代码   宝物名称        攻击加成(百分比)
        ----------------------
        09         倚天剑              14
        0A         青罡剑              20
        0B         七星剑              10
        0C         青龙偃月刀          12
        0D         三尖刀              10
        0E         方天画戟            18
        0F         蛇矛                10
        39         雌雄双剑            16
        3A         英雄之剑            22
        3B         霸王之剑            24
        
    2.防御力:
        防御力=((4000÷(140-统御力)+兵种基本防御力×2+士气)×(等级+10)÷10×(100+宝物防御加成)÷100
        【兵种基本防御力表】
        短兵  40  长兵  60  战车  80
        弓兵  40  连弩兵  40  投石车  50
        轻骑兵  30  重骑兵  50  近卫队  60
        山贼  40  恶贼  50  义贼  60
        军乐队  20  猛兽兵团  30  武术家 60
        妖术师  20  异民族  80  民众  20  运输队  20
        【宝物防御加成表】
        宝物代码   宝物名称        防御加成(百分比)
        ----------------------
        03         孙子兵法            22
        04         孟徳新书            15
        3C         六韬                15
        3D         三略                15
        3E         吴子兵法            20
        
    3.最大兵力:
        最大兵力=兵种基本兵力+兵种兵力增幅×(等级-1)
        【兵种基本兵力与兵力增幅表】
        兵种      基本兵力   兵力增幅    99级时兵力
        ----------------------
        步兵系     500         50          5400
        骑兵系     500         60          6380
        弓兵系     500         40          4420
        贼兵系     800         40          4720
        军乐队     300         40          4220
        猛兽兵团   400         50          5300
        武术家     600         50          5500
        妖术师     300         50          5200
        异民族     700         60          6580
        民众       500         50          5400
        运输队     300         40          4220
        
     4.最大策略值:
        最大策略值=(等级+10)×智力×5÷200
        
二、物理攻击全分析:
    1.攻击伤害
    1)第一步:
        当攻击方兵种克制防御方兵种(骑兵系攻击步兵系、步兵系攻击弓兵系、弓兵系攻击骑兵系)时,
            防御力修正值=防御方防御力-防御方防御力÷4
        当攻击方兵种被防御方兵种克制(骑兵系攻击弓兵系、弓兵系攻击步兵系、步兵系攻击骑兵系)时,
            防御力修正值=防御方防御力+防御方防御力÷4
        当攻击方兵种和防御方兵种不存在生克关系时
            防御力修正值=防御方防御力
    2)第二步:
        基本物理杀伤=(攻击方攻击力-防御力修正值÷2)×(100-地形杀伤修正)÷100
      【地形杀伤修正】
          森林  20  山地  30   村庄   5
          草原   5  鹿寨  30  兵营  10
    3)第三步:
        如果是反击
           攻击伤害=基本物理杀伤÷2
        如果是正常攻击
           攻击伤害=基本物理杀伤
    4)第四步:
       如果攻击伤害<=0,则攻击伤害=1。
    5)第五步:
       如果攻击伤害大于防御方兵力,则攻击伤害=防御方兵力
    2.防御方士气损伤
       士气降幅=攻击伤害÷(防御方等级+5)÷3
       如果士气降幅为0,且杀伤>0,则士气降幅=1;如果士气降幅为0,且杀伤=0,则士气降幅=0。
       如果士气降幅大于防御方士气,则士气降幅=防御方士气。
    3.经验值获得
       敌军部队不能获得经验值。
       经验值由两部分构成:基本经验值和奖励经验值。
       当攻击方等级低于等于防御方等级时:
           基本经验值=(防御方等级-攻击方等级+3)×2
           如果基本经验值大于16,则基本经验值=16。
       当攻击方等级高于防御方等级时:
           基本经验值=4
       如果杀死敌人,可以获得奖励经验值:
           如果杀死敌军主将
               奖励经验值=48
           如果杀死的不是敌军主将,且敌军等级高于我军
               奖励经验值=32
           如果杀死的不是敌军主将,且敌军等级低于等于我军
               奖励经验值=64÷(攻击方等级-防御方等级+2)
       最终获得的经验值=基本经验值+奖励经验值。
    4.是否会被防御方反击
       如果防御方兵种不是贼兵系或武术家队不会受到反击。
       如果攻击方兵种不是贼兵系、武术家队、骑兵系、异民族、猛兽兵团,不会受到反击。
       如果攻击方消灭防御方,不会受到反击。
       如果防御方陷入混乱状态,不会受到反击。
       如果攻击方的攻击类型是反击,不会受到反击。(不能对反击进行反击)
       计算一个0-149之间的随机数,如果该随机数小于防御方武力,则受到防御方反击。
    『说明』
       防御方武力越高,越容易产生反击
    5.防御方是否会陷入混乱
       如果攻击后,防御方的士气下降到30以下,则防御方有60%的可能性陷入混乱。
三、策略攻击全分析
    策略攻击指使用焦热系策略、漩涡系策略、落石系策略对敌人进行攻击
    1.攻击伤害
      1)第一步
      人物策略能力=智力×等级÷50+智力
      策略攻击杀伤=攻击方人物策略能力×2-防御方人物策略能力+基本策略杀伤
      【基本策略杀伤表】
      焦热  200   火龙  600   猛火  1000   大焦热  200   大火龙  600
      漩涡  300   浊流  700   海啸  1100   大漩涡  300   大浊流  700
      落石  400   山崩  800   山洪  1200   大落石  400   大山崩  800
      2)第二步
      如果防御方是军乐队、运输队或妖术师
          策略攻击杀伤=策略攻击杀伤÷2
      3)第三步
      如果被防御方在树林中,且策略是焦热系策略
          策略攻击杀伤=策略攻击杀伤+策略攻击杀伤÷4
      如果当前天气是雨天,且策略是漩涡系策略
          策略攻击杀伤=策略攻击杀伤+策略攻击杀伤÷4
      4)第四步
          策略杀伤随机修正是一个0到(策略攻击杀伤÷50)之间的随机整数。
          策略攻击杀伤=策略攻击杀伤+策略杀伤随机修正值
      5)第五步
          计算策略闪避
              策略闪避=(智力×等级÷100+智力)÷4
              如果部队是军乐队/运输队/妖术师
              策略闪避=(智力×等级÷100+智力)÷4×2
          计算策略命中
              策略命中是一个随机整数,该值大于等于0,小于(智力×等级÷100+智力)
          计算策略成功
              如果攻击方策略命中大于防御方策略闪避,则策略成功,反之策略失败。
          如果策略失败,策略攻击杀伤=0。
    『说明』
       攻击方智力越高,等级越高,策略越容易成功;防御方智力越低,等级越低,策略越容易成功。
       但因为策略闪避是÷4的关系,所以影响没有策略命中大。
       双方等级想同,智力相同的情况下,策略成功率为75%。
       正常情况下,双方等级比较接近,若按等级相同算,防御方智力高于攻击方4倍时,策略必然不成功,
       如果防御方还是妖术师/军乐队/运输队,则防御方智力只要高于进攻方的2倍,策略就必然不成功。
       因为等级要加上100,所以对策略成功概率影响不大。99级对1级和100智力对50智力效果差不多。
     2.防御方士气损伤
       士气损伤=策略攻击杀伤÷100
       如果士气降幅为0,且杀伤>0,则士气降幅=1;如果士气降幅为0,且杀伤=0,则士气降幅=0。
       如果士气损伤大于防御方士气,则士气损伤=防御方士气
     3.经验值获得
       同物理攻击
     4.防御方是否会陷入混乱
       同物理攻击
(原附件不全,周瑜重新上传。2004.10.24.19:40)

[ 本帖最后由 东方无翼 于 2006-10-7 07:00 编辑 ]

附件: 三国志全分析.txt (2004-7-27 18:16, 28.47 K) / 该附件被下载次数 1785
http://www.xycq.org.cn/forum/attachment.php?aid=2129
作者: 湘江子龙    时间: 2004-7-27 18:32

强。超强。以后都没什么秘密了啊。
作者: 周瑜    时间: 2004-7-27 19:18

1.兵营防御10%,并且不恢复士气。
2.看来破解人员记不清数据与游戏内容的联系是通病;van也在做英杰传破解,还在问什么情况下实际伤害减半呢。
3.一直以为军乐、运输、妖术的策略伤害和命中率是40%,原来是一半啊。
4.还有9部分啊,想不出怎么还需要这么多。也就道具效果和恢复系、牵制系策略效果没有提到。不妨看看我的结论是否正确:
三国志英杰传牵制系策略效果,经验公式http://www.xycq.net/forum/index.php?showtopic=22636
作者: phone    时间: 2004-7-27 21:11

“敌军不能获得经验。”明显是不对的。
作者: 重阳    时间: 2004-7-28 00:44

好好,好的没话说。

周瑜老弟,别忘了还有最复杂、最难解的一个:敌军行动准则

呵呵,其实这个是最核心的东西,不知在不在龙吟的分析范围内。
作者: 马超将军    时间: 2004-7-28 00:56

重阳说的很对,如果知道了敌人的行动规则,那有关布阵就是小菜一碟了。
作者: 重拳猛击    时间: 2004-7-28 07:58

村庄恢复和策略/道具恢复不知道是一种还是两种;
混乱系策略命中率是不是和其他策略一样?
作者: 龙吟    时间: 2004-7-28 16:48

四、牵制系策略全分析
     1.成功率
       计算策略闪避
              策略闪避=(智力×等级÷100+智力)÷4
              如果部队是军乐队/运输队/妖术师
              策略闪避=(智力×等级÷100+智力)÷4×2
       计算策略命中
              策略命中是一个随机整数,该值大于等于0,小于(智力×等级÷100+智力)              
       计算策略成功
              如果攻击方策略命中大于防御方策略闪避,则策略成功,反之策略失败。
       『说明』
       牵制系策略的成功率与攻击系策略完全一致
     2.士气损伤
       如果策略成功
          士气损伤=策略基本士气损伤+攻击方等级÷10-防御方等级÷10
          如果士气损伤大于被攻击部队士气,则士气损伤=被攻击部队士气。
       如果策略失败
          士气损伤=0
       【牵制系策略基本士气损伤】
           牵制  20  挑拨  30  欺压  40
       【关于“傻瓜”】
        因为士气损伤的算法,所以当敌军士气为0时,使用牵制的士气损伤固定为0。
        而部队清醒时,士气损伤=0,则不会触发因士气撤退的判定,部队就不会撤退。
        于是“傻瓜”诞生了。
     3.经验值获得
       固定获得8点经验值
     4.防御方是否会陷入混乱
       如果牵制后,防御方的士气下降到30以下,则按以下算法判断是否会陷入混乱。
       计算出一个0-4之间的随机数,如果随机数小于3,则防御方部队陷入混乱。
       『说明』
       防御方有60%的可能性陷入混乱。
       当士气30以下时,诸葛亮和刘禅陷入混乱的可能性是一样的。

五、假情报系策略全分析
     1.成功率
       计算策略闪避
              策略闪避=(智力×等级÷100+智力)÷2
              如果部队是军乐队/运输队/妖术师
              策略闪避=(智力×等级÷100+智力)÷2×2
       计算策略命中
              策略命中是一个随机整数,该值大于等于0,小于(智力×等级÷100+智力)              
       计算策略成功
              如果攻击方策略命中大于防御方策略闪避,则策略成功,反之策略失败。
       『说明』
       1)对于假情报,防御方的策略闪避提高了一倍,这也是假情报系策略不如牵制/攻击系策略成功率高的缘故。
       例如:在双方等级相同、智力相同的情况下,牵制系/攻击系成功的概率是75%,而假情报系只有50%。
       2)如果防御方是军乐队、运输队和妖术师,就更加可怕,当双方等级、智力相同时,牵制系/攻击系有50%可能成功,
       而假情报系则永远失败。
       3)在正常情况下,双方等级差距不会很大,再加上等级影响较弱,智力影响就格外突出。
       &lt;1&gt;以诸葛亮为例,其智力为100,保持他的兵种为妖术师,并假设他的等级与其他人完全相同。
       那么智力低于50的家伙无法对他成功使用牵制/攻击性策略,即使是司马懿(智力99),对他使假情报系策略也肯定不会成功。
       99级妖术师诸葛亮,策略闪避=(99×100÷100+100)÷2×2=198。
       99级妖术师司马懿,最大策略命中=(99×99÷100+99)-1=196。
       &lt;2&gt;这好像有些奇怪,大家可以作个试验:用庞统(智力98)出战许昌/邺之战,然后将庞统的等级和司马懿的等级都改成99级,让
       庞统对司马懿使用假情报系策略,应该全部失败。
       99级妖术师司马懿,策略闪避=(99×99÷100+99)÷2×2=196。
       99级妖术师庞统,最大策略命中=(98×99÷100+98)-1=194。
       &lt;3&gt;许昌I之战司马懿的等级好像是50(记不清了),智力99,其策略闪避=(50×99÷100+99)÷2×2=148。
       庞统的等级假设为99,智力98,其最大策略命中=(99×98÷100+98)-1=194。
       此时假情报成功率=(194-148)÷194=23.7%。
       &lt;4&gt;如果司马懿等级为1,其策略闪避=(1×99÷100+99)÷2×2=98。
       此时假情报成功率=(194-98)÷194=49.5%。
       1级的妖术师对抗99级的妖术师,假情报仍然有一半的可能失败。残念……
       &lt;5&gt;如果把妖术师/运输队/军乐队换成其他兵种,策略闪避马上下降一半。
       99级的诸葛亮,兵种战车,策略闪避=(99*100÷100+100)÷2=99。
       如果遇上99级的司马懿,最大策略命中=(99×99÷100+99)-1=196,有(196-99)÷196=49.5%的机会中假情报。
       如果遇上3级的司马懿,最大策略命中=(3×99÷100+99)-1=100,仍然有(100-99)÷100=1%的机会中假情报。
     2.伤害效果
       策略成功时,敌军混乱。
       如果敌军士气等于0,会令敌军撤退。
     3.经验值获得
       固定获得8点经验值。

六、补给系策略全分析
    补给系策略分为单体补给系策略和群体补给系策略。
    单体补给系策略有:单体援助系(援助、补给、救济)、单体激励系(激励、支援、鼓舞)、看护系(看护、治愈、救命)。
    群体补给系策略有:群体援助系(大援助、大补给、大救济)、群体激励系(大激励、大支援、大鼓舞)。
    1.允许补给
      对于单体援助系策略,被补给部队兵力满时不能补给。
      对于单体激励系策略,被补给部队士气满且不处于混乱状态时不能补给。
      对于看护系策略,被补给部队兵力满、士气满且不处于混乱状态时不能补给。
      对于群体援助系和群体激励系策略,即使被补给部队兵力、士气都满也可以补给。
    2.补给效果
      1)对于单体援助系和群体援助系策略
        基本兵力恢复值=策略基本威力+补给方智力×补给方等级÷20
        兵力恢复随机修正值是一个随机整数,在0到(基本兵力恢复值÷10-1)之间。
        补给效果=基本兵力恢复值+兵力恢复随机修正值
        如果补给效果+被补给方当前兵力&gt;被补给方最大兵力,则补给效果=被补给方最大兵力-被补给方当前兵力
        【单体援助系/群体援助系策略基本威力】
        援助  600   补给  1200  救济  1800
        大援助  600  大补给  1200  大救济  1800
        『说明』
        99级的诸葛亮,可以带来100×99÷20=495的补给加成。在加上10%的随机修正,其援助策略最高值可以达到
        (600+495)*1.1=1204,(恐怖&#33;)
      2)对于单体激励系和群体激励系策略
        基本士气恢复值=策略基本威力+补给方等级÷10
        士气恢复随机修正值是一个随机整数,在0到(基本士气恢复值÷10-1)之间。
        补给效果=基本士气恢复值+士气恢复随机修正值
        如果补给效果+被补给方当前士气&gt;100,则补给效果=100-被补给方当前士气。
        【单体激励系/群体激励系策略基本威力】
        激励  30  支援 40  鼓舞 50
        大激励  30  大支援  40  大鼓舞 50
        『说明』
        激励和援助不同之处在于,它的效果与补给方的智力无关,只要等级相同,刘禅用激励和诸葛亮用激励的效果一样。
      3)对于看护系策略
        看护系策略相当于单体援助系策略与单体激励系策略的综合。
        看护的效果=援助的效果+激励的效果
        治愈的效果=补给的效果+支援的效果
        救命的效果=救济的效果+鼓舞的效果
    3.经验值获得
        对于单体补给系策略,如果补给方是军乐队或运粮队,则获得经验值=12,否则获得经验值=8。
        对于群体补给系策略,获得经验值=8。
    4.从混乱中恢复正常
      单体激励系、群体激励系、看护系策略可以使部队从混乱中恢复正常。
      被补给部队处于混乱状态下,受到单体激励系、群体激励系和看护系策略补给,则按以下算法决定是否能恢复正常。
      1)计算一个0-99之间的随机数
      2)将该随机数与((被补给部队统御力+被补给部队士气)÷3)比较,如果随机数较小,则被补给部队恢复正常。
作者: 游客丁    时间: 2004-7-28 17:05

期待七--九,呵呵
作者: 重拳猛击    时间: 2004-7-28 17:45

小问题,请老大务必解惑。
"计算出一个0-4之间的随机数,如果随机数小于3,则防御方部队陷入混乱"
这里是指随机整数吗?
作者: 龙吟    时间: 2004-7-28 17:57



QUOTE:
原帖由重拳猛击于2004-07-28, 17:45:02发表
小问题,请老大务必解惑。
"计算出一个0-4之间的随机数,如果随机数小于3,则防御方部队陷入混乱"
这里是指随机整数吗?

当然是。三国志英杰传中的算法都是整数算法,不存在小数的概念。
作者: 马超将军    时间: 2004-7-28 18:04

敌人的补给很有问题,尤其是运输队和妖术师,动不动就来个大救济,策略耗的的很快,三下五除二就没有了,很少用大援助和大补给的。或者单独来个救济和看护之类的。感觉浪费太多,是不是算法的问题。
作者: 龙吟    时间: 2004-7-29 19:08

七、道具使用全分析:
    1.不可使用道具
      该类道具不可使用。
      【不可道具列表】
      武器类:倚天剑、青罡剑、七星剑、青龙偃月刀、三尖刀、方天画戟、雌雄双剑、英雄之剑、霸王之剑。
      防具类:孙子兵法、孟德新书、六韬、三略、吴子兵法
      马匹类:黄爪飞龙、的卢、赤兔马
      医疗类:玉玺、赦命书、援军报告
    2.攻击类道具
      该类道具具有与同名攻击类策略相似的效果,只是威力略低。
     【攻击类道具列表】
      焦热书、火龙书、猛火书、漩涡书、浊流书、海啸书、落石书、山崩书、山洪书
      1)攻击伤害
      &lt;1&gt;第一步
      人物策略能力=智力×等级÷50+智力
      道具攻击杀伤=道具基本杀伤-防御方人物策略能力
      【攻击性道具基本杀伤表】
      焦热书  200   火龙书  600   猛火书  1000
      漩涡书  300   浊流书  700   海啸书  1100
      落石书  400   山崩书  800   山洪书  1200
      &lt;2&gt;第二步
      如果防御方是军乐队、运输队或妖术师
          策略攻击杀伤=策略攻击杀伤A÷2
      &lt;3&gt;第三步
      如果被防御方在树林中,且策略是焦热系策略
          策略攻击杀伤=策略攻击杀伤+策略攻击杀伤÷4
      如果当前天气是雨天,且策略是漩涡系策略
          策略攻击杀伤=策略攻击杀伤+策略攻击杀伤÷4
      &lt;4&gt;第四步
          策略杀伤随机修正是一个0到(策略攻击杀伤÷50)之间的随机整数。
          策略攻击杀伤=策略攻击杀伤+策略杀伤随机修正值
       『说明』
       攻击性道具对应相应策略,所不同之处有两点:
           甲:攻击性道具成功率为100%,策略攻击可能会失败。
           乙:攻击性道具造成的伤害值比使用对应策略进行攻击时少((攻击方智力×攻击方等级÷50+攻击方智力)×2)。
       2)防御方士气损伤
         同策略攻击
       3)经验值获得
         同策略攻击
       4)防御方是否会陷入混乱
         同策略攻击
    3.特殊攻击类道具
       该类道具只有一个:炸弹。
       1)攻击伤害
         &lt;1&gt;计算出一个0-20之间的随机数
         &lt;2&gt;攻击伤害=(随机数+90)×15
         &lt;3&gt;如果攻击伤害&gt;防御方兵力,攻击伤害=防御方兵力
       2)防御方士气损伤
         &lt;1&gt;计算出一个0-9之间的随机数
         &lt;2&gt;士气损伤=随机数+30
         &lt;3&gt;如果士气损伤高于防御方士气,士气损伤=防御方士气
         &lt;4&gt;如果攻击导致杀死防御方,士气损伤=防御方士气
       3)防御方是否会陷入混乱
         同策略攻击
       『说明』
       炸弹和攻击类道具有以下差异:
       &lt;1&gt;攻击伤害和士气损伤的计算方法不一样。
       &lt;2&gt;炸弹攻击不能获得经验值。
    4.混乱类道具:
      混乱类道具有三种:浓雾书、雷阵雨书、豪雨书。
      对应的策略分别是:假情报、伪兵、伪装。
      使用混乱类不能获得经验值。
      使用道具,造成混乱的成功率是100%。
      混乱类道具不能对已混乱的部队使用,但假情报系策略却可以对已混乱的部队使用。
      使用后,敌军混乱。
      如果敌军士气等于0,会令敌军撤退。
    5.补给类道具:
      补给类道具有三类:
      援助系道具:豆、麦、米,分别对应援助、补给和救济。
      激励系道具:平气书、活气书、勇气书,分别对应激励、支援和鼓舞。
      看护类道具:伤药、中药、茶,分别对应看护、治愈和救命。
      使用补给类道具不能获得经验值。
      1)补给效果:
      &lt;1&gt;对于援助类道具
        基本兵力恢复值=对应策略基本威力
        兵力恢复随机修正值是一个随机整数,在0到(基本兵力恢复值÷10-1)之间。
        补给效果=基本兵力恢复值+兵力恢复随机修正值
        如果补给效果+被补给方当前兵力&gt;被补给方最大兵力,则补给效果=被补给方最大兵力-被补给方当前兵力
        『说明』
        与援助系策略比较,其补给能力要减少(补给方智力×补给方等级÷20)。
      &lt;2&gt;对于激励系道具
        基本士气恢复值=对应策略基本威力
        士气恢复随机修正值是一个随机整数,在0到(基本士气恢复值÷10-1)之间。
        补给效果=基本士气恢复值+士气恢复随机修正值
        如果补给效果+被补给方当前士气&gt;100,则补给效果=100-被补给方当前士气。
        『说明』
        与激励系策略相比,其补给能力要减少(补给方等级÷10)。
      &lt;3&gt;对于看护系道具
        看护系道具的效果相当于同级别的援助系道具和激励系道具的总和。
      2)从混乱中恢复正常
        同补给系策略
     6.转职类道具:
       转职类道具有:遁甲天书、青囊书、鼓吹具、弓术指南书、马术指南书、剑术指南书。
       刘备不能使用转职类道具。
       如果转职后的最大兵力低于当前兵力,则当前兵力=转职后最大兵力。
     7.升职类道具:
       升职类道具有:长枪、战车、连弩、投石车、马铠、近卫铠、无赖精神、侠义精神。

[ 本帖最后由 龙吟 于 2011-9-21 11:55 编辑 ]
作者: 周瑜    时间: 2004-7-29 19:44



QUOTE:
原帖由龙吟于2004-07-28, 16:48:52发表
六、补给系策略全分析
    2.补给效果
      2)对于单体激励系和群体激励系策略
        基本士气恢复值=策略基本威力+攻击方等级÷10

补给方等级?

QUOTE:
原帖由龙吟于2004-07-29, 19:08:57发表
七、道具使用全分析:
    3.特殊攻击类道具
       该类道具只有一个:炸弹。
       2)防御方士气损伤
         &lt;3&gt;如果士气损伤低于防御方士气,士气损伤=防御方士气

高于?
作者: 天堂之令    时间: 2004-8-4 23:49

有个疑问
我记得以前看伤害计算公式,防御相克是*0.375,被克是*0.625啊
还是我记错了?
作者: 游客丁    时间: 2004-8-5 08:56

两个公式表示形式不一样,所以参数也不一样,本质是一样得
作者: hawkfly    时间: 2004-9-15 19:59

楼主,宝物代码在内存哪个地方改?
是那个超级武器的代码40的那个位置吗?
作者: 324119    时间: 2004-9-15 20:49

玉玺、赦命书、援军报告
这3个的恢复效果,以及村庄的恢复效果如何啊?
作者: loranrowe    时间: 2004-9-16 09:19



QUOTE:
原帖由马超将军于2004-07-28, 0:56:05发表
重阳说的很对,如果知道了敌人的行动规则,那有关布阵就是小菜一碟了。  

战棋中,对于机器来说,己方的行动是唯一的不确定因素,是变量。而当我们把所有的确定因素的都搞清楚了之后,战棋就变成了一个代数问题了。在此框架下(指所有规则已知),所有预期目标都是可以计算的,就是说,我们完全可以判断(100%)某个目标是否可以达成。战棋的基本解决思想是使用贪婪算法尝试,并试图改进,例如有了2199再挑战2299。这都是建立在我们不知道全部规则的情况下,一旦我们什么都知道,战棋就不是战棋了,因为所有的事情都是可形式化描述和可计算的,完全可以交给计算机去做了,它算的比我们快......(我的第一贴,呵呵)
作者: phone    时间: 2004-9-16 12:27

不能苟同!敌人的行动有时是随机的!尽管我知道他有可能干什么,但是我仍然不能事先知道他具体会做什么!即使通过某种手段,我能够确定地知道敌军将会做什么,但是我仍然无法让敌军完全按照我的意愿行动!
作者: loranrowe    时间: 2004-9-16 15:09



QUOTE:
原帖由phone于2004-09-16, 12:27:25发表
不能苟同!敌人的行动有时是随机的!尽管我知道他有可能干什么,但是我仍然不能事先知道他具体会做什么!即使通过某种手段,我能够确定地知道敌军将会做什么,但是我仍然无法让敌军完全按照我的意愿行动!

其实可以这样理解,将敌我双方的行动作为一个博弈的过程(其实博弈就是game),我方的行动将作为敌方行动的依据。当我们知道了电脑的行动方式,就可以完全穷尽敌方的可能行动和所造成的结果,这种过程可以被形式方法中的有穷状态机所描述,有穷状态机当然是可模拟和可计算的。那么为什么我们可以穷尽敌方的行动呢,您也提到了,他们的行动有可能是随机的,同时计策的成功与否、反击与否、状态恢复与否等等都是依赖于随机过程的。随机算法既随机数发生器造成了两种结果,第一敌方的行动有可能是随机的,第二敌方行动造成的结果有可能是随机的。第一种情况,比如我方某两个处于敌方攻击范围只能的部队经过防御力加权之后对敌方当前行动部队防御力一致。第二种情况更多见,诸葛给武道家用计策也有可能会失败吧  但是,所有的情况我们都是可以列举的,游戏过程中不存在我们不能列举的敌方的行动,1级步兵怎样也不可能一次行动将满兵满士气99级骑兵击退吧...再次  。也就是说,所有的结果状态都是可以被描述出来的,而且是有限的,也就可以被有限状态机的状态转移图来描述,也就可以做成程序来让计算机穷举(虽然穷举是很笨的办法,但确实是可以计算的)。再多说一句,其实在我们控制下的行为也是可以穷举的。
其实我发上个帖子的意思是想说,如果真的能够将电脑的行为模式通过分析汇编代码得到的话,最好不要贴出来,自己珍藏吧。我们珍爱这款游戏,不是因为画面,不是因为音乐,不是因为任何的外在因素,是因为它还能够提供给我们无穷的挑战。如果有一天,我只需要问电脑,2399能实现么、24呢25呢30呢,电脑告诉我:不可以,我就真的死心了,不会再去尝试了,不是么。
昨天晚上一直在考虑英杰传的model能不能做的出来,最后发现,现在唯一还不确定的就是敌方的行为描述了,信心简直要爆棚了。现在觉得,还是应该将game的乐趣留给各位gamer,而不应该去和机器计较什么。
ps:ytht被封了,心情很不好,多见谅。
作者: loranrowe    时间: 2004-9-16 15:17



QUOTE:
原帖由phone于2004-09-16, 12:27:25发表
不能苟同!敌人的行动有时是随机的!尽管我知道他有可能干什么,但是我仍然不能事先知道他具体会做什么!即使通过某种手段,我能够确定地知道敌军将会做什么,但是我仍然无法让敌军完全按照我的意愿行动!

再多说一句,任何随机过程都是有概率的,就算概率再小,也不是0,还是有可能出现的。所以,理论上,状态图上的任何存在转移路径的状态都是可以抵达的,不管它出现的概率有多小。何况,计算机中只存在伪随机数......
作者: phone    时间: 2004-9-16 15:19

没错,不过是人玩游戏,不是自动机。
作者: loranrowe    时间: 2004-9-16 15:35



QUOTE:
原帖由phone于2004-09-16, 15:19:08发表
没错,不过是人玩游戏,不是自动机。

所以我们更应该反思现在这种拆解、剖析的行为。
剖析的结果给我们分析问题提供了方便,但同时,它降低了不确定性,降低了我们玩游戏的乐趣,这是我真实的想法。
游戏有3个大的要素:规则、裁判和参与者。规则是应当由裁判来掌握其尺度的。如果假定这种尺度是完全确定的(很不幸,战棋就是这样),又被参与者完全掌握了,同时参与者能够完全掌握自己的行为(这3个假定是很强,但不是完全做不到),这个游戏还有什么竞赛的价值呢?
作者: 勇者哥哥    时间: 2004-9-16 15:42



QUOTE:
原帖由loranrowe于2004-09-16, 15:35:23发表
  
所以我们更应该反思现在这种拆解、剖析的行为。
剖析的结果给我们分析问题提供了方便,但同时,它降低了不确定性,降低了我们玩游戏的乐趣,这是我真实的想法。
游戏有3个大的要素:规则、裁判和参与者。规则是应当由裁判来掌握其尺度的。如果假定这种尺度是完全确定的(很不幸,战棋就是这样),又被参与者完全掌握了,同时参与者能够完全掌握自己的行为(这3个假定是很强,但不是完全做不到),这个游戏还有什么竞赛的价值呢?

这个……只不过是知己知彼,战争就是这样的了,谁让你电脑AI不够高呢?
作者: loranrowe    时间: 2004-9-16 15:47



QUOTE:
原帖由勇者哥哥于2004-09-16, 15:42:32发表

QUOTE:
原帖由loranrowe于2004-09-16, 15:35:23发表
  
所以我们更应该反思现在这种拆解、剖析的行为。
剖析的结果给我们分析问题提供了方便,但同时,它降低了不确定性,降低了我们玩游戏的乐趣,这是我真实的想法。
游戏有3个大的要素:规则、裁判和参与者。规则是应当由裁判来掌握其尺度的。如果假定这种尺度是完全确定的(很不幸,战棋就是这样),又被参与者完全掌握了,同时参与者能够完全掌握自己的行为(这3个假定是很强,但不是完全做不到),这个游戏还有什么竞赛的价值呢?

这个……只不过是知己知彼,战争就是这样的了,谁让你电脑AI不够高呢?

这就是游戏与现实的不同吧,游戏只能通过限制知情权来获得更多的可能,而现实中,我们无法完全预测下一个时刻将发生什么,就算不限制知情权也不能针对所有可能发生的情况进行准备
作者: phone    时间: 2004-9-16 15:48

我个人认为参与者并未完全掌握尺度,而且也没有能力完全掌握自己的行为。
而且即使假定你的观点都是正确的,游戏仍然有竞赛的价值,至少在必胜策略或者最有策略出现之前!
举例来说,围棋!我断言,在给定贴目的情况下,白方或黑方必有一方存在必胜策略,但是这决不影响围棋的趣味和竞赛价值!原因在于相对于人脑,选择太多,因而形势判断模糊话。
回到三国英杰传,且不说规则是否被完全揭示,单单是其选择上的复杂性,就已经决定了这一游戏的价值!如果你能够经常为了战略目的而调整战术打法或者为了战术目的而调整个人打法的话,我相信你会同意我的观点!
作者: loranrowe    时间: 2004-9-16 16:33



QUOTE:
原帖由phone于2004-09-16, 15:48:29发表
我个人认为参与者并未完全掌握尺度,而且也没有能力完全掌握自己的行为。
而且即使假定你的观点都是正确的,游戏仍然有竞赛的价值,至少在必胜策略或者最有策略出现之前!
举例来说,围棋!我断言,在给定贴目的情况下,白方或黑方必有一方存在必胜策略,但是这决不影响围棋的趣味和竞赛价值!原因在于相对于人脑,选择太多,因而形势判断模糊话。
回到三国英杰传,且不说规则是否被完全揭示,单单是其选择上的复杂性,就已经决定了这一游戏的价值!如果你能够经常为了战略目的而调整战术打法或者为了战术目的而调整个人打法的话,我相信你会同意我的观点!

对,围棋这个例子,是我忽略了。围棋的问题到现在为止尚未解决是因为状态空间太大了,用穷举法,每多搜索一步,将产生上次搜索结果的361次方倍的状态空间(可能是这样的,呵呵,不太严谨啊),每局棋200+手是正常的,而且单从规则来说,有可能永远下不完  ,这样大的状态空间就现有的全地球的计算能力而言也几乎是不能在有效时间内解决的,或者说,这种问题是无限可枚举问题,现有的计算理论还无能力解决。
现在只就英杰传而言,状态空间有多大?现在为止我也只有一个大概的概念  真是不好意思啊,没有仔细计算过就...。英杰传有一个固定的起始状态和一个固定的结束目标,出场人员有限,行为方式有限等等,所有相关规则中可列举的都是有限的。
就像上文说的,我们完全可以在一张图里面把英杰传所有可能出现的情形全部列举(虽然这个图很大),现存的所有可能或不可能达成目标的路线全部都包含在这里面,想要知道结论,只要检查一下结果就可以了,这就是可计算的威力。
再次强调一下,现在唯一使这张图不能被计算机“画”出来的原因就是,源代码尚未分析完成,还欠缺构成该图的某些要素。

再说说战略战术的问题。诚然,战略战术是行军打仗的无上法宝  。战略战术是为了某个目标而存在的。现在板上讨论的2299等等问题,就是我们制订的最终目标,所有的战略战术都应该围绕这个目标展开。很自然的,我想到了动态规划,这是一个经典运筹学问题。这个问题是这样的:整体由部分组成,我们只知道各部分的情况,我们希望求整体的最优解,但是各部分的最优解整合起来并不一定是整体最优的。解决这个问题的核心思想就是,遍历所有可能的组合  又回到前面的问题了...
作者: 重拳猛击    时间: 2004-9-17 21:02

仅靠穷举是不够的。
每个人的行动有先后顺序,每个人可能的走位上十种,如果一关敌方30个人,我方10个人,一关40回合的行动就已经是天文数字了。
作者: 白河寒秋    时间: 2004-9-20 18:51

偶想知道村庄等补给性设施每次最多能恢复多少士气啊?

偶个人感觉好象是按照比例的
作者: 易水    时间: 2004-9-20 22:59

"正常情况下,双方等级比较接近,若按等级相同算,防御方智力高于攻击方4倍时,策略必然不成功"
怪不得江夏之战中敌武术家第二回合用火龙攻击张飞,我撤退了10多次了,竟然一次也没成功,原来成功率等于零。(张飞智力为42,武术家智力为10)张飞为何智力不少3点呀?:((((
作者: 游客丁    时间: 2004-9-22 08:37

江夏之战,必须让第三天为雨天,这样武术家不能用火龙,只能攻击
作者: 易水    时间: 2004-9-22 12:28

可我是让张飞骑马第二回合想让敌人能攻击到,可惜张飞最远的位置只能够被武术家用火龙。第三回合想被攻击我就不用烦了。
作者: 阿尔法孝直    时间: 2004-10-21 12:26



QUOTE:
原帖由易水于2004-09-20, 22:59:40发表
(张飞智力为42,武术家智力为10)张飞为何智力不少3点呀?:((((

呵呵,如果这样的话,张飞就小了一辈!
(张苞的智力为39)
作者: 龙吟    时间: 2004-10-21 19:02

八、自动恢复全分析
     1.人物处于恢复性地形或持有恢复性宝物,可以触发自动恢复。
       村庄、鹿砦可以恢复士气和兵力。兵役可以恢复兵力,但不能恢复士气。
       玉玺可以恢复兵力和士气,援军报告可以恢复兵力,赦命书可以恢复士气。
       地形和宝物的恢复能力不能叠加,也就是说,处于村庄地形上再持有恢复性宝物,与没有持有恢复性宝物效果相同。但如果地形只能恢复兵力(如兵营),但宝物可以恢复兵力,这种情况下,兵力士气都能得到自动恢复。
     2.兵力的自动恢复。
       兵力的自动恢复量=150+(0~10之间的随机数)×10。
       兵力的恢复量不能超过最大兵力。
       特别需要注意的是,当兵力恢复后离最大兵力的差距不足10时,系统将自动不满该差距。例如等级1的刘备最大兵力为500,当前兵力241,如果计算出的随机数是10,那么他可以恢复250点兵力,恢复后兵力为491,只差9点兵力,系统将自动不满这9点,因此最后兵力的恢复量为259。
     3.士气的自动恢复。
       士气的自动恢复量=统御力÷10+(1~5之间的随机数)
       例子:刘备统御力为91,其士气自动恢复量在10~14之间。
       与兵力恢复相仿,士气恢复后超过90时,系统将自动不满士气。例如刘备士气为78,计算出的随机数为4,那么刘备可以恢复13点士气,达到91,系统再补满士气,实际恢复量为22。
     4.策略值的自动恢复。
       部队位于军乐队旁边可以自动恢复策略值,恢复量=每军乐队(等级÷10)点。
       如果部队旁边有一只36级别军乐队,可以恢复4点策略值;如果再有一只40级军乐队,可以恢复9点策略值。
     5.自动唤醒。
       每回合系统将试图唤醒混乱中的部队,混乱中部队恢复正常状态的算法如下:
       恢复因子=0~99的随机数,如果恢复因子小于(统御力+士气)÷3,那么部队被唤醒。由此看出,统御越高,士气越高,越容易从混乱中苏醒。
       注意:自动唤醒的判定是再自动恢复后进行的,因此是以恢复后的士气为准。
     6.出场位置:
       附带说一下,系统设定的出场位置是根据你选择人物的顺序安排的,因此可以利用这一点安排你的战斗初始位置。
作者: 龙吟    时间: 2004-10-21 19:11

后记:
终于分析完毕了,龙吟仰天大笑三声。这几个月来,龙吟时断时续,阅读三国志英杰传WINDOWS版的反汇编代码,而汇编语言之难读,实在是让我太痛苦了。不过好再最后终于完成了这项工作。长吁一口气先。
三国志英杰传实在是一个经典的游戏,其系统设计相当合理。但龙吟在分析中,仍然发现了其AI算法的BUG。其实上也不能说是BUG,只是其规则设定有不合常理的地方,因此出现了敌人基本不使用全体攻击性策略的现象。
本来龙吟是打算用这个分析为大家冲击2299作准备的,只是没想到代码太难读,而马超将军又打得太迅速,因此只能放一个马后炮了。只是不知道这对2399是否有帮助?不过2399的可能性比2299小了太多,大家又将彻夜鏖战了。
不过,身为战棋游戏的痴迷着,我们就是要挑战极限,就是要分析清楚电脑的行动!
最后说一句:痛,并快乐着!
作者: 马超将军    时间: 2004-10-21 19:39



QUOTE:
原帖由龙吟于2004-10-21, 19:11:22发表
后记:
终于分析完毕了,龙吟仰天大笑三声。这几个月来,龙吟时断时续,阅读三国志英杰传WINDOWS版的反汇编代码,而汇编语言之难读,实在是让我太痛苦了。不过好再最后终于完成了这项工作。长吁一口气先。
三国志英杰传实在是一个经典的游戏,其系统设计相当合理。但龙吟在分析中,仍然发现了其AI算法的BUG。其实上也不能说是BUG,只是其规则设定有不合常理的地方,因此出现了敌人基本不使用全体攻击性策略的现象。
本来龙吟是打算用这个分析为大家冲击2299作准备的,只是没想到代码太难读,而马超将军又打得太迅速,因此只能放一个马后炮了。只是不知道这对2399是否有帮助?不过2399的可能性比2299小了太多,大家又将彻夜鏖战了。
不过,身为战棋游戏的痴迷着,我们就是要挑战极限,就是要分析清楚电脑的行动!
最后说一句:痛,并快乐着!

感谢龙吟老大给大家提供了这么多精彩的分析,对提高挑战英杰传极限的速度大有陴益。
作者: 赵云子龙    时间: 2004-10-22 00:05



QUOTE:
原帖由龙吟于2004-10-21, 19:11:22发表
后记:
终于分析完毕了,龙吟仰天大笑三声。这几个月来,龙吟时断时续,阅读三国志英杰传WINDOWS版的反汇编代码,而汇编语言之难读,实在是让我太痛苦了。不过好再最后终于完成了这项工作。长吁一口气先。
三国志英杰传实在是一个经典的游戏,其系统设计相当合理。但龙吟在分析中,仍然发现了其AI算法的BUG。其实上也不能说是BUG,只是其规则设定有不合常理的地方,因此出现了敌人基本不使用全体攻击性策略的现象。
本来龙吟是打算用这个分析为大家冲击2299作准备的,只是没想到代码太难读,而马超将军又打得太迅速,因此只能放一个马后炮了。只是不知道这对2399是否有帮助?不过2399的可能性比2299小了太多,大家又将彻夜鏖战了。
不过,身为战棋游戏的痴迷着,我们就是要挑战极限,就是要分析清楚电脑的行动!
最后说一句:痛,并快乐着!

论坛有你们这样的人才真是广大玩家的财富啊
作者: 龙吟    时间: 2004-10-22 09:44

九、敌军、友军行动准则全分析
     1.友军和敌军的行动顺序
       行动顺序的判定以自动补给后的数据为准。
       最优先行动的是处于恢复性地形(村庄、兵营、鹿砦)中的部队,若有数只部队处于恢复性地形上,则以其在屏幕右上方的敌军列表中的顺序排列。
       第二优先行动的是兵力小于最大兵力的40%或士气低于40的部队,若右数只部门处于该情形下,则以其在屏幕右上方的敌军列表中的顺序进行排列。
       最后余下的部队按屏幕右上方的敌军列表中的顺序进行排列。
     2.仇人和目标
       在英杰传中,存在仇人和目标的概念。
       以英杰传WINDOWS版为例,在内存中,每只部队的附加属性占据14个字节,说明如下:
           偏移+00   占2字节   人物代码(刘备=0000,关羽=0001)
           偏移+02   占1字节   战场代码(00=我军第1只部队、0E=我军第15只部队,0F=敌军第1只部队)
           (注:00-0E是我军,共15个位置,但不一定用完,0F-2C是敌军,共30个位置,但不一定用完)
           偏移+03   占1字节   部队横坐标(以左上角为0,0)
           偏移+04   占1字节   部队纵坐标
           偏移+05   占1字节   仇人代码(FF表示没有仇人)
           偏移+06   占2字节   目标横纵坐标(0000表示没有目标)
           偏移+08          占1字节   不明
           偏移+09   占1字节   部队撤退标志(00=消失  01=未出场  02=正常  04=撤退)
           偏移+0A   占1字节   部队状态(从低位开始:第2位为1表示混乱,第3位为1表示全屏移动,第6位为0表示伏兵,第8位为1表示行动结束)
           偏移+0B   占1字节   部队AI类型(见后)
           偏移+0C   占1字节   部队士气
           偏移+0D   占1字节   部队策略值
       仇人指部队特别想攻击的敌人,在计算部队攻击对象时,仇人会得到附加的行动价值(见后);目标指部队想要到达的地方。
     3.AI类型
       每只部队的行动方式由其人工智能类型(简称AI类型决定),在英杰传中,部队的AI类型共有六种,主要遇到的有三种:
           AI类型=01   主动型,部队会主动移动并攻击
               例子:长板坡之战的曹操。
           AI类型=02   原地型,部队在原地不移动,即使受到攻击也是如此,但如果有人进入其攻击范围,部队将发起攻击。
               例子:汜水关之战的华雄
           AI类型=03   被动型,部队在原地不移动,但如果有敌人进入其移动后还能攻击到的地方,部队将移动并进行攻击。
               例子:汜水关之战的李肃
           AI类型=00/04/07的出现概率较少,不具备研究意义,这里就不说明了。
       部队如果存在仇人,当仇人消失后,部队的AI类型自动变为主动型(01)。
       部队的AI类型会因时间发生改变,如达到一定回合、部队达到一定位置。例如虎牢关的吕布,最初是原地型,第18回合后转为主动型。
     4.行动价值
       每只部队的行动方式由行动价值决定,当部队行动时,会计算战场上每一处坐标的行动价值,然后移动到行动价值最高的地方(当然,部队的行动力必须能移动到该处)。部队在某个地方可能有几种行动方式:物理攻击、策略攻击、休息等,每种行动方式都有其行动价值,在几个行动价值中,最高的为该坐标的行动价值。
       行动价值的计算方法如下:
       1)如果部队的兵力不足(即兵力小于最大兵力的40%或士气小于40,下同),则战场上存在可恢复地形的坐标,行动价值加50。
       2)物理攻击的行动价值计算公式
          基本值=基本物理攻击杀伤+攻击方当前兵力÷6
          (PS:基本物理攻击杀伤的计算公式见第二部分:物理攻击全分析)
          (PS:按龙吟的想法,攻击方当前兵力÷6是为承受反击考虑的,当部队兵力越少时,物理攻击的行动价值越小,避免受到反击)
          如果攻击的是仇人,基本值=基本值+30
          物理攻击的行动价值=基本值÷16。
          (PS:龙吟觉得这是英杰传程序的一个BUG,程序员可能想提高攻击仇人的行动价值,好让部队更主动地攻击仇人,但在计算物理攻击的行动价值时,他对仇人的附加值是在除16之前加的,导致实际上攻击仇人只能得到1~2点的行动价值,物理攻击仇人的加权值太小,起不到什么作用。)
          行动价值最少为1。
          当部队处于有防御加成的地形时,行动价值=行动价值+防御加成÷5。例如在树林中,可以得到20÷5=4点的行动价值加成。
       3)策略的行动价值
          (1)如果使用单体补给类策略
               基本值=策略基本威力+使用者智力×使用者等级÷20
               随机值=0~(基本值÷10-1)之间的随机数
               补给值=基本值+随机值
               如果接受补给者当前兵力+补给值超过最大兵力,则补给值=最大兵力-当前兵力
               如果补给值小于接受补给者最大兵力的10%,则补给值=0
               加权值=补给值+策略附加值
              【单体援助系策略基本威力】
               援助  600   补给  1200  救济  1800
              【单体援助系策略附加值】
               援助  100   补给  50  救济  0
              (PS:使用补给时的计算因子中智力×等级除以的是20,与实际补给值计算除50相比,扩大了补给的价值。)
          (2)如果使用单体激励系策略
               基本值=策略基本威力+使用者等级÷10
               随机值=0~(基本值÷10-1)之间的随机数
               激励值=基本值+随机值
               如果接收激励者当前士气+激励值超过100,则激励值=100-当前士气
               如果激励值小于10,则激励值=0
               加权值=激励值+策略附加值
               如果部队士气小于40,则加权值=加权值×20
              【单体激励系策略基本威力】
               激励  30   支援  40  鼓舞  50
              【单体激励系策略附加值】
               激励  10   支援   5  鼓舞   0
               (PS:当士气小于40的情况,加权值增加到原来的20倍,因此当敌人士气低于40时,敌人很容易使用激励。)
           (3)如果是看护系
               加权值=同等补给系加权值+同等激励系加权值。
           (4)如果是全体补给/激励系
               单体部队加权值=补给、激励系计算的加权值
               加权值=所有部队加权值的综合
           (5)如果是假情报系
               如果敌人已混乱,加权值=0
               随机值=(0~299)的随机数
               根据假情报系策略全分析中的算法计算策略是否成功,如果计算结果是策略成功,加权值=随机数+300。
               (PS:这里计算的结果并不表示策略一定成功,因为使用策略时还会再计算一次。)
           (6)如果是牵制系
               基本值=策略基本威力+使用者等级÷10-被牵制者等级÷10
               随机值=1~10的随机数
               加权值=基本值×随机数
           (7)如果攻击系策略
               基本值=策略基本威力+攻击方策略能力-防御方策略能力-100
               (PS:策略基本威力和策略能力的计算方法见策略攻击全分析)
               如果是在树林中使用焦热系策略或在雨天使用漩涡系策略,基本值=基本值+基本值÷4。(增幅25%)
               随机值=(0~基本值÷50-1)的随机数
               加权值=基本值+随机值
               (PS:这里全体攻击系策略的加权值只按接受攻击点的那只部队计算,不计算其相邻部队,因此基本上看不到敌人使用大焦热、大火龙的策略;似乎应当是绝对,但龙吟不敢肯定,这应该是一个BUG)
           (8)最后;
                使用策略的行动价值=加权值÷16。
                如果攻击对象是仇人,行动价值=行动价值+30。
               (PS:龙吟就是看了这里,才认为物理攻击时对仇人的判定是程序员的BUG)
         4)如果物理攻击的行动价值大于等于策略攻击,则电脑会采用物理攻击。
作者: 龙吟    时间: 2004-10-22 10:32

九、敌军、友军行动准则全分析(补)(由于帖子太大,只能分成两份)
         5)部队会试图移动到行动价值最高的坐标上,使用行动价值最高的行动方式。
     5.攻击方位的判定
         部队可以攻击若干个方位,如果这些方位上存在行动价值相等的目标,部队按以下方位顺序选择攻击对象(在前者优先):
         第一优先级:上、右、下、左、右上、右下、左下、左上
         第二优先级:
             对于弓兵而言:右2、左2、下2、上2
             对于连弩兵和投石车而言:上2左1、下2左1、上2、下2、上2右1、下2右1、右2上1、左2上1、右2、左2、右2下1、左2下1
         第三优先级:
             右3、左3、下3、上3、右2上2、右2下2、左2下2、左2上2
     6.附录
       1)汜水关敌人AI类型:
          华雄为原地型,其他人为被动型
       2)虎牢关敌人AI类型:
          吕布为原地型,一开始冲下来的魏续和弓兵为主动型,其他人为被动型,但18回合后,吕布变为主动型。
       3)根据我在上面发表的人物属性,可以轻易找到每一关的敌人的AI类型,大家可以自行查找。
作者: 游客丁    时间: 2004-10-22 12:53

牛就一个字
作者: 白河寒秋    时间: 2004-10-22 14:41



QUOTE:
原帖由龙吟于2004-10-22, 9:44:37发表

              (PS:使用补给时的计算因子中智力×等级除以的是20,与实际补给值计算除50相比,扩大了补给的价值。)

实际补给值不也是除20吗?除50是怎么来的?不解
作者: 周瑜    时间: 2004-10-22 15:38



QUOTE:
原帖由白河寒秋于2004-10-22, 14:41:12发表

QUOTE:
原帖由龙吟于2004-10-22, 9:44:37发表

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (PS:使用补给时的计算因子中智力×等级除以的是20,与实际补给值计算除50相比,扩大了补给的价值。)

实际补给值不也是除20吗?除50是怎么来的?不解

平时援助的时候,旁边都放着计算器,所以刚才我也很容易就发现这个问题了,龙吟老大也有糊涂的时候啊。
白河寒秋兄看得还是比较仔细啊,赞一个。
作者: 易凡    时间: 2004-10-22 15:45

这样看来,一旦我方行动完毕,敌方的行动是固定的?

那么象徐州1这个敌军走位大家都很困惑的关现在可以有固定打法了??
作者: 重阳    时间: 2004-10-22 15:49

好,终于出来了。这么麻烦的东西,有点问题在所难免。
最后一部分,优先攻击方位的问题,不是以包围为前提吗?另外顺序反了吧。其他的慢慢研究中。
作者: tty1    时间: 2004-10-22 16:13



QUOTE:
原帖由白河寒秋于2004-10-22, 14:41:12发表

QUOTE:
原帖由龙吟于2004-10-22, 9:44:37发表

              (PS:使用补给时的计算因子中智力×等级除以的是20,与实际补给值计算除50相比,扩大了补给的价值。)

实际补给值不也是除20吗?除50是怎么来的?不解

人物策略能力=智力×等级÷50+智力
作者: tty1    时间: 2004-10-22 16:15

4.策略值的自动恢复。
    部队位于军乐队旁边可以自动恢复策略值,恢复量=每军乐队(等级÷10)点。


恢复量应该再加1吧?
作者: 重阳    时间: 2004-10-22 16:46

龙吟把其他三种AI类型也分析一下吧,不一定要搞的很详细,大约看一下都是些什么类型就行。其实对这最常见的三种AI,大家基本上都心里有数了,倒是另外几种不太常见的经常弄的人一头雾水。

我猜想另外的几种:
1、捏软柿子型:如长坂1那些被砍的奄奄一息的贼,会突然不再攻击附近的我军而去追民众。这和主动进攻型是有区别的的,主动进攻型在距我军较远时会选择距他最近的我军作为攻击目标并移动。
2、阻挡型:巨鹿的敌人去挡刘备,若说是把刘备当仇人并不能说明问题,因敌人也不一定攻击刘备,似乎走位和攻击是分别计算的。
3、被包围型:主动或被动进攻型的敌人被包围后明显采用了不同的AI模式,但龙吟的分析中没有看出。最后一段优先攻击方位不一定和这个有关。
另外就是衮州的郭图了,只能说是高深莫测、用兵如神了,当然这也可能是由随机数引起的,不过也不排除每回合变化AI方式的可能。
作者: 周瑜    时间: 2004-10-22 16:56

最后一部分的优先攻击方位应该是指部队在没有被包围的情况下,物理攻击各个方向的价值相等或相近(除以16取整后相等),这时的攻击优先方位选择。
但由于防御力相差很大,很难找到相等或者相近的伤害值,使得这个优先方位的意义不大。一个较明显的地方就是敌人的一些低攻击力部队如军乐队,在攻击我方部队伤害均为1点时,会按这个顺序攻击而不是以前所说的攻击防御力最高的部队。
这个顺序在曹操传中体现的明显一些,因为曹操传中攻击价值的判断比较粗犷,只要不一击必杀、不反击或都反击、无兵种相克被克,无论伤害值多少,物理攻击价值都一样,就引用这个顺序进行攻击。

敌人被包围后会干什么----重阳
http://www.xycq.net/forum/index.php?showtopic=12340
把龙吟的优先攻击方位分析和重阳的敌人被包围后会干什么进行对比,明显能发现二者的顺序完全相反。由此判断出重阳的测试结果不够完善,表现在上2、下2、左2、右2四处,作为弓兵和连弩/发石车的攻击目标时攻击顺序是不同的,重阳仅测试连弩/发石车了被包围时的攻击顺序。根据逆推,弓兵(未转职)被包围后攻击优先顺序如下:
00 00 01 00 00
00 05 00 08 00
03 00 @&#33; 00 04
00 06 00 07 00
00 00 02 00 00

作者: 东方无翼    时间: 2004-10-22 18:21

游戏被研究到这种程度,英杰传的开发人员也该完完全全的满足了吧。
作者: 阿尔法孝直    时间: 2004-10-22 19:16

那么,所有的公式如果出现小数的话,是无条件舍去,无条件进一,还是四舍五入?
另外,再多说一句,就比如说,对于公式
“基本兵力恢复值=策略基本威力+补给方智力×补给方等级÷20
兵力恢复随机修正值是一个随机整数,在0到(基本兵力恢复值÷10-1)之间。
 补给效果=基本兵力恢复值+兵力恢复随机修正值
 如果补给效果+被补给方当前兵力&gt;被补给方最大兵力,则补给效果=被补给方最大兵力-被补给方当前兵力“

而言,是先取整“基本恢复兵力值”,还是保持“基本兵力恢复值”为小数,等到算完“补给效果”后再取整?
    
作者: 阿尔法孝直    时间: 2004-10-22 19:37



QUOTE:
原帖由易凡于2004-10-22, 15:45:59发表
这样看来,一旦我方行动完毕,敌方的行动是固定的?

那么象徐州1这个敌军走位大家都很困惑的关现在可以有固定打法了??

还有一些随机变量的问题……如,天气,恢复设施的兵力恢复……
作者: 周瑜    时间: 2004-10-22 20:54



QUOTE:
原帖由阿尔法孝直于2004-10-22, 19:16:27发表
那么,所有的公式如果出现小数的话,是无条件舍去,无条件进一,还是四舍五入?
另外,再多说一句,就比如说,对于公式
“基本兵力恢复值=策略基本威力+补给方智力×补给方等级÷20
兵力恢复随机修正值是一个随机整数,在0到(基本兵力恢复值÷10-1)之间。
 补给效果=基本兵力恢复值+兵力恢复随机修正值
 如果补给效果+被补给方当前兵力&gt;被补给方最大兵力,则补给效果=被补给方最大兵力-被补给方当前兵力“

而言,是先取整“基本恢复兵力值”,还是保持“基本兵力恢复值”为小数,等到算完“补给效果”后再取整?
    

我认为,在英杰传这种DOS游戏的计算过程中,绝对不会出现小数,每一步都是向下取整,尽管有误差,但是可以大大提高运行速度。
作者: 重阳    时间: 2004-10-22 22:51

周瑜说的弓兵被包围后的攻击顺序,一看就很有道理,试了一下果然如此。当时是用下邳的弓兵测过的,可能是脑子一时没转过来记错了吧。
作者: 游客丁    时间: 2004-10-23 10:06

周瑜真牛,打英杰还要计算器。。。。
作者: 周瑜    时间: 2004-10-23 11:19



QUOTE:
原帖由易凡于2004-10-22, 15:45:59发表
这样看来,一旦我方行动完毕,敌方的行动是固定的?

那么象徐州1这个敌军走位大家都很困惑的关现在可以有固定打法了??

首先天气和村庄恢复存在随机值,徐州I没有村庄,天气也能影响那些会焦热的步兵行动。

其次,每一步敌人行动的AI判断,只要是使用策略,就存在随机值。完全一样的走位和天气,也可能导致敌人不同的行动,或者使用不同的策略,或者使用策略的位置发生变化,或者原本使用策略变成物理攻击。徐州I中最头疼的就是敌人使用策略的位置发生变化。

然后,策略用出来之后是否成功还不一定。

仅仅依靠GB4很难同时满足以上三点,所以,就不停的全军撤退吧。
作者: 阿尔法孝直    时间: 2004-10-23 13:22



QUOTE:
原帖由周瑜于2004-10-23, 11:19:37发表

QUOTE:
原帖由易凡于2004-10-22, 15:45:59发表
这样看来,一旦我方行动完毕,敌方的行动是固定的?

那么象徐州1这个敌军走位大家都很困惑的关现在可以有固定打法了??

首先天气和村庄恢复存在随机值,徐州I没有村庄,天气也能影响那些会焦热的步兵行动。

其次,每一步敌人行动的AI判断,只要是使用策略,就存在随机值。完全一样的走位和天气,也可能导致敌人不同的行动,或者使用不同的策略,或者使用策略的位置发生变化,或者原本使用策略变成物理攻击。徐州I中最头疼的就是敌人使用策略的位置发生变化。

然后,策略用出来之后是否成功还不一定。

仅仅依靠GB4很难同时满足以上三点,所以,就不停的全军撤退吧。

徐州I有村庄,左下角的……
作者: 阿尔法孝直    时间: 2004-10-23 13:28

另外,假情报系,牵制系,只要保证命中率为100%,就不存在随机数!
作者: 白河寒秋    时间: 2004-10-23 15:59

既然龙吟老大已经把数据完全分析出来,那三国英杰传的前几关似乎就可以在纸上计算得出最大值了(前几关经验的多少和村庄的补给量息息相关啊)
作者: 白河寒秋    时间: 2004-10-23 16:57



QUOTE:
原帖由周瑜于2004-10-22, 16:56:35发表
把龙吟的优先攻击方位分析和重阳的敌人被包围后会干什么进行对比,明显能发现二者的顺序完全相反。由此判断出重阳的测试结果不够完善,表现在上2、下2、左2、右2四处,作为弓兵和连弩/发石车的攻击目标时攻击顺序是不同的,重阳仅测试连弩/发石车了被包围时的攻击顺序。根据逆推,弓兵(未转职)被包围后攻击优先顺序如下:
00 00 01 00 00
00 05 00 08 00
03 00 @&#33; 00 04
00 06 00 07 00
00 00 02 00 00

按照以前小将军的打法,汜水关第5回合有这样一个情况:
空  空  城
空  赵  张
李  空  刘  空  关  步兵队
草  草  草

于是张飞下2左2攻击李肃,关羽左3攻击李肃,刘备上1右3攻击步兵队,情况变成:
空  空  城
空  赵  空  空  空  刘
李  关  空  空  空  步兵队
张  草  草

数据如下:
         兵力   士气    攻击力    防御力
李肃  185/540  84        228         249
关羽  385/500  95        341         280
张飞  381/500  94        342         246

此时李肃上1攻击关羽123hp,攻击张飞129hp,李肃目前兵力185/6=30
攻击关羽的行动价值:(123+30)/16=9
攻击张飞的行动价值:(129+30)/16=9
所以行动价值相等
但是在实际打的时候李肃打关羽
因此龙吟的结论是对的,弓兵的第1优先级是右上、右下、左下、左上
                            第2优先级是右2、左2、下2、上2
周瑜的结论应该有误
作者: 周瑜    时间: 2004-10-23 17:05

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



QUOTE:
原帖由白河寒秋于2004-10-23, 16:57:25发表
按照以前小将军的打法,汜水关第5回合有这样一个情况:

现在大家都使用的范水关的打法不是我提出来的,是dizzy提出来的。原贴在下面:
http://www.xycq.net/forum/index.php?showtopic=12632
作者: 阿尔法孝直    时间: 2004-10-23 20:26



QUOTE:
原帖由游客丁于2004-10-23, 10:06:10发表
周瑜真牛,打英杰还要计算器。。。。

不就是计算器嘛,我也在用。
作者: 阿尔法孝直    时间: 2004-10-24 11:13

不知天气是如何计算的……概率都是1/3吗?晴天和云天什么区别?
作者: shia1967    时间: 2004-10-24 11:56

用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

还有一个问题没解决:援军的位置如果被人占领,那么援军的位置偏移的顺序是什么?
作者: 阿尔法孝直    时间: 2004-10-26 12:20

晴天和云天对策略的影响不同吗?
作者: 游客丁    时间: 2004-10-26 14:28

似乎没有不同,只是晴天和阴天下一天的天气的概率不同
作者: 老六    时间: 2004-10-29 18:15

龙吟兄能否给个GameTools的下载链接,兄弟的电脑上次崩掉后就折了它,在网上没找着?
作者: 阿尔法孝直    时间: 2004-10-30 11:27



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

http://www.xycq.net/forum/index.php?showto...=6486&st=40&hl=
作者: 张筱怡    时间: 2004-10-30 13:36

设计这款游戏的人也不如楼主分析的透彻
作者: 周瑜    时间: 2004-11-14 20:59



QUOTE:
原帖由龙吟于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的概率出现雨天。

根据重阳的计算结果:
http://www.xycq.net/forum/index.php?showto...ndpost&p=389195
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:
原帖由慕容血于2004-11-14, 22:50:54发表
血大胆估计,使用炸弹的随机数应该是0~20!
血用襄阳I刘备带赤兔第一回合炸一次以及瓦口第一回合炸了四十次,出现的最小值为1350,最大值1650!

龙吟说的是1~14,而你认为是1~20
我认为是1~19!
作者: 慕容血    时间: 2004-11-15 10:34

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



QUOTE:
原帖由慕容血于2004-11-15, 10:34:57发表
炸完就全军撤退再炸!

杀人如麻先生看到这句话也要退避三舍啊。
作者: 阿尔法孝直    时间: 2004-11-15 12:20

求:每回合开始时混乱恢复率公式
作者: 阿尔法孝直    时间: 2004-11-26 12:35

咦,龙吟这几天跑哪去了?
作者: xixid2000    时间: 2004-12-16 13:49

感觉用gb4s/l天气还不如直接用补丁,省事多了,龙吟给出win版的地址,不知dos版英杰传main.exe文件中天气的地址是多少?如何修改?如有高人知道,请告知,谢谢!
作者: BT土偶    时间: 2005-2-6 23:23



QUOTE:
策略闪避=(智力×等级÷100+智力)÷2×2

怎麼這些作者都不會先把數式簡化呢……頭昏@@
作者: 阿尔法孝直    时间: 2005-2-7 10:27

这不能简化。你以为除以2再乘以2可以简化?其实不然。
举个例子:
49/2=24.5,由于英杰传是整数算法,所以取整:49/2=24;
然后24*2=48,所以49/2*2=48,不等于49。
作者: BT土偶    时间: 2005-2-7 19:06



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

呵呵~我不服气呢  

一﹑這种算式有碍直观,应加以注明。
二﹑我怀疑部份算式还是可以简化,像曹操伝一样,最終计算結果捨去小数点。
作者: 阿尔法孝直    时间: 2005-2-9 00:22

当然我也希望如此。可事实偏偏就与我们相违背。
作者: 周瑜    时间: 2005-3-18 17:57



QUOTE:
原帖由龙吟于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 )

http://www.xycq.net/forum/index.php?showtopic=31678
在这帖中,重阳已经计算出晴天的概率是1/2,阴天的概率5/16,雨天的概率是3/16,与龙吟的估计有所出入。
作者: 冥火    时间: 2005-4-3 13:15

太牛了,顶

别总是顶啊,给点建议什么的
作者: tobywhcheng    时间: 2005-4-23 02:13

大體把這些都加進我曹操傳的工作表裏了,就行動方式沒有

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

等我好好研究再實測一些數據再貼上分析比較結果來
作者: 周瑜    时间: 2005-5-28 00:26

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

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

由于修改很简单,这里就不提供补丁下载了。
作者: snowwaft    时间: 2006-3-4 13:02

奖励经验值=64÷(攻击方等级-防御方等级+2)

这个式子好象不大正确,假设攻击方等级是10及,防御方等级是12级,这样被除数就是0了
作者: 阿尔法孝直    时间: 2006-10-5 20:03

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



QUOTE:
原帖由 snowwaft 于 2006-3-4 13:02 发表
奖励经验值=64÷(攻击方等级-防御方等级+2)

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

我晕,这个公式成立的条件是攻等级>防等级
作者: 阿尔法孝直    时间: 2006-10-6 14:03

还有,按照下一回合的天气算法,那么第一回合的天气又该如何算?
作者: 阿尔法孝直    时间: 2006-10-7 12:30

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

敌人应该是优先攻击能击退的敌人
作者: 阿尔法孝直    时间: 2006-10-7 12:34

为什么龙吟没分析出来?没分析出来的DD好多啊!!!

另求,每一关友/敌军的AI值。
作者: 雲哥    时间: 2006-10-7 23:49

这个出来了MOD不知道还远不远
作者: 阿尔法孝直    时间: 2006-10-10 12:09     标题: 《三国志英杰传》关于天气问题的补充

第一回合之前,“上一回合”天气代码为00,之后第一回合的天气的算法中的“上一回合”就是00,而战斗胜利或重新游戏或读取存档后,天气代码会重置回00
(但偶不敢肯定。连续的战役第一战结束后会不会重置会00,尚未测试。)
作者: 阿尔法孝直    时间: 2006-10-10 12:51     标题: 关于移动力的问题:

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

图片附件: er1.GIF (2006-10-10 12:51, 8.91 K) / 该附件被下载次数 250
http://www.xycq.org.cn/forum/attachment.php?aid=23237


作者: 周瑜    时间: 2006-10-10 23:32



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

攻击伤害相差在16点以内应该视为相等的吧,这时按照上右下左的顺序选择攻击对象。
作者: 阿尔法孝直    时间: 2006-10-11 12:14



QUOTE:
原帖由 周瑜 于 2006-10-10 23:32 发表


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

可是赵岑攻击张飞的伤害应在110左右啊,攻击关羽才50多,相差快60了!远不止16!
作者: 阿尔法孝直    时间: 2006-10-14 10:29     标题: 关于分析结果,我提几个问题:

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

如果计算结果是策略失败,那么加权值=?

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


[ 本帖最后由 阿尔法孝直 于 2006-10-14 15:25 编辑 ]
作者: 阿尔法孝直    时间: 2006-10-15 16:29

3、为什么基本看不见妖术师用假情报/牵制?

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

[ 本帖最后由 阿尔法孝直 于 2006-10-15 17:07 编辑 ]
作者: 阿尔法孝直    时间: 2006-10-17 15:41

有AI列表吗?
作者: godhelpu    时间: 2006-10-26 17:23

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

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

再赞一个,有兄若此,实是我等玩家之福!
作者: 019037226    时间: 2006-10-27 17:24

前期略微有点紧张,后期就不缺钱。中期可以把手套,团牌卖掉一些,也有很多钱
作者: 阿尔法孝直    时间: 2007-3-9 18:13



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

1、我发现了英杰传中16个人参加的战役!
  是长安!除了原始的11个人之外,外加姜维、3个异民族、还有徐庶,共16个人!
2、我猜到“不明”指什么了!是部队脸的朝向!
作者: woaixuanyuan    时间: 2007-5-9 11:08     标题: 将三国志英杰传和孔明传合2为1做成曹操传的MOD!

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

详尽的分析
十分棒
作者: bb123456    时间: 2007-7-12 11:06

强。超强。以后都没什么秘密了啊。
作者: 阿尔法孝直    时间: 2007-7-12 17:05

楼上抄袭2楼,很无耻。
作者: ws02175161    时间: 2007-7-18 12:04

路过 看上去已经觉得华丽
作者: 土狼    时间: 2007-10-22 10:39

随机数算法分析出来了吗?
特别想知道,我军行动对随机数是怎样影响的
在哪能找到?
作者: 周瑜    时间: 2007-10-29 23:47



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

即使找出来也没法计算。

以下引自英雄无敌三升级技能提升的随机数算法:
随机数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。

[ 本帖最后由 周瑜 于 2007-10-29 11:52 编辑 ]
作者: 路过没有错过    时间: 2008-7-29 08:01

这个帖子强
必须要顶!
作者: 飘逸周郎    时间: 2008-8-5 13:46


作者: jlw472776067    时间: 2008-8-28 16:09

强啊以后都没什么秘密了啊。
作者: 土狼    时间: 2009-6-8 17:40

关于援助和策略攻击那段的分析是不是有点问题,没见过敌人放弃火龙而选择援助
作者: 阿尔法孝直    时间: 2009-6-8 18:23



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



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

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

对比策略攻击伤害公式:

QUOTE:
   1)第一步
   人物策略能力=智力×等级÷50+智力
   策略攻击杀伤=攻击方人物策略能力×2-防御方人物策略能力+基本策略杀伤

该公式可以改写成:

策略攻击杀伤=基本策略杀伤+攻击方人物策略能力-防御方人物策略能力+攻击方人物策略能力

对照伤害公式和行动价值公式,我觉得+100更合理一些。
作者: 土狼    时间: 2009-6-8 21:57

就算是+100好像还不对

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


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

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

似乎还应该援助行动价值偏高
作者: 阿尔法孝直    时间: 2009-6-8 22:02

再不然就是

基本值=策略基本威力+攻击方策略能力*2-防御方策略能力-100

难道还

基本值=策略基本威力+攻击方策略能力*2-防御方策略能力+100
不成?



[ 本帖最后由 阿尔法孝直 于 2009-6-8 22:04 编辑 ]
作者: muzhi    时间: 2009-12-15 15:35



QUOTE:
原帖由 阿尔法孝直 于 2009-6-8 22:02 发表
再不然就是

基本值=策略基本威力+攻击方策略能力*2-防御方策略能力-100

难道还

基本值=策略基本威力+攻击方策略能力*2-防御方策略能力+100
不成?


+100的话援助与火龙的加权值差是
Diff=援助随机数-火龙随机数+防御方策略能力+步兵智力x(步兵等级x3-100)/100
一般仍然是正的

即使加权值的差在此基础上再偏过去两个攻击方策略能力,也无法解释雒II40级44智力杨怀烧49级51智力魏延
作者: shps940114    时间: 2010-7-13 21:03

做這些公式..肯定花了不少時間...
作者: 阿尔法孝直    时间: 2011-9-11 19:52

前一段时间和几个朋友重新分析了一下代码,发现行动价值部分有几处问题,于是修正如下:

        1)如果部队的兵力不足(即兵力小于最大兵力的40%或士气小于40,下同),则战场上存在可恢复地形的坐标,行动价值加50。
        2)增加“当部队处于有防御加成的地形时,行动价值=行动价值+防御加成÷5。例如在树林中,可以得到20÷5=4点的行动价值加成。”
        3)物理攻击行动价值
                [将“当部队处于有防御加成的地形时,行动价值=行动价值+防御加成÷5。例如在树林中,可以得到20÷5=4点的行动价值加成。”去掉]
        4)策略的行动价值
        (1)如果使用单体补给类策略
                基本值=策略基本威力+使用者智力×使用者等级÷20
                随机值=0~(基本值÷10-1)之间的随机数
                补给值=基本值+随机值
                如果接受补给者当前兵力+补给值超过最大兵力,则补给值=最大兵力-当前兵力
                加权值=补给值+策略附加值
                如果补给值小于接受补给者最大兵力的10%,则加权值=0
                (原帖把上面两句话写颠倒了)
                【单体援助系策略基本威力】
                援助 600  补给 1200 救济 1800
                【单体援助系策略附加值】
                援助 100  补给 50 救济 0
                (PS:使用补给时的计算因子中智力×等级除以的是20,与实际补给值计算除50相比,扩大了补给的价值。)
        (2)如果使用单体激励系策略
                基本值=策略基本威力+使用者等级÷10
                随机值=0~(基本值÷10-1)之间的随机数
                激励值=基本值+随机值
                如果接收激励者当前士气+激励值超过100,则激励值=100-当前士气
                加权值=激励值+策略附加值
                如果激励值小于10,则加权值=0
               
(原帖把上面两句话写颠倒了)
                如果部队士气小于40,则加权值=加权值×20
                【单体激励系策略基本威力】
                激励 30  支援 40 鼓舞 50
                【单体激励系策略附加值】
                激励 10  支援  5 鼓舞  0
        (5)如果是假情报系
                如果敌人已混乱,加权值=0
                如果没有混乱,则加权值=(0~299)的随机数
                根据假情报系策略全分析中的算法计算策略是否成功,如果计算结果是策略成功,加权值=加权值+300。
        (PS:这里计算的结果并不表示策略一定成功,因为使用策略时还会再计算一次。)
        (6)牵制系策略
                基本值=策略基本威力+使用者等级÷10-被牵制者等级÷10
                如果基本值>被牵制着士气,那么基本值=被牵制着士气
                随机值=1~10的随机数
                加权值=基本值×随机数        
        (7)攻击性策略
                基本值=策略基本威力+200+攻击方策略能力×2-防御方策略能力
                如果树林火攻或雨天水攻,基本值=基本值+基本值÷4
                随机值=(0~基本值÷50-1)的随机数
                加权值=基本值+随机值
        (8)最后;
                使用策略的行动价值=加权值÷16。
                如果攻击对象是仇人,行动价值=行动价值+30。
        5)方位的判定(见后)
        6)如果存在多个行动价值相等的策略,则优先采用代码最小的策略
        策略代码表:
        00焦热        01火龙        02猛火        03大焦热        04大火龙
        05漩涡        06浊流        07海啸        08大漩涡        09大浊流
        0A落石        0B山崩        0C山洪        0D大落石        0E大山崩
        0F假情报        10伪兵        11伪装
        12牵制        13挑拨        14欺压        15援助        16补给        17救济
        18激励        19支援        1A鼓舞        1B看护        1C治愈        1D救命
        1E大激励        1F大支援        20大鼓舞
        21大援助        22大补给        23大救济
        7)如果物理攻击的行动价值大于等于策略攻击,则电脑会采用物理攻击。
        8)部队会试图移动到行动价值最高的坐标上,使用行动价值最高的行动方式。
作者: 西瓜鬼子    时间: 2012-11-7 14:10     标题: 回复 #1 龙吟 的帖子

龙吟老大能不能出一个关于敌部队被包围后的行动规律分析

我试过把敌军乐队包围起来,包括军乐队在内,敌军几个部队的兵力士气都接近0了,军乐队就是不激励,反而是攻击(伤害为1,行动价值为0)。真不明白了
作者: likelove    时间: 2014-4-21 16:21



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

对的,原帖分析有笔误,16进制的15即为21,随机数区间0~20

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

第一回合只找到一处设置天气,程序先判断是否允许撤退,普通的可撤退关,初始天气是1;不可撤退关,未见设置,猜它是0
作者: phone    时间: 2015-7-28 22:05



QUOTE:
原帖由 阿尔法孝直 于 2011-9-11 19:52 发表
前一段时间和几个朋友重新分析了一下代码,发现行动价值部分有几处问题,于是修正如下:

        1)如果部队的兵力不足(即兵力小于最大兵力的40%或士气小于40,下同),则战场上存在可恢复地形的坐标,行 ...

策略攻击的随机数除以50太小了,这样的话只有基础值的2%不到,尚不足以影响敌军在不同的位置施放策略。这与实战的经验有些不同啊。
作者: clubjack    时间: 2021-5-15 11:10     标题: 回复 #124 阿尔法孝直 的帖子

孝直兄的补充很关键! 这里有个小问题想请教一下.

一次行动, 由位置+行为+对象决定. 龙吟兄的帖子里, 明确了"位置优先"的思想 (换言之, 最外层的 for 循环是对位置的循环), 并在恰当的时候对一些边缘的实例做了补充说明. 但由于行为方式的多样性 (普攻/攻击策略/非攻击策略) 和对象的多样性 (例如同一攻击/非攻击策略有多个目标), 还是存在部分未完全解释清楚的地方.

(对我而言) 特别是假情报的部分, 敌方可能在多个位置、可以对我方多个目标假情报 (例如位置1可以对A或B, 位置2也可以对A或. 这时预判行动价值时假情报随机数 (0~300) 以及成功率随机性的计算方式不清楚? 也就是是否会每次重新计算, 还是在"位置"或"目标"级别有缓存? 此时敌方最终会选择哪个位置, 以及对哪个目标实施假情报? 实际行动的目标是否和预判对象无关 (因为原文特地也提到了行动时会重新计算一次是否命中)? 孝直兄的随机数补丁, 是否会导致上述所有涉及到的随机数取相同的值 (比如, 所有需要模 300 的地方都相同, 导致不同对象的 0~300 这个随机数相同)?
作者: 阿尔法孝直    时间: 2021-5-15 16:59     标题: 回复 #128 clubjack 的帖子

是这样的,电脑操控的部队每计算一个位置,所有假情报范围内的对象会各计算一次。计算另一个位置的时候,那个位置假情报范围内的对象会再计算一次。也就是说,如果在某一格有个敌人,那么这个敌人的上面会计算一次(前提是要能移动到,下同),右边会计算一次,下面会计算一次,……,这个目标最多会被计算8次,可能结果会有不同,当然只有最高的一次的位置有效。从概率学的角度来说,一个目标被计算的越多次,那么成为假情报的最终目标的概率也就越高(前提是被计算的这些目标的等级和智力都差不多)。

[ 本帖最后由 阿尔法孝直 于 2021-5-15 17:02 编辑 ]




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