diff --git a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts index 845a19e84..79534baa4 100644 --- a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts +++ b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts @@ -13,7 +13,7 @@ import { getAp, setAp } from '../../../services/actionPointService'; import { STATUS } from '../../../consts/statusCode'; import { resResult } from '../../../pubUtils/util'; import { calculateWarStar, checkBattleHeroes, roleLevelup } from '../../../services/normalBattleService'; -import { checkTask, checkTaskInBattleEnd } from '../../../services/task/taskService'; +import { checkTask, checkTaskInBattleEnd, checkTaskInBattleStart } from '../../../services/task/taskService'; import { gameData } from '../../../pubUtils/data'; import * as dicParam from '../../../pubUtils/dicParam'; import { getSeconds, nowSeconds } from '../../../pubUtils/timeUtil'; @@ -125,6 +125,8 @@ export class ExpeditionBattleHandler { let roleId = session.get('roleId'); let roleName = session.get('roleName'); let ip = session.get('ip'); + let serverId = session.get('serverId'); + let sid = session.get('sid'); let warInfo = gameData.war.get(battleId); if (!warInfo) { return resResult(STATUS.BATTLE_MISS_INFO); @@ -167,6 +169,7 @@ export class ExpeditionBattleHandler { }, true); let result = await ExpeditionWarRecordModel.updateBattleCode(expeditionCode, expeditionId, EXPEDITION_WAR_RECORD_STATUS.WAITING, battleCode); + await checkTaskInBattleStart(serverId, roleId, sid, battleId); return resResult(STATUS.SUCCESS, { expeditionCode, diff --git a/game-server/app/servers/battle/handler/normalBattleHandler.ts b/game-server/app/servers/battle/handler/normalBattleHandler.ts index 974c9fe27..12fa8cd11 100644 --- a/game-server/app/servers/battle/handler/normalBattleHandler.ts +++ b/game-server/app/servers/battle/handler/normalBattleHandler.ts @@ -19,7 +19,7 @@ import { gameData } from '../../../pubUtils/data'; import { pushMysteryFirstMsg, pushTowerMsg, pushVestigeFirstMsg } from '../../../services/chatService'; import { getSeconds, nowSeconds } from '../../../pubUtils/timeUtil'; import { Rank } from '../../../services/rankService'; -import { checkTaskInBattleEnd, checkTaskInBattleSweep } from '../../../services/task/taskService'; +import { checkTaskInBattleEnd, checkTaskInBattleStart, checkTaskInBattleSweep } from '../../../services/task/taskService'; import { ActivitySelfServiceModel } from '../../../db/ActivitySelfService'; import { getSelfServiceShopActivityData } from '../../../services/activity/selfServiceShopActivityService'; import { challengeDailyGK } from '../../../services/activity/dailyGKService'; @@ -45,6 +45,8 @@ export class NormalBattleHandler { const { battleId, heroes: seqIds = [] } = msg; let roleId = session.get('roleId'); let roleName = session.get('roleName'); + let serverId = session.get('serverId'); + let sid = session.get('sid'); let ip = session.get('ip'); let warInfo = gameData.war.get(battleId); if (!warInfo) { @@ -113,7 +115,7 @@ export class NormalBattleHandler { let { status } = BattleRecord; - + await checkTaskInBattleStart(serverId, roleId, sid, battleId); return resResult(STATUS.SUCCESS, { battleId, battleCode, status, dailyNum, towerData, dungeonNum }); diff --git a/game-server/app/servers/battle/handler/towerBattleHandler.ts b/game-server/app/servers/battle/handler/towerBattleHandler.ts index 3d35dbca1..e19207cc5 100644 --- a/game-server/app/servers/battle/handler/towerBattleHandler.ts +++ b/game-server/app/servers/battle/handler/towerBattleHandler.ts @@ -332,7 +332,7 @@ export class TowerBattleHandler { pushTowerMsg(roleId, roleName, serverId, MSG_SOURCE.TOWER_SUC, role.towerLv); let data = await getTowerStatus(role); - await checkTask(serverId, roleId, sid, TASK_TYPE.BATTLE_TOWER_LV, { towerLv: role.towerLv - 1 }); + // 更新redis let r = new Rank(REDIS_KEY.TOWER_RANK, { serverId }); await r.setRankWithRoleInfo(roleId, role.towerLv - 1, role.towerUpTime.getTime(), role); diff --git a/game-server/app/services/comBattleService.ts b/game-server/app/services/comBattleService.ts index 7e9bc2cf0..e862f1453 100644 --- a/game-server/app/services/comBattleService.ts +++ b/game-server/app/services/comBattleService.ts @@ -18,6 +18,7 @@ import { getRewardByBlueprtId, gameData, getBossHpByBlueprtId, getDicBlueprtById import { getZeroPointD, nowSeconds } from '../pubUtils/timeUtil'; import { handleCost } from './role/rewardService'; import { addUserToTeamChannel, delTeamChannel, sendMessageToTeam, sendMessageToUsersWithSuc } from './pushService'; +import { checkTaskInComBattleEnd } from './task/taskService'; /** * 在给定的品质列表中随机返回一定数量的藏宝图Id @@ -226,6 +227,7 @@ export async function handleComBtlProgress(teamStatus: MemComBtlTeam, robotHurtT for (let st of teamStatus.roleStatus) { st.fixReward = await getRealReward(teamStatus.blueprtId, st); }; + await checkTaskInComBattleEnd(teamStatus.roleStatus, teamStatus.capId); } let team = await ComBattleTeamModel.syncTeamData({ teamCode, status: battleSt, roleStatus: teamStatus.roleStatus, bossHpArr: teamStatus.bossHpArr, endTime: teamStatus.endTime }); if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR); diff --git a/game-server/app/services/task/taskObj.ts b/game-server/app/services/task/taskObj.ts index d82dbe8c7..05d667f66 100644 --- a/game-server/app/services/task/taskObj.ts +++ b/game-server/app/services/task/taskObj.ts @@ -697,9 +697,9 @@ export class CheckSingleTask { } case TASK_TYPE.BATTLE_TOWER: // 47. 通关镇念塔x次 { - let { warId, count } = param; + let { warId, count = 1, skipTower } = param; let dicWar = gameData.war.get(warId); - if (dicWar.warType == WAR_TYPE.TOWER) { + if (dicWar.warType == WAR_TYPE.TOWER || skipTower) { result = { inc: count }; } break; @@ -708,7 +708,7 @@ export class CheckSingleTask { { let { warId, count } = param; let dicWar = gameData.war.get(warId); - if (dicWar.warType == WAR_TYPE.VESTIGE) { + if (dicWar.warType == WAR_TYPE.VESTIGE && this.checkIdList(dicTaskParam, 0, warId)) { result = { inc: count }; } break; @@ -1209,6 +1209,76 @@ export class CheckSingleTask { result = { inc: count }; break; } + case TASK_TYPE.BATTLE_MAIN_START: // 111. 挑战主线X次 + { + let { warId, count } = param; + let dicWar = gameData.war.get(warId); + if (dicWar.warType == WAR_TYPE.NORMAL) { + result = { inc: count }; + } + break; + } + case TASK_TYPE.BATTLE_TOWER_START: // 112. 挑战镇念塔X次 + { + let { warId, count = 1, skipTower } = param; + let dicWar = gameData.war.get(warId); + if (dicWar.warType == WAR_TYPE.TOWER || skipTower) { + result = { inc: count }; + } + break; + } + case TASK_TYPE.BATTLE_VESTIGE_START: // 113. 挑战遗迹X次 + { + let { warId, count } = param; + let dicWar = gameData.war.get(warId); + if (dicWar.warType == WAR_TYPE.VESTIGE) { + result = { inc: count }; + } + break; + } + case TASK_TYPE.BATTLE_DAILY_START: // 114. 挑战每日关卡X次 + { + let { warId, count } = param; + let dicWar = gameData.war.get(warId); + if(dicWar.warType == WAR_TYPE.DAILY && (dicTaskParam[0] == 0 || dicTaskParam[0] == dicWar.dailyType)) { + result = { inc: count }; + } + break; + } + case TASK_TYPE.COM_BATTLE_CREATE_TEAM_WIN: // 115. 寻宝招募队友x次 + { + result = { inc: 1 }; + break; + } + + case TASK_TYPE.COM_BATTLE_ASSIST_TEAM_WIN: // 116. 协助寻宝x次 + { + result = { inc: 1 }; + break; + } + case TASK_TYPE.COM_BATTLE_WIN: // 117. 组队寻宝 + { + result = { inc: 1 }; + break; + } + case TASK_TYPE.BATTLE_EXPEDITION_START: // 118. 远征挑战X次 + { + let { warId, count } = param; + let dicWar = gameData.war.get(warId); + if (dicWar.warType == WAR_TYPE.EXPEDITION) { + result = { inc: count }; + } + break; + } + case TASK_TYPE.BATTLE_DUNGEON_START: // 119. 秘境挑战X次 + { + let { warId, count } = param; + let dicWar = gameData.war.get(warId); + if(dicWar.warType == WAR_TYPE.MYSTERY || dicWar.warType == WAR_TYPE.MYSTERY_ELITE) { + result = { inc: count }; + } + break; + } } return result } diff --git a/game-server/app/services/task/taskService.ts b/game-server/app/services/task/taskService.ts index cefec18e7..ce72ef01a 100644 --- a/game-server/app/services/task/taskService.ts +++ b/game-server/app/services/task/taskService.ts @@ -107,6 +107,17 @@ export async function checkTaskInGuildTrain(serverId: number, roleId: string, si await task.saveAndPush(sid); } +export async function checkTaskInBattleStart(serverId: number, roleId: string, sid: string, warId: number) { + let task = new CheckTask(serverId, roleId); + task.setParam(TASK_TYPE.BATTLE_MAIN_START, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_TOWER_START, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_VESTIGE_START, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_DAILY_START, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_EXPEDITION_START, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_DUNGEON_START, { warId, count: 1 }); + await task.saveAndPush(sid); +} + /** * battle.normalBattleHandler.battleEnd 中会触发的任务,因为有点多提出来了 */ @@ -131,6 +142,14 @@ export async function checkTaskInGuildTrain(serverId: number, roleId: string, si } } +export async function checkTaskInSkipTower(serverId: number, roleId: string, sid: string, towerLv: number) { + let task = new CheckTask(serverId, roleId); + task.setParam(TASK_TYPE.BATTLE_TOWER_LV, { towerLv: towerLv - 1 }); + task.setParam(TASK_TYPE.BATTLE_TOWER_START, { skipTower: true }); + task.setParam(TASK_TYPE.BATTLE_TOWER, { skipTower: true }); + await task.saveAndPush(sid); +} + export async function checkTaskInBattleSweep(serverId: number, roleId: string, sid: string, warId: number, count: number) { let task = new CheckTask(serverId, roleId); @@ -165,6 +184,23 @@ export async function checkTaskInComBattleStart(roleStatus: RoleStatus[], capId: } } +export async function checkTaskInComBattleEnd(roleStatus: RoleStatus[], capId: string) { + for (let { roleId, isRobot } of roleStatus) { + if (!isRobot) { + let role = await RoleModel.findByRoleId(roleId); + let task = new CheckTask(role.serverId, roleId); + task.setRole(role); + if (roleId == capId && roleStatus.length > 1) { // 招募队友 + task.setParam(TASK_TYPE.COM_BATTLE_CREATE_TEAM_WIN, {}); + } else if (roleId !== capId) { // 协助寻宝 + task.setParam(TASK_TYPE.COM_BATTLE_ASSIST_TEAM_WIN, {}); + } + task.setParam(TASK_TYPE.COM_BATTLE_WIN, {}); + await task.saveAndPush(); + } + } +} + export async function checkTaskInPvpEnd(serverId: number, roleId: string, sid: string, isSuccess: boolean, heroScores: HeroScores[], myRank: number) { let task = new CheckTask(serverId, roleId); task.setParam(TASK_TYPE.PVP_WIN, { isSuccess }); diff --git a/shared/consts/constModules/sysConst.ts b/shared/consts/constModules/sysConst.ts index 3a55e4c63..696dfd316 100644 --- a/shared/consts/constModules/sysConst.ts +++ b/shared/consts/constModules/sysConst.ts @@ -747,6 +747,15 @@ export enum TASK_TYPE { COM_BATTLE_LV = 108, // 军团寻宝 GUILD_REFINE = 109, // 军团兑换 EQUIP_STAR_UP_CNT_SUM = 110, // 装备总共升星x次 + BATTLE_MAIN_START = 111, // 挑战主线x次 + BATTLE_TOWER_START = 112, // 挑战镇念塔x次 + BATTLE_VESTIGE_START = 113, // 挑战遗迹x次 + BATTLE_DAILY_START = 114, // 挑战每日x次 + COM_BATTLE_CREATE_TEAM_WIN = 115, // 创建寻宝并胜利x次 + COM_BATTLE_ASSIST_TEAM_WIN = 116, // 协助寻宝并胜利x次 + COM_BATTLE_WIN = 117, // 寻宝胜利x次 + BATTLE_EXPEDITION_START = 118, // 挑战远征x次 + BATTLE_DUNGEON_START = 119, // 挑战秘境x次 } // 任务累积类型 diff --git a/shared/domain/roleField/task.ts b/shared/domain/roleField/task.ts index acaddc49c..590c8b646 100644 --- a/shared/domain/roleField/task.ts +++ b/shared/domain/roleField/task.ts @@ -51,6 +51,7 @@ export class TaskParamInter { newEquip?: EPlace; // 新装备栏(一个) jewels?: JewelType[]; // 天晶石 + skipTower?: boolean; debugInfo?: {condition: number}; }; diff --git a/shared/resource/jsons/dic_zyz_taskType.json b/shared/resource/jsons/dic_zyz_taskType.json index ca0af1339..16c956357 100644 --- a/shared/resource/jsons/dic_zyz_taskType.json +++ b/shared/resource/jsons/dic_zyz_taskType.json @@ -5,7 +5,7 @@ "info": "累计登录 x 天", "param": "day&", "string": "天数", - "content": "每日就用这个填1", + "content": "每天5点开始计算", "condition": "day", "sumType": 1 }, @@ -15,7 +15,7 @@ "info": "连续登录 x 天", "param": "day&", "string": "天数", - "content": 0, + "content": "每天5点开始计算;当某一天没有登录就会从1开始重新计算", "condition": "day", "sumType": 1 }, @@ -35,7 +35,7 @@ "info": "招募x次", "param": "count&", "string": "招募次数&", - "content": 0, + "content": "包括引导抽卡的次数;10连是算10次的", "condition": "count", "sumType": 2 }, @@ -55,7 +55,7 @@ "info": "x名武将升星x次", "param": "herocount&count&", "string": "武将数量&升星次数&", - "content": 0, + "content": "星级上升了才算是1次;升彩星也是算入的;每个武将独立计算,以武将数为进度", "condition": "herocount", "sumType": 2 }, @@ -75,7 +75,7 @@ "info": "x名x品质升至x星", "param": "herocount&quality&star&", "string": "武将数量&品质&星级&", - "content": "只算普通星级、只算这一种品质", + "content": "升至x星是只算普通升星的;品质是使用等号判断的,紫色的升星不能达成蓝色的条件", "condition": "herocount", "sumType": 1 }, @@ -95,7 +95,7 @@ "info": "x名武将各训练x次", "param": "herocount&count&", "string": "武将数量&训练次数", - "content": 0, + "content": "每个点算是1次,不算升阶的那一次", "condition": "herocount", "sumType": 2 }, @@ -105,7 +105,7 @@ "info": "x名武将进行升品", "param": "herocount&", "string": "武将数量&", - "content": 0, + "content": "每个武将计算一次,一个武将升了10次品,进度也只算1次", "condition": "herocount", "sumType": 2 }, @@ -115,7 +115,7 @@ "info": "武将觉醒x次", "param": "herocount&", "string": "武将觉醒次数&", - "content": "从6星升到觉醒1星那一次", + "content": "只计算从6星升到觉醒1星那一次", "condition": "herocount", "sumType": 2 }, @@ -125,7 +125,7 @@ "info": "训练x次", "param": "count&", "string": "训练次数", - "content": 0, + "content": "每个点算是1次,不算升阶的那一次;所有武将累积", "condition": "count", "sumType": 2 }, @@ -135,7 +135,7 @@ "info": "x名武将各兵种进阶x次", "param": "herocount&count&", "string": "武将数量&进阶次数&", - "content": 0, + "content": "只算升阶的那次", "condition": "herocount", "sumType": 2 }, @@ -155,7 +155,7 @@ "info": "激活x次 x星 武将羁绊", "param": "count&star&", "string": "激活次数&星级&", - "content": 0, + "content": "这个星级现在指的是dic_zyz_friend_ship表的level字段;用等号判断,高级无法替低级达成", "condition": "count", "sumType": 2 }, @@ -175,7 +175,7 @@ "info": "百家学宫放置x个武将", "param": "herocount&", "string": "放置武将数量&", - "content": 0, + "content": "放置后又取走进度会回退", "condition": "herocount", "sumType": 1 }, @@ -185,7 +185,7 @@ "info": "爵位升至x", "param": "title&", "string": "升到的爵位&", - "content": 0, + "content": "dic_zyz_title的id", "condition": "title", "sumType": 1 }, @@ -195,7 +195,7 @@ "info": "神像强化x次", "param": "count&", "string": "强化次数&", - "content": 0, + "content": "只算强化次数不算进阶的", "condition": "count", "sumType": 2 }, @@ -205,7 +205,7 @@ "info": "名将谱激活x武将", "param": "herocount&", "string": "武将数量&", - "content": 0, + "content": "只算从没有激活到激活的那一次", "condition": "herocount", "sumType": 1 }, @@ -215,7 +215,7 @@ "info": "累计签到 x 天", "param": "day&", "string": "天数", - "content": 0, + "content": "未开发", "condition": "day", "sumType": 1 }, @@ -225,7 +225,7 @@ "info": "拥有x名好友", "param": "count&", "string": "好友数量&", - "content": 0, + "content": "只算加上了的;加上又解除好友的进度会回退", "condition": "count", "sumType": 1 }, @@ -245,7 +245,7 @@ "info": "聊天频道发言x次", "param": "chattype&count&", "string": "聊天频道type&发言次数&", - "content": 0, + "content": "chattype: 0-不限 2-世界 3-军团 4-寻宝队伍 5-私聊", "condition": "count", "sumType": 2 }, @@ -255,7 +255,7 @@ "info": "消耗体力", "param": "cost&", "string": "消耗体力数&", - "content": 0, + "content": "凡是消耗体力的都能触发,不过目前只有战斗消耗体力", "condition": "cost", "sumType": 2 }, @@ -265,7 +265,7 @@ "info": "使用hId武将挑战x关卡x次", "param": "hid&count&warcount&warid&…", "string": "武将id&挑战次数&填几个warid&关卡id&…", - "content": 0, + "content": "必须完成战斗且挑战胜利", "condition": "count", "sumType": 2 }, @@ -275,7 +275,7 @@ "info": "主线通关第x关", "param": "warcount&warid&…", "string": "关卡id", - "content": 0, + "content": "只计算warType为1的关卡;必须挑战胜利才计算;计算扫荡;主线基金是算这个type的", "condition": "warcount", "sumType": 2 }, @@ -285,7 +285,7 @@ "info": "主线扫荡X次", "param": "count&", "string": "扫荡次数&", - "content": "不包括手打", + "content": "只计算warType为1的关卡;只计算扫荡;", "condition": "count", "sumType": 2 }, @@ -295,7 +295,7 @@ "info": "奇遇(答题/解救百姓/劫匪) x 次", "param": "eventType&count&", "string": "奇遇类型&次数&", - "content": "eventType=0,表示任意奇遇类型", + "content": "eventType: 0-任意类型 1-宝箱 2-答题 3-战斗;需要到领取到奖励才算达成;不需要战斗胜利/答题正确;", "condition": "count", "sumType": 2 }, @@ -305,27 +305,27 @@ "info": "每日x星通关 x 次", "param": "star&count&warcount&warid&…", "string": "星级&通关次数&填几个warid&关卡id&…", - "content": "不包括扫荡,不强求三星star填0", + "content": "star: 0-不限制星级 1~3-所需星级;只计算warType为4的关卡;必须挑战胜利且星级>=star才计算;不计算扫荡;", "condition": "count", "sumType": 2 }, { "id": 43, "name": "关卡", - "info": "每日关卡挑战x次", + "info": "每日关卡通关x次", "param": "dailytype&count&", "string": "每日类型&挑战次数&", - "content": 0, + "content": "dailytype: 0-不限制类型 1~4 dic_zyz_daily表的dailyType;只计算warType为4的关卡;必须挑战胜利;扫荡也算", "condition": "count", "sumType": 2 }, { "id": 44, "name": "关卡", - "info": "参与秘境x次", + "info": "通关秘境x次", "param": "count&", "string": "秘境挑战次数&", - "content": 0, + "content": "只计算warType为6或13的关卡;必须挑战胜利才计算;扫荡也算", "condition": "count", "sumType": 2 }, @@ -335,7 +335,7 @@ "info": "秘境通关x关x难度", "param": "warcount&warid&…", "string": "填几个warid&关卡id&…", - "content": 0, + "content": "只计算warType为6或13的关卡;必须挑战胜利才计算;扫荡也算", "condition": "warcount", "sumType": 1 }, @@ -345,7 +345,7 @@ "info": "通关镇念塔x层", "param": "lv&", "string": "镇念塔层数", - "content": 0, + "content": "战斗胜利升到下一层或跳过层数时候会达成", "condition": "lv", "sumType": 1 }, @@ -355,27 +355,27 @@ "info": "通关镇念塔x次", "param": "count&", "string": "通关次数&", - "content": 0, + "content": "只计算warType为8的关卡;必须挑战胜利才计算;扫荡也算", "condition": "count", "sumType": 2 }, { "id": 48, "name": "关卡", - "info": "挑战遗迹x次", - "param": "count&", + "info": "通关遗迹x关", + "param": "warcount&warid", "string": "挑战次数&", - "content": 0, + "content": "只计算warType为2的关卡;必须挑战胜利才计算;扫荡也算", "condition": "count", "sumType": 1 }, { "id": 49, "name": "关卡", - "info": "开启远征x次", + "info": "远征挑战胜利x次", "param": "count&", "string": "远征次数&", - "content": 0, + "content": "只计算warType为5的关卡;必须挑战胜利才计算;扫荡也算", "condition": "count", "sumType": 2 }, @@ -385,8 +385,8 @@ "info": "领取x次远征 x宝箱", "param": "count&point&", "string": "领取次数&宝箱的积分&", - "content": "积分27分", - "condition": "count", + "content": "point:领取宝箱消耗的点数", + "condition": "warcount", "sumType": 2 }, { @@ -395,7 +395,7 @@ "info": "寻宝招募队友x次", "param": "count&", "string": "创建队伍次数&", - "content": "创建了队伍,匹配到人了,并进去挑战了才算一次", + "content": "创建了队伍,匹配到别人了(只有自己一人不算,机器人算);只要开始寻宝就算,中途强退也算", "condition": "count", "sumType": 2 }, @@ -405,7 +405,7 @@ "info": "协助寻宝x次", "param": "count&", "string": "协助寻宝次数&", - "content": "一定是加别人的", + "content": "一定靠匹配加入其他人的队伍,创建队伍不算;只要开始寻宝就算,中途强退也算", "condition": "count", "sumType": 2 }, @@ -415,7 +415,7 @@ "info": "组队寻宝", "param": "count&", "string": "寻宝次数&", - "content": "都算", + "content": "创建队伍和匹配的都算;只要开始寻宝就算,中途强退也算", "condition": "count", "sumType": 2 }, @@ -425,7 +425,7 @@ "info": "pvp挑战 x 次", "param": "count&", "string": "pvp次数&", - "content": 0, + "content": "开始挑战就算", "condition": "count", "sumType": 2 }, @@ -435,7 +435,7 @@ "info": "pvp胜利 x 次", "param": "count&", "string": "pvp胜利次数&", - "content": 0, + "content": "必须挑战且结算胜利才算", "condition": "count", "sumType": 2 }, @@ -455,7 +455,7 @@ "info": "pvp连胜x次", "param": "count&", "string": "连胜次数&", - "content": 0, + "content": "必须挑战且结算胜利才算;中途失败了会从1开始计数", "condition": "count", "sumType": 1 }, @@ -465,7 +465,7 @@ "info": "pvp拥有x个积分达到x的武将", "param": "herocount&score&", "string": "武将数量&积分&", - "content": 0, + "content": "在挑战结算和赛季末结算的时候会计算武将数", "condition": "herocount", "sumType": 1 }, @@ -475,7 +475,7 @@ "info": "pvp赛季排名达到 x 名", "param": "rank&", "string": "排名&", - "content": 0, + "content": "赛季末结算时计算达成;只算最高的一次", "condition": "rank", "sumType": 1 }, @@ -485,7 +485,7 @@ "info": "军团官职晋升为x", "param": "job&", "string": "军团的官职&", - "content": 0, + "content": "每周军团结算的时候算达成;只算最高的一次", "condition": "job", "sumType": 1 }, @@ -495,7 +495,7 @@ "info": "军团捐献x次", "param": "count&", "string": "捐献次数&", - "content": 0, + "content": "军团捐献,不区分大中小都算1次", "condition": "count", "sumType": 2 }, @@ -505,7 +505,7 @@ "info": "领取x次军团活跃宝箱", "param": "count&", "string": "领取活跃宝箱次数&", - "content": 0, + "content": "领取一个箱子算一个箱子,不区分大中小都算1次", "condition": "count", "sumType": 2 }, @@ -515,7 +515,7 @@ "info": "助力炼器堂研发加速x次", "param": "count&", "string": "加速次数&", - "content": 0, + "content": "只计算协助加速的次数", "condition": "count", "sumType": 2 }, @@ -525,7 +525,7 @@ "info": "练兵场军团成功压制x次", "param": "count&", "string": "压制次数&", - "content": 0, + "content": "军团练兵场挑战结算成功时计数;不需要达成度到100%,只要打了就有", "condition": "count", "sumType": 2 }, @@ -535,7 +535,7 @@ "info": "演武台军团挑战x次boss", "param": "count&", "string": "挑战次数&", - "content": 0, + "content": "军团演武台只要开始挑战就计算,不需要胜利", "condition": "count", "sumType": 2 }, @@ -545,7 +545,7 @@ "info": "挑战练兵场X次", "param": "count&", "string": "挑战次数&", - "content": 0, + "content": "在军团练兵场挑战结算时计算,不需要胜利,但是是结算时候算", "condition": "count", "sumType": 2 }, @@ -555,7 +555,7 @@ "info": "参与 xxx 军团活动 x 次", "param": "aid&count&", "string": "军团活动id&活动次数&", - "content": "aid-1.蛮夷 2.诸侯 3.粮草,aid=0就是任意军团活动类型", + "content": "aid: 0.任意活动 1.蛮夷 2.诸侯 3.粮草;只需要开始参加就可以,蛮夷&诸侯-进入战场,粮草-加入木马", "condition": "count", "sumType": 2 }, @@ -565,7 +565,7 @@ "info": "加入军团", "param": "count&", "string": "加入军团次数&", - "content": 0, + "content": "加入进军团后才能计算,只申请不算", "condition": "count", "sumType": 1 }, @@ -902,11 +902,101 @@ { "id": 110, "name": "装备", - "info": "装备精炼x次", + "info": "装备总共升星x次", "param": "count&", - "string": "次数&", + "string": "升星次数&", "content": 0, "condition": "count", "sumType": 2 + }, + { + "id": 111, + "name": "关卡", + "info": "挑战主线X次", + "param": "warcount&", + "string": "挑战主线次数", + "content": "进入战场点击挑战即算次数", + "condition": "warcount", + "sumType": 2 + }, + { + "id": 112, + "name": "关卡", + "info": "挑战镇念塔X次", + "param": "warcount&", + "string": "挑战镇念塔次数", + "content": "进入战场点击挑战即算次数", + "condition": "warcount", + "sumType": 2 + }, + { + "id": 113, + "name": "关卡", + "info": "挑战遗迹X次", + "param": "warcount&", + "string": "挑战遗迹次数", + "content": "进入战场点击挑战即算次数", + "condition": "warcount", + "sumType": 1 + }, + { + "id": 114, + "name": "关卡", + "info": "挑战每日关卡X次", + "param": "dailytype&warcount&", + "string": "每日类型&挑战次数&", + "content": "dailytype: 0-不限制类型 1~4 dic_zyz_daily表的dailyType;只计算warType为4的关卡;进入战场点击挑战即算次数", + "condition": "warcount", + "sumType": 2 + }, + { + "id": 115, + "name": "关卡", + "info": "招募寻宝胜利x次", + "param": "count&", + "string": "创建队伍次数&", + "content": "创建了队伍,匹配到别人了(只有自己一人不算,机器人算);胜利结算才算次数", + "condition": "count", + "sumType": 2 + }, + { + "id": 116, + "name": "关卡", + "info": "协助寻宝胜利x次", + "param": "count&", + "string": "协助寻宝次数&", + "content": "一定靠匹配加入其他人的队伍,创建队伍不算;胜利结算才算次数", + "condition": "count", + "sumType": 2 + }, + { + "id": 117, + "name": "关卡", + "info": "组队寻宝胜利X次", + "param": "count&", + "string": "寻宝次数&", + "content": "创建队伍和匹配的都算;胜利结算才算次数", + "condition": "count", + "sumType": 2 + }, + { + "id": 118, + "name": "关卡", + "info": "远征挑战X次", + "param": "count&", + "string": "挑战次数&", + "content": "进入战场点击挑战即算次数", + "condition": "count", + "sumType": 2 + }, + { + "id": 119, + "name": "关卡", + "info": "秘境挑战X次", + "param": "count&", + "string": "挑战次数&", + "content": "进入战场点击挑战即算次数", + "condition": "count", + "sumType": 2 } ] \ No newline at end of file