fix 修复刷新任务数量错误

This commit is contained in:
luying
2020-11-10 19:46:52 +08:00
parent 76e8157ad3
commit 5a700b87c7
5 changed files with 21 additions and 17 deletions

View File

@@ -253,8 +253,7 @@ export async function checkTaskConditions(roleId: string, heroes: Array<number>,
* @param roleName 玩家名
* @param hideNum 隐藏的任务数量
*/
export async function createCurTasks(towerLv: number, batchCode: string, roleId: string, roleName: string, hideNum: number) {
export async function createCurTasks(towerLv: number, batchCode: string, roleId: string, roleName: string, hideNum: number, showNum: number, rids: Array<number>) {
let randomList = [];
let dicTask = getGamedata('dic_zyz_search');
for(let task of dicTask) {
@@ -266,18 +265,19 @@ export async function createCurTasks(towerLv: number, batchCode: string, roleId:
}
}
let returnTasks = new Array();
let showNum = TOWER_TASK_CONST.RAND_CNT - hideNum;
const arr = [{refreshStatus: 0, num: hideNum}, {refreshStatus: 1, num: showNum}];
for(let {refreshStatus, num} of arr) {
let taskIds = [];
for(let i = 0; i < num; i++) {
let list = randomList.filter(cur => !taskIds.includes(cur.taskId));
let list = randomList.filter(cur => !rids.includes(cur.taskId));
let {dic: tmp} = getRandomWithWeight(list);
if(tmp) {
taskIds.push(tmp.taskId);
rids.push(tmp.taskId)
}
}
const curTasks = await TowerTaskRecModel.createTasks(roleId, roleName, batchCode, taskIds, refreshStatus);
console.log(curTasks.length)
if(refreshStatus == 1) {
returnTasks = curTasks;
}
@@ -302,16 +302,17 @@ export function treatTask(recs: Array<any>, curTime: Date) {
// 刷新任务,正在进行中的部分保留,没有进行中的刷掉
export function getDoingOrWaitingTasks (taskList: Array<any>, curTime: Date) {
let doingTaskCode = new Array<string>(), waitingTaskCode = new Array<string>();
let doingTaskCode = new Array<string>(), waitingTaskCode = new Array<string>(), doingIds = new Array<number>();
for(let task of taskList) {
let {status} = getTaskStatus(task.status, task.completeTime, curTime);
if(status == 1||status == 2) {
doingTaskCode.push(task.taskCode);
doingIds.push(task.taskId);
} else if(status == 0|| status == 3) {
waitingTaskCode.push(task.taskCode);
}
}
return {doingTaskCode, waitingTaskCode}
return {doingTaskCode, waitingTaskCode, doingIds}
}
export function getTaskStatus(status: number, completeTime: Date, curTime: Date) {

View File

@@ -31,7 +31,7 @@ export async function roleLevelup(roleId: string, kingExp: number) {
export async function checkBattleHeroes(roleId: string, heroes: Array<number>) {
let flag = true;
for(let seqId of heroes) {
let hero = await HeroModel.findBySeqIdAndRole(seqId, roleId);
let hero = await HeroModel.findBySeqIdAndRole(seqId||0, roleId);
if(!hero) flag = false;
}
return flag;