Merge branch 'hjb' of git.kingsome.cn:server/game2006api into hjb
This commit is contained in:
commit
a76561d183
@ -1 +1,31 @@
|
|||||||
exports.TIME_ZONE = 0;
|
exports.TIME_ZONE = 0;
|
||||||
|
|
||||||
|
exports.NORMAL_HERO_FRAGMENT = [
|
||||||
|
110101,
|
||||||
|
110111,
|
||||||
|
110121,
|
||||||
|
110131,
|
||||||
|
110141,
|
||||||
|
110151,
|
||||||
|
110161,
|
||||||
|
110171
|
||||||
|
];
|
||||||
|
|
||||||
|
exports.SPEC_HERO_FRAGMENT = 110181;
|
||||||
|
|
||||||
|
exports.ALL_HERO_FRAGMENT = exports.NORMAL_HERO_FRAGMENT.concat([exports.SPEC_HERO_FRAGMENT]);
|
||||||
|
|
||||||
|
exports.NORMAL_GUN_FRAGMENT = [
|
||||||
|
110201,
|
||||||
|
110211,
|
||||||
|
110221,
|
||||||
|
110231,
|
||||||
|
110241,
|
||||||
|
110251,
|
||||||
|
110261,
|
||||||
|
110271
|
||||||
|
];
|
||||||
|
|
||||||
|
exports.SPEC_GUN_FRAGMENT = 110281;
|
||||||
|
|
||||||
|
exports.ALL_GUN_FRAGMENT = exports.NORMAL_GUN_FRAGMENT.concat([exports.SPEC_GUN_FRAGMENT]);
|
||||||
|
@ -6,6 +6,14 @@ const constant = require('../constant');
|
|||||||
const YESTERDAY_HERO_NUM = 1000;
|
const YESTERDAY_HERO_NUM = 1000;
|
||||||
const YESTERDAY_GUN_NUM = 1000;
|
const YESTERDAY_GUN_NUM = 1000;
|
||||||
|
|
||||||
|
const PVP_TYPE = 0;
|
||||||
|
const PVE_TYPE = 1;
|
||||||
|
|
||||||
|
const PVP_RATIO = 0.6;
|
||||||
|
const PVE_RATIO = 0.4;
|
||||||
|
|
||||||
|
const ITEM_PRE = 'item_';
|
||||||
|
|
||||||
class Fragment {
|
class Fragment {
|
||||||
|
|
||||||
async start() {
|
async start() {
|
||||||
@ -64,12 +72,12 @@ class Fragment {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const allocedFragments = new Map();
|
const allocedFragments = new Map();
|
||||||
allocedFragments.set(0, new Map());
|
allocedFragments.set(PVP_TYPE, new Map());
|
||||||
allocedFragments.set(1, new Map());
|
allocedFragments.set(PVE_TYPE, new Map());
|
||||||
rows.forEach(
|
rows.forEach(
|
||||||
(element) => {
|
(element) => {
|
||||||
if (element['type'] == 0 ||
|
if (element['type'] == PVP_TYPE ||
|
||||||
element['type'] == 1) {
|
element['type'] == PVE_TYPE) {
|
||||||
const data = allocedFragments.get(element['type']);
|
const data = allocedFragments.get(element['type']);
|
||||||
if (data) {
|
if (data) {
|
||||||
const num = Math.max(0, element['alloc_num'] - element['fragment_num']);
|
const num = Math.max(0, element['alloc_num'] - element['fragment_num']);
|
||||||
@ -89,6 +97,106 @@ class Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async realloc(conn, daySeconds, nowTime, hourSeconds, allocedFragments) {
|
async realloc(conn, daySeconds, nowTime, hourSeconds, allocedFragments) {
|
||||||
|
const hour = Math.floor(hourSeconds / 3600);
|
||||||
|
const remainHour = Math.min(24, Math.max(1, 24 - hour));
|
||||||
|
|
||||||
|
const remainData = this.getRemainData(daySeconds, nowTime, hourSeconds, allocedFragments);
|
||||||
|
}
|
||||||
|
|
||||||
|
async getRemainData(daySeconds, nowTime, hourSeconds, allocedFragments) {
|
||||||
|
const totalHeroNum = this.getYesterDayHeroNum();
|
||||||
|
const totalGunNum = this.getYesterDayGunNum();
|
||||||
|
|
||||||
|
const normalHeroNum = Math.floor(totalHeroNum * 0.06 * 8);
|
||||||
|
const specHeroNum = Math.floor(totalHeroNum * 0.02);
|
||||||
|
const normalGunNum = Math.floor(totalGunNum * 0.06 * 8);
|
||||||
|
const specGunNum = Math.floor(totalGunNum * 0.02);
|
||||||
|
|
||||||
|
const remainData = new Map();
|
||||||
|
remainData.set(PVP_TYPE, new Map());
|
||||||
|
remainData.set(PVE_TYPE, new Map());
|
||||||
|
remainData.forEach(
|
||||||
|
(value, key) => {
|
||||||
|
switch (key) {
|
||||||
|
case PVP_TYPE:
|
||||||
|
{
|
||||||
|
value.set('normalHeroNum', Math.floor(normalHeroNum * PVP_RATIO));
|
||||||
|
value.set('specHeroNum', Math.floor(specHeroNum * PVP_RATIO));
|
||||||
|
value.set('normalGunNum', Math.floor(normalGunNum * PVP_RATIO));
|
||||||
|
value.set('specGunNum', Math.floor(specGunNum * PVP_RATIO));
|
||||||
|
value.set('remainHeroNum', 0);
|
||||||
|
value.set('remainGunNum', 0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PVE_TYPE:
|
||||||
|
{
|
||||||
|
value.set('normalHeroNum', Math.floor(normalHeroNum * PVE_RATIO));
|
||||||
|
value.set('specHeroNum', Math.floor(specHeroNum * PVE_RATIO));
|
||||||
|
value.set('normalGunNum', Math.floor(normalGunNum * PVE_RATIO));
|
||||||
|
value.set('specGunNum', Math.floor(specGunNum * PVE_RATIO));
|
||||||
|
value.set('remainHeroNum', 0);
|
||||||
|
value.set('remainGunNum', 0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}//end switch
|
||||||
|
const data = allocedFragments.get(key);
|
||||||
|
constant.ALL_HERO_FRAGMENT.forEach(
|
||||||
|
(element) => {
|
||||||
|
if (element == constant.SPEC_HERO_FRAGMENT) {
|
||||||
|
const allocedNum = data.get(element);
|
||||||
|
let remainNum = value.get('specHeroNum');
|
||||||
|
if (allocedNum) {
|
||||||
|
remainNum = Math.max(0, remainNum - allocedNum);
|
||||||
|
}
|
||||||
|
value.set(element, remainNum);
|
||||||
|
} else {
|
||||||
|
const allocedNum = data.get(element);
|
||||||
|
let remainNum = Math.floor(value.get('normalHeroNum') / 8);
|
||||||
|
if (allocedNum) {
|
||||||
|
remainNum = Math.max(0, remainNum - allocedNum);
|
||||||
|
}
|
||||||
|
value.set(element, remainNum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);//end forEach
|
||||||
|
|
||||||
|
constant.ALL_GUN_FRAGMENT.forEach(
|
||||||
|
(element) => {
|
||||||
|
if (element == constant.SPEC_GUN_FRAGMENT) {
|
||||||
|
const allocedNum = data.get(element);
|
||||||
|
let remainNum = value.get('specGunNum');
|
||||||
|
if (allocedNum) {
|
||||||
|
remainNum = Math.max(0, remainNum - allocedNum);
|
||||||
|
}
|
||||||
|
value.set(ITEM_PRE + element, remainNum);
|
||||||
|
} else {
|
||||||
|
const allocedNum = data.get(element);
|
||||||
|
let remainNum = Math.floor(value.get('normalGunNum') / 8);
|
||||||
|
if (allocedNum) {
|
||||||
|
remainNum = Math.max(0, remainNum - allocedNum);
|
||||||
|
}
|
||||||
|
value.set(ITEM_PRE + element, remainNum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);//end forEach
|
||||||
|
|
||||||
|
}
|
||||||
|
);//end forEach
|
||||||
|
|
||||||
|
return remainData;
|
||||||
|
}
|
||||||
|
|
||||||
|
getYesterDayHeroNum() {
|
||||||
|
return YESTERDAY_HERO_NUM;
|
||||||
|
}
|
||||||
|
|
||||||
|
getYesterDayGunNum() {
|
||||||
|
return YESTERDAY_GUN_NUM;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user