任务:修复任务无法达成bug
This commit is contained in:
@@ -75,7 +75,7 @@ export class GachaHandler {
|
||||
|
||||
let userGacha = await UserGachaModel.findByRole(roleId, gachaId, activityId);
|
||||
let { floor, freeCount, hope, point, pickHero, refFreeTime } = await refreshGacha(dicGacha, userGacha);
|
||||
if((gachaId == GACHA_ID.ASSIGN|| gachaId == GACHA_ID.TIMELIMIT) && pickHero) return resResult(STATUS.GACHA_NOT_ASSIGN);
|
||||
if((gachaId == GACHA_ID.ASSIGN|| gachaId == GACHA_ID.TIMELIMIT) && !pickHero) return resResult(STATUS.GACHA_NOT_ASSIGN);
|
||||
|
||||
let userHeroes = await HeroModel.findByRole(roleId);
|
||||
|
||||
@@ -104,7 +104,7 @@ export class GachaHandler {
|
||||
}
|
||||
|
||||
let costNum = count;
|
||||
if(dicGacha.free.count > 0) {
|
||||
if(count == 1 && dicGacha.free.count > 0) { // 单抽的时候免费
|
||||
if(count > dicGacha.free.count - freeCount) {
|
||||
costNum = count - dicGacha.free.count + freeCount;
|
||||
freeCount = dicGacha.free.count;
|
||||
@@ -120,7 +120,7 @@ export class GachaHandler {
|
||||
if(!costResult) return resResult(STATUS.GACHA_COST_NOT_ENOUGH);
|
||||
}
|
||||
// 给东西
|
||||
let { heroes } = await createHeroes(roleId, roleName, sid, serverId, heroInfo);
|
||||
let { heroes } = await createHeroes(roleId, roleName, sid, serverId, funcs, heroInfo);
|
||||
await addItems(roleId, roleName, sid, items);
|
||||
// 更新数据
|
||||
point = Math.floor(count/RECRUIT.RECRUIT_BONUS);
|
||||
@@ -157,7 +157,7 @@ export class GachaHandler {
|
||||
for(let { hid } of hope) {
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if(!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
if(dicHero.quality != HERO_QUALITY_TYPE.GOLD) {
|
||||
if(hid != 0 && dicHero.quality != HERO_QUALITY_TYPE.GOLD) {
|
||||
return resResult(STATUS.GACHA_HOPE_NOT_GOLD);
|
||||
}
|
||||
}
|
||||
@@ -181,6 +181,7 @@ export class GachaHandler {
|
||||
const roleName: string = session.get('roleName');
|
||||
const sid: string = session.get('sid');
|
||||
const serverId: number = session.get('serverId');
|
||||
const funcs: number[] = session.get('funcs');
|
||||
|
||||
let userGacha = await UserGachaModel.findByRole(roleId, gachaId, 0);
|
||||
let { point, turntable } = userGacha;
|
||||
@@ -210,7 +211,7 @@ export class GachaHandler {
|
||||
for(let i = 0; i < count; i++) {
|
||||
heroInfo.push({ hid: hero[0] })
|
||||
}
|
||||
let { heroes, goods } = await createHeroes(roleId, roleName, sid, serverId, heroInfo);
|
||||
let { heroes, goods } = await createHeroes(roleId, roleName, sid, serverId, funcs, heroInfo);
|
||||
let resultList: GachaResult[] = [];
|
||||
for(let h of heroes) {
|
||||
let result = new GachaResult(contentId);
|
||||
|
||||
@@ -48,6 +48,7 @@ export class SevenDaysHandler {
|
||||
const serverId = session.get('serverId');
|
||||
const sid = session.get('sid');
|
||||
const roleName = session.get('roleName');
|
||||
const funcs: number[] = session.get('funcs');
|
||||
|
||||
let playerData = await getPlayerGrowthData(activityId, serverId, roleId)
|
||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
@@ -82,7 +83,7 @@ export class SevenDaysHandler {
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
// createHero
|
||||
let hero = await createHero(roleId, roleName, sid, serverId, { hid });
|
||||
let hero = await createHero(roleId, roleName, sid, serverId, funcs, { hid });
|
||||
addHeros.push(hero);
|
||||
}
|
||||
}
|
||||
@@ -102,6 +103,7 @@ export class SevenDaysHandler {
|
||||
const serverId = session.get('serverId');
|
||||
const sid = session.get('sid');
|
||||
const roleName = session.get('roleName');
|
||||
const funcs = session.get('funcs');
|
||||
|
||||
let playerData = await getPlayerGrowthData(activityId, serverId, roleId)
|
||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
@@ -137,7 +139,7 @@ export class SevenDaysHandler {
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
// createHero
|
||||
let { heroes } = await createHero(roleId, roleName, sid, serverId, { hid });
|
||||
let { heroes } = await createHero(roleId, roleName, sid, serverId, funcs, { hid });
|
||||
for(let hero of heroes) {
|
||||
addHeros.push(hero);
|
||||
}
|
||||
|
||||
@@ -125,6 +125,7 @@ export class HeroHandler {
|
||||
let roleName: string = session.get('roleName');
|
||||
let sid: string = session.get('sid');
|
||||
let serverId: number = session.get('serverId');
|
||||
let funcs: number[] = session.get('funcs');
|
||||
|
||||
let {hid} = msg;
|
||||
|
||||
@@ -139,7 +140,7 @@ export class HeroHandler {
|
||||
let costResult = await handleCost(roleId, sid, [{id: pieceId, count: pieceCount}]);
|
||||
if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
// createHero
|
||||
let { heroes } = await createHero(roleId, roleName, sid, serverId, { hid });
|
||||
let { heroes } = await createHero(roleId, roleName, sid, serverId, funcs, { hid });
|
||||
|
||||
pushComposeOrangeHero(roleId, roleName, serverId, heroes[0]);
|
||||
return resResult(STATUS.SUCCESS, {curHero: heroes[0]});
|
||||
@@ -207,7 +208,7 @@ export class HeroHandler {
|
||||
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.LVUP, sid, roleId, hero, update);
|
||||
|
||||
// 任务
|
||||
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_LV, hero);
|
||||
await checkTaskWithHero(roleId, sid, funcs, TASK_TYPE.HERO_LV, hero, [oldLv]);
|
||||
|
||||
const curHero = {
|
||||
hid, lv : hero.lv, exp : hero.exp
|
||||
@@ -426,6 +427,7 @@ export class HeroHandler {
|
||||
|
||||
//进阶
|
||||
async heroJobStageUp(msg: {hid:number}, session: BackendSession) {
|
||||
console.log(JSON.stringify([...gameData.jobClassMaxGrades]))
|
||||
let roleId: string = session.get('roleId');
|
||||
let sid: string = session.get('sid');
|
||||
let funcs: number[] = session.get('funcs');
|
||||
@@ -444,6 +446,7 @@ export class HeroHandler {
|
||||
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
|
||||
}
|
||||
let nextHeroJob = getJobByGradeAndClass(heroJob.job_class, heroJob.grade + 1);
|
||||
if(!nextHeroJob) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
//重算战力并下发
|
||||
let update = {
|
||||
|
||||
Reference in New Issue
Block a user