添加天梯排行榜,修复setHour有时差的bug

This commit is contained in:
luying
2020-11-06 17:31:23 +08:00
parent bd93d9dc1c
commit 04ecef03b5
29 changed files with 285 additions and 148 deletions
+17 -1
View File
@@ -197,7 +197,7 @@ async function checkCond(roleId: string, heroes, type: number, param: number, cn
switch (type) {
case 1:
let field = param == 1?'star': 'rank';
let field = param == 1?'star': 'fire'; // fire:觉醒的火,在满星了之后会继续进行觉醒,显示类似6星1火
for(let hid of heroes) {
const rec = await HeroModel.findByHidAndRole(hid, roleId);
if (rec[field] >= param) {
@@ -285,4 +285,20 @@ export function treatTask(recs: Array<any>, curTime: Date) {
}
return { heroes, batchCode, taskId, taskCode, status, completeTime, remainTime }
});
}
export async function getTasksReward(roleId: string, curTime: Date) {
let oldTasks = await TowerTaskRecModel.getCurTasks(roleId);
let goods = [];
for(let task of oldTasks) {
let {completeTime, reward, termsForAdd, additionalReward} = getTaskById(task.taskId);
if (task.sendTime && task.sendTime.getTime() + completeTime * 1000 < curTime.getTime()) {
goods = goods.concat(decodeStr('fixReward', reward));
if(termsForAdd) {
const result = checkTaskConditions(roleId, task.heroes, termsForAdd);
goods = goods.concat(decodeStr('fixReward', result?additionalReward:''));
}
}
}
return goods
}
+4 -5
View File
@@ -2,7 +2,7 @@ import { Application, FrontendOrBackendSession } from 'pinus';
import { getGamedata } from '../pubUtils/gamedata';
import EventRecord, { EventRecordModel } from '../db/EventRecord';
import { RoleModel } from '../db/Role';
import { genCode, decodeStrSingle, decodeStr, getRandomWithWeight, resResult } from '../pubUtils/util';
import { genCode, decodeStrSingle, decodeStr, getRandomWithWeight, resResult, setLocalHours } from '../pubUtils/util';
import { EVENT_STATUS, EVENT_RECORD_STATUS, EVENT_TYPE, EVENT_RANDOM_TYPE_ONE_OPEN, EVENT_QUIZ_NUM, EVENT_ANSWER_STATUS } from '../consts/consts';
import { EVENT_REFRESH_NUM } from '../consts/consts';
import { STATUS } from '../consts/statusCode';
@@ -62,8 +62,8 @@ export async function setBattleStatus(app: Application, session: FrontendOrBacke
*/
export function getEventTime(now: Date) {
let curTime = Number(now);
let todayA = now.setHours(12, 0, 0, 0) - 8*60*60*1000; // 每天12点,修复时差
let todayB = now.setHours(18, 0, 0, 0) - 8*60*60*1000; // 每天18点,修复时差
let todayA = setLocalHours(12, now); // 每天12点
let todayB = setLocalHours(18, now); // 每天18点
let yesterdayB = todayB - 86400000; // 前一天12点
let t = 0;
if(curTime < todayA) {
@@ -196,7 +196,7 @@ export async function refreshEvent(num: number, roleId: string, roleName: string
let role = await RoleModel.findByRoleId(roleId);
dicEvent = dicEvent.filter(cur => { // 筛选适合等级
let { suitLevel } = cur;
suitLevel = decodeStrSingle('eventSuitLevel', suitLevel);
suitLevel = decodeStrSingle('suitLevel', suitLevel);
return suitLevel.min <= role.lv && suitLevel.max >= role.lv
});
if(EVENT_RANDOM_TYPE_ONE_OPEN) {
@@ -292,7 +292,6 @@ function randomPosition(positionStr: string, prePoint: Array<number>, curPoint:
* @param msg
*/
function pushEventMsg(app: Application, roleId: string, channelName: string, msg: any ) {
console.log('***pushEventMsg', channelName)
let channelService = app.get('channelService');
let param = { msg };
@@ -4,7 +4,7 @@ import { RoleModel } from '../db/Role';
import { PvpDefenseModel } from '../db/PvpDefense';
import { getWarJsons, getGamedata } from '../pubUtils/gamedata';
import { decodeStr, resResult } from '../pubUtils/util';
import { decodeStr, resResult, setLocalHours } from '../pubUtils/util';
import { WAR_JSON_ATTRIBUTE_TYPE } from '../consts/consts';
@@ -71,7 +71,7 @@ export async function getCEScaleAndRange(roleId: string, curDicExpedition: any)
// 匹配,判断是不是新手期
const role = await RoleModel.findByRoleId(roleId);
let now = new Date();
let today = now.setHours(0,0,0,0);
let today = setLocalHours(0, now);
let isNew = today - role.createdAt.getTime() <= 3*24*60*60*1000;
let scale = isNew?curDicExpedition.CEScaleNew:curDicExpedition.CEScale;
let range = isNew?curDicExpedition.CERangeNew:curDicExpedition.CERange;
@@ -13,7 +13,7 @@ export async function roleLevelup(roleId: string, kingExp: number) {
for(let i = lv; i <= newLv; i++) {
let {sum, cur} = getExpByLv(i);
let lastSum = sum - cur;
console.log(sum, cur, lastSum, exp, newExp);
// console.log(sum, cur, lastSum, exp, newExp);
let startExp = exp > lastSum? exp - lastSum: 0;
let getExp = newExp > sum? cur - startExp: newExp - lastSum - startExp;
@@ -82,7 +82,6 @@ async function rewardItems (roleId: string, dicGood: any, field: string, data: {
let {id, cnt} = data;
let result = await RoleModel.addItems(roleId, field, id, cnt);
console.log(result)
goods.push({
id: id,