From 96136ae3efe6e1f634f0e34c177be23b2ef7fc85 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 16:47:45 +0800 Subject: [PATCH 01/15] 1 --- server/game2006service/constant.js | 26 +++++++++++++++++++++++ server/game2006service/tasks/fragment.js | 27 ++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/server/game2006service/constant.js b/server/game2006service/constant.js index d6d9e9f5..49e025aa 100644 --- a/server/game2006service/constant.js +++ b/server/game2006service/constant.js @@ -1 +1,27 @@ exports.TIME_ZONE = 0; + +exports.NORMAL_HERO_FRAGMENT = [ + 110101, + 110111, + 110121, + 110131, + 110141, + 110151, + 110161, + 110171 +]; + +exports.SPEC_HERO_FRAGMENT = 110181; + +exports.NORMAL_GUN_FRAGMENT = [ + 110201, + 110211, + 110221, + 110231, + 110241, + 110251, + 110261, + 110271 +]; + +exports.SPEC_GUN_FRAGMENT = 110281; diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index b21865f9..d25870cf 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -89,6 +89,33 @@ class Fragment { } async realloc(conn, daySeconds, nowTime, hourSeconds, allocedFragments) { + const totalHeroNum = this.getYesterDayHeroNum(); + const totalGunNum = this.getYesterDayGunNum(); + const hour = Math.floor(hourSeconds / 3600); + + 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 pvpNormalHeroNum = normalHeroNum * 0.6; + const pvpSpecHeroNum = specHeroNum * 0.6; + const pvpNormalGunNum = normalGunNum * 0.6; + const pvpSpecGunNum = specGunNum * 0.6; + + const pveNormalHeroNum = normalHeroNum * 0.4; + const pveSpecHeroNum = specHeroNum * 0.4; + const pveNormalGunNum = normalGunNum * 0.4; + const pveSpecGunNum = specGunNum * 0.4; + + } + + getYesterDayHeroNum() { + return YESTERDAY_HERO_NUM; + } + + getYesterDayGunNum() { + return YESTERDAY_GUN_NUM; } } From e0c8fecb9c6fd5da3291d0aff3cadd224371590c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 16:49:31 +0800 Subject: [PATCH 02/15] 1 --- server/game2006service/tasks/fragment.js | 1 + 1 file changed, 1 insertion(+) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index d25870cf..34fccab2 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -108,6 +108,7 @@ class Fragment { const pveNormalGunNum = normalGunNum * 0.4; const pveSpecGunNum = specGunNum * 0.4; + } getYesterDayHeroNum() { From 30acfe1d23705f3128356cf28a61448b2eb8083a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 16:58:47 +0800 Subject: [PATCH 03/15] 1 --- server/game2006service/tasks/fragment.js | 46 ++++++++++++++++++------ 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 34fccab2..3c7408bc 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -6,6 +6,12 @@ const constant = require('../constant'); const YESTERDAY_HERO_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; + class Fragment { async start() { @@ -98,17 +104,35 @@ class Fragment { const normalGunNum = Math.floor(totalGunNum * 0.06 * 8); const specGunNum = Math.floor(totalGunNum * 0.02); - const pvpNormalHeroNum = normalHeroNum * 0.6; - const pvpSpecHeroNum = specHeroNum * 0.6; - const pvpNormalGunNum = normalGunNum * 0.6; - const pvpSpecGunNum = specGunNum * 0.6; - - const pveNormalHeroNum = normalHeroNum * 0.4; - const pveSpecHeroNum = specHeroNum * 0.4; - const pveNormalGunNum = normalGunNum * 0.4; - const pveSpecGunNum = specGunNum * 0.4; - - + 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', normalHeroNum * PVP_RATIO); + value.set('specHeroNum', specHeroNum * PVP_RATIO); + value.set('normalGunNum', normalGunNum * PVP_RATIO); + value.set('specGunNum', specGunNum * PVP_RATIO); + } + break; + case PVE_TYPE: + { + value.set('normalHeroNum', normalHeroNum * PVE_RATIO); + value.set('specHeroNum', specHeroNum * PVE_RATIO); + value.set('normalGunNum', normalGunNum * PVE_RATIO); + value.set('specGunNum', specGunNum * PVE_RATIO); + } + break; + default: + { + } + break; + } + } + ); } getYesterDayHeroNum() { From ff45399f0148672c3486151de00075630f4ab7a3 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:00:35 +0800 Subject: [PATCH 04/15] 1 --- server/game2006service/tasks/fragment.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 3c7408bc..f7201473 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -112,18 +112,18 @@ class Fragment { switch (key) { case PVP_TYPE: { - value.set('normalHeroNum', normalHeroNum * PVP_RATIO); - value.set('specHeroNum', specHeroNum * PVP_RATIO); - value.set('normalGunNum', normalGunNum * PVP_RATIO); - value.set('specGunNum', specGunNum * PVP_RATIO); + 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)); } break; case PVE_TYPE: { - value.set('normalHeroNum', normalHeroNum * PVE_RATIO); - value.set('specHeroNum', specHeroNum * PVE_RATIO); - value.set('normalGunNum', normalGunNum * PVE_RATIO); - value.set('specGunNum', specGunNum * PVE_RATIO); + 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)); } break; default: @@ -132,7 +132,7 @@ class Fragment { break; } } - ); + );//end forEach } getYesterDayHeroNum() { From 8faaf3030581de1ba0a15a6d393ee6ee93e23826 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:25:30 +0800 Subject: [PATCH 05/15] 1 --- server/game2006service/constant.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/game2006service/constant.js b/server/game2006service/constant.js index 49e025aa..3e17ec37 100644 --- a/server/game2006service/constant.js +++ b/server/game2006service/constant.js @@ -13,6 +13,8 @@ exports.NORMAL_HERO_FRAGMENT = [ exports.SPEC_HERO_FRAGMENT = 110181; +exports.ALL_HERO_FRAGMENT = exports.NORMAL_HERO_FRAGMENT.concat([exports.SPEC_HERO_FRAGMENT]); + exports.NORMAL_GUN_FRAGMENT = [ 110201, 110211, @@ -25,3 +27,5 @@ exports.NORMAL_GUN_FRAGMENT = [ ]; exports.SPEC_GUN_FRAGMENT = 110281; + +exports.ALL_GUN_FRAGMENT = exports.NORMAL_GUN_FRAGMENT.concat([exports.SPEC_GUN_FRAGMENT]); From 049b75a767a16ff2236215dacd60679b708c385d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:26:24 +0800 Subject: [PATCH 06/15] 1 --- server/game2006service/tasks/fragment.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index f7201473..535c09e1 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -70,12 +70,12 @@ class Fragment { return; } const allocedFragments = new Map(); - allocedFragments.set(0, new Map()); - allocedFragments.set(1, new Map()); + allocedFragments.set(PVP_TYPE, new Map()); + allocedFragments.set(PVE_TYPE, new Map()); rows.forEach( (element) => { - if (element['type'] == 0 || - element['type'] == 1) { + if (element['type'] == PVP_TYPE || + element['type'] == PVE_TYPE) { const data = allocedFragments.get(element['type']); if (data) { const num = Math.max(0, element['alloc_num'] - element['fragment_num']); From ede20b711c685cfe1a81bdbbb77a6e2b1d9d56a8 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:32:22 +0800 Subject: [PATCH 07/15] 1 --- server/game2006service/tasks/fragment.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 535c09e1..ff6f144d 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -98,6 +98,7 @@ class Fragment { const totalHeroNum = this.getYesterDayHeroNum(); const totalGunNum = this.getYesterDayGunNum(); const hour = Math.floor(hourSeconds / 3600); + const remainHour = Math.min(24, Math.max(0, 24 - hour)); const normalHeroNum = Math.floor(totalHeroNum * 0.06 * 8); const specHeroNum = Math.floor(totalHeroNum * 0.02); @@ -128,9 +129,20 @@ class Fragment { break; default: { + return; } break; - } + }//end switch + constant.ALL_HERO_FRAGMENT.forEach( + (element) => { + if (element == constant.SPEC_HERO_FRAGMENT) { + + } else { + + } + } + ); + } );//end forEach } From 985038a3f18177c70e8d9176dddcb415d057b165 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:32:43 +0800 Subject: [PATCH 08/15] 1 --- server/game2006service/tasks/fragment.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index ff6f144d..dd2645b0 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -98,7 +98,7 @@ class Fragment { const totalHeroNum = this.getYesterDayHeroNum(); const totalGunNum = this.getYesterDayGunNum(); const hour = Math.floor(hourSeconds / 3600); - const remainHour = Math.min(24, Math.max(0, 24 - hour)); + const remainHour = Math.min(24, Math.max(1, 24 - hour)); const normalHeroNum = Math.floor(totalHeroNum * 0.06 * 8); const specHeroNum = Math.floor(totalHeroNum * 0.02); From 1cc53378473319fa74cc6603059a53f7166b77da Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:39:07 +0800 Subject: [PATCH 09/15] 1 --- server/game2006service/tasks/fragment.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index dd2645b0..3ff489e9 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -133,12 +133,23 @@ class Fragment { } 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 = Math.floor(value.get('specHeroNum') / remainHour); + 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') / remainHour); + if (allocedNum) { + remainNum = Math.max(0, remainNum - allocedNum); + } + value.set(element, remainNum); } } ); From 86e219d1a6de759a5f4098bca7bfd272412d2d8f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:41:41 +0800 Subject: [PATCH 10/15] 1 --- server/game2006service/tasks/fragment.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 3ff489e9..41545e51 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -152,7 +152,27 @@ class Fragment { 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 = Math.floor(value.get('specGunNum') / remainHour); + if (allocedNum) { + remainNum = Math.max(0, remainNum - allocedNum); + } + value.set(element, remainNum); + } else { + const allocedNum = data.get(element); + let remainNum = Math.floor(value.get('normalGunNum') / remainHour); + if (allocedNum) { + remainNum = Math.max(0, remainNum - allocedNum); + } + value.set(element, remainNum); + } + } + );//end forEach } );//end forEach From 59b262fc3af0d2b9042b78f5a284505ca94c9e7f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:42:40 +0800 Subject: [PATCH 11/15] 1 --- server/game2006service/tasks/fragment.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 41545e51..003d6d92 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -12,6 +12,8 @@ const PVE_TYPE = 1; const PVP_RATIO = 0.6; const PVE_RATIO = 0.4; +const ITEM_PRE = 'item_'; + class Fragment { async start() { @@ -162,14 +164,14 @@ class Fragment { if (allocedNum) { remainNum = Math.max(0, remainNum - allocedNum); } - value.set(element, remainNum); + value.set(ITEM_PRE + element, remainNum); } else { const allocedNum = data.get(element); let remainNum = Math.floor(value.get('normalGunNum') / remainHour); if (allocedNum) { remainNum = Math.max(0, remainNum - allocedNum); } - value.set(element, remainNum); + value.set(ITEM_PRE + element, remainNum); } } );//end forEach From a4e3308d8be734aaf1c152b60d84a84bccad634a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:44:18 +0800 Subject: [PATCH 12/15] 1 --- server/game2006service/tasks/fragment.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 003d6d92..0e7c9144 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -140,14 +140,14 @@ class Fragment { (element) => { if (element == constant.SPEC_HERO_FRAGMENT) { const allocedNum = data.get(element); - let remainNum = Math.floor(value.get('specHeroNum') / remainHour); + 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') / remainHour); + let remainNum = value.get('normalHeroNum'); if (allocedNum) { remainNum = Math.max(0, remainNum - allocedNum); } @@ -160,14 +160,14 @@ class Fragment { (element) => { if (element == constant.SPEC_GUN_FRAGMENT) { const allocedNum = data.get(element); - let remainNum = Math.floor(value.get('specGunNum') / remainHour); + 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') / remainHour); + let remainNum = value.get('normalGunNum'); if (allocedNum) { remainNum = Math.max(0, remainNum - allocedNum); } From 80ef56d29351a576f2766d2d4fdf536d9d33b295 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:47:26 +0800 Subject: [PATCH 13/15] 1 --- server/game2006service/tasks/fragment.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 0e7c9144..d0f0bbc5 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -97,6 +97,10 @@ class Fragment { } async realloc(conn, daySeconds, nowTime, hourSeconds, allocedFragments) { + const remainData = this.getRemainData(daySeconds, nowTime, hourSeconds, allocedFragments); + } + + async getRemainData(daySeconds, nowTime, hourSeconds, allocedFragments) { const totalHeroNum = this.getYesterDayHeroNum(); const totalGunNum = this.getYesterDayGunNum(); const hour = Math.floor(hourSeconds / 3600); @@ -178,6 +182,7 @@ class Fragment { } );//end forEach + return remainData; } getYesterDayHeroNum() { From b70deccc63512b77e2c7a2c958073b9ff292f4f2 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 17:48:32 +0800 Subject: [PATCH 14/15] 1 --- server/game2006service/tasks/fragment.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index d0f0bbc5..b6330d72 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -97,14 +97,15 @@ class Fragment { } 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 hour = Math.floor(hourSeconds / 3600); - const remainHour = Math.min(24, Math.max(1, 24 - hour)); const normalHeroNum = Math.floor(totalHeroNum * 0.06 * 8); const specHeroNum = Math.floor(totalHeroNum * 0.02); From 14a3cd685638c3ac5f1405b2a23e8848f88841a5 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 18:02:50 +0800 Subject: [PATCH 15/15] 1 --- server/game2006service/tasks/fragment.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index b6330d72..b3bc5cea 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -124,6 +124,8 @@ class Fragment { 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: @@ -132,6 +134,8 @@ class Fragment { 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: @@ -152,7 +156,7 @@ class Fragment { value.set(element, remainNum); } else { const allocedNum = data.get(element); - let remainNum = value.get('normalHeroNum'); + let remainNum = Math.floor(value.get('normalHeroNum') / 8); if (allocedNum) { remainNum = Math.max(0, remainNum - allocedNum); } @@ -172,7 +176,7 @@ class Fragment { value.set(ITEM_PRE + element, remainNum); } else { const allocedNum = data.get(element); - let remainNum = value.get('normalGunNum'); + let remainNum = Math.floor(value.get('normalGunNum') / 8); if (allocedNum) { remainNum = Math.max(0, remainNum - allocedNum); } @@ -183,6 +187,7 @@ class Fragment { } );//end forEach + return remainData; }