任务:埋点完成
This commit is contained in:
@@ -6,7 +6,7 @@ import { difference } from 'underscore';
|
||||
* @Last Modified by: 梁桐川
|
||||
* @Last Modified time: 2021-03-10 20:15:30
|
||||
*/
|
||||
import { IT_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, COM_TEAM_STATUS, COM_BTL_CONST, CONSUME_TYPE, COM_BTL_QUALITY, MSG_SOURCE, QUALITY_TYPE, ROLE_SELECT } from './../../../consts';
|
||||
import { IT_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, COM_TEAM_STATUS, COM_BTL_CONST, CONSUME_TYPE, COM_BTL_QUALITY, MSG_SOURCE, QUALITY_TYPE, ROLE_SELECT, TASK_TYPE } from './../../../consts';
|
||||
import { getGoodById, getBlueprtComposeByQuality, getBluePrtByQuality, getWarById, getWarIdByBlueprtId } from '../../../pubUtils/gamedata';
|
||||
import Role, { RoleModel } from '../../../db/Role';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
@@ -25,6 +25,7 @@ import { pushComBtlTeamMsg, pushFriendTeamInviteMsg, pushNormalItemMsg, pushTeam
|
||||
import { EXTERIOR } from '../../../pubUtils/dicParam';
|
||||
import { getTodayZeroDate } from '../../../pubUtils/timeUtil';
|
||||
import { FriendParams } from '../../../domain/roleField/friend';
|
||||
import { checkTask } from '../../../services/taskService';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new ComBattleHandler(app);
|
||||
@@ -568,6 +569,8 @@ export class ComBattleHandler {
|
||||
await ComBattleTeamModel.updateRewardSt(teamCode, roleId, true);
|
||||
const goods = await handleFixedReward(roleId, roleName, sid, roleSt.fixReward, 1);
|
||||
let actordata = await roleLevelup(roleId, warInfo.kingExp, session);// 主公升级经验
|
||||
// 任务
|
||||
|
||||
|
||||
return resResult(STATUS.SUCCESS, { battleGoods: goods, ...actordata, teamInfo: {status, teamCode, roleStatus, bossHpArr} });
|
||||
}
|
||||
@@ -780,6 +783,7 @@ export class ComBattleHandler {
|
||||
const { name } = getGoodById(target);
|
||||
pushNormalItemMsg(roleId, roleName, serverId, MSG_SOURCE.ORANGE_BLUEPRT_COMPOSE, target, name);
|
||||
}
|
||||
await checkTask(roleId, sid, TASK_TYPE.COM_BATTLE_BLUEPRT, 1, true, { quality: dicCompose.targetQuality });
|
||||
|
||||
return resResult(STATUS.SUCCESS, { goods, costGold: 0 });
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts';
|
||||
import { STATUS, TASK_TYPE } from '../../../consts';
|
||||
import { DonationModel } from '../../../db/Donation';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { getArmyDonateBaseByLv, getArmyDonateBoxBaseById } from '../../../pubUtils/data';
|
||||
@@ -12,6 +12,7 @@ import { getDonation } from '../../../services/donateService';
|
||||
import { getUserGuildWithRefActive } from '../../../services/guildService';
|
||||
import { ARMY } from '../../../pubUtils/dicParam';
|
||||
import { addActive } from '../../../services/guildService'
|
||||
import { checkTask } from '../../../services/taskService';
|
||||
export default function(app: Application) {
|
||||
return new DonationHandler(app);
|
||||
}
|
||||
@@ -69,6 +70,8 @@ export class DonationHandler {
|
||||
const { fund } = await GuildModel.updateInfo(code, {}, { fund: rewardFund }, 'fund');
|
||||
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER, code, { fund });
|
||||
await addActive(roleId, serverId, GUILD_POINT_WAYS.DONATE, id);
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_DONATE, 1, true, {});
|
||||
|
||||
return resResult(STATUS.SUCCESS, { donateFund, reports, donateCnt, goods });
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import { getAp, setAp } from '../../../services/actionPointService';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { checkBattleHeroes, roleLevelup } from '../../../services/normalBattleService';
|
||||
import { checkTaskWithWar } from '../../../services/taskService';
|
||||
import { checkTaskWithWar, checkTask } from '../../../services/taskService';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new ExpeditionBattleHandler(app);
|
||||
@@ -329,6 +329,9 @@ export class ExpeditionBattleHandler {
|
||||
}
|
||||
let pointRewards = await getPointRewardStatus(roleId);
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.BATTLE_EXPEDITION_BOX, 1, true, { point });
|
||||
|
||||
let goods = await handleFixedReward(roleId, roleName, sid, curDicExpeditionPoint.reward, 1);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { resResult, genCode, getRandomByLen } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts';
|
||||
import { STATUS, TASK_TYPE } from '../../../consts';
|
||||
import { BossInstanceModel } from '../../../db/BossInstance';
|
||||
import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { nowSeconds, getTodayZeroPoint } from '../../../pubUtils/timeUtil';
|
||||
@@ -15,6 +15,7 @@ import { GuildModel } from '../../../db/Guild';
|
||||
import { getBossByLv } from '../../../pubUtils/data';
|
||||
import { lockData } from '../../../services/redLockService';
|
||||
import { pushGuildBossSucMsg } from '../../../services/chatService';
|
||||
import { checkTask } from '../../../services/taskService';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GuildHandler(app);
|
||||
@@ -166,6 +167,7 @@ export class GuildHandler {
|
||||
async battleBossEnd(msg: { battleCode: string }, session: BackendSession) {
|
||||
const { battleCode } = msg;
|
||||
const roleId = session.get('roleId');
|
||||
const sid = session.get('sid');
|
||||
const serverId: number = parseInt(session.get('serverId'));
|
||||
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
|
||||
if (!userGuild)
|
||||
@@ -181,6 +183,8 @@ export class GuildHandler {
|
||||
let bossInstance = await BossInstanceModel.findBossInstance(code);
|
||||
let result = await getBossInstanceWhenEnd(bossInstance, roleId, battleRecord.record.recordNum);
|
||||
await addActive(roleId, serverId, GUILD_POINT_WAYS.BOSS_WAR);//获得活跃值
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_BOSS, 1, true, {});
|
||||
return resResult(STATUS.SUCCESS, result);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Application, BackendSession, pinus, ChannelService } from 'pinus';
|
||||
import { resResult, getRandEelm, getRefTime, shouldRefresh, sortArrRandom } from '../../../pubUtils/util';
|
||||
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE, GUILD_REC_TYPE, GUILD_STRUCTURE_NAME, MAIL_TYPE, REDIS_KEY, GUILD_SELECT, USER_GUILD_SELECT } from '../../../consts';
|
||||
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE, GUILD_REC_TYPE, GUILD_STRUCTURE_NAME, MAIL_TYPE, REDIS_KEY, GUILD_SELECT, USER_GUILD_SELECT, TASK_TYPE } from '../../../consts';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { checkAuth, joinGuild, getGuildWithRefActive, getUserGuildWithRefActive, addActive, settleGuildWeekly } from '../../../services/guildService';
|
||||
import { GuildModel, GuildType } from '../../../db/Guild';
|
||||
@@ -23,6 +23,7 @@ import { removeBossRank } from '../../../services/guildBossService';
|
||||
import { removeTrainRank } from '../../../services/guildTrainService';
|
||||
import { pushGuildNoticeUpdateMsg, pushGuildUpStructureMsg, addRoleToGuildChannel, getGuildChannelSid } from '../../../services/chatService';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
import { checkTask } from '../../../services/taskService';
|
||||
export default function (app: Application) {
|
||||
return new GuildHandler(app);
|
||||
}
|
||||
@@ -913,6 +914,9 @@ export class GuildHandler {
|
||||
let goods = await addItems(roleId, roleName, sid, activeDayReward.reward);
|
||||
userGuild = await UserGuildModel.updateInfo(roleId, { receivedActive: userGuild.receivedActive }, {}, 'receivedActive');
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_RECEIVE_BOX, 1, true, {});
|
||||
|
||||
return resResult(STATUS.SUCCESS, { goods, receivedActive: userGuild.receivedActive });
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Application, BackendSession, pinus } from 'pinus';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { STATUS, GUILD_OPERATE } from '../../../consts';
|
||||
import { STATUS, GUILD_OPERATE, TASK_TYPE } from '../../../consts';
|
||||
import { GuildRefineModel } from '../../../db/GuildRefine';
|
||||
import { getArmyDevelopConsumeById, getGoodById } from '../../../pubUtils/data';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
@@ -14,6 +14,7 @@ import { ARMY } from '../../../pubUtils/dicParam';
|
||||
import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/itemConst';
|
||||
import { openGuildRefine } from '../../../services/guildRefineService';
|
||||
import { DATA_NAME } from '../../../consts/dataName';
|
||||
import { checkTask } from '../../../services/taskService';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GuildRefineHandler(app);
|
||||
@@ -74,6 +75,9 @@ export class GuildRefineHandler {
|
||||
if(!result)
|
||||
return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
let goods = await addItems(roleId, roleName, sid, [{id: pid, count: 1}]);
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_REFINE, 1, true, { quality: pieceInfo.lvLimited });
|
||||
return resResult(STATUS.SUCCESS, { goods });
|
||||
}
|
||||
/**
|
||||
@@ -171,6 +175,10 @@ export class GuildRefineHandler {
|
||||
scienceTree.endTime = scienceTree.endTime - ARMY.ARMY_DEVELOPMENT_SPEED * 60;
|
||||
let { scienceTrees } = await GuildRefineModel.updateRefine(code, { scienceTrees: guildRefine.scienceTrees })
|
||||
res.releaseCallback();
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_ASSIST_REFINE, 1, true, {});
|
||||
|
||||
return resResult(STATUS.SUCCESS, { scienceTrees });
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Application, BackendSession, pinus } from 'pinus';
|
||||
import { resResult, genCode, getRandomByLen } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts';
|
||||
import { STATUS, TASK_TYPE } from '../../../consts';
|
||||
import { GuildTrainModel } from '../../../db/GuildTrain';
|
||||
import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { nowSeconds, getHourPoint, getCurHourPoint } from '../../../pubUtils/timeUtil';
|
||||
@@ -18,6 +18,7 @@ import { addActive } from '../../../services/guildService';
|
||||
import { GuildTrainReportModel } from '../../../db/GuildTrainReport';
|
||||
import { DATA_NAME } from '../../../consts/dataName';
|
||||
import { pushGuildTrainSucMsg } from '../../../services/chatService';
|
||||
import { checkTask } from '../../../services/taskService';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GuildTrainHandler(app);
|
||||
@@ -260,6 +261,13 @@ export class GuildTrainHandler {
|
||||
let result:any = getGuildTrainInfo(guildTrain, roleId, trainCount, trainRewards);//战斗后更新练兵场信息
|
||||
result.battleGoods = goods;
|
||||
await addActive(roleId, serverId, GUILD_POINT_WAYS.TRAIN);
|
||||
|
||||
// 任务
|
||||
if(isSuccess) {
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_TRAIN_SUCESS, 1, true, {});
|
||||
}
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_TRAIN, 1, true, {});
|
||||
|
||||
return resResult(STATUS.SUCCESS, result);
|
||||
}
|
||||
/**
|
||||
|
||||
@@ -9,7 +9,7 @@ import { resResult, genCode } from '../../../pubUtils/util';
|
||||
import { PvpDefenseModel, OppPlayers } from '../../../db/PvpDefense';
|
||||
import { pvpEndParamInter } from '../../../pubUtils/interface';
|
||||
import { PlayerDetail, PlayerDetailHero } from '../../../domain/battleField/guild';
|
||||
import { PVP_HERO_POS, PVP_HERO_ORDER, REDIS_KEY, LINEUP_NUM } from '../../../consts';
|
||||
import { PVP_HERO_POS, PVP_HERO_ORDER, REDIS_KEY, LINEUP_NUM, TASK_TYPE } from '../../../consts';
|
||||
import { PVP } from '../../../pubUtils/dicParam';
|
||||
import { addItems } from '../../../services/rewardService';
|
||||
import { HeroModel } from '../../../db/Hero';
|
||||
@@ -23,6 +23,7 @@ import { PvpSeasonResultModel } from '../../../db/PvpSeasonResult';
|
||||
import { PvpHistoryOppModel, PvpHistoryOppType } from '../../../db/PvpHistoryOpp';
|
||||
import { SystemConfigModel } from '../../../db/SystemConfig';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
import { checkTask, checkTaskInPvpEnd } from '../../../services/taskService';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new PvpHandler(app);
|
||||
@@ -35,6 +36,7 @@ export class PvpHandler {
|
||||
async addRoleScore(msg: {heroScores: Array<{hid: number, score:number}>}, session: BackendSession) {
|
||||
let { heroScores: addHeroScores } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
let sid = session.get('sid');
|
||||
let {heroScores, hisScore} = await PvpDefenseModel.findByRoleId(roleId);
|
||||
let score = 0;
|
||||
for (let {hid, score: heroScore} of addHeroScores) {
|
||||
@@ -63,6 +65,10 @@ export class PvpHandler {
|
||||
// 加入排行榜
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP_HERO_SCORE, 0, false, { heroScores });
|
||||
|
||||
return resResult(STATUS.SUCCESS, {score, hisScore, heroScores});
|
||||
}
|
||||
|
||||
@@ -221,6 +227,7 @@ export class PvpHandler {
|
||||
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
let sid = session.get('sid');
|
||||
|
||||
const { battleCode, isSuccess, myHeroes, oppHeroes } = msg;
|
||||
|
||||
@@ -287,6 +294,8 @@ export class PvpHandler {
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
|
||||
let myRank = await r.getMyRank({roleId});
|
||||
|
||||
await checkTaskInPvpEnd(roleId, sid, isSuccess, heroScores);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
battleCode, isSuccess,
|
||||
@@ -469,6 +478,8 @@ export class PvpHandler {
|
||||
let { challengeCnt, challengeRefTime } = refresh(lastChallengeCnt, lastChallengeRefTime, seasonEndTime);
|
||||
await PvpDefenseModel.updateInfo(roleId, {receivedBox, challengeCnt, challengeRefTime});
|
||||
let result = await addItems(roleId, roleName, sid, pvpBox.reward );
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP_RECEIVE_BOX, 1, true, {});
|
||||
return resResult(STATUS.SUCCESS,{goods: result, receivedBox, challengeCnt, challengeRefTime});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Application, ChannelService, BackendSession, pinus } from "pinus";
|
||||
import { GUILD_ACTIVITY_TYPE, STATUS, REDIS_KEY, GUILD_POINT_WAYS, CITY_STATUS } from "../../../consts";
|
||||
import { GUILD_ACTIVITY_TYPE, STATUS, REDIS_KEY, GUILD_POINT_WAYS, CITY_STATUS, TASK_TYPE } from "../../../consts";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { getGuildActivityStatus, getCityActivityObj, getCityStatus as pubGetCityStatus, getCities, getCityActivityRank, sendSingleCityActEndMsg, getMedianCe } from "../../../services/guildActivityService";
|
||||
import { GuildActivityCityModel } from "../../../db/GuildActivityCity";
|
||||
@@ -14,6 +14,7 @@ import { GUILDACTIVITY } from "../../../pubUtils/dicParam";
|
||||
import { handleCost } from "../../../services/rewardService";
|
||||
import { addActive } from "../../../services/guildService";
|
||||
import { Rank } from "../../../services/rankService";
|
||||
import { checkTask } from "../../../services/taskService";
|
||||
|
||||
export default function (app: Application) {
|
||||
return new CityActivityHandler(app);
|
||||
@@ -261,7 +262,7 @@ export class CityActivityHandler {
|
||||
// 结束挑战
|
||||
async battleEnd(msg: { cityId: number, code: string, isSuccess: boolean }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
let sid = session.get('sid');
|
||||
let guildCode = session.get('guildCode');
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
@@ -288,6 +289,9 @@ export class CityActivityHandler {
|
||||
let guildScore = await r.getMyScore({guildCode});
|
||||
let gateHp = obj.getGateHpAndInc(serverId, cityId, dicCity.hp);
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_ACTIVITY, 1, true, { aid: this.aid });
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
isSuccess,
|
||||
code,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Application, BackendSession, ChannelService, pinus } from "pinus";
|
||||
import { getMedianCe, getGuildActivityStatus, getRecordScore, getGateActivityObj, sendSingleGateActEndMsg, participants, getGateActivityRank, getCityActivityObj } from "../../../services/guildActivityService";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { STATUS, GUILD_ACTIVITY_TYPE, GUILD_POINT_WAYS, ENEMIES_TYPE, GET_POINT_WAYS } from "../../../consts";
|
||||
import { STATUS, GUILD_ACTIVITY_TYPE, GUILD_POINT_WAYS, ENEMIES_TYPE, GET_POINT_WAYS, TASK_TYPE } from "../../../consts";
|
||||
import { UserGuildActivityRecModel } from "../../../db/UserGuildActivityRec";
|
||||
import { GUILDACTIVITY } from "../../../pubUtils/dicParam";
|
||||
import { GuildActivityRecordModel } from "../../../db/GuildActivityRec";
|
||||
@@ -14,6 +14,7 @@ import { UserGuildModel } from "../../../db/UserGuild";
|
||||
import { GuildActivityCityModel } from "../../../db/GuildActivityCity";
|
||||
import { Rank } from "../../../services/rankService";
|
||||
import { getNextHourPoint } from "../../../pubUtils/timeUtil";
|
||||
import { checkTask } from "../../../services/taskService";
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GateActivityHandler(app);
|
||||
@@ -201,7 +202,7 @@ export class GateActivityHandler {
|
||||
// 结束挑战
|
||||
async battleEnd(msg: { code: string, isSuccess: boolean }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
let sid = session.get('sid');
|
||||
let guildCode = session.get('guildCode');
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
@@ -252,6 +253,8 @@ export class GateActivityHandler {
|
||||
isSuccess
|
||||
}
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_ACTIVITY, 1, true, { aid: this.aid });
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
code,
|
||||
...statusResult,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Application, ChannelService, BackendSession } from "pinus";
|
||||
import { GUILD_ACTIVITY_TYPE, STATUS, GUILD_ACTIVITY_STATUS, GUILD_POINT_WAYS, REDIS_KEY } from "../../../consts";
|
||||
import { GUILD_ACTIVITY_TYPE, STATUS, GUILD_ACTIVITY_STATUS, GUILD_POINT_WAYS, REDIS_KEY, TASK_TYPE } from "../../../consts";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { getGuildActivityStatus, getRaceActivityObj, getRaceActivityRank, getWoodenHorseList, calWoodenHorseAndSend, raceActivitySettleReward } from "../../../services/guildActivityService";
|
||||
import { UserGuildModel } from "../../../db/UserGuild";
|
||||
@@ -7,6 +7,7 @@ import { GuildActivityRecordModel } from "../../../db/GuildActivityRec";
|
||||
import { UserGuildActivityRecModel } from "../../../db/UserGuildActivityRec";
|
||||
import { addActive } from "../../../services/guildService";
|
||||
import { Rank } from "../../../services/rankService";
|
||||
import { checkTask } from "../../../services/taskService";
|
||||
|
||||
export default function (app: Application) {
|
||||
return new RaceActivityHandler(app);
|
||||
@@ -153,7 +154,7 @@ export class RaceActivityHandler {
|
||||
// 结束挑战
|
||||
async battleEnd(msg: { code: string, isSuccess: boolean }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
let sid = session.get('sid');
|
||||
let guildCode = session.get('guildCode');
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
@@ -173,6 +174,8 @@ export class RaceActivityHandler {
|
||||
let r = new Rank(REDIS_KEY.RACE_ACTIVITY, { serverId });
|
||||
let myGuildRank = await r.getMyRank({guildCode});
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.GUILD_ACTIVITY, 1, true, { aid: this.aid });
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
timestamp: Date.now(),
|
||||
woodenHorse: guildActivityRec.woodenHorse,
|
||||
|
||||
@@ -102,7 +102,7 @@ export class RoleHandler {
|
||||
role = await calAllHeroCe(HERO_SYSTEM_TYPE.TITLE, sid, roleId, update);
|
||||
|
||||
// 任务
|
||||
await checkTask(roleId, sid, TASK_TYPE.ROLE_TITLE, role.title, false, {});
|
||||
await checkTask(roleId, sid, TASK_TYPE.ROLE_TITLE, 1, false, { title });
|
||||
|
||||
return resResult(STATUS.SUCCESS, { roleId, title: role.title });
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ import { getRoleIds } from '../pubUtils/friendUtil';
|
||||
import { getTeamSearchByQuality, rmRoleFromQueue } from './redisService';
|
||||
import { addUserToChannel } from './roleService';
|
||||
import { ChannelUser } from '../domain/ChannelUser';
|
||||
|
||||
import { checkTaskInComBattleEnd } from './taskService';
|
||||
|
||||
/**
|
||||
* 在给定的品质列表中随机返回一定数量的藏宝图Id
|
||||
@@ -233,7 +233,7 @@ function updateRobotKilled(bossHp: number, roleSt: RoleStatus) {
|
||||
}
|
||||
|
||||
export async function handleComBtlProgress(teamStatus, robotHurtTimer: Map<string, NodeJS.Timer>, teamMap: Map<string, any>, channel: Channel) {
|
||||
const { teamCode } = teamStatus;
|
||||
const { teamCode, roleIds, capId, quality } = teamStatus;
|
||||
// 判断战斗是否结束
|
||||
let battleSt = checkComBattleResult(teamStatus);
|
||||
teamStatus.status = battleSt;
|
||||
@@ -258,6 +258,10 @@ export async function handleComBtlProgress(teamStatus, robotHurtTimer: Map<strin
|
||||
}
|
||||
clearRobotHurtTimer(teamStatus, robotHurtTimer);
|
||||
channel.pushMessage('onTeamComplete', resResult(STATUS.SUCCESS, {teamCode, result}));
|
||||
|
||||
// 任务
|
||||
await checkTaskInComBattleEnd(roleIds, capId, quality);
|
||||
|
||||
teamMap.delete(teamCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { gameData, getGuildActiveWeekReward, getGuildActiveByIdAndType, getGoodById } from "../pubUtils/data";
|
||||
import { GuildModel } from "../db/Guild";
|
||||
import { resResult, shouldRefresh } from "../pubUtils/util";
|
||||
import { STATUS, MAIL_TYPE, GUILD_AUTH, GUILD_JOB, REDIS_KEY, CHAT_SERVER } from "../consts";
|
||||
import { STATUS, MAIL_TYPE, GUILD_AUTH, GUILD_JOB, REDIS_KEY, CHAT_SERVER, TASK_TYPE } from "../consts";
|
||||
import { RoleModel } from "../db/Role";
|
||||
import { UserGuildModel, UserGuildType } from "../db/UserGuild";
|
||||
import { UserGuildApplyModel } from "../db/UserGuildApply";
|
||||
@@ -20,6 +20,7 @@ import { getMailContent } from '../services/mailService';
|
||||
import { DATA_NAME } from '../consts/dataName';
|
||||
import { addRoleToGuildChannel } from "./chatService";
|
||||
import { Rank } from "./rankService";
|
||||
import { checkTask } from "./taskService";
|
||||
|
||||
/**
|
||||
* @description 检查该玩家是否有权限做操作
|
||||
@@ -277,6 +278,8 @@ export async function settleGuildWeekly() {
|
||||
}
|
||||
});
|
||||
await sendMail(MAIL_TYPE.GUILD_ACTIVE_REWARD, roleId, '系统', [], reward);
|
||||
// 任务
|
||||
await checkTask(roleId, null, TASK_TYPE.GUILD_JOB, 1, false, { job });
|
||||
}
|
||||
|
||||
await GuildModel.updateInfo(code, { activeWeekly: 0 }, {});
|
||||
|
||||
@@ -7,7 +7,7 @@ import { TaskParam } from '../domain/roleField/task';
|
||||
import { HeroType } from '../db/Hero';
|
||||
import { EquipType } from '../db/Equip';
|
||||
import { getRoleOnlineInfo } from './redisService';
|
||||
import { TASK } from '../pubUtils/dicParam';
|
||||
import { HeroScores } from '../db/PvpHistoryOpp';
|
||||
|
||||
export async function checkTaskWithRoles(roleId: string, sid: string, taskType: number, roles: RoleType[]) {
|
||||
for(let role of roles) {
|
||||
@@ -69,5 +69,30 @@ export async function checkTaskInBattleEnd(roleId: string, sid: string, battleId
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_DUNGEON_WAR, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_TOWER, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_VESTIGE, battleId, heroes, 1, star);
|
||||
await checkTaskWithWar(roleId, sid, TASK_TYPE.BATTLE_EXPEDITION, battleId, heroes, 1, star);
|
||||
|
||||
}
|
||||
|
||||
export async function checkTaskInComBattleEnd(roleIds: string[], capId: string, quality: number) {
|
||||
for(let roleId of roleIds) {
|
||||
if(roleId == capId && roleIds.length > 1) { // 招募队友
|
||||
await checkTask(roleId, null, TASK_TYPE.COM_BATTLE_CREATE_TEAM, 1, true, {});
|
||||
} else if (roleId !== capId) { // 协助寻宝
|
||||
await checkTask(roleId, null, TASK_TYPE.COM_BATTLE_ASSIST_TEAM, 1, true, {});
|
||||
}
|
||||
await checkTask(roleId, null, TASK_TYPE.COM_BATTLE, 1, true, {});
|
||||
await checkTask(roleId, null, TASK_TYPE.COM_BATTLE_QUALITY, 1, true, { quality });
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkTaskInPvpEnd(roleId: string, sid: string, isSuccess: boolean, heroScores: HeroScores[]) {
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP, 1, true, {});
|
||||
if(isSuccess) {
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP_WIN, 1, true, {});
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP_WIN_SERIES, 1, true, {});
|
||||
} else {
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP_WIN_SERIES, 0, false, {});
|
||||
}
|
||||
|
||||
await checkTask(roleId, sid, TASK_TYPE.PVP, 0, false, { heroScores });
|
||||
}
|
||||
@@ -8,7 +8,7 @@ import { getPvpGkWarIds, getPvpRankRewards, getPvpHeroRewards, getResultMaxRank,
|
||||
import { deepCopy, getRandomArr, resResult } from '../pubUtils/util';
|
||||
import { getLvByScore } from './pvpService';
|
||||
import { getAllOnlineRoles, getAllServers, initSingleRank, delGuildActivityRank } from './redisService';
|
||||
import { MAIL_TYPE, REDIS_KEY, ADULT_AGE, GUEST_MAX_TIME, ADDICTION_PREVENTION_CODE, GUILD_ACTIVITY_STATUS, GUILD_ACTIVITY_TYPE } from '../consts';
|
||||
import { MAIL_TYPE, REDIS_KEY, ADULT_AGE, GUEST_MAX_TIME, ADDICTION_PREVENTION_CODE, GUILD_ACTIVITY_STATUS, GUILD_ACTIVITY_TYPE, TASK_TYPE } from '../consts';
|
||||
import { RoleModel } from '../db/Role';
|
||||
import { MailModel, MailType } from '../db/Mail';
|
||||
import { pinus } from 'pinus';
|
||||
@@ -25,6 +25,7 @@ import { DicGuildActivity } from '../pubUtils/dictionary/DicGuildActivity';
|
||||
import { GuildModel } from '../db/Guild';
|
||||
import { dispatch } from '../util/dispatcher';
|
||||
import { Rank } from './rankService';
|
||||
import { checkTask } from './taskService';
|
||||
|
||||
const PER_SECOND = 1 * 1000;
|
||||
const PER_DAY = 24 * 60 * 60;
|
||||
@@ -184,6 +185,9 @@ export async function checkResult(pvpDefense: PvpDefenseType, seasonNum: number,
|
||||
oldSeasonData:{refOppCnt: pvpDefense.refOppCnt, rankLv, score: pvpDefense.score, pLv: oldPLv, heroScores: oldHeroScores,
|
||||
seasonNum: pvpDefense.seasonNum, challengeCnt, challengeRefTime, seasonEndTime: oldSeasonEndTime
|
||||
}, heroGoods, rankGoods, show: true });//结算修改玩家pvp信息
|
||||
// 更新任务
|
||||
await checkTask(pvpDefense.roleId, null, TASK_TYPE.PVP_HERO_SCORE, 0, false, { heroScores: pvpDefense.heroScores });
|
||||
await checkTask(pvpDefense.roleId, null, TASK_TYPE.PVP_RANK, 1, false, { rankLv });
|
||||
return { rankLv, score, pLv, heroScores: pvpDefense.heroScores, seasonNum, challengeCnt:PVP.PVP_CHALLENGE_COUNTS, challengeRefTime:0, oldSeasonEndTime, heroGoods:heroGoods.map(({id, count})=>{
|
||||
return {id, count};
|
||||
}), rankGoods};
|
||||
|
||||
@@ -623,5 +623,27 @@ export enum TASK_TYPE {
|
||||
BATTLE_TOWER_LV = 46, // 镇念塔层数
|
||||
BATTLE_TOWER = 47, // 镇念塔
|
||||
BATTLE_VESTIGE = 48, // 遗迹
|
||||
|
||||
BATTLE_EXPEDITION = 49, // 远征
|
||||
BATTLE_EXPEDITION_BOX = 50, // 领取远征宝箱
|
||||
COM_BATTLE_CREATE_TEAM = 51, // 寻宝招募队友
|
||||
COM_BATTLE_BLUEPRT = 52, // 合成藏宝图
|
||||
COM_BATTLE_ASSIST_TEAM = 53, // 队友协助寻宝
|
||||
COM_BATTLE = 54, // 寻宝
|
||||
COM_BATTLE_QUALITY = 55, // 按品质寻宝
|
||||
COM_BATTLE_DROP = 56, // 寻宝掉落碎片
|
||||
PVP = 57, // PVP挑战
|
||||
PVP_WIN = 58, // PVP胜利
|
||||
PVP_RECEIVE_BOX = 59, // 领取宝箱
|
||||
PVP_WIN_SERIES = 60, // PVP连胜
|
||||
PVP_HERO_SCORE = 61, // PVP武将积分
|
||||
PVP_RANK = 62, // PVP达到第几名
|
||||
GUILD_JOB = 63, // 军团官职
|
||||
GUILD_DONATE = 64, // 军团捐献
|
||||
GUILD_RECEIVE_BOX = 65, // 领取活跃宝箱
|
||||
GUILD_REFINE = 66, // 军团炼器
|
||||
GUILD_ASSIST_REFINE = 67, // 军团助力加速
|
||||
GUILD_TRAIN_SUCESS = 68, // 军团练兵场成功压制
|
||||
GUILD_BOSS = 69, // 军团演武台挑战
|
||||
GUILD_TRAIN = 70, // 挑战练兵场
|
||||
GUILD_ACTIVITY = 71, // 军团活动
|
||||
}
|
||||
@@ -44,6 +44,20 @@ export default class UserTaskRec extends BaseModel {
|
||||
let rec: UserTaskRecType = await UserTaskRecModel.findOneAndUpdate({ roleId, type, group }, { $setOnInsert: { code: genCode(8), taskType, received: false }, $inc: { count } }, { new: true, upsert: true }).lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
public static async checkHistoryAndSetTaskRec(roleId: string, type: number, taskType: number, group: number, count: number) {
|
||||
let rec: UserTaskRecType = await UserTaskRecModel.findOne({ roleId, type, group }).lean();
|
||||
if(rec) {
|
||||
if(rec.count < count) {
|
||||
rec = await UserTaskRecModel.setTaskRec(roleId, type, taskType, group, count);
|
||||
}
|
||||
} else {
|
||||
rec = await UserTaskRecModel.setTaskRec(roleId, type, taskType, group, count);
|
||||
}
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
export const UserTaskRecModel = getModelForClass(UserTaskRec);
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { HeroScores } from "../../db/PvpHistoryOpp";
|
||||
|
||||
export class TaskParam {
|
||||
star?: number;
|
||||
quality?: number;
|
||||
@@ -13,4 +15,11 @@ export class TaskParam {
|
||||
heroes?: number[];
|
||||
eventType?: number;
|
||||
dailyType?: number;
|
||||
point?: number;
|
||||
gid?: number;
|
||||
heroScores?: HeroScores[];
|
||||
rankLv?: number;
|
||||
title?: number;
|
||||
job?: number;
|
||||
aid?: number;
|
||||
}
|
||||
@@ -1,12 +1,13 @@
|
||||
import { gameData } from './data';
|
||||
import { DicTask } from './dictionary/DicTask';
|
||||
import { TASK_TYPE, ABI_STAGE, WAR_TYPE } from '../consts';
|
||||
import { TASK_TYPE, ABI_STAGE, WAR_TYPE, GUILD_JOB } from '../consts';
|
||||
import { UserTaskRecModel, UserTaskRecType } from '../db/UserTaskRec'
|
||||
import { RoleType } from '../db/Role';
|
||||
import { TaskParam } from '../domain/roleField/task';
|
||||
import { getTodayZeroPoint } from './timeUtil';
|
||||
import { HeroType } from '../db/Hero';
|
||||
import { EquipType, EquipModel } from '../db/Equip';
|
||||
import { RewardInter } from './interface';
|
||||
|
||||
export async function checkTaskWithRoles(taskType: number, roles: RoleType[]) {
|
||||
let pushMessage = new Array<{type: number, id: number, count: number, received: boolean}>();
|
||||
@@ -275,11 +276,31 @@ export async function checkTaskWithWar(roleId: string, taskType: number, warId:
|
||||
pushMessage = await checkTask(roleId, taskType, count, true, {});
|
||||
}
|
||||
}
|
||||
else if (taskType == TASK_TYPE.BATTLE_VESTIGE) {
|
||||
else if (taskType == TASK_TYPE.BATTLE_VESTIGE)
|
||||
{
|
||||
if(dicWar.warType == WAR_TYPE.VESTIGE) {
|
||||
pushMessage = await checkTask(roleId, taskType, count, true, {});
|
||||
}
|
||||
}
|
||||
else if (taskType == TASK_TYPE.BATTLE_EXPEDITION)
|
||||
{
|
||||
if(dicWar.warType == WAR_TYPE.EXPEDITION) {
|
||||
pushMessage = await checkTask(roleId, taskType, count, true, {});
|
||||
}
|
||||
}
|
||||
return pushMessage
|
||||
}
|
||||
|
||||
|
||||
export async function checkTaskWithGoods(roleId: string, taskType: number, goods: RewardInter[]) {
|
||||
let pushMessage = new Array<{type: number, id: number, count: number, received: boolean}>();
|
||||
if(taskType == TASK_TYPE.COM_BATTLE_DROP)
|
||||
{
|
||||
for(let { id, count } of goods) {
|
||||
let push = await checkTask(roleId, taskType, count, true, { gid: id });
|
||||
pushMessage.concat(push);
|
||||
}
|
||||
}
|
||||
return pushMessage
|
||||
}
|
||||
|
||||
@@ -311,37 +332,12 @@ export async function checkTask(roleId: string, taskType: number, count: number,
|
||||
// 检查各项任务是否达成,达成了就保存到数据库
|
||||
export async function checkTaskRec(roleId: string, group: number, dicTask: DicTask, count: number, isInc: boolean, param: TaskParam ) {
|
||||
let { type, taskParam, taskType } = dicTask;
|
||||
let isMatch = false; // 条件是否满足
|
||||
let isMatch = true; // 条件是否满足
|
||||
let checkHistory = false; // 是否检查历史
|
||||
switch(taskType) {
|
||||
case TASK_TYPE.LOGIN_SUM:
|
||||
case TASK_TYPE.LOGIN_SERIES:
|
||||
case TASK_TYPE.ROLE_LV:
|
||||
case TASK_TYPE.GASHA:
|
||||
case TASK_TYPE.HERO_NUM:
|
||||
case TASK_TYPE.HERO_QUALITY_UP:
|
||||
case TASK_TYPE.HERO_WAKE_UP:
|
||||
case TASK_TYPE.HERO_TRAIN_SUM:
|
||||
case TASK_TYPE.HERO_STAGE_UP:
|
||||
case TASK_TYPE.ROLE_SCHOOL_UNLOCK:
|
||||
case TASK_TYPE.ROLE_SCHOOL_PUT_HERO:
|
||||
case TASK_TYPE.ROLE_TITLE:
|
||||
case TASK_TYPE.ROLE_TERAPH_STRENGTHEN:
|
||||
case TASK_TYPE.ROLE_SCROLL_ACTIVE:
|
||||
case TASK_TYPE.EQUIP_SUM:
|
||||
case TASK_TYPE.EQUIP_JEWEL:
|
||||
case TASK_TYPE.EQUIP_COMPOSE_SUIT:
|
||||
case TASK_TYPE.EQUIP_SUIT:
|
||||
case TASK_TYPE.EQUIP_RESTRENGTHEN:
|
||||
case TASK_TYPE.EQUIP_REFINE:
|
||||
case TASK_TYPE.EQUIP_JEWEL_SUM:
|
||||
case TASK_TYPE.FRIEND_NUM:
|
||||
case TASK_TYPE.FRIEND_SEND_HEART:
|
||||
case TASK_TYPE.BATTLE_MAIN_SWEEP:
|
||||
case TASK_TYPE.BATTLE_DUNGEON:
|
||||
case TASK_TYPE.BATTLE_TOWER_LV:
|
||||
case TASK_TYPE.BATTLE_TOWER:
|
||||
case TASK_TYPE.BATTLE_VESTIGE:
|
||||
isMatch = true;
|
||||
isMatch = taskParam[0] == param.title;
|
||||
checkHistory = true;
|
||||
break;
|
||||
case TASK_TYPE.HERO_STAR_UP:
|
||||
isMatch = taskParam[1] == param.star;
|
||||
@@ -366,6 +362,7 @@ export async function checkTaskRec(roleId: string, group: number, dicTask: DicTa
|
||||
isMatch = taskParam[1] == param.connectLv;
|
||||
break;
|
||||
case TASK_TYPE.EQUIP_BY_HERO:
|
||||
isMatch = false;
|
||||
if(param.isPutOn && param.count == taskParam[1]) { // 装上之后达到 +1
|
||||
isMatch = true;
|
||||
} else if (!param.isPutOn && param.count < taskParam[1]) { // 脱下后不能达到 -1
|
||||
@@ -382,46 +379,80 @@ export async function checkTaskRec(roleId: string, group: number, dicTask: DicTa
|
||||
isMatch = taskParam[0] == 0 || param.chatType == taskParam[0];
|
||||
break;
|
||||
case TASK_TYPE.BATTLE_WITH_HERO:
|
||||
isMatch = checkWarId(taskParam, 2, param.warId) && checkHero(taskParam, 0, param.heroes);
|
||||
isMatch = checkIdList(taskParam, 2, param.warId) && checkHero(taskParam, 0, param.heroes);
|
||||
break;
|
||||
case TASK_TYPE.BATTLE_MAIN:
|
||||
case TASK_TYPE.BATTLE_DUNGEON_WAR:
|
||||
isMatch = checkWarId(taskParam, 0, param.warId);
|
||||
isMatch = checkIdList(taskParam, 0, param.warId);
|
||||
break;
|
||||
case TASK_TYPE.BATTLE_EVENT:
|
||||
isMatch = taskParam[0] == 0 || param.eventType == taskParam[0];
|
||||
break;
|
||||
case TASK_TYPE.BATTLE_DAILY_STAR:
|
||||
isMatch = (taskParam[0] == 0 || param.star == taskParam[0]) && checkWarId(taskParam, 2, param.warId);
|
||||
isMatch = (taskParam[0] == 0 || param.star == taskParam[0]) && checkIdList(taskParam, 2, param.warId);
|
||||
break;
|
||||
case TASK_TYPE.BATTLE_DAILY:
|
||||
isMatch = taskParam[0] == 0 || param.dailyType == taskParam[0];
|
||||
break;
|
||||
case TASK_TYPE.BATTLE_EXPEDITION_BOX:
|
||||
isMatch = taskParam[1] == 0 || param.point == taskParam[1];
|
||||
break;
|
||||
case TASK_TYPE.COM_BATTLE_BLUEPRT:
|
||||
case TASK_TYPE.COM_BATTLE_QUALITY:
|
||||
isMatch = taskParam[0] == 0 || param.quality == taskParam[0];
|
||||
break;
|
||||
case TASK_TYPE.COM_BATTLE_DROP:
|
||||
isMatch = checkIdList(taskParam, 1, param.gid);
|
||||
break;
|
||||
case TASK_TYPE.PVP_HERO_SCORE:
|
||||
for(let { score } of param.heroScores) {
|
||||
if(score >= taskParam[0]) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if(count <= 0) isMatch = false;
|
||||
break;
|
||||
case TASK_TYPE.PVP_RANK:
|
||||
isMatch = taskParam[0] <= param.rankLv;
|
||||
checkHistory = true;
|
||||
break;
|
||||
case TASK_TYPE.GUILD_JOB:
|
||||
isMatch = taskParam[0] <= param.job && param.job != GUILD_JOB.DAJIANGJUN;
|
||||
checkHistory = true;
|
||||
break;
|
||||
case TASK_TYPE.GUILD_REFINE:
|
||||
isMatch = taskParam[0] == 0 || param.quality == taskParam[0];
|
||||
break;
|
||||
}
|
||||
console.log('****isMatch', isMatch, type, taskType, group, count)
|
||||
console.log('****isMatch', isMatch, checkHistory, type, taskType, group, count)
|
||||
|
||||
if(isMatch) {
|
||||
if(isInc) {
|
||||
let rec = await UserTaskRecModel.incTaskRec(roleId, type, taskType, group, count);
|
||||
return rec;
|
||||
} else {
|
||||
let rec = await UserTaskRecModel.setTaskRec(roleId, type, taskType, group, count);
|
||||
return rec;
|
||||
if(checkHistory) {
|
||||
let rec = await UserTaskRecModel.checkHistoryAndSetTaskRec(roleId, type, taskType, group, count);
|
||||
return rec;
|
||||
} else {
|
||||
let rec = await UserTaskRecModel.setTaskRec(roleId, type, taskType, group, count);
|
||||
return rec;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查关卡id是否在条件中
|
||||
* @param taskParam 条件number[] 填法 warcount&warid&... 有多少warid就warcount填几
|
||||
* @param index warcount在第几位,0开始
|
||||
* @param warId 关卡id
|
||||
* 检查id是否在某列表中
|
||||
* @param taskParam 条件number[] 填法 如: count&id&... 有多少id就count填几
|
||||
* @param index count在第几位,0开始
|
||||
* @param id 关卡id
|
||||
*/
|
||||
function checkWarId(taskParam: number[], index: number, warId: number) {
|
||||
let warCount = taskParam[index];
|
||||
if(!warCount) return false;
|
||||
let warIdList = taskParam.slice(index + 1, index + 1 + warCount);
|
||||
return warIdList.indexOf(warId) != -1;
|
||||
function checkIdList(taskParam: number[], index: number, id: number) {
|
||||
let count = taskParam[index];
|
||||
if(!count) return false;
|
||||
let idList = taskParam.slice(index + 1, index + 1 + count);
|
||||
return idList.indexOf(id) != -1;
|
||||
}
|
||||
|
||||
function checkHero(taskParam: number[], index: number, heroes: number[]) {
|
||||
|
||||
Reference in New Issue
Block a user