UP语句修改攻击/护甲时的编写误区与经验总结
本帖最后由 newtonerdai 于 2020-1-2 14:19 编辑这是前几个月在殊途群上,cxt、夜游神、爱莉琰和本new的讨论结果。鉴于较多新入坑UP1.5/WK的朋友还不知道这个小知识,我就冒昧代他们俩发布以重提一下。
?概要:
UP语句修改攻击力/护甲时(以下简称修改攻防),有“设置、加、减、乘”四种修改模式,但实际有直接应用价值的只有“加、乘”两种(*若使用下文爱莉琰的公式,则还可以正常使用“减”)。而且需要注意,单句的变动值不能>255。“乘”模式下还需要注意倍率是0.01而非1。
?差异对比:
UP语句字面解读/误解实际效果
up-effect 1,0,448,9,1034,1设置 P1 单位448 攻击#4 为 10 设置 P1 单位448 攻击No.1(#25) 为 10
up-effect 1,4,448,9,1034,1 增加 P1 单位448 攻击#4 以 +10(同字面效果)
up-effect 1,4,448,9,1524,1 增加 P1 单位448 攻击#4 以 +500增加 P1 单位448 攻击#5 以 +244
up-effect 1,4,448,9,1014,1(误)增加 P1 单位448 攻击#4 以 -10 增加 P1 单位448 攻击#3 以 +246
*up-effect 1,4,448,9,66806,1增加 P1 单位448 攻击#260 以 +246 增加 P1 单位448 攻击#4 以 -10
up-effect 1,5,448,9,1027,1 倍乘 P1 单位448 攻击#4 以 3 倍乘 P1 单位448 攻击#4 以 3%
?差异解释:
[*]第①行:设置模式下修改的不是既定的类型,而是AGE里该单位攻击类型列表里序号为0的类型。看下图可以知道,单位448攻击列表序号为0的类型是#25,所以实际修改与字面效果的#4有出入。这应该是UP作者遗留的一个BUG。
[*]第③行:由于这里倒数第二位(1524)的解算算法是:
【得到类型,(1524 mod 256)得到变动值】
(注:前者是求商后向下取整,后者是求余数)得到的结果是“类型#5,变动值244”,而非字面解读得到的“攻击#4,变动值+500”。
[*]第④行:与③同理看,算法如下:
【得到类型,(1014 mod 256)得到变动值】得到的结果是“类型#3,变动值246”,而非字面解读得到的“攻击#4,变动值-10”。
[*]*第⑤行:这里需要应用爱莉琰的减法公式:“256*类型+65536+256-减少值”。其算法如下:
【得到类型,(66806 mod 256)得到变动值】
【发现类型#260>255,则再取260-256得到最终类型,同时将变动值(+246)减256得到最终变动值】得到的结果是“类型#4,变动值-10”,而非首次解算解读得到的“攻击#260,变动值+246”。
[*]第⑥行:倍乘攻击力(/护甲)时,最后一位的“1”实际作用是“2”(即“百分比模式”)。这应该也是遗留的BUG。
?总结:
[*]需要设定攻防属性时,最保险的方法是“先倍乘0,再增加到想要的值” 。
[*]攻防属性无法直接做减法。因为做减法时会作用于上一个类型了 。
【爱莉琰补充:减法可以通过这个公式来实现:256*类型+65536+256-减少值。比如上表中,攻击#4减10应使用:256*4+65536+256-10=66806】
[*]攻防属性一次修改无法>255点,一次修改256点时会作用于下一个类型了 。
[*]做乘法时,需要拆解因数。 比如,若要把攻击力乘3,应该“先乘200%,再乘150%”(不直接乘300%是因为最大255的限制)。
增加了爱莉琰补充的减法模式公式,望周知。 一直不會算, 現在懂了.... 謝謝! (雖然還是要研究一下倍數) 不能直接设置攻防值是从帝国2科技中留下来的,而非up疏忽 请问VMDL算是哪种攻击类型? 请问VMDL算是哪种攻击类型? 929130334 发表于 2020-12-10 16:09
请问VMDL算是哪种攻击类型?
他没有攻击类型哦 在XS的世界里本方法已失效
页:
[1]