描述
- 国服3月水瓶座会战(日服2025年1月)D5的召唤物(id= 401801411)解除buff的技能描述不清晰
|
fun SkillActionDetail.dispel(): String { |
预期行为
- 该动作
BuffDebuffClearAction(id=49)的ActionDetail1被解读为清除类型,定义如下
enum eDetail1Type
BUFF = 1,
DEBUFF = 2,
STATUS_UP_CLEAR = 3,
ALL_BARRIER = 10,
GUARD_ATK_BARRIER = 11,
GUARD_MGC_BARRIER = 12,
DRAIN_ATK_BARRIER = 13,
DRAIN_MGC_BARRIER = 14,
GUARD_BOTH_BARRIER = 15,
DRAIN_BOTH_BARRIER = 16,
ALL_ATK_BARRIER = 17,
ALL_MGC_BARRIER = 18,
ALL_BOTH_BARRIER = 19,
BUFF_DEBUFF_TYPE = 20
- 1,2就是所有的Buff、Debuff(包括领域buff/debuff)
- 3是所有的buff(不包括领域buff)
- 10就是所有的减伤盾(GUARD)和吸收盾(DRAIN)
- 11-16就是上述的具体类别盾(物理/魔法/通用 减伤/吸收 盾)
- 17-19就是把指定类别的减伤+吸收盾都清除
- 20是清除指定buff/debuff,由ActionValue4/5/6/7指定(去除值为0的),解读方式为
private int getBuffDebuffParamValue(BuffParamKind _kind, bool _isBuff, bool _additional)
{
int num = (_additional ? 1000 : 0);
int num2 = (int)_kind * 10;
int num3 = ((!_isBuff) ? 1 : 0);
return num + num2 + num3;
}
即ActionValue4 / 10 % 100决定清除的Buff类别,ActionValue4 % 10决定buff/debuff,ActionValue4 / 1000决定是否是额外属性(比如白甲等不能被降低的属性)
Buff类别的解读方式如下
enum BuffParamKind
ATK = 1,
DEF = 2,
MAGIC_STR = 3,
MAGIC_DEF = 4,
DODGE = 5,
PHYSICAL_CRITICAL = 6,
MAGIC_CRITICAL = 7,
ENERGY_RECOVER_RATE = 8,
LIFE_STEAL = 9,
MOVE_SPEED = 10,
PHYSICAL_CRITICAL_DAMAGE_RATE = 11,
MAGIC_CRITICAL_DAMAGE_RATE = 12,
ACCURACY = 13,
RECEIVE_CRITICAL_DAMAGE_RATE = 14,
RECEIVE_PHYSICAL_AND_MAGIC_DAMAGE_PERCENT = 15,
RECEIVE_PHYSICAL_DAMAGE_PERCENT = 16,
RECEIVE_MAGIC_DAMAGE_PERCENT = 17,
PHYSICAL_DAMAGE_UP_PERCENT = 18,
MAGIC_DAMAGE_UP_PERCENT = 19,
MAX_HP = 100,
注意到MAX_HP*10=1000会和_additional位置冲突,但pcr代码就是这么写的,或许意味着不考虑这个情况。
期望结果为:
- 移除敌方全体的物理防御Buff
- 移除敌方全体的魔法防御Buff
- 移除我方全体的物理防御Debuff
- 移除我方全体的魔法防御Debuff
运行环境
- 硬件: 摩托摩拉
- 系统: 安卓
- 应用版本 4.0.0
描述
pcr-tool/app/src/main/java/cn/wthee/pcrtool/data/db/view/skilltype/Dispel.kt
Line 11 in 2cd39fa
预期行为
BuffDebuffClearAction(id=49)的ActionDetail1被解读为清除类型,定义如下即
ActionValue4 / 10 % 100决定清除的Buff类别,ActionValue4 % 10决定buff/debuff,ActionValue4 / 1000决定是否是额外属性(比如白甲等不能被降低的属性)Buff类别的解读方式如下
注意到
MAX_HP*10=1000会和_additional位置冲突,但pcr代码就是这么写的,或许意味着不考虑这个情况。期望结果为:
运行环境