活动:添加新的任务统计
This commit is contained in:
@@ -494,7 +494,9 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
let growthActivity = new GrowthData(activity);
|
||||
let taskArray = growthActivity.findTaskByType(taskType);
|
||||
for (let task of taskArray) {
|
||||
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
||||
let taskRecord = await ActivityDailyChallengesModel.findDataByCellIndex(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType)
|
||||
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null;
|
||||
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) {
|
||||
await ActivityGrowthModel.setTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||
@@ -502,6 +504,9 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
await ActivityGrowthModel.addTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||
}
|
||||
}
|
||||
if (record) {
|
||||
await ActivityGrowthModel.addTaskRecord(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, JSON.stringify(record));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -511,7 +516,9 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
let growthActivity = new DailyChallengesData(activity);
|
||||
let taskArray = growthActivity.findTaskByType(taskType, growthActivity.today());
|
||||
for (let task of taskArray) {
|
||||
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
||||
let taskRecord = await ActivityDailyChallengesModel.findDataByCellIndex(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType)
|
||||
let recordData = taskRecord && taskRecord.data ? taskRecord.data : {}
|
||||
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) {
|
||||
await ActivityDailyChallengesModel.setTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||
@@ -519,6 +526,9 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
await ActivityDailyChallengesModel.addTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount);
|
||||
}
|
||||
}
|
||||
if (record) {
|
||||
await ActivityGrowthModel.addTaskRecord(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, JSON.stringify(record));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -543,10 +553,15 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
thirtyDaysActivity.setPlayerRecords(playerRecords);
|
||||
let taskArray = thirtyDaysActivity.findUncompleteTaskByType(taskType);
|
||||
for (let task of taskArray) {
|
||||
let addCount = isComplete(roleId, task.taskType, task.taskParam, count, parma);
|
||||
let taskRecord = await ActivityDailyChallengesModel.findDataByCellIndex(serverId, thirtyDaysActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType)
|
||||
let recordData = taskRecord && taskRecord.data ? taskRecord.data : {}
|
||||
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
|
||||
if (addCount) {
|
||||
await ActivityThirtyDaysModel.addTaskCount(serverId, thirtyDaysActivity.activityId, roleId, task.pageIndex, task.cellIndex, task.taskType, addCount);
|
||||
}
|
||||
if (record) {
|
||||
await ActivityGrowthModel.addTaskRecord(serverId, thirtyDaysActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, JSON.stringify(record));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -614,10 +629,11 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
|
||||
*
|
||||
*/
|
||||
|
||||
export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: string, count: number, paramObj?: any): number {
|
||||
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;
|
||||
@@ -693,18 +709,79 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin
|
||||
case TASK_TYPE.GUILD_ACTIVITY:
|
||||
addCount = count;
|
||||
break;
|
||||
case TASK_TYPE.HERO_TRAIN_SUM:
|
||||
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) {
|
||||
if (recordData.indexOf(hid) != -1) {
|
||||
break;
|
||||
}
|
||||
record = recordData;
|
||||
} 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;
|
||||
if (record['hid']) {
|
||||
if (record['hid'] < param[1] && (record['hid'] + count >= param[1])) {
|
||||
addCount = count;
|
||||
record['hid'] += count;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
record['hid'] = count;
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.BATTLE_EXPEDITION:
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
default:
|
||||
addCount = 0;
|
||||
break;
|
||||
|
||||
}
|
||||
return addCount;
|
||||
return { addCount, record };
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user