以下面标签为例
<add stat="pAtk" order="0x40" val="1000"/>
其中 add 表示使用的计算方法, add为加法,mul为乘法,sub为减法,div为除法
stat 要处理的状态名,pAtk是物理攻击的含义,具体可以参考Stats.java文档
order 计算的次序,值为16进制数字,计算次序越小的会在公式越靠前
val 计算的值
order详细解释:
首先假设有一个人物有基础攻击力1000,身上有2个buff
buff1:加攻击力30%
buff2:增加攻击力1000
在游戏里,无论你先加哪个buff,人物的属性都应该保持一致,人物的属性不会因为buff的次序改变而改变是我们期望的结果
但是实际上你会发现如果按不同的次序执行2个buff,会得到2个结果
1000x1.3+1000 = 2300
(1000+1000)x1.3 = 2600
这不是我们期望的结果,所以我们在技能或物品的xml标签中会强制增加一个order来表示运算次序
通常mul标签,也就是乘法标签会给于0x30的次序,而加法标签通常给0x40,这样无论状态谁先谁后,我们永远计算乘法优先,然后才是加法,游戏里人物的属性才会保持一直。
2015年4月—2024年4月,论坛已建立9周年,欢迎加入QQ群讨论:419848937