diff --git a/game-server/app/services/battle/rougeService.ts b/game-server/app/services/battle/rougeService.ts index 23bdc68ba..f2500ccd8 100644 --- a/game-server/app/services/battle/rougeService.ts +++ b/game-server/app/services/battle/rougeService.ts @@ -930,15 +930,18 @@ export async function repaireSendScoreReward() { const roleIds = allRewards.map(cur => { return cur.roleId }); const lastMaxLvMap = await RougelikeExtendModel.getLastMaxLvMap(roleIds); for (let { roleId, received, score, receiveNum } of allRewards) { - if (!lastMaxLvMap.has(roleId)) continue; + let lastMaxLv = lastMaxLvMap.get(roleId) ? lastMaxLvMap.get(roleId) : 1; let goods: RewardInter[] = []; - const rougeScoreRewardByLvData = gameData.rougeScoreRewardByLv.get(lastMaxLvMap.get(roleId)); + const rougeScoreRewardByLvData = gameData.rougeScoreRewardByLv.get(lastMaxLv); if (receiveNum >= rougeScoreRewardByLvData.size) continue; for (let [index, { reward, score: targetScore }] of rougeScoreRewardByLvData) { - if (score >= targetScore && !received.includes(index)) { goods.push(...reward); } + if (score >= targetScore && !received.includes(index)) { + goods.push(...reward); + received.push(index); + } } await sendMailByContent(MAIL_TYPE.ROUGE_SCORE_REPAIRE, roleId, { goods }); - updateArr.push({ roleId, refTime, receiveNum: rougeScoreRewardByLvData.size }); + updateArr.push({ roleId, refTime, receiveNum: rougeScoreRewardByLvData.size, received }); } await RougelikeScoreModel.bulkWriteUpdate(updateArr); }