1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- Skill = {}
- local this = {}
- -- 计算连击值
- function Skill.calculationComboValue(actor,skillCfgId,skillLevel,skill)
- local growthFactor = ConfigDataManager.getTableValue("cfg_skill_info","growthFactor","skillID",skillCfgId,"skillLevel",skillLevel)
- local comboValue = ConfigDataManager.getTableValue("cfg_skill","comboValue","id",skill)
- if string.isNullOrEmpty(comboValue) or string.isNullOrEmpty(growthFactor) then
- return 0
- end
- local add = math.ceil(tonumber(comboValue) * tonumber(growthFactor) / 10000)
- return add
- end
- -- 添加连击技能
- function Skill.ComboSkillUp(actor)
- local comboSkill = getrolefield(actor,"role.roleskill.comboskill")
- local skillLv = comboSkill.skillLv
- local skillCfgId = comboSkill.skillCfgId
- if skillCfgId == 0 then
- local comboSkillInfo = ConfigDataManager.getTableValue("cfg_global","value","id",1501)
- -- error(comboSkillInfo)
- local baseCareer = getbaseinfo(actor, "getbasecareer")
- local comboSkillTable = string.split(comboSkillInfo,"|")
- for index, careerComboSkill in pairs(comboSkillTable) do
- local careerComboSkillInfo = string.split(careerComboSkill,"#")
- if tonumber(careerComboSkillInfo[1]) == tonumber(baseCareer) then
- skillCfgId = tonumber(careerComboSkillInfo[2])
- end
- end
- skillLv = 0
- end
- skillLv = skillLv + 1
- local skillInfo = ConfigDataManager.getTable("cfg_skill_info","skillID",skillCfgId,"skillLevel",skillLv)
- if table.isEmpty(skillInfo) then
- -- error("没有找到连击技能的配置信息")
- return
- end
- local skill = skillInfo[1]
- local skillLevelUpItemID = skill.skilllevelupitemid
- if not string.isNullOrEmpty(skillLevelUpItemID) then
- local skillLevelUpItemTable = string.split(skillLevelUpItemID,"|")
- local cost = {}
- for index, skillLevelUpItem in pairs(skillLevelUpItemTable) do
- local itemInfo = string.split(skillLevelUpItem, "#")
- local itemCfgId = tonumber(itemInfo[1])
- local count = tonumber(itemInfo[2])
- local have = getbagitemcountbyid(actor,itemCfgId)
- if have < count then
- tipinfo(actor,"连击技能已经提升到最高等级,无法再升级了")
- -- noticeTip.noticeinfo(actor, StringIdConst.TEXT346)
- return
- end
- cost[tostring(itemCfgId)] = count
- end
- for index, costCount in pairs(cost) do
- removeitemfrombag(actor,index,costCount,0,9999,'连击技能')
- end
- end
- local nextSkillLevel = skillLv
- addcomboskill(actor,skillCfgId,nextSkillLevel)
- TaskHandler.TriggerTaskGoal(actor, TaskTargetType.ACTIVATE_COMBO_SKILL)
- OpenServerCompetition.updateRankData(actor, CompetitionType.COMBO_SKILL, nextSkillLevel)
- local rid = getbaseinfo(actor, "rid")
- sendrefluamsg(actor,LuaMessageIdToClient.RES_COMBO_SKILL_MODEL_VIEW,{ tostring(rid), tostring(skillCfgId) ,tostring(skillLv)})
- end
- -- 玩家进入是也发送连击技能视野包
- function Skill.playerequipview(actor, targetPlayer)
- local comboSkill = getrolefield(targetPlayer,"role.roleskill.comboskill")
- local skillLv = comboSkill.skillLv
- local skillCfgId = comboSkill.skillCfgId
- if skillCfgId == 0 then
- return
- end
- local rid = getbaseinfo(targetPlayer, "rid")
- sendluamsg(actor, LuaMessageIdToClient.RES_COMBO_SKILL_MODEL_VIEW, { tostring(rid), tostring(skillCfgId) ,tostring(skillLv)})
- end
- -- 判断是不是连击技能
- function Skill.isComboSkill(actor,skillId)
- local comboSkillInfo = ConfigDataManager.getTableValue("cfg_global","value","id",1501)
- local comboSkillTable = string.split(comboSkillInfo,"|")
- for index, careerComboSkill in pairs(comboSkillTable) do
- local careerComboSkillInfo = string.split(careerComboSkill,"#")
- if tonumber(careerComboSkillInfo[2]) == skillId then
- return true
- end
- end
- return false
- end
|