From de89b018861c40f248044f7ee526d2d891c47ded Mon Sep 17 00:00:00 2001 From: qiaoxin Date: Thu, 24 Jun 2021 14:56:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8:=E6=B7=BB=E5=8A=A0=E4=BF=9D?= =?UTF-8?q?=E5=BA=95=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/handler/newHeroGachaHandler.ts | 29 +++++++++---------- .../domain/activityField/newHeroGachaField.ts | 2 +- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/game-server/app/servers/activity/handler/newHeroGachaHandler.ts b/game-server/app/servers/activity/handler/newHeroGachaHandler.ts index 581e3c61e..92fc34009 100644 --- a/game-server/app/servers/activity/handler/newHeroGachaHandler.ts +++ b/game-server/app/servers/activity/handler/newHeroGachaHandler.ts @@ -74,16 +74,22 @@ export class NewHeroGachaHandler { let floorReward = false;//是否中保底奖励 let activityData = [];//活动需要统计抽中的英雄、碎片品质 for (let i = 0; i < count; i++) { - // // 按照一般概率抽出 - let { dic: { id: base, goodId } } = getRandEelmWithWeight(item.percent);//{"dic":{"id":1,"weight":59,"goodId":1},"index":0} - if (base == item.floorReward) { + let base = 0; + let goodId = 0; + if (floorReward! && (item.count + i >= item.floorCount)) {//保底奖励 + let reward = item.percent[item.floorReward];//{"id":1,"weight":59,"goodId":1} + base = reward.id; + goodId = reward.goodId; + } else {//按照一般概率抽出 + let randomObj = getRandEelmWithWeight(item.percent);//{"dic":{"id":1,"weight":59,"goodId":1},"index":0} + base = randomObj.dic.id; + goodId = randomObj.dic.goodId; + } + + if (base == item.floorReward) {//中了保底 floorReward = true; } - console.log('dddddddddddddddddd', JSON.stringify(base)); - // let contentId = getFloorResult(gachaId, base, floor); - // if (contentId == false) return resResult(STATUS.DIC_DATA_NOT_FOUND); let result = getResultFromContentIdNewHeroActivity(base, goodId, lv); - console.log('ddddddddddd', JSON.stringify(result)) if (result.hid > 0) { let hasHero = userHeroes.find(cur => cur.hid == result.hid); if (hasHero) { // 已有转换为碎片 @@ -115,15 +121,6 @@ export class NewHeroGachaHandler { let { heroes } = await createHeroes(roleId, roleName, sid, serverId, funcs, heroInfo); await addItems(roleId, roleName, sid, items); - // // 任务 - // await checkTask(roleId, sid, funcs, TASK_TYPE.GASHA, count, true, {}); - // //活动统计 - // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.GASHA, count) - // for (let hero of heroes) { - // activityData.push({ hid: hero.hid, quality: hero.quality }); - // } - // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.GACHA_QUALITY_COUNT, count, { heroes: activityData }) - return resResult(STATUS.SUCCESS, { hid, activityId, count, heroes, result: resultList diff --git a/shared/domain/activityField/newHeroGachaField.ts b/shared/domain/activityField/newHeroGachaField.ts index fabdf8ea1..2e375d645 100644 --- a/shared/domain/activityField/newHeroGachaField.ts +++ b/shared/domain/activityField/newHeroGachaField.ts @@ -21,7 +21,7 @@ export class NewHeroGachaItem { this.floorCount = data.floorCount; this.cost = parseGoodStr(data.cost); this.percent = []; - this.floorReward = data.floorReward; + this.floorReward = data.floorReward - 1; this.count = 0; let arr = data.percent.split('|').filter(obj => { return obj && obj != '' }); for (let obj of arr) {