5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
71 lines
2.4 KiB
Lua
71 lines
2.4 KiB
Lua
local PlayerRelevant = {}
|
|
function PlayerRelevant.CritCount(mapAchievementData, AchievementDataDic)
|
|
local ret = 0
|
|
for nCharId, nCritCount in ipairs(AchievementDataDic.CritCountData) do
|
|
if #mapAchievementData.ClientCompleteParams1 == 0 or 0 < table.indexof(mapAchievementData.ClientCompleteParams1, nCharId) then
|
|
ret = ret + nCritCount
|
|
end
|
|
end
|
|
return ret
|
|
end
|
|
function PlayerRelevant.CastSkillTypeCount(mapAchievementData, AchievementDataDic)
|
|
local nCount = 0
|
|
local tbTarget = mapAchievementData.ClientCompleteParams1
|
|
for nSkillId, nCastCount in pairs(AchievementDataDic.CastSkillData) do
|
|
local mapSkill = ConfigTable.GetData("Skill", nSkillId)
|
|
if mapSkill ~= nil and 0 < table.indexof(tbTarget, mapSkill.Type) then
|
|
nCount = nCount + nCastCount
|
|
end
|
|
end
|
|
return nCount
|
|
end
|
|
function PlayerRelevant.CastSkillCount(mapAchievementData, AchievementDataDic)
|
|
local nCount = 0
|
|
local tbTarget = mapAchievementData.ClientCompleteParams1
|
|
for nSkillId, nCastCount in pairs(AchievementDataDic.CastSkillData) do
|
|
local mapSkill = ConfigTable.GetData("Skill", nSkillId)
|
|
if mapSkill ~= nil and 0 < table.indexof(tbTarget, mapSkill.Id) then
|
|
nCount = nCount + nCastCount
|
|
end
|
|
end
|
|
return nCount
|
|
end
|
|
function PlayerRelevant.ExtremDodgeCount(mapAchievementData, AchievementDataDic)
|
|
local ret = 0
|
|
for nCharId, nPrefectDodgeCount in ipairs(AchievementDataDic.PrefectDodgeData) do
|
|
if #mapAchievementData.ClientCompleteParams1 == 0 or 0 < table.indexof(mapAchievementData.ClientCompleteParams1, nCharId) then
|
|
ret = ret + nPrefectDodgeCount
|
|
end
|
|
end
|
|
return ret
|
|
end
|
|
function PlayerRelevant.TriggerTagElement(mapAchievementData, AchievementDataDic)
|
|
local nCount = 0
|
|
local tbTarget = mapAchievementData.ClientCompleteParams1
|
|
for nMark, nTriggerCount in pairs(AchievementDataDic.MarkTriggerData) do
|
|
if 0 < table.indexof(tbTarget, nMark) then
|
|
nCount = nCount + nTriggerCount
|
|
end
|
|
end
|
|
return nCount
|
|
end
|
|
function PlayerRelevant.OneHitDamage(mapAchievementData, AchievementDataDic)
|
|
local nTarget = mapAchievementData.ClientCompleteParams1[1]
|
|
if nTarget <= AchievementDataDic.MaxDamageValue then
|
|
return 1
|
|
end
|
|
return 0
|
|
end
|
|
function PlayerRelevant.ClearLevelWithHPBelow(mapAchievementData, AchievementDataDic, bSuccess)
|
|
if not bSuccess then
|
|
return 0
|
|
end
|
|
local nTarget = mapAchievementData.ClientCompleteParams1[1]
|
|
local nCurPrec = AchievementDataDic.MainActorHpPrec * 100
|
|
if nTarget >= nCurPrec then
|
|
return 1
|
|
end
|
|
return 0
|
|
end
|
|
return PlayerRelevant
|