乔治-华盛顿 发表于 2021-11-16 15:59

【技能条件】为了吾王 各种技能的"严苛"判定 大概说明

最近在解构dll时发现 各种技能的判定隐藏了很多前置条件 比较坑爹


玩的时候老是触发不了以为是运气属性低 实际上不是啊

这个贴子就给大家列举一些 我看得懂的技能判定条件(其中可能有些错误)

static/image/hrline/5.gif


CriticalStrike 暴击 (百分比)
首先 X = 计算玩家身上的装备和各种技能暴击率加成 + 玩家基础暴击率
再者 X = X + 使用专注数量 * 0.05
最终 游戏内会生成一个随机数 Y   
若 Y < X 那么就会触发暴击

static/image/hrline/5.gif

Blackhole 黑洞 (百分比)
1.如果使用武器的特殊技能将不会触发黑洞(有待考察)
2.不会对boss生效(有待考察)
3.未知触发失败条件代码:
if (_attemptedProf != FTK_proficiencyTable.ID.None)
    {
      FTK_proficiencyTable ftk_proficiencyTable = FTK_proficiencyTableDB.Get(_attemptedProf);
      if (ftk_proficiencyTable.m_TargetFriendly || ftk_proficiencyTable.m_Target != CharacterDummy.TargetType.None)
      {
            return false;
      }
    }
4.未知触发直接成功条件   代码:
bool flag = FTKUI.Instance.m_PlayerSlots.m_CheatAttack == SlotControl.AttackCheatType.TriggerAbility;
5.几率触发 若不满足上面的flag条件 (百分比)
首先 X = 0.06 + 使用专注数量 * 0.02

设 Y = 团队物品总数量    i = 0
若 i < Y ,X = X * 0.5 ,i = i + 1
----------------------------------------------------------
可能有些没学过代码的朋友对这个算式比较茫然
那这个算式里的 i = 0i = i + 1 来举例 i = 0 + 1 = 1 结果就是 i = 1
又比如 i = 2i = i + 4 计算过程 i = 2 + 4 = 6结果是 i = 6
上面的 X = X + 使用专注数量 * 0.05 也是这么计算的
----------------------------------------------------------
然后继续循环直到 i > Y即团队物品总数量 时停止循环
可以看到这个成功几率非常低

static/image/hrline/5.gif


CalledShot 猎人的精准一击 (百分比)
1.如果使用专注数量 > 0 将不会触发技能
2.如果使用武器的特殊技能将不会触发精准一击(有待考察)
3.只针对特定武器生效 猜测可能是弓
4.未知触发失败条件代码:
if (_attemptedProf != FTK_proficiencyTable.ID.None)
    {
      FTK_proficiencyTable ftk_proficiencyTable = FTK_proficiencyTableDB.Get(_attemptedProf);
      if (ftk_proficiencyTable.m_TargetFriendly || ftk_proficiencyTable.m_Target != CharacterDummy.TargetType.None)
      {
            return false;
      }
    }
5.如果玩家不能使用技能 将不会触发精准一击
6.未知触发失败条件代码:
if (FTK_weaponStats2DB.GetDB().GetEntry(_player.m_WeaponID).m_NoFocus)
    {
      return false;
    }
7.若满足:
(1)生成一个随机数 X ,如果 X < 0.1 (百分比)
或者
(2)一个未知触发条件 FTKUI.Instance.m_PlayerSlots.m_CheatAttack == SlotControl.AttackCheatType.TriggerAbility
则触发精准一击

static/image/hrline/5.gif


Discipline 纪律 给队友加专注
1.如果使用武器的特殊技能将不会触发纪律(有待考察)
2.如果目标被保护将不会触发纪律 (废话 都不破防)
3.若满足:
(1)一招致命/射杀(待考察)
或者
(2)暴击
或者
(3)一个未知触发条件 FTKUI.Instance.m_PlayerSlots.m_CheatAttack == SlotControl.AttackCheatType.TriggerAbility
则进行进一步判断
队友的专注数量是否为0
若满足则触发纪律回复专注

static/image/hrline/5.gif

Glory 荣耀 加物理伤害
设 X = 0.05 (百分比)
1.若满足 其它战斗玩家数=0 则 X = X * 2
2.若满足 玩家当前生命值低于50% 则 X = X * 2
3.若满足
(1)敌人为BOSS
或者
(2)敌人为灾厄
或者
(3)玩家当前等级 < 敌人战斗等级

X = X * 2
(注 若同时满足以上俩个条件 则都会执行一遍 意味 X = X * 2 * 2 * 2)
4.设 Y = X到0.5中间的 任意一个值
生成一个随机数 若小于Y则触发荣耀 (有待考察)
原代码:
num = Mathf.Min(0.5f, num);
return UnityEngine.Random.value < num;
其中Mathf的具体代表啥 我看不大出来 有点杂乱 如果知道可以指正

static/image/hrline/5.gif


NiceDay 好日子 加2格移动点数
若满足
(1)玩家被诅咒
或者
(2)玩家中毒(有待考察)
或者
(3)玩家在有移动点数情况下提前结束回合的数量 > 0 (有待考察)
或者
(4)时间为夜晚
或者
(5)天气为坏天气(例如雨天)
或者
(6)玩家处在地下城内
则不触发 若都不满足则
设 X = 0.15 (百分比)
生成一个随机数若 < X 则触发技能好日子

static/image/hrline/5.gif


Refocus 凝神专注 加1点专注
1.若玩家正在等待重生 或者 中毒 则不触发
2.若玩家当前专注点数 >= 玩家最大专注点数 则不触发
3.若满足
(1)玩家处在地下城内
(2)天气不为雨天
则设 X 为玩家智力 * 0.65
若玩家处在地下城内则 X = X / 玩家存活数量(有待考察)
---------------------------------------
这里的玩家存活数量是根据英文字面翻译过来的 原代码:
float num = _player.m_CharacterStats.Fortitude * 0.65f;
      if (_player.IsInDungeon())
      {
            MiniHexDungeon miniHexDungeon = (MiniHexDungeon)_player.GetPOI();
            num /= (float)miniHexDungeon.GetAlivePlayersInside().Count;
      }
---------------------------------------
生成一个随机数若 < X 则回复1点专注点数

static/image/hrline/5.gif


StrongBreeze 强风 加3格移动点数
1.若满足
(1)玩家不在船上 也 不乘坐空艇
或者
(2)玩家不在天上
则不触发技能强风
---------------------------------------
怎么感觉有点拗口 把原代码贴出来自己看把 我也被绕晕了
if (!_player.IsInBoat() && (!_player.IsInAirShip() || !_player.IsInAir()))
    {
      return false;
    }
---------------------------------------
2.设 X = 0.2 (百分比)
生成一个随机数若 < X 则触发技能强风

static/image/hrline/5.gif


乔治-华盛顿 发表于 2021-11-16 16:00

占楼以后有时间更新

乔治-华盛顿 发表于 2021-11-16 16:02

占楼以后有时间更新

pch1998 发表于 2021-11-24 22:12

未知条件是目标为友军或者目标模型为空,还有黑洞概率要乘0.5^星物质总数.黑洞的触发条件是你启用了作弊模式

荣耀的isboss是一个foreach,理论上三个boss可以直接把概率拉到0.5,min是返回两者之间的小值
页: [1]
查看完整版本: 【技能条件】为了吾王 各种技能的"严苛"判定 大概说明