PlayerTaskGoal.lua 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. PlayerTaskGoal = {}
  2. ---@see 开启三倍收益
  3. function PlayerTaskGoal.FlushTripleIncome(actor, _, _, goal_count, _)
  4. local is_open = TripleIncome.IsEffect(actor)
  5. if not is_open then
  6. return goal_count
  7. end
  8. return goal_count + 1
  9. end
  10. ---@see 加点
  11. function PlayerTaskGoal.FlushDeployAttrPoint(_, _, _, goal_count, param)
  12. return CommonTaskGoal.OnlyAddCountWhenTrigger(goal_count, param)
  13. end
  14. ---@see 激活连击技能
  15. function PlayerTaskGoal.FlushActivateComboSkill(actor, _, goal_id, goal_count, _)
  16. local config = ConfigDataManager.getById("cfg_task_target", goal_id)
  17. local skill_id = string.tonumber(config.taskgoalparam)
  18. local skill_lv = string.tonumber(config.taskgoalparam2)
  19. local comboSkill = getrolefield(actor,"role.roleskill.comboskill")
  20. local skillLv = comboSkill.skillLv
  21. local skillCfgId = comboSkill.skillCfgId
  22. if skill_id ~= skillCfgId then
  23. return goal_count
  24. end
  25. if skill_lv > 0 and skill_lv > skillLv then
  26. return goal_count
  27. end
  28. return goal_count + 1
  29. end
  30. ---@see 激活白银特权
  31. function PlayerTaskGoal.ActivateSilverPrivilege(actor, _, goal_id, goal_count, param)
  32. local active = PrivilegeMonth.hasSilverPrivilege(actor)
  33. if active == true then
  34. return goal_count + 1
  35. end
  36. return goal_count
  37. end
  38. ---@see 使用果实
  39. function PlayerTaskGoal.UseFruitItem(actor, _, goal_id, goal_count, param)
  40. local totalCount = FruitScript.GetUseFruitCount(actor)
  41. local needCount = tonumber(ConfigDataManager.getTableValue("cfg_task_target", "goalcount", "id", goal_id))
  42. local finalCount = math.min(totalCount, needCount)
  43. return finalCount
  44. end
  45. ---@see 进入地图分线
  46. function PlayerTaskGoal.EnterMapLine(actor, _, goal_id, goal_count, _)
  47. local config = ConfigDataManager.getById("cfg_task_target", goal_id)
  48. local target_1 = string.tonumber(config.taskgoalparam)
  49. local map_id = getbaseinfo(actor, "mapid")
  50. if target_1 > 0 and target_1 ~= string.tonumber(map_id) then
  51. return goal_count
  52. end
  53. local line = getbaseinfo(actor, "line")
  54. local target_2 = config.taskgoalparam2
  55. if not string.isNullOrEmpty(target_2) then
  56. local arr = string.split(target_2, "#")
  57. if not table.contains(arr, tostring(line)) then
  58. return goal_count
  59. end
  60. end
  61. return goal_count + 1
  62. end