diff --git a/game-server/app/servers/role/handler/itemHandler.ts b/game-server/app/servers/role/handler/itemHandler.ts index 4dc879148..a50a1091b 100644 --- a/game-server/app/servers/role/handler/itemHandler.ts +++ b/game-server/app/servers/role/handler/itemHandler.ts @@ -45,6 +45,11 @@ export class ItemHandler { if (!dicGoods) { return resResult(STATUS.ACTIVITY_DATA_ERROR); } + let dicItid = ITID.get(dicGoods.itid); + if (!dicItid) return resResult(STATUS.DIC_DATA_NOT_FOUND); + if (dicItid.type != CONSUME_TYPE.CONSUME) { + return resResult(STATUS.NOT_CONSUME_GOODS); + } let giftID = dicGoods.gift; if (!giftID) { return resResult(STATUS.NOT_GIFTPACKAGE); diff --git a/game-server/app/services/taskService.ts b/game-server/app/services/taskService.ts index 4d5ace003..c31a05d59 100644 --- a/game-server/app/services/taskService.ts +++ b/game-server/app/services/taskService.ts @@ -2,7 +2,7 @@ import * as taskUtil from '../pubUtils/taskUtil'; import { RoleModel, RoleType } from '../db/Role'; import { pinus, FrontendOrBackendSession } from 'pinus'; import { resResult, shouldRefresh } from '../pubUtils/util'; -import { STATUS, TASK_TYPE, TASK_FUN_TYPE, SHOP_REFRESH_TYPE } from '../consts'; +import { STATUS, TASK_TYPE, TASK_FUN_TYPE, SHOP_REFRESH_TYPE, WAR_TYPE } from '../consts'; import { TaskParam, TaskListReturn } from '../domain/roleField/task'; import { HeroType } from '../db/Hero'; import { EquipType } from '../db/Equip'; @@ -110,9 +110,18 @@ export async function checkTaskInBattleEnd(serverId: number, roleId: string, sid await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_VESTIGE, battleId, heroes, 1, star); await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_EXPEDITION, battleId, heroes, 1, star); //成长任务 - await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_MAIN, 1, { warId: battleId }) - await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_EXPEDITION, 1) - await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_DUNGEON_WAR, 1, { warId: battleId }) + let dicWar = gameData.war.get(battleId); + if (dicWar) { + if (dicWar.warType == WAR_TYPE.NORMAL) { + await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_MAIN, 1, { warId: battleId }) + } else if (dicWar.warType == WAR_TYPE.EXPEDITION) { + await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_EXPEDITION, 1) + } else if (dicWar.warType == WAR_TYPE.MYSTERY || dicWar.warType == WAR_TYPE.MYSTERY_ELITE) { + await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_DUNGEON_WAR, 1, { warId: battleId }) + } else if (dicWar.warType == WAR_TYPE.TOWER) { + await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_TOWER, 1) + } + } } diff --git a/shared/consts/constModules/itemConst.ts b/shared/consts/constModules/itemConst.ts index 9666095e4..5a2493ea4 100644 --- a/shared/consts/constModules/itemConst.ts +++ b/shared/consts/constModules/itemConst.ts @@ -31,7 +31,6 @@ export const CONSUME_TYPE = { HEAD: 11, // 头像 FRAME: 12, // 相框 SPINE: 13, // 形象 - GIFT_PACKAGE: 14, // 礼包 }; export enum ROLE_TERAPH { diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index fb98bff0a..1c36835aa 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -218,6 +218,7 @@ export const STATUS = { ROLE_MATERIAL_NOT_ENOUGH: { code: 30001, simStr: '材料数量不足' }, REWARD_CONDITION_NOT_REACH: { code: 30002, simStr: '未满足领取条件' }, REWARD_HAS_RECEIVED: { code: 30003, simStr: '奖励已领取' }, + NOT_CONSUME_GOODS: { code: 30004, simStr: '非消耗品' }, // 武将养成通用 30100 - 30199 diff --git a/shared/pubUtils/taskUtil.ts b/shared/pubUtils/taskUtil.ts index 216ab2318..d1ad47318 100644 --- a/shared/pubUtils/taskUtil.ts +++ b/shared/pubUtils/taskUtil.ts @@ -1198,6 +1198,12 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin break; } } + case TASK_TYPE.BATTLE_TOWER: + { + addCount = count; + break; + } + default: addCount = 0; break;