活动:添加弹出礼包每日弹出的逻辑
This commit is contained in:
@@ -5,6 +5,7 @@ import { RewardParam } from '../domain/activityField/rewardField';
|
|||||||
import { addReward, stringToRewardParam } from './giftPackageService';
|
import { addReward, stringToRewardParam } from './giftPackageService';
|
||||||
import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from '../db/ActivityPopUpShop';
|
import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from '../db/ActivityPopUpShop';
|
||||||
import { ServerlistModel } from '../db/Serverlist';
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
|
import moment = require('moment');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取活动数据
|
* 获取活动数据
|
||||||
@@ -56,6 +57,76 @@ export async function getPlayerPopUpShopData(activityId: number, serverId: numbe
|
|||||||
return allPlayerShop;
|
return allPlayerShop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 弹出礼包任务特殊处理
|
||||||
|
// *
|
||||||
|
// * @param {number} serverId 区Id
|
||||||
|
// * @param {number} activityId 活动Id
|
||||||
|
// * @param {string} roleId 角色Id
|
||||||
|
// *
|
||||||
|
// */
|
||||||
|
// export async function checkPopUpActivityTask(serverId: number, sid: number, funcs: number[], roleId: string, taskType: number, addCount: number) {
|
||||||
|
// let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||||
|
// let allActivity = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.POP_UP_SHOP, new Date());
|
||||||
|
// for (let activity of allActivity) {
|
||||||
|
// let allTaskData: any[] = JSON.parse(activity.data);
|
||||||
|
// for (let task of allTaskData) {
|
||||||
|
// if (task.taskType == taskType) {
|
||||||
|
// let popShopData = new PopUpShopData(task, activity.activityId);
|
||||||
|
// let taskRecord = await ActivityPopUpShopModel.findDataByTaskId(serverId, activity.activityId, roleId, popShopData.id, popShopData.taskType)
|
||||||
|
// let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
|
||||||
|
|
||||||
|
// let beginTime = new Date();
|
||||||
|
// let endTime = moment(new Date()).add(task.duration, 'h').toDate();
|
||||||
|
// if (taskType == TASK_TYPE.ROLE_TERAPH_STAGE_UP) {//只要触发就弹出礼包商店
|
||||||
|
// //推送
|
||||||
|
// let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, addCount, beginTime, endTime);
|
||||||
|
// popShopData.setPlayerRecords(playerRecord)
|
||||||
|
// // pushMessage = pushMessage.concat(popShopData);
|
||||||
|
// } else if (taskType == TASK_TYPE.EQUIP_QUALITY_COUNT || taskType == TASK_TYPE.GACHA_QUALITY_COUNT) {//每天统计
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // if (!taskRecord || !taskRecord.isPush) {
|
||||||
|
// // let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
|
||||||
|
// // if (addCount) {
|
||||||
|
|
||||||
|
// // if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) {
|
||||||
|
// // let playerRecord = await ActivityPopUpShopModel.setTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
||||||
|
// // //推送
|
||||||
|
// // if (task.condition <= playerRecord.totalCount) {
|
||||||
|
// // playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
||||||
|
// // popShopData.setPlayerRecords(playerRecord)
|
||||||
|
// // pushMessage = pushMessage.concat(popShopData);
|
||||||
|
// // }
|
||||||
|
// // } else if (taskType == TASK_TYPE.ROLE_TERAPH_STAGE_UP) {//只要触发就弹出礼包商店
|
||||||
|
// // //推送
|
||||||
|
// // let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, addCount, beginTime, endTime);
|
||||||
|
// // popShopData.setPlayerRecords(playerRecord)
|
||||||
|
// // pushMessage = pushMessage.concat(popShopData);
|
||||||
|
// // } else if (taskType == TASK_TYPE.EQUIP_QUALITY_COUNT || taskType == TASK_TYPE.GACHA_QUALITY_COUNT) {//每天统计
|
||||||
|
|
||||||
|
// // } else {
|
||||||
|
// // let playerRecord = await ActivityPopUpShopModel.addTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
||||||
|
// // //推送
|
||||||
|
// // if (task.condition <= playerRecord.totalCount) {
|
||||||
|
// // playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
||||||
|
// // popShopData.setPlayerRecords(playerRecord)
|
||||||
|
// // pushMessage = pushMessage.concat(popShopData);
|
||||||
|
// // }
|
||||||
|
// // }
|
||||||
|
// // }
|
||||||
|
// // if (record) {
|
||||||
|
// // await ActivityPopUpShopModel.addTaskRecord(serverId, activity.activityId, roleId, task.id, task.taskType, JSON.stringify(record));
|
||||||
|
// // }
|
||||||
|
// // }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结算购买礼包的奖励
|
* 结算购买礼包的奖励
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
import BaseModel from './BaseModel';
|
||||||
|
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动系统 - 弹出商店数据统计
|
||||||
|
*/
|
||||||
|
@index({ roleId: 1 })
|
||||||
|
|
||||||
|
export default class Activity_Pop_Up_Shop_Record extends BaseModel {
|
||||||
|
@prop({ required: true })
|
||||||
|
serverId: number; // 服id
|
||||||
|
@prop({ required: true })
|
||||||
|
activityId: number; // 活动Id
|
||||||
|
@prop({ required: true })
|
||||||
|
roleId: string; // 用户Id
|
||||||
|
@prop({ required: true })
|
||||||
|
beginTime: Date; // 开始统计时间
|
||||||
|
@prop({ required: true })
|
||||||
|
id: number; // 任务id
|
||||||
|
@prop({ required: true })
|
||||||
|
type: number; // 任务类型
|
||||||
|
@prop({ required: true })
|
||||||
|
count: number; // 统计次数
|
||||||
|
|
||||||
|
|
||||||
|
//添加统计
|
||||||
|
public static async addRecord(serverId: number, activityId: number, roleId: string, id: number, type: number, beginTime: Date, count: number) {
|
||||||
|
let result: ActivityPopUpShopRecordModelType = await ActivityPopUpShopRecordModel.findOneAndUpdate({
|
||||||
|
serverId, roleId, activityId, id, type, beginTime,
|
||||||
|
},
|
||||||
|
{ $inc: { count: count } }, { upsert: true, new: true }).lean(true);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询统计数据
|
||||||
|
public static async findRecordData(serverId: number, activityId: number, roleId: string, id: number, type: number, beginTime: Date) {
|
||||||
|
let result: ActivityPopUpShopRecordModelType = await ActivityPopUpShopRecordModel.findOne({
|
||||||
|
serverId, roleId, activityId, id, type, beginTime,
|
||||||
|
}).lean(true);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除活动统计记录
|
||||||
|
public static async deleteActivity(serverId: number, activityId: number, roleId: string, id: number, type: number,) {
|
||||||
|
await ActivityPopUpShopRecordModel.deleteMany({
|
||||||
|
roleId, activityId, id, type
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const ActivityPopUpShopRecordModel = getModelForClass(Activity_Pop_Up_Shop_Record);
|
||||||
|
|
||||||
|
export interface ActivityPopUpShopRecordModelType extends Pick<DocumentType<Activity_Pop_Up_Shop_Record>, keyof Activity_Pop_Up_Shop_Record> { }
|
||||||
|
export type ActivityPopUpShopRecordModelTypeParam = Partial<ActivityPopUpShopRecordModelType>; // 将所有字段变成可选项
|
||||||
+355
-336
@@ -23,6 +23,7 @@ import { ActivityGrowthFundModel, ActivityGrowthFundModelType } from '../db/Acti
|
|||||||
import { ActivityBuyRecordsModel } from '../db/ActivityBuyRecords';
|
import { ActivityBuyRecordsModel } from '../db/ActivityBuyRecords';
|
||||||
import { PopUpShopData } from '../domain/activityField/popUpShopField';
|
import { PopUpShopData } from '../domain/activityField/popUpShopField';
|
||||||
import { ActivityPopUpShopModel } from '../db/ActivityPopUpShop';
|
import { ActivityPopUpShopModel } from '../db/ActivityPopUpShop';
|
||||||
|
import { ActivityPopUpShopRecordModel, ActivityPopUpShopRecordModelType } from '../db/ActivityPopUpShopRecord';
|
||||||
import moment = require("moment");
|
import moment = require("moment");
|
||||||
|
|
||||||
|
|
||||||
@@ -590,377 +591,395 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
|||||||
for (let task of allTaskData) {
|
for (let task of allTaskData) {
|
||||||
if (task.taskType == taskType) {
|
if (task.taskType == taskType) {
|
||||||
let popShopData = new PopUpShopData(task, activity.activityId);
|
let popShopData = new PopUpShopData(task, activity.activityId);
|
||||||
let taskRecord = await ActivityPopUpShopModel.findDataByTaskId(serverId, activity.activityId, roleId, popShopData.id, popShopData.taskType)
|
let beginTime = new Date();
|
||||||
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
|
let endTime = moment(new Date()).add(task.duration, 'h').toDate();
|
||||||
if (!taskRecord || !taskRecord.isPush) {
|
if (taskType == TASK_TYPE.ROLE_TERAPH_STAGE_UP) {//只要触发就弹出礼包商店
|
||||||
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
|
//推送
|
||||||
if (addCount) {
|
let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, count, beginTime, endTime);
|
||||||
let beginTime = new Date();
|
popShopData.setPlayerRecords(playerRecord)
|
||||||
let endTime = moment(new Date()).add(task.duration, 'h').toDate();
|
pushMessage = pushMessage.concat(popShopData);
|
||||||
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) {
|
} else if (taskType == TASK_TYPE.EQUIP_QUALITY_COUNT || taskType == TASK_TYPE.GACHA_QUALITY_COUNT) {//每天统计
|
||||||
let playerRecord = await ActivityPopUpShopModel.setTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
let recordDate = moment(new Date()).startOf('d').toDate()
|
||||||
//推送
|
let recordData: ActivityPopUpShopRecordModelType = await ActivityPopUpShopRecordModel.findRecordData(serverId, activity.activityId, roleId, task.id, task.taskType, recordDate)
|
||||||
if (task.condition <= playerRecord.totalCount) {
|
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, null);
|
||||||
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
if (recordData && (recordData.count < task.condition) && (recordData.count + addCount >= task.condition)) {//完成当天任务
|
||||||
popShopData.setPlayerRecords(playerRecord)
|
let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, count, beginTime, endTime);
|
||||||
pushMessage = pushMessage.concat(popShopData);
|
popShopData.setPlayerRecords(playerRecord)
|
||||||
}
|
pushMessage = pushMessage.concat(popShopData);
|
||||||
} else if (taskType == TASK_TYPE.ROLE_TERAPH_STAGE_UP) {//只要触发就弹出礼包商店
|
await ActivityPopUpShopRecordModel.addRecord(serverId, activity.activityId, roleId, task.id, task.taskType, recordDate, addCount)
|
||||||
//推送
|
} else {
|
||||||
// let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, addCount, beginTime, endTime);
|
await ActivityPopUpShopRecordModel.addRecord(serverId, activity.activityId, roleId, task.id, task.taskType, recordDate, addCount)
|
||||||
// popShopData.setPlayerRecords(playerRecord)
|
}
|
||||||
// pushMessage = pushMessage.concat(popShopData);
|
} else {
|
||||||
} else if (taskType == TASK_TYPE.EQUIP_QUALITY_COUNT) {//每天统计
|
let taskRecord = await ActivityPopUpShopModel.findDataByTaskId(serverId, activity.activityId, roleId, popShopData.id, popShopData.taskType)
|
||||||
|
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
|
||||||
} else {
|
if (!taskRecord || !taskRecord.isPush) {
|
||||||
let playerRecord = await ActivityPopUpShopModel.addTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
|
||||||
//推送
|
if (addCount) {
|
||||||
if (task.condition <= playerRecord.totalCount) {
|
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) {
|
||||||
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
let playerRecord = await ActivityPopUpShopModel.setTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
||||||
popShopData.setPlayerRecords(playerRecord)
|
//推送
|
||||||
pushMessage = pushMessage.concat(popShopData);
|
if (task.condition <= playerRecord.totalCount) {
|
||||||
|
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
||||||
|
popShopData.setPlayerRecords(playerRecord)
|
||||||
|
pushMessage = pushMessage.concat(popShopData);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let playerRecord = await ActivityPopUpShopModel.addTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
|
||||||
|
//推送
|
||||||
|
if (task.condition <= playerRecord.totalCount) {
|
||||||
|
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
|
||||||
|
popShopData.setPlayerRecords(playerRecord)
|
||||||
|
pushMessage = pushMessage.concat(popShopData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (record) {
|
||||||
if (record) {
|
await ActivityPopUpShopModel.addTaskRecord(serverId, activity.activityId, roleId, task.id, task.taskType, JSON.stringify(record));
|
||||||
await ActivityPopUpShopModel.addTaskRecord(serverId, activity.activityId, roleId, task.id, task.taskType, JSON.stringify(record));
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//主线成长基金
|
//主线成长基金
|
||||||
if (taskType === TASK_TYPE.BATTLE_MAIN) {
|
if (taskType === TASK_TYPE.BATTLE_MAIN) {
|
||||||
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN, ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP], new Date());
|
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN, ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP], new Date());
|
||||||
for (let activity of allActivity) {
|
for (let activity of allActivity) {
|
||||||
let growthFundActivity = new GrowthFundData(activity);
|
let growthFundActivity = new GrowthFundData(activity);
|
||||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
||||||
growthFundActivity.setPlayerRecords(playerRecords);
|
growthFundActivity.setPlayerRecords(playerRecords);
|
||||||
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
|
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
|
||||||
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
|
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
|
||||||
growthFundActivity.initBuyRecords(buyRecords);
|
growthFundActivity.initBuyRecords(buyRecords);
|
||||||
}
|
|
||||||
let taskArray = growthFundActivity.unLockItem(parma.warId);
|
|
||||||
//推送
|
|
||||||
pushMessage = pushMessage.concat(taskArray);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//镇念塔成长基金getRoleOnlineInfo
|
|
||||||
if (taskType === TASK_TYPE.BATTLE_TOWER_LV) {
|
|
||||||
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_TOWER, ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP], new Date());
|
|
||||||
for (let activity of allActivity) {
|
|
||||||
let growthFundActivity = new GrowthFundData(activity);
|
|
||||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
|
||||||
growthFundActivity.setPlayerRecords(playerRecords);
|
|
||||||
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
|
|
||||||
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
|
|
||||||
growthFundActivity.initBuyRecords(buyRecords);
|
|
||||||
}
|
|
||||||
let taskArray = growthFundActivity.unLockItem(parma.towerLv);
|
|
||||||
//推送
|
|
||||||
pushMessage = pushMessage.concat(taskArray);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//精英成长基金
|
|
||||||
if (taskType === TASK_TYPE.BATTLE_MAIN_ELITE) {
|
|
||||||
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP], new Date());
|
|
||||||
for (let activity of allActivity) {
|
|
||||||
let growthFundActivity = new GrowthFundData(activity);
|
|
||||||
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
|
||||||
growthFundActivity.setPlayerRecords(playerRecords);
|
|
||||||
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
|
|
||||||
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
|
|
||||||
growthFundActivity.initBuyRecords(buyRecords);
|
|
||||||
}
|
|
||||||
let taskArray = growthFundActivity.unLockItem(parma.mainEliteWarId);
|
|
||||||
//推送
|
|
||||||
pushMessage = pushMessage.concat(taskArray);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return pushMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 达成任务标准
|
|
||||||
*
|
|
||||||
* @param {string} roleId 角色Id
|
|
||||||
* @param {number} taskType 任务类型
|
|
||||||
* @param {number} taskParam 任务条件数据
|
|
||||||
* @param {number} count 数据
|
|
||||||
* @param {number} parma 参数
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: string, count: number, paramObj?: any, recordData?: any): any {
|
|
||||||
console.log('达成任务标准', roleId, taskType, taskParam, count, paramObj)
|
|
||||||
let param = splitString(taskParam, '&');
|
|
||||||
let addCount: number = 0; // 条件是否满足
|
|
||||||
let record: any = null;
|
|
||||||
switch (taskType) {
|
|
||||||
case TASK_TYPE.ROLE_LV://重置数据
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.GUILD_JOIN:
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.LOGIN_SUM:
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.HERO_NUM:
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TASK_TYPE.HERO_QUALITY_STAR_UP://herocount&quality&star&
|
|
||||||
addCount = (param[1] == paramObj.quality) && (param[2] == paramObj.star) ? count : 0;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.HERO_QUALITY_TO_QUALITY_COUNT://herocount&quality&star& {oldQuality, quality: hero.quality}
|
|
||||||
addCount = (param[1] == paramObj.oldQuality) && (param[2] == paramObj.quality) ? count : 0;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.HERO_QUALITY_WAKE_UP_COUNT://herocount&quality
|
|
||||||
addCount = (param[1] == paramObj.quality) ? count : 0;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.HERO_WAKE_UP_STAR_UP_COUNT://herocount&colorStar& colorStar:彩星 1表示觉醒
|
|
||||||
addCount = (param[1] == paramObj.colorStar) ? count : 0;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.HERO_STAGE_UP://herocount&star&
|
|
||||||
addCount = (param[1] == paramObj.job) ? count : 0;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.EQUIP_JEWEL_STAGE://count&stage&
|
|
||||||
addCount = (param[1] == paramObj.stage) ? count : 0;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE://count&stage&
|
|
||||||
addCount = (param[1] == paramObj.stage) ? count : 0;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.EQUIP_QUALITY:
|
|
||||||
addCount = param[1] == paramObj.quality ? count : 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TASK_TYPE.ROLE_TITLE://重置数据
|
|
||||||
addCount = param[0] <= count ? count : 0;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.GASHA:
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.EQUIP_STRENGTHEN:
|
|
||||||
for (let obj of paramObj) {
|
|
||||||
// obj.hid;//英雄di
|
|
||||||
// obj.oldLv;//栏位升级前等级
|
|
||||||
// obj.lv;//栏位升级后等级
|
|
||||||
// obj.id;//栏位id
|
|
||||||
if (param[1] > obj.oldLv && param[1] <= obj.lv) {
|
|
||||||
addCount++;
|
|
||||||
}
|
}
|
||||||
|
let taskArray = growthFundActivity.unLockItem(parma.warId);
|
||||||
|
//推送
|
||||||
|
pushMessage = pushMessage.concat(taskArray);
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
case TASK_TYPE.EQUIP_REFINE_LV:
|
//镇念塔成长基金getRoleOnlineInfo
|
||||||
addCount = (param[1] == paramObj.lv) ? count : 0;
|
if (taskType === TASK_TYPE.BATTLE_TOWER_LV) {
|
||||||
break;
|
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_TOWER, ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP], new Date());
|
||||||
|
for (let activity of allActivity) {
|
||||||
case TASK_TYPE.BATTLE_MAIN:
|
let growthFundActivity = new GrowthFundData(activity);
|
||||||
addCount = (param[1] == paramObj.warId) ? 1 : 0;
|
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
||||||
break;
|
growthFundActivity.setPlayerRecords(playerRecords);
|
||||||
case TASK_TYPE.EQUIP_JEWEL_SUM:
|
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
|
||||||
addCount = count;
|
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
|
||||||
break;
|
growthFundActivity.initBuyRecords(buyRecords);
|
||||||
case TASK_TYPE.GUILD_TRAIN:
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.ROLE_SCHOOL_PUT_HERO:
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.GUILD_ACTIVITY:
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.EQUIP_SUM:
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
case TASK_TYPE.HERO_LV://{ hid, lv}
|
|
||||||
{
|
|
||||||
let hid = paramObj.hid;
|
|
||||||
let lv = paramObj.lv;
|
|
||||||
if (lv < param[1]) {
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
if (recordData) {
|
let taskArray = growthFundActivity.unLockItem(parma.towerLv);
|
||||||
record = recordData;
|
//推送
|
||||||
if (recordData.indexOf(hid) != -1) {
|
pushMessage = pushMessage.concat(taskArray);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//精英成长基金
|
||||||
|
if (taskType === TASK_TYPE.BATTLE_MAIN_ELITE) {
|
||||||
|
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP], new Date());
|
||||||
|
for (let activity of allActivity) {
|
||||||
|
let growthFundActivity = new GrowthFundData(activity);
|
||||||
|
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
|
||||||
|
growthFundActivity.setPlayerRecords(playerRecords);
|
||||||
|
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
|
||||||
|
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
|
||||||
|
growthFundActivity.initBuyRecords(buyRecords);
|
||||||
|
}
|
||||||
|
let taskArray = growthFundActivity.unLockItem(parma.mainEliteWarId);
|
||||||
|
//推送
|
||||||
|
pushMessage = pushMessage.concat(taskArray);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return pushMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 达成任务标准
|
||||||
|
*
|
||||||
|
* @param {string} roleId 角色Id
|
||||||
|
* @param {number} taskType 任务类型
|
||||||
|
* @param {number} taskParam 任务条件数据
|
||||||
|
* @param {number} count 数据
|
||||||
|
* @param {number} parma 参数
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: string, count: number, paramObj?: any, recordData?: any): any {
|
||||||
|
console.log('达成任务标准', roleId, taskType, taskParam, count, paramObj)
|
||||||
|
let param = splitString(taskParam, '&');
|
||||||
|
let addCount: number = 0; // 条件是否满足
|
||||||
|
let record: any = null;
|
||||||
|
switch (taskType) {
|
||||||
|
case TASK_TYPE.ROLE_LV://重置数据
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.GUILD_JOIN:
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.LOGIN_SUM:
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.HERO_NUM:
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TASK_TYPE.HERO_QUALITY_STAR_UP://herocount&quality&star&
|
||||||
|
addCount = (param[1] == paramObj.quality) && (param[2] == paramObj.star) ? count : 0;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.HERO_QUALITY_TO_QUALITY_COUNT://herocount&quality&star& {oldQuality, quality: hero.quality}
|
||||||
|
addCount = (param[1] == paramObj.oldQuality) && (param[2] == paramObj.quality) ? count : 0;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.HERO_QUALITY_WAKE_UP_COUNT://herocount&quality
|
||||||
|
addCount = (param[1] == paramObj.quality) ? count : 0;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.HERO_WAKE_UP_STAR_UP_COUNT://herocount&colorStar& colorStar:彩星 1表示觉醒
|
||||||
|
addCount = (param[1] == paramObj.colorStar) ? count : 0;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.HERO_STAGE_UP://herocount&star&
|
||||||
|
addCount = (param[1] == paramObj.job) ? count : 0;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.EQUIP_JEWEL_STAGE://count&stage&
|
||||||
|
addCount = (param[1] == paramObj.stage) ? count : 0;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE://count&stage&
|
||||||
|
addCount = (param[1] == paramObj.stage) ? count : 0;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.EQUIP_QUALITY:
|
||||||
|
addCount = param[1] == paramObj.quality ? count : 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TASK_TYPE.ROLE_TITLE://重置数据
|
||||||
|
addCount = param[0] <= count ? count : 0;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.GASHA:
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.EQUIP_STRENGTHEN:
|
||||||
|
for (let obj of paramObj) {
|
||||||
|
// obj.hid;//英雄di
|
||||||
|
// obj.oldLv;//栏位升级前等级
|
||||||
|
// obj.lv;//栏位升级后等级
|
||||||
|
// obj.id;//栏位id
|
||||||
|
if (param[1] > obj.oldLv && param[1] <= obj.lv) {
|
||||||
|
addCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.EQUIP_REFINE_LV:
|
||||||
|
addCount = (param[1] == paramObj.lv) ? count : 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TASK_TYPE.BATTLE_MAIN:
|
||||||
|
addCount = (param[1] == paramObj.warId) ? 1 : 0;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.EQUIP_JEWEL_SUM:
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.GUILD_TRAIN:
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.ROLE_SCHOOL_PUT_HERO:
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.GUILD_ACTIVITY:
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.EQUIP_SUM:
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
case TASK_TYPE.HERO_LV://{ hid, lv}
|
||||||
|
{
|
||||||
|
let hid = paramObj.hid;
|
||||||
|
let lv = paramObj.lv;
|
||||||
|
if (lv < param[1]) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
if (recordData) {
|
||||||
record = [];
|
record = recordData;
|
||||||
}
|
if (recordData.indexOf(hid) != -1) {
|
||||||
|
|
||||||
addCount = count;
|
|
||||||
record.push(hid)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.HERO_TRAIN_SUM://训练X次是所有武将的训练次数的总和达到要求就好了
|
|
||||||
{
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.HERO_TRAIN://X名武将训练Y次,要求单名武将训练Y次,这样的武将要有X名
|
|
||||||
{
|
|
||||||
let hid = paramObj.hid;
|
|
||||||
if (recordData) {
|
|
||||||
record = recordData;
|
|
||||||
let oldCount = record[hid];
|
|
||||||
if (oldCount) {
|
|
||||||
if (oldCount < param[1] && (oldCount + count >= param[1])) {
|
|
||||||
addCount = count;
|
|
||||||
record[hid] = oldCount + count;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
record = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
addCount = count;
|
||||||
|
record.push(hid)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.HERO_TRAIN_SUM://训练X次是所有武将的训练次数的总和达到要求就好了
|
||||||
|
{
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.HERO_TRAIN://X名武将训练Y次,要求单名武将训练Y次,这样的武将要有X名
|
||||||
|
{
|
||||||
|
let hid = paramObj.hid;
|
||||||
|
if (recordData) {
|
||||||
|
record = recordData;
|
||||||
|
let oldCount = record[hid];
|
||||||
|
if (oldCount) {
|
||||||
|
if (oldCount < param[1] && (oldCount + count >= param[1])) {
|
||||||
|
addCount = count;
|
||||||
|
record[hid] = oldCount + count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
record[hid] = count;
|
||||||
|
if (count >= param[1]) {
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
record = {};
|
||||||
record[hid] = count;
|
record[hid] = count;
|
||||||
if (count >= param[1]) {
|
if (count >= param[1]) {
|
||||||
addCount = count;
|
addCount = count;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
break;
|
||||||
record = {};
|
}
|
||||||
record[hid] = count;
|
case TASK_TYPE.BATTLE_EXPEDITION:
|
||||||
if (count >= param[1]) {
|
{
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.BATTLE_EXPEDITION_BOX:
|
||||||
|
{
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.HERO_QUALITY:
|
||||||
|
{
|
||||||
|
let quality = param[1]
|
||||||
|
let heroes = paramObj.heroes.filter(hero => { return hero.quality == quality })
|
||||||
|
addCount = heroes.length;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.PVP_WIN_SERIES:
|
||||||
|
{
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.PVP_WIN:
|
||||||
|
{
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.BATTLE_TOWER_LV://{towerLv}
|
||||||
|
{
|
||||||
|
let towerLv = paramObj.towerLv;
|
||||||
|
if (recordData) {
|
||||||
|
if (recordData >= towerLv) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
record = towerLv;
|
||||||
|
addCount = towerLv;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.BATTLE_MAIN_ELITE:
|
||||||
|
{
|
||||||
|
if (paramObj.mainEliteWarId == param[1]) {
|
||||||
addCount = count;
|
addCount = count;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
case TASK_TYPE.BATTLE_DUNGEON_WAR:
|
||||||
}
|
{
|
||||||
case TASK_TYPE.BATTLE_EXPEDITION:
|
if (paramObj.warId == param[1]) {
|
||||||
{
|
addCount = count;
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.BATTLE_EXPEDITION_BOX:
|
|
||||||
{
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.HERO_QUALITY:
|
|
||||||
{
|
|
||||||
let quality = param[1]
|
|
||||||
let heroes = paramObj.heroes.filter(hero => { return hero.quality == quality })
|
|
||||||
addCount = heroes.length;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.PVP_WIN_SERIES:
|
|
||||||
{
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.PVP_WIN:
|
|
||||||
{
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.BATTLE_TOWER_LV://{towerLv}
|
|
||||||
{
|
|
||||||
let towerLv = paramObj.towerLv;
|
|
||||||
if (recordData) {
|
|
||||||
if (recordData >= towerLv) {
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
record = towerLv;
|
case TASK_TYPE.HERO_NUM:
|
||||||
addCount = towerLv;
|
{
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.BATTLE_MAIN_ELITE:
|
|
||||||
{
|
|
||||||
if (paramObj.mainEliteWarId == param[1]) {
|
|
||||||
addCount = count;
|
addCount = count;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
case TASK_TYPE.PVP:
|
||||||
}
|
{
|
||||||
case TASK_TYPE.BATTLE_DUNGEON_WAR:
|
|
||||||
{
|
|
||||||
if (paramObj.warId == param[1]) {
|
|
||||||
addCount = count;
|
addCount = count;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
case TASK_TYPE.GUILD_TRAIN_COUNT://trainId count&wardId&
|
||||||
}
|
{
|
||||||
case TASK_TYPE.HERO_NUM:
|
if (paramObj.trainId == param[1]) {
|
||||||
{
|
addCount = count;
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.PVP:
|
|
||||||
{
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.GUILD_TRAIN_COUNT://trainId count&wardId&
|
|
||||||
{
|
|
||||||
if (paramObj.trainId == param[1]) {
|
|
||||||
addCount = count;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.HERO_UNLOCK://
|
|
||||||
{
|
|
||||||
let camp = param[1]
|
|
||||||
let heroes = paramObj.dicHeroes.filter(hero => { return hero.camp == camp })
|
|
||||||
addCount = heroes.length;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.GACHA_QUALITY_COUNT://count&quality&
|
|
||||||
{
|
|
||||||
let quality = param[1]
|
|
||||||
let heroes = paramObj.heroes.filter(hero => { return hero.quality == quality })
|
|
||||||
addCount = heroes.length;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TASK_TYPE.ROLE_TERAPH_STAGE_UP://
|
|
||||||
{
|
|
||||||
addCount = count;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TASK_TYPE.HERO_WAKE_UP_COUNT:
|
|
||||||
{
|
|
||||||
|
|
||||||
let hid = paramObj.hid;
|
|
||||||
if (recordData) {
|
|
||||||
record = recordData;
|
|
||||||
if (recordData.indexOf(hid) != -1) {
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
} else {
|
break;
|
||||||
record = [];
|
}
|
||||||
|
case TASK_TYPE.HERO_UNLOCK://
|
||||||
|
{
|
||||||
|
let camp = param[1]
|
||||||
|
let heroes = paramObj.dicHeroes.filter(hero => { return hero.camp == camp })
|
||||||
|
addCount = heroes.length;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.GACHA_QUALITY_COUNT://count&quality&
|
||||||
|
{
|
||||||
|
let quality = param[1]
|
||||||
|
let heroes = paramObj.heroes.filter(hero => { return hero.quality == quality })
|
||||||
|
addCount = heroes.length;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.ROLE_TERAPH_STAGE_UP://
|
||||||
|
{
|
||||||
|
addCount = count;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
addCount = count;
|
case TASK_TYPE.HERO_WAKE_UP_COUNT:
|
||||||
record.push(hid)
|
{
|
||||||
|
|
||||||
|
let hid = paramObj.hid;
|
||||||
|
if (recordData) {
|
||||||
|
record = recordData;
|
||||||
|
if (recordData.indexOf(hid) != -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
record = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
addCount = count;
|
||||||
|
record.push(hid)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TASK_TYPE.EQUIP_QUALITY_COUNT:
|
||||||
|
{
|
||||||
|
let quality = param[1]
|
||||||
|
let equips = paramObj.equips.filter(equip => { return equip.quality == quality })
|
||||||
|
addCount = equips.length;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
addCount = 0;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
default:
|
|
||||||
addCount = 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
console.log('dddddddddddd', addCount, record)
|
|
||||||
return { addCount, record };
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建账号时临时获得可开启功能,主要用于check 主公升级任务
|
|
||||||
* 该函数不会存储funcs,如pvp开启会在entryHandler里面再查一次funcs,那时候正式开启
|
|
||||||
* @param dataFuncs
|
|
||||||
* @param lv
|
|
||||||
*/
|
|
||||||
export async function getCreateUserFuncs(dataFuncs: number[], lv: number) {
|
|
||||||
let addFuncs: number[] = [];
|
|
||||||
for (let [id, dicFunSwitch] of gameData.funcsSwitch) {
|
|
||||||
if (dataFuncs.includes(id)) continue; // 已开启过了
|
|
||||||
|
|
||||||
if (dicFunSwitch && lv >= dicFunSwitch.param) {
|
|
||||||
addFuncs.push(id);
|
|
||||||
}
|
}
|
||||||
|
console.log('dddddddddddd', addCount, record)
|
||||||
|
return { addCount, record };
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建账号时临时获得可开启功能,主要用于check 主公升级任务
|
||||||
|
* 该函数不会存储funcs,如pvp开启会在entryHandler里面再查一次funcs,那时候正式开启
|
||||||
|
* @param dataFuncs
|
||||||
|
* @param lv
|
||||||
|
*/
|
||||||
|
export async function getCreateUserFuncs(dataFuncs: number[], lv: number) {
|
||||||
|
let addFuncs: number[] = [];
|
||||||
|
for (let [id, dicFunSwitch] of gameData.funcsSwitch) {
|
||||||
|
if (dataFuncs.includes(id)) continue; // 已开启过了
|
||||||
|
|
||||||
|
if (dicFunSwitch && lv >= dicFunSwitch.param) {
|
||||||
|
addFuncs.push(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return addFuncs;
|
||||||
}
|
}
|
||||||
return addFuncs;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user