From 99073e4372c137731d598601239edd58fbeb3712 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 11:37:04 +0800 Subject: [PATCH 01/14] 1 --- server/game2006service/tasks/fragment.js | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 server/game2006service/tasks/fragment.js diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js new file mode 100644 index 00000000..d9c16592 --- /dev/null +++ b/server/game2006service/tasks/fragment.js @@ -0,0 +1,5 @@ +class Fragment { + +} + +module.exports = Fragment; From efd3fea4d8d1445d0ab00192816e2e6d9c1eacba Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 14:41:30 +0800 Subject: [PATCH 02/14] 1 --- server/game2006service/tasks/factory.js | 9 ++++++++- server/game2006service/tasks/fragment.js | 22 +++++++++++++++++++++- sql/gamedb.sql | 3 ++- third_party/j7 | 2 +- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/server/game2006service/tasks/factory.js b/server/game2006service/tasks/factory.js index adf60be2..65dc0b4b 100644 --- a/server/game2006service/tasks/factory.js +++ b/server/game2006service/tasks/factory.js @@ -1,5 +1,12 @@ -function init() { +const tasks = {}; +function add(name) { + tasks[name] = require(`./${name}`); + tasks[name].init(); +} + +function init() { + add('fragment'); } exports.init = init; diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index d9c16592..5284aeb7 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -1,5 +1,25 @@ +const app = require('j7/app'); +const utils = require('j7/utils'); + +const YESTERDAY_HERO_NUM = 1000; +const YESTERDAY_GUN_NUM = 1000; + class Fragment { + async start() { + while (true) { + const nowTime = utils.getUtcTime(); + } + } + + async alloc() { + + } + } -module.exports = Fragment; +function init() { + (new Fragment()).start(); +} + +exports.init = init; diff --git a/sql/gamedb.sql b/sql/gamedb.sql index 52fe301a..0840343e 100644 --- a/sql/gamedb.sql +++ b/sql/gamedb.sql @@ -611,7 +611,8 @@ CREATE TABLE `t_fragment_pool` ( `idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id', `fragment_id` int(11) NOT NULL DEFAULT '0' COMMENT '碎片id', `fragment_type` int(11) NOT NULL DEFAULT '0' COMMENT '碎片类型 0:英雄 1:武器', - `fragment_num` int(11) NOT NULL DEFAULT '0' COMMENT '碎片数量', + `fragment_num` int(11) NOT NULL DEFAULT '0' COMMENT '剩余碎片数量', + `alloc_num` int(11) NOT NULL DEFAULT '0' COMMENT '分配的碎片数量', `alloc_time` int(11) NOT NULL DEFAULT '0' COMMENT '分配时间', `createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间', diff --git a/third_party/j7 b/third_party/j7 index 60793c7b..6a6a58c9 160000 --- a/third_party/j7 +++ b/third_party/j7 @@ -1 +1 @@ -Subproject commit 60793c7b53c719d4b50482a88d25b2b18aa51069 +Subproject commit 6a6a58c94497cc008ca467942f99576e1385d9ad From 2c88d816e4701331bfde64f9a17fa914f8df525d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 14:43:56 +0800 Subject: [PATCH 03/14] 1 --- server/game2006service/constant.js | 1 + server/game2006service/tasks/fragment.js | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/server/game2006service/constant.js b/server/game2006service/constant.js index e69de29b..d6d9e9f5 100644 --- a/server/game2006service/constant.js +++ b/server/game2006service/constant.js @@ -0,0 +1 @@ +exports.TIME_ZONE = 0; diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 5284aeb7..f18c3033 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -1,6 +1,8 @@ const app = require('j7/app'); const utils = require('j7/utils'); +const constant = require('../constant'); + const YESTERDAY_HERO_NUM = 1000; const YESTERDAY_GUN_NUM = 1000; @@ -9,6 +11,8 @@ class Fragment { async start() { while (true) { const nowTime = utils.getUtcTime(); + const daySeconds = utils.getDaySeconds(nowTime, constant.TIME_ZONE); + const hourSeconds = utils.getHourSeconds(nowTime, constant.TIME_ZONE); } } From e7124714ae50344807720aefc53c5925fbf36a13 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 15:03:58 +0800 Subject: [PATCH 04/14] 1 --- server/game2006service/tasks/fragment.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index f18c3033..b4d55f67 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -13,10 +13,12 @@ class Fragment { const nowTime = utils.getUtcTime(); const daySeconds = utils.getDaySeconds(nowTime, constant.TIME_ZONE); const hourSeconds = utils.getHourSeconds(nowTime, constant.TIME_ZONE); + let sleepTime = 3600 + 10; + await utils.sleep(sleepTime * 1000); } } - async alloc() { + async alloc(nowTime) { } From 4e4b3e5359a262ced25645c9729745e13e497934 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 15:05:51 +0800 Subject: [PATCH 05/14] 1 --- server/game2006service/tasks/fragment.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index b4d55f67..60fc2b49 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -10,16 +10,24 @@ class Fragment { async start() { while (true) { + await this.alloc(utils.getUtcTime()); + const nowTime = utils.getUtcTime(); const daySeconds = utils.getDaySeconds(nowTime, constant.TIME_ZONE); const hourSeconds = utils.getHourSeconds(nowTime, constant.TIME_ZONE); - let sleepTime = 3600 + 10; + const sleepTime = 3600 + 10; await utils.sleep(sleepTime * 1000); } } async alloc(nowTime) { + try { + const daySeconds = utils.getDaySeconds(nowTime, constant.TIME_ZONE); + const hourSeconds = utils.getHourSeconds(nowTime, constant.TIME_ZONE); + } catch (err) { + + } } } From 8c912dd1857f43e2daae5d039fe9168a1132a301 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 15:44:32 +0800 Subject: [PATCH 06/14] 1 --- server/game2006service/tasks/fragment.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 60fc2b49..217d5803 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -24,7 +24,10 @@ class Fragment { try { const daySeconds = utils.getDaySeconds(nowTime, constant.TIME_ZONE); const hourSeconds = utils.getHourSeconds(nowTime, constant.TIME_ZONE); - + const {err, conn} = await app.getDbConn("GameDb1"); + if (!err && conn) { + const {err, rows} = await conn.execQuery(); + } } catch (err) { } From 7aa8729bbe07eb2757d92c51507d68721dce826d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 15:54:14 +0800 Subject: [PATCH 07/14] 1 --- server/game2006service/tasks/fragment.js | 17 ++++++++++++++++- sql/gamedb.sql | 3 ++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 217d5803..29115650 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -26,13 +26,28 @@ class Fragment { const hourSeconds = utils.getHourSeconds(nowTime, constant.TIME_ZONE); const {err, conn} = await app.getDbConn("GameDb1"); if (!err && conn) { - const {err, rows} = await conn.execQuery(); + const allocedFragments = await this.fetchAllocedFragments(conn); } } catch (err) { } } + async fetchAllocedFragments(conn) { + const {err, rows} = await conn.execQuery( + 'SELECT * FROM t_fragment_pool WHERE alloc_time >= ? AND alloc_time <= ?', + [ + + ] + ); + if (err) { + throw err; + return; + } + const allocedFragments = {}; + + } + } function init() { diff --git a/sql/gamedb.sql b/sql/gamedb.sql index 0840343e..ebb1cbae 100644 --- a/sql/gamedb.sql +++ b/sql/gamedb.sql @@ -610,6 +610,7 @@ DROP TABLE IF EXISTS `t_fragment_pool`; CREATE TABLE `t_fragment_pool` ( `idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id', `fragment_id` int(11) NOT NULL DEFAULT '0' COMMENT '碎片id', + `type` int(11) NOT NULL DEFAULT '0' COMMENT '0:pvp 1:pve', `fragment_type` int(11) NOT NULL DEFAULT '0' COMMENT '碎片类型 0:英雄 1:武器', `fragment_num` int(11) NOT NULL DEFAULT '0' COMMENT '剩余碎片数量', `alloc_num` int(11) NOT NULL DEFAULT '0' COMMENT '分配的碎片数量', @@ -617,7 +618,7 @@ CREATE TABLE `t_fragment_pool` ( `createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`idx`), - KEY `alloc_time_fragment_type` (`alloc_time`, `fragment_type`) + KEY `alloc_time_type_fragment_type` (`alloc_time`, `type`, `fragment_type`) ) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; /*!40101 SET character_set_client = @saved_cs_client */; From aed93cef4ff39fa512b38608ff1e65ca9357c2fc Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 15:55:07 +0800 Subject: [PATCH 08/14] 1 --- server/game2006service/tasks/fragment.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 29115650..dcaf01e7 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -26,18 +26,18 @@ class Fragment { const hourSeconds = utils.getHourSeconds(nowTime, constant.TIME_ZONE); const {err, conn} = await app.getDbConn("GameDb1"); if (!err && conn) { - const allocedFragments = await this.fetchAllocedFragments(conn); + const allocedFragments = await this.fetchAllocedFragments(conn, daySeconds); } } catch (err) { } } - async fetchAllocedFragments(conn) { + async fetchAllocedFragments(conn, daySeconds) { const {err, rows} = await conn.execQuery( 'SELECT * FROM t_fragment_pool WHERE alloc_time >= ? AND alloc_time <= ?', [ - + daySeconds ] ); if (err) { From 24752d36d6471ffb806acbcdc859f4ad43f8160d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 15:57:47 +0800 Subject: [PATCH 09/14] 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 dcaf01e7..e0d030c2 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -33,11 +33,12 @@ class Fragment { } } - async fetchAllocedFragments(conn, daySeconds) { + async fetchAllocedFragments(conn, daySeconds, nowTime) { const {err, rows} = await conn.execQuery( 'SELECT * FROM t_fragment_pool WHERE alloc_time >= ? AND alloc_time <= ?', [ - daySeconds + daySeconds, + nowTime ] ); if (err) { From 2e529a9183902f51b77f57aae32dd7870f13237d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 15:59:01 +0800 Subject: [PATCH 10/14] 1 --- server/game2006service/tasks/fragment.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index e0d030c2..55edcd44 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -46,7 +46,11 @@ class Fragment { return; } const allocedFragments = {}; + rows.forEach( + (element) => { + } + ); } } From 236f37c699a0cdee4409bbf3de2d0704d5945fb1 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 16:13:39 +0800 Subject: [PATCH 11/14] 1 --- server/game2006service/tasks/fragment.js | 21 +++++++++++++++++++-- webapp/models/Gun.php | 5 +++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 55edcd44..1890a9e3 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -45,12 +45,29 @@ class Fragment { throw err; return; } - const allocedFragments = {}; + const allocedFragments = new Map(); + allocedFragments.set(0, new Map()); + allocedFragments.set(1, new Map()); rows.forEach( (element) => { - + if (element['type'] == 0 || + element['type'] == 1) { + const data = allocedFragments.get(element['type']); + if (data) { + const num = Math.max(0, element['alloc_num'] - element['fragment_num']); + if (!data.has(element['fragment_id'])) { + data.set(element['fragment_id'], { + 'fragment_id' : element['fragment_id'], + 'num' : num + }); + } else { + data.get(element['fragment_id'])['num'] += num + } + } + } } ); + return allocedFragments; } } diff --git a/webapp/models/Gun.php b/webapp/models/Gun.php index e2013850..218197f3 100644 --- a/webapp/models/Gun.php +++ b/webapp/models/Gun.php @@ -485,4 +485,9 @@ class Gun extends BaseModel { return $newAttrPro; } + public static function calcPveGainGold($gunDto, $count) + { + return 0; + } + } From caf65b89a298326859c4175ee7903fef196c5fb3 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 16:18:28 +0800 Subject: [PATCH 12/14] 1 --- server/game2006service/tasks/fragment.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 1890a9e3..57a3dab5 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -26,13 +26,30 @@ class Fragment { const hourSeconds = utils.getHourSeconds(nowTime, constant.TIME_ZONE); const {err, conn} = await app.getDbConn("GameDb1"); if (!err && conn) { - const allocedFragments = await this.fetchAllocedFragments(conn, daySeconds); + const isAlloced = await this.isAlloced(conn, daySeconds, nowTime, hourSeconds); + if (!isAlloced) { + const allocedFragments = await this.fetchAllocedFragments(conn, daySeconds, nowTime); + } } } catch (err) { } } + async isAlloced(conn, daySeconds, nowTime, hourSeconds) { + const {err, row} = await conn.execQueryOne( + 'SELECT * FROM t_fragment_pool WHERE alloc_time = ?', + [ + daySeconds + hourSeconds + ] + ); + if (err) { + throw err; + return true; + } + return true; + } + async fetchAllocedFragments(conn, daySeconds, nowTime) { const {err, rows} = await conn.execQuery( 'SELECT * FROM t_fragment_pool WHERE alloc_time >= ? AND alloc_time <= ?', From 92cd2b3e07d3f46839d6be09d6626fd43ebf2595 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 16:19:12 +0800 Subject: [PATCH 13/14] 1 --- server/game2006service/tasks/fragment.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index 57a3dab5..ae24e1dd 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -32,7 +32,7 @@ class Fragment { } } } catch (err) { - + console.log(err); } } @@ -47,7 +47,7 @@ class Fragment { throw err; return true; } - return true; + return row ? true : false; } async fetchAllocedFragments(conn, daySeconds, nowTime) { From ed59fce738f86cab1a7a4e4bf3910d98513d6e5e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Sep 2022 16:21:10 +0800 Subject: [PATCH 14/14] 1 --- server/game2006service/tasks/fragment.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/game2006service/tasks/fragment.js b/server/game2006service/tasks/fragment.js index ae24e1dd..b21865f9 100644 --- a/server/game2006service/tasks/fragment.js +++ b/server/game2006service/tasks/fragment.js @@ -29,6 +29,7 @@ class Fragment { const isAlloced = await this.isAlloced(conn, daySeconds, nowTime, hourSeconds); if (!isAlloced) { const allocedFragments = await this.fetchAllocedFragments(conn, daySeconds, nowTime); + await this.realloc(conn, daySeconds, nowTime, allowedVersions); } } } catch (err) { @@ -87,6 +88,9 @@ class Fragment { return allocedFragments; } + async realloc(conn, daySeconds, nowTime, hourSeconds, allocedFragments) { + } + } function init() {