function UTILS.AddEffect(nCharId, nEffectId, nLevel, nUseCount) if nUseCount == nil then nUseCount = 0 end local mapEftCfgData = ConfigTable.GetData_Effect(nEffectId) if mapEftCfgData == nil then printError("Effect Id missing" .. nEffectId) return nil end local nEffectValueId = nEffectId if mapEftCfgData.levelTypeData == GameEnum.levelTypeData.Exclusive then nEffectValueId = nEffectValueId + nLevel * 10 elseif mapEftCfgData.levelTypeData == GameEnum.levelTypeData.OutfitPromote then elseif mapEftCfgData.levelTypeData == GameEnum.levelTypeData.OutfifBreak then end local mapEftValueData = ConfigTable.GetData("EffectValue", nEffectValueId) if mapEftValueData == nil then printError("EffectValue Id missing" .. nEffectValueId) return nil end local nTakeEffectLimit = mapEftValueData.TakeEffectLimit local nEftRemainTimes = nTakeEffectLimit if nTakeEffectLimit ~= 0 then nEftRemainTimes = nTakeEffectLimit - nUseCount if nEftRemainTimes <= 0 then printLog("效果次数已用完:" .. nEffectId) return nil end end local nEffectUid = 0 return nEffectUid end function UTILS.AddBuildEffect(mapCharEffect, mapOutfitEffect) local retCharEffect = {} local retOutfitEffect = {} for nCharId, mapEffect in pairs(mapCharEffect) do if mapEffect[AllEnum.EffectType.Affinity] ~= nil then for _, nEffectId in ipairs(mapEffect[AllEnum.EffectType.Affinity]) do if retCharEffect[AllEnum.EffectType.Affinity] == nil then retCharEffect[AllEnum.EffectType.Affinity] = {} end if retCharEffect[AllEnum.EffectType.Affinity][nEffectId] ~= nil then printError("重复的EffectID:" .. nEffectId) else local nEftUid = UTILS.AddEffect(nCharId, nEffectId, 0, 0) retCharEffect[AllEnum.EffectType.Affinity][nEffectId] = nEftUid end end end if mapEffect[AllEnum.EffectType.Talent] ~= nil then for _, nEffectId in ipairs(mapEffect[AllEnum.EffectType.Talent]) do if retCharEffect[AllEnum.EffectType.Talent] == nil then retCharEffect[AllEnum.EffectType.Talent] = {} end if retCharEffect[AllEnum.EffectType.Talent][nEffectId] ~= nil then printError("重复的EffectID:" .. nEffectId) else local nEftUid = UTILS.AddEffect(nCharId, nEffectId, 0, 0) retCharEffect[AllEnum.EffectType.Talent][nEffectId] = nEftUid end end end if mapOutfitEffect ~= nil then for nOutfitTid, tbOutfitEffectId in pairs(mapCharEffect) do if retOutfitEffect[nOutfitTid] == nil then retOutfitEffect[nOutfitTid] = {} end for _, nEffectId in ipairs(tbOutfitEffectId) do if retOutfitEffect[nOutfitTid][nEffectId] == nil then retOutfitEffect[nOutfitTid][nEffectId] = {} end local nEftUid = UTILS.AddEffect(nCharId, nEffectId, 0, 0) table.insert(retOutfitEffect[nOutfitTid][nEffectId], nEftUid) end end end end end