战争交响曲尼菲林...吧 关注:4,119贴子:17,958

1.1+DLC版本源码分析

只看楼主收藏回复

一年前入坑,弄了点ruby源码分析,然鹅游戏全英文看得不爽,没玩几关
上个月不忙时发现更了,且中文优化了,于是从头玩了下自虐难度选项全开
可能运气略差,到10关就俩币,等级据说非常拉,但依然还能打
公司加班,编译摸鱼,看到啥写点啥,可以作为去年代码解析的续


IP属地:山东1楼2023-12-05 00:07回复
    伤害公式1.10改动:
    · 力量对于物理攻击新增了防御加成,具体数值如下
    近战0.5,弓0.25,弩0.19,铳0.06,炮0.25,龙息1.0
    · 魔法攻击算法变更,具体如下
    攻击系数从2.5到2.0,作为补偿加入了等级系数2.0
    防御系数从2.0到3.5,所以现在高魔单位魔防非常高
    · 新增了护盾,生成护盾值的算法为
    施法方魔法系数1.0,武器系数1.0,衰减系数2
    接受方最大HP系数-0.1(防守方是减法,所以效果是血越多盾越厚)


    IP属地:山东2楼2023-12-05 00:09
    收起回复
      命中回避机制:(似乎没啥变化,纯再写一遍)
      · chance = (命中-回避)+(攻方技-防方技)*0.5,最小0.02
      3次掷骰,基数为1.0/1.15/1.3,乘rand随机(0~1)
      结果0未中、1打偏、2命中、3重击(非暴击)
      · 若有【福星高照】,则再掷一轮取大/小,即优/劣势骰。
      但由于本身已经3次取平均了,再投一次变6次差别不明显。
      幸运在其他buff判定里则是一次掷骰变两次,就非常明显了。
      · 开阔地形影响
      单位有【一击脱离】则+30%闪避(如弓骑兵)
      队长带【冲锋专精】则每移动一格+5技=2.5%命回
      城墙对远程(弓弩铳)+35%闪避
      · 复杂地形影响
      森林对远程(弓弩铳)+35%闪避,山丘则对远程+25%闪避
      单位有【游击】则+25点技术(如轻步兵)=12.5%命回
      队长带【劫掠专精】则+15点技术=7.5%命回
      · 天气影响
      下雨/暴雨时若自身不在城内(民居、城堡)则命中-15%/-25%每格射程
      · 神器影响
      变量名【真实闪避】,包括眼镜哥的10%也是,叠乘(1-truedodge)
      眼镜哥的10%被改成了5%
      所以3神器和眼镜叠一起应该是(1-10%)(1-7%)(1-5%)(1-5%),约25%
      若触发真实闪避,则3次掷骰最终结果-2
      · 无士气影响
      你士气最低状态跟最高,闪避率无区别,但受伤会不一样


      IP属地:山东3楼2023-12-05 00:12
      收起回复
        为啥又写一遍命回机制,主要是感慨高难金手指,闪避T
        如果等级不够,顶难最强T也很难顶哪怕2队敌人而不减员
        但闪避却基本难度无关,没有机战的闪避疲劳,且不受士气影响
        比如3闪避神器+眼镜小哥,站平地被打中的最大几率也只有75%
        然后高技轻步兵蹲复杂地形,比敌人高100点技很容易,期望几乎是个位数
        即使被打中也基本是打偏,绝不会被暴击且减伤严重
        完全可以把把战术开冲锋陷阵,带黑带反伤等送头即可,安逸的很
        也可将最弱的闪避神器换成全队加幸运的神器,优势骰概率稍好些
        当然主要是我后知后觉了,这玩意大佬怕是早就总结出来了


        IP属地:山东4楼2023-12-05 00:34
        收起回复
          新增的两个特质【振奋军心】【坚若磐石】
          效果为战斗时检查全队除自己的单位,同排(前中后)每有1个该特质
          则加权计算后的攻/防+10%(只要影响的属性都会加)
          如果自身为2格(龙猫)则其后排队友也会对自己生效,但反之无效
          所以龙、猫只是更容易被buff,自己带只buff前排,无法buff两排
          凑齐3个整排增/减伤20%什么的也还不错,且龙、猫最多+40%


          IP属地:山东5楼2023-12-05 00:50
          收起回复
            我的分析实际上很多是参考了注释,比如随便贴一段:
            # Hit, Evasion, and Skill check
            # every class has its on base hit rate (in the box)
            # a skill classified "Certain Hit" ignores ALL hit rate checks (heals and buffs should be certain hit)
            # the success rate of a skill under 100% *subtracts* from the hit rate calc
            # (rather than multipling by it)
            # this is the base chance for this skill to hit from this class before a skill check
            # a skill check is then performed, and the difference divided by 2 is added to this number
            # (eg., 20 skill vs 30 skill is a 5% hit chance difference)
            # there is (currently) no bottom cap on calculated hit for the reasons stated below


            IP属地:山东6楼2023-12-05 01:09
            回复
              【长柄精通】迷惑bug科技1。
              return 0 unless active_trait_symbols.include?(:phalanx) || TechTree.tech_enabled?(:phalanx_plus, myteam)
              翻译:此buff值为0,除非自己特质带长柄,或自己阵营已研发长柄精通科技。
              再翻译:该效果如果被buff者是长柄则自带,如果不是则看有没有该科技。
              接下来代码是遍历全队与自己紧邻的角色,取其武器的35%或护甲的25%给自己,取最大值。
              怎么看该代码都不像是长柄buff别人,而是肩并肩会给自身加数值buff。
              不过因为该效果仅仅影响近战攻防,武器和护甲都不超模,效果也就了了。
              另外龙猫这类大型单位,紧邻只算前排,其后面那排不算。


              IP属地:山东7楼2023-12-05 02:05
              收起回复
                【先进侧翼战】迷惑bug科技2。
                value = 1.0
                if !range_mode && TechTree.tech_enabled(:advanced_flanking, user.myteam)
                value += 1.15 * (self.adjacent_enemies - 1) if adjacent_enemies > 1
                翻译:近接战时,计算目标相邻敌人,2人攻x2.15,3人x3.3,4人x4.45。
                相邻敌人计算方式为1环4格内的敌人数-友军数,全包围4.45倍加成。
                这个增幅太高,怀疑代码多写了个1,也有可能这段代码压根没跑到。
                另外无论什么难度,AI都会自带【长柄精通】【先进侧翼战】【ZOC】【冲锋T1】【冲锋T2】【攻心】这几项科技。


                IP属地:山东8楼2023-12-05 02:27
                回复
                  【施法精通】魔法施加的debuff成功率翻倍。
                  是的,你没看错,如果不点则各种异常概率最终乘0.5,点了就是1。
                  当然完全体还是要配合幸运特质,优势骰影响很大。


                  IP属地:山东9楼2023-12-05 02:29
                  回复
                    【灵魂穿刺】魔法攻击时,敌方魔防系数乘75%,非上buff的几率。
                    类似弩可以穿透25%护盾,点了这个等于可以穿透对方25%的魔防。
                    现在魔力对于魔法攻击的防御系数大幅上涨,法师何苦为难法师。


                    IP属地:山东10楼2023-12-05 02:32
                    回复
                      【高级弩箭】弩现在自带对重甲兵种(重骑重步)攻击x1.25,点这个后变x1.5,等于+20%攻。
                      弩攻击本身还自带25%穿透护甲,两者叠加,初期没火枪,可考虑用弩破防肉盾兵,比如各种boss。
                      即使不打算出弩兵,游侠也自带一发弩,且游侠弩的武器值是x1.5的,若打算用则可以投资。


                      IP属地:山东11楼2023-12-05 02:37
                      回复
                        为啥这游戏是ruby写的啊 真怪


                        IP属地:江苏来自Android客户端12楼2023-12-05 08:01
                        收起回复
                          地形的各种影响
                          【平地】开阔地形,有一击脱离则闪避+30%(包括桥梁和城墙),标准移动消耗20
                          【道路】移动消耗15(6移动120点,可移动8格,包括桥梁和城墙)
                          【森林】复杂地形,可埋伏,减伤5%,对弓弩闪避+35%,移动消耗30
                          【沼泽】复杂地形,可埋伏,全闪避-25%,移动消耗30
                          【山丘】复杂地形,可埋伏,射程+1,对弓弩闪避+25%,对低地减伤10%,移动消耗30
                          【雪原】包括带雪山丘和平地,苔原队长特质额外+25%闪避(天气若为雪则自带)
                          【城墙】开阔地形,射程+1,对弓弩闪避+35%,免疫埋伏,对低地减伤10%,对墙外减伤25%
                          【要塞】减伤10%,免疫埋伏冲锋,对低地减伤10%,对墙外减伤25%
                          【城门】减伤10%,免疫埋伏冲锋,对2格外的攻击减伤40%


                          IP属地:山东13楼2023-12-05 11:43
                          回复
                            看到不少人并不认识这些比自己年龄都大得多的老物编辑器,蛮感慨的
                            国外制作游戏多少年前就可以在娃娃阶段寓教于乐,边玩边做
                            之后顺理成章成为各种程序美术策划大佬,独游遍地开花
                            国内的环境,一群读书特别6的好孩子,毕业搞游戏圈钱,上手是专业的UE/U3D
                            没有啥小时候的情怀和积累,做出来的东西经常是哪哪都好,就是不好玩


                            IP属地:山东14楼2023-12-05 12:40
                            收起回复
                              当前版本,战术指令在敌方回合起不起作用?
                              代码里是每到自队行动时,回满全部行动+清空阵型状态,看起来没问题
                              但这里保险起见我做了一下实验,结果是数据贴合的非常恰好

                              一次冲锋一次谨慎,都是对方回合法师击中弓骑,伤害比刚好为65:135 = 103:213
                              其他的伤害则是坚守骑士被剑士打中只掉20,而冲锋则掉65,大概是护甲影响。
                              但只看数值还是不妥,干脆用统计方法来做一下对照试验:
                              开竞技场我方仅有单个3骑士部队,用同样存档和操作,即指令后撤到城堡结束回合
                              共计测了10次,观察最终结果如下

                              左边是用谨慎指令,右边是用陷阵指令,结果区别还是比较明显的。
                              有朋友有兴趣也可以复现一下,这里实现和表现大致看起来是OK的。


                              IP属地:山东15楼2023-12-06 02:11
                              回复