diff --git a/game-server/app/servers/role/handler/equipHandler.ts b/game-server/app/servers/role/handler/equipHandler.ts index 27c7f1af1..d0a4bb42e 100644 --- a/game-server/app/servers/role/handler/equipHandler.ts +++ b/game-server/app/servers/role/handler/equipHandler.ts @@ -191,6 +191,7 @@ export class EquipHandler { qualityStage: curEquip.qualityStage, } let check = new CheckMeterial(roleId); + let count = 0; if(isOneClick) { // 一键升到该品最高点 if(nextEquipQuality.quality != curEquip.quality) { return resResult(STATUS.EQUIP_QUALITYSTAGE_IS_MAX); @@ -200,12 +201,14 @@ export class EquipHandler { if(!isEnough) break; // 消耗不足 equipUpdate.qualityStage++; nextEquipQuality = getNextEquipQuality(curEquip.equipId, equipUpdate.quality, equipUpdate.qualityStage); + count++; } } else { // 往下一阶,包括满点之后的升品 let isEnough = await check.decrease(nextEquipQuality.consume); if(isEnough) { equipUpdate.quality = nextEquipQuality.quality; equipUpdate.qualityStage = nextEquipQuality.point; + count++; } } if(equipUpdate.quality == curEquip.quality && equipUpdate.qualityStage == curEquip.qualityStage) { @@ -225,7 +228,7 @@ export class EquipHandler { } await calculateCeWithHero(HERO_SYSTEM_TYPE.EQUIP_QUALITY, roleId, serverId, sid, hid, update, { ePlaceId }); - await checkTaskInEquipQualityUp(serverId, roleId, sid, oldEplace, newEplace, ePlaceId, hid, isUpQuality); + await checkTaskInEquipQualityUp(serverId, roleId, sid, oldEplace, newEplace, ePlaceId, hid, isUpQuality, count); pushEquipQualityMax(roleId, roleName, serverId, hid, newEquip, isUpQuality); const curHero = { hid, diff --git a/game-server/app/services/task/taskObj.ts b/game-server/app/services/task/taskObj.ts index 91851d506..33b298370 100644 --- a/game-server/app/services/task/taskObj.ts +++ b/game-server/app/services/task/taskObj.ts @@ -1041,7 +1041,8 @@ export class CheckSingleTask { } case TASK_TYPE.EQUIP_QUALITY_UP_CNT: // 94. 装备升品X次 { - result = { inc: 1 }; + let { count } = param; + result = { inc: count }; break; } case TASK_TYPE.EQUIP_QUALITY_UP_TO: // 95. X件装备升品至Y品质 diff --git a/game-server/app/services/task/taskService.ts b/game-server/app/services/task/taskService.ts index b6e08982b..c6e750c8c 100644 --- a/game-server/app/services/task/taskService.ts +++ b/game-server/app/services/task/taskService.ts @@ -276,14 +276,14 @@ export async function checkTaskInEquipStarUp(serverId: number, roleId: string, s } } -export async function checkTaskInEquipQualityUp(serverId: number, roleId: string, sid: string, oldEplace: EPlace[], newEplace: EPlace[], ePlaceId: number, hid: number, isUpQuality: boolean) { +export async function checkTaskInEquipQualityUp(serverId: number, roleId: string, sid: string, oldEplace: EPlace[], newEplace: EPlace[], ePlaceId: number, hid: number, isUpQuality: boolean, count: number) { let task = new CheckTask(serverId, roleId); if(isUpQuality) { let { oldEquip, newEquip } = getEquipById(oldEplace, newEplace, ePlaceId); task.setParam(TASK_TYPE.EQUIP_QUALITY_UP, { hid, ePlaceId }); task.setParam(TASK_TYPE.EQUIP_QUALITY_UP_TO, { oldEquip, newEquip }) } - task.setParam(TASK_TYPE.EQUIP_QUALITY_UP_CNT, {}); + task.setParam(TASK_TYPE.EQUIP_QUALITY_UP_CNT, { count }); await task.saveAndPush(sid); }