PlayerTaskGoal_1.lua 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. function PlayerTaskGoal.FlushCheckStrategy(_, _, _, goal_count, param)
  15. return CommonTaskGoal.OnlyAddCountWhenTrigger(goal_count, param)
  16. end
  17. ---@see 激活连击技能
  18. function PlayerTaskGoal.FlushActivateComboSkill(actor, _, goal_id, goal_count, _)
  19. local config = ConfigDataManager.getById("cfg_task_target", goal_id)
  20. local skill_id = string.tonumber(config.taskgoalparam)
  21. local skill_lv = string.tonumber(config.taskgoalparam2)
  22. local comboSkill = getrolefield(actor,"role.roleskill.comboskill")
  23. local skillLv = comboSkill.skillLv
  24. local skillCfgId = comboSkill.skillCfgId
  25. if skill_id ~= skillCfgId then
  26. return goal_count
  27. end
  28. if skill_lv > 0 and skill_lv > skillLv then
  29. return goal_count
  30. end
  31. return goal_count + 1
  32. end
  33. ---@see 激活白银特权
  34. function PlayerTaskGoal.ActivateSilverPrivilege(actor, _, goal_id, goal_count, param)
  35. local active = PrivilegeMonth.hasSilverPrivilege(actor)
  36. if active == true then
  37. return goal_count + 1
  38. end
  39. return goal_count
  40. end
  41. ---@see 使用果实
  42. function PlayerTaskGoal.UseFruitItem(actor, _, goal_id, goal_count, param)
  43. local totalCount = FruitScript.GetUseFruitCount(actor)
  44. local needCount = tonumber(ConfigDataManager.getTableValue("cfg_task_target", "goalcount", "id", goal_id))
  45. local finalCount = math.min(totalCount, needCount)
  46. return finalCount
  47. end
  48. ---@see 进入地图分线
  49. function PlayerTaskGoal.EnterMapLine(actor, _, goal_id, goal_count, _)
  50. local config = ConfigDataManager.getById("cfg_task_target", goal_id)
  51. local target_1 = string.tonumber(config.taskgoalparam)
  52. local map_id = getbaseinfo(actor, "mapid")
  53. if target_1 > 0 and target_1 ~= string.tonumber(map_id) then
  54. return goal_count
  55. end
  56. local line = getbaseinfo(actor, "line")
  57. local target_2 = config.taskgoalparam2
  58. if not string.isNullOrEmpty(target_2) then
  59. local arr = string.split(target_2, "#")
  60. if not table.contains(arr, tostring(line)) then
  61. return goal_count
  62. end
  63. end
  64. return goal_count + 1
  65. end