添加天梯排行榜,修复setHour有时差的bug
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import fs = require('fs');
|
||||
import path = require('path');
|
||||
import { decodeStr, decodeStrSingle } from './util';
|
||||
|
||||
let gamedata = {};
|
||||
const wars = ['dic_zyz_gk_main', 'dic_zyz_gk_mainElite', 'dic_zyz_gk_daily', 'dic_zyz_gk_event', 'dic_zyz_gk_tower', 'dic_zyz_gk_expedition']; // 关卡相关的表
|
||||
@@ -35,7 +36,7 @@ function parseTowerData() {
|
||||
}
|
||||
|
||||
function parseTowerTaskData() {
|
||||
const towerTaskFile = 'dic_zyz_tower_tasks';
|
||||
const towerTaskFile = 'dic_zyz_search';
|
||||
const towerTaskData = gamedata['jsons'][towerTaskFile] || [];
|
||||
towerTaskData.forEach(elem => {
|
||||
if (elem && elem.taskId) {
|
||||
@@ -172,7 +173,6 @@ export function getLvByExp(exp: number) {
|
||||
let curLv = 0;
|
||||
let entries = levelInfos.entries();
|
||||
for (let [lv, {sum}] of entries) {
|
||||
console.log(lv, sum)
|
||||
if(exp < sum) {
|
||||
curLv = lv; break;
|
||||
}
|
||||
@@ -182,6 +182,5 @@ export function getLvByExp(exp: number) {
|
||||
}
|
||||
|
||||
export function getExpByLv(lv: number) {
|
||||
console.log(lv)
|
||||
return levelInfos.get(lv);
|
||||
}
|
||||
@@ -19,6 +19,7 @@ const moment = require('moment');
|
||||
if(str == '&'|| !str) {
|
||||
return []
|
||||
} else {
|
||||
console.log(str)
|
||||
return str.split(splitForm).map(cur => {
|
||||
return decodeStrSingle(type,cur);
|
||||
});
|
||||
@@ -50,7 +51,7 @@ const moment = require('moment');
|
||||
result = { gid: parseInt(gid), count: parseInt(count), frequency: parseInt(frequency) };
|
||||
break;
|
||||
}
|
||||
case 'eventSuitLevel': {
|
||||
case 'suitLevel': {
|
||||
let [min, max] = arr;
|
||||
if(isNaN(min) || isNaN(max)) throw new Error('data table format wrong');
|
||||
result = { min: parseInt(min), max: parseInt(max) };
|
||||
@@ -180,7 +181,7 @@ export function deltaDays(preTime: Date, proTime: Date): number {
|
||||
*/
|
||||
export function shouldRefresh(preTime: Date, now: Date, hour: number, deltaDay = 1): boolean {
|
||||
let curTime = new Date(now.getTime());
|
||||
let refeshTime = curTime.setHours(hour, 0, 0, 0);
|
||||
let refeshTime = setLocalHours(hour, curTime);
|
||||
if (refeshTime - preTime.getTime() > deltaDay * 24 * 60 * 60 * 1000 && curTime.getTime() >= refeshTime) {
|
||||
return true;
|
||||
}
|
||||
@@ -197,9 +198,8 @@ export function getRefTime(now = new Date(), hour: number, day = 0) {
|
||||
if (curTime.getHours() < hour) {
|
||||
curTime.setDate(curTime.getDate() - 1);
|
||||
}
|
||||
curTime.setHours(hour, 0, 0, 0);
|
||||
curTime = new Date(curTime.getTime() + day * 24 * 60 * 60 * 1000);
|
||||
return curTime;
|
||||
let today = setLocalHours(hour, curTime);
|
||||
return new Date(today + day * 24 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
export function getRandEelm(source: Array<any> = [], cnt = 1): Array<any> {
|
||||
@@ -301,4 +301,14 @@ export function calculateNum(ratio: {A: number, B: number}, params: {num: number
|
||||
console.error(e);
|
||||
return defaultVal;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export function setLocalHours(hour: number, curTime = new Date()) {
|
||||
// curTime: 格林威治时间
|
||||
let offset = curTime.getTimezoneOffset(); // 格林威治时间和本地时间之间的时差(分)
|
||||
console.log('offset:', offset);
|
||||
let localTime = new Date(curTime.getTime() - offset * 60 * 1000 + 8 * 60 * 60 * 1000); // 中国时间
|
||||
localTime.setUTCHours(hour, 0, 0, 0); // 中国的几点
|
||||
return localTime.getTime() + offset * 60 * 1000 - 8 * 60 * 60 * 1000; // 回到格林威治时间
|
||||
}
|
||||
Reference in New Issue
Block a user