《侠隐阁》中玩家的各类属性以及伤害都是由多种因素决定的,具体的计算公式可以通过拆包得知,下面带来由“binarizer”分享的《侠隐阁》属性与伤害等各类计算公式一览,希望可以帮到大家。
属性与攻击
四维分别为str, vit, dex, spr
基础攻击str*1.2+vit*0.2+dex*0.8+spi*0.5
基础防御str*0.2+vit*1.2+dex*0.5+spi*0.8
气血上限str*1+vit*2.5+dex*1+spi*1.5
真气上限str*1+vit*1.5+dex*1+spi*2
基础移动力math.min(1,(dex/120))+math.max(0,((dex-120)/200))
基础(帐面)招架力str/10
基础反击力vit/10
基础(帐面)闪避力dex/10
基础(帐面)暴击力spi/10
基础伤害attacker_attack^2/(attacker_attack+defender_defense)
背袭伤害系数1.6
侧袭伤害系数1.2
暴击伤害系数2
招架最终减伤系数0.3
五行相克伤害系数math.max(0,(attacker_spi-defender_spi))*0.0007+1.3
一般技能伤害 slv*x+y,x在0.02~0.06之间,y在0.35~1.2之间
挥拳伤害math.max(0,(slv-9))*5.1+0.4,也就是10级前统一0.4,10级5.5,传统艺能野球拳
基本功增加经验公式str*100
招式增加经验公式((math.log(player_status/require_status)/math.log(10))*2)*500+225,其中require_status的取值:招式看个别四维,心法看四维总值
队友成长加成%数(community_lv-1)*0.1,全看你跟他关系好不好
1.基础攻击str*1.2+vit*0.2+dex*0.8+spi*0.5
所有招式都以此为基础值计算账面值,四维越高则攻击越高,力量:体魄:灵巧:意志=12:2:8:5
2.伤害公式 攻击*攻击/(攻击+防御)
这是很多网游用来平衡pvp里猛点防御玩法的经典公式,其攻击意义远大于防御,攻击系数略小于防御*血量
3.招式增加经验公式((math.log(player_status/require_status)/math.log(10))*2)*500+225
对数函数,自然导致数值未达标前获得经验极低但增长迅速,而达标后增速趋缓。练招式前先把能堆对应四维的药吃掉,收益会高一些
4.五行相克伤害系数math.max(0,(attacker_spi-defender_spi))*0.0007+1.3
怀疑多写了个0,目前这系数几乎就等于1.3倍增伤,除非意志相差几百上千,导致五行意志增伤近乎0。文本顺序里明显可以看出五行克制系统是较晚时候临时改的,bug多难免
5.(凑数)挥拳的代号是godfist,上帝之拳
6.移动力math.min(1,(dex/120))+math.max(0,((dex-120)/200))
7.大家心心念念的净,真名凌雨寒
同样id的还有一个白,109和109c的区别,瞎猜个双胞胎设定吧,另外前面108被删了。
四维倍率
用Excel拉一下,分别为8个情况下所需四维倍率
好灯争奈人心别。
另外如果满级都是900,那么225这个数字也就有意义了
225=900/4
即刚好达到修炼要求时,4次练满
药浴加的东西也发一下好了
锻炼基本功,额外加2/3/5点对应四维,即初/中/高级
修炼心法、剑法、暗器,额外+3意志
修炼拳法、长柄,额外+3力量
修炼腿法、短柄,额外+3灵巧
修炼刀法、医学,额外+3体魄
琴棋书画对应修养爽朗胆识坚毅,额外+5/8/10点本身艺能点数和性格点数
打工目前只有最初级的,都是额外+150钱,可以看到之后会有很多新类型的工种,加钱更多
还有一排额外加性格值很多的,分别是巡游/花草/校宠/马吊/投壶/蹴鞠/食堂聊天
下面还对应加人物很多好感度,大概就是非升阶的约会?
我从来没有试过非友好度升阶时点外出约会,所以不确定
有人问四艺招式攻击力的计算方式
这几个里面注释都写的是第三年才给的招式,放第一年都过强了
琴 广陵散(0.6*zither)*(slv*0.04+0.6) 群体buff
棋 攻敌之要0.5+slv*0.04+chess/1000
画 丹青余绚0.4+slv*0.04+painting/1000
书 颠张狂素0.6+slv*0.04+calligraphy/1000
二周目摸完,再随便扒拉点东西好了
NPC属性变化
NPC四维是有俩值的,一个基础值Level,一个额外值Extra
最终的取值则为两者相加
基础值
对应CharacterInfo.txt属性里初期值和每回合成长值
比如段红儿初期值是(1010,48)(1020,40)(1030,57)(1040,55)
每当过回合时所有角色调用此函数增加四维经验
一回合对应一旬昼+夜,每年60回合
每年系数coefficient不同,当前公式里第一年0.5,第二年1,第三年1.5
且每回合成长值是有随机性的
比如段红儿[1010,(140,160)][1020,(140,160)][1030,(140,160)][1040,(140,160)]
就是每回合四维经验随机增长(140~160)*0.5,每100经验升一点
而阁主和段霄烈两个大佬成长值都是0,也就是不会成长了
额外值
目前代码都是基础值乘上一个系数,但可入队NPC和不可入队的算法是不一样的
可入队的是根据其好友等级来计算系数
所以好友等级越高则其对基础值加成越多,但并不影响基础值的增长
也就是何时升级好友并不影响最终好友属性,关系升级了立马点数就会加上去
不可入队的则是根据成长因子来计算
每个NPC的成长因子各异,说白了就是拿来调节关卡难度的
根据玩家反馈,在对应关卡里把出现的NPC系数调一下就行了
另外段红儿的好友等级公式跟别人不大一样
别人都是(community_lv-1)*0.1,也就是每级+10%四维
段红儿是(community_lv-1)*0.08+math.max(community_lv-5,0)*0.11
也就是6级之前每级+8%,6级后每级+19%(最高好像就6~7级?)
还有净师傅目前公式是0,不过毕竟EA版,不作数
结论是敌人的强度并非按照你的四维或者强度来计算的
而是类似火纹的每旬升级凹点,脸白了全+1,脸差的加白板
不过比起火纹,随机幅度很小,几乎清一色20
所以凡是带成长随机值的NPC,每周目体验都会不一样,而且越往后方差越大
一些传书任务,越晚做自然NPC强度就会高一些,你的队友同理
战斗相关
基础闪避率math.max(0,(defender_dodge-attacker_dodge))
基础招架率 math.max(0,(defender_parry-attacker_parry))
基础反击率math.max(0,(defender_counter-attacker_counter))
基础暴击率math.max(0,(attacker_critical-defender_critical))
也就是你的闪避、招架、反击、暴击,都要先和对方的闪避、招架、反击、暴击做加减
这种,讲真我觉得蛮新鲜的
讲人话就是,我只要比你更灵活,我打你你就闪不掉;我只要比你更暴力,你就没法暴击我
代码里,实际运算、招式攻击、伤害估算,三者是三个函数,完全不相干
伤害估算和实际运算比较接近,去除了随机值(±5%)和暴击等等
目前是用的经典除法公式来计算,也就是atk^2/(atk+def)
意义就是若防御是攻击的n倍,则造成的伤害是攻击力的1/(n+1)
这里atk、def均取的是人物面板显示的数值,与招式无瓜
然后得出的伤害值再去乘招式倍率
还要再乘上暴击、背刺侧击、buff加成等等各种倍率
而在人物技能树UI里显示的招式攻击力
其实就是简单地把招式倍率乘上你的面板攻击力而得出的一个数字
除法公式下也就相当于当对方防御力为0时的伤害值
也就是给你看爽的,对面防御力越高则误差越大
伤害计算
①基础伤害值 basic_damage
除法公式算出,前文有解释,不再赘述,可通过改配置文件换掉
预估值无随机,而实际运算里有0.95~1.05的浮动值
②当次伤害增减 add_and_sub
由4个值组成,攻方增伤,攻方减伤,守方增伤,守方减伤
先每一项各自加减,然后将4个值相乘
③方向系数 dir_coefficient
基础值是配置文件里的方向系数
然后增减技能/心法/天赋里的方向增伤减伤系数
④暴击系数 coefficient_of_critical
基础值是配置文件里写的2,可修改
然后加上技能/心法/天赋里的暴击增伤系数
⑤五行系数 element_coefficient
基础值是配置文件里的公式,可修改
然后增减技能/心法/天赋里的五行增伤减伤系数
⑥技能系数 skill_coefficient
就简单地按技能去找配表里的公式带入一下
每个技能都不同,比如野球拳10级就可以到5.5倍
前5项相乘是写死的,第6项可加可乘
但实际上配表里除了反击用的普攻、医术外,都配的乘法
所以,最终伤害=①*②*③*④*⑤*⑥
技能伤害
九叠云锦张
目标存在一重缚身时,当次伤害提升30%
{ "BufferPropertyAction" : 7004, 1, 30.00000}
7004=Attack_Damage_Add, 攻擊者傷害增傷
即第②项里的攻方增伤+30%
牛下九坎
若本次攻击克制目标五行属性,伤害+50%
{ "BufferPropertyAction" : 7006, 1, 50.00000}
7006=Attack_Weak_Add, 攻擊者相剋增傷
即第⑤项里的攻方增伤+50%,1.3*1.5=1.95
这种乘法增伤,很容易搞到数值爆炸,毕竟你的各种属性是加法式培养,攻击伤害却因为参数全是相乘关系。
参数一点点小变化,最终数值都会打滚式往上涨,就算每个系数都只增加10%,乘多了一样爆炸。
相关修改
①武器切换后过回合
Heluo.UI.CtrlBattle.OnChangeWeapon()
最后面加一句
Game.BattleStateMachine.SendEvent("FINISHED", new FSM.Battle.EndUnitEventArgs{ AwaitTime = 0.5f });
②解锁战斗Pitch视角旋转
Heluo.Components.GameCamera.SetBattleCamera()
把ylocked改为false即可
③修炼内功中旬实际经验计算2次的bug
Heluo.UI.CtrlNurturance.DoMantra()
additionCoe乘了两次,删一次即可
不过应该没人想改吧,除非官方自己改了
④UI里直接显示所有可入队队友
Heluo.UI.CtrlHome.Show()
把判断是否已open的判断去掉即可
附解锁战斗Pitch视角的图,右键可拖动角度,跟河洛群侠传一样,但无相机碰撞会导致穿模