From 4a0a1959e5afc699da4282f3fa058d950992fac4 Mon Sep 17 00:00:00 2001 From: zhl Date: Fri, 15 Jan 2021 17:49:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8C=B9=E9=85=8D=E5=88=86?= =?UTF-8?q?=E7=9A=84=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/effectcard_tbl.json | 2 +- config/formula_tbl.json | 2 +- config/hero_tbl.json | 2 +- config/skill_tbl.json | 2 +- docs/api.md | 4 +- package-lock.json | 38 +++++++++++++++ src/cfg/parsers/FormulaCfg.ts | 33 +++++++++++++ src/cfg/parsers/HeroCfg.ts | 2 + src/common/GConfig.ts | 2 + src/constants/BaseConst.ts | 1 + src/controllers/AccountController.ts | 7 ++- src/controllers/RecordController.ts | 70 +++++++++++++++++++++------- src/models/GameRecord.ts | 8 ++-- src/models/User.ts | 55 ++++++++++++++++++++-- src/utils/time.util.ts | 9 ++++ 15 files changed, 208 insertions(+), 29 deletions(-) create mode 100644 src/cfg/parsers/FormulaCfg.ts create mode 100644 src/utils/time.util.ts diff --git a/config/effectcard_tbl.json b/config/effectcard_tbl.json index 4f59695..cd5d3dd 100644 --- a/config/effectcard_tbl.json +++ b/config/effectcard_tbl.json @@ -1 +1 @@ -[{"id":20012,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41075,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20022,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41062,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20032,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41064,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20042,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41065,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20052,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41067,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20062,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41069,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20072,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41071,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20082,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41072,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20092,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41076,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20102,"type_id":11,"count":100,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":0,"followdouble":0},{"id":20112,"type_id":3,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":0,"followdouble":0},{"id":20122,"type_id":4,"count":8,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":0,"followdouble":0},{"id":20132,"type_id":5,"count":0,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":0,"followdouble":0},{"id":20202,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51012,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20212,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51022,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20222,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51032,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20232,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51042,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20242,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51052,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20252,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51062,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20262,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51072,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20272,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51082,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20282,"type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41073,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20292,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51092,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20302,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51102,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20312,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51112,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20322,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51122,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20332,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51132,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20342,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51142,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20352,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51152,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20362,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51162,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20372,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51172,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20382,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51182,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20392,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51192,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20402,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51202,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20412,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51212,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20422,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51222,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20432,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51232,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20442,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51242,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20462,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51262,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20472,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51272,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20482,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51282,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20492,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51292,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20502,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51302,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20512,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51312,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20522,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51322,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20532,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51332,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20552,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51352,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20572,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51372,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20582,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51382,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20592,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51392,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20602,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51402,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20612,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51412,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20452,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51252,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20542,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51342,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20562,"type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51362,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1}] \ No newline at end of file +[{"id":20012,"org_gift":"1","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41075,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20022,"org_gift":"0","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41062,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20032,"org_gift":"1","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41064,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20042,"org_gift":"1","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41065,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20052,"org_gift":"1","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41067,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20062,"org_gift":"1","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41069,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20072,"org_gift":"1","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41071,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20082,"org_gift":"1","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41072,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20092,"org_gift":"0","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41076,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20102,"org_gift":"1","type_id":11,"count":100,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":0,"followdouble":0},{"id":20112,"org_gift":"1","type_id":3,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":0,"followdouble":0},{"id":20122,"org_gift":"1","type_id":4,"count":8,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":0,"followdouble":0},{"id":20132,"org_gift":"0","type_id":5,"count":0,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":0,"followdouble":0},{"id":20202,"org_gift":"1","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51012,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20212,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51022,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20222,"org_gift":"1","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51032,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20232,"org_gift":"1","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51042,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20242,"org_gift":"1","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51052,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20252,"org_gift":"1","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51062,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20262,"org_gift":"1","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51072,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20272,"org_gift":"1","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51082,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20282,"org_gift":"","type_id":2,"count":20,"weight":0,"affix1id":0,"affix2id":0,"stageunit_id":0,"quoteskill1id":41073,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20292,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51092,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20302,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51102,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20312,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51112,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20322,"org_gift":"1","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51122,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20332,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51132,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20342,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51142,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20352,"org_gift":"1","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51152,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20362,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51162,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20372,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51172,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20382,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51182,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20392,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51192,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20402,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51202,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20412,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51212,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20422,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51222,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20432,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51232,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20442,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51242,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20462,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51262,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20472,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51272,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20482,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51282,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20492,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51292,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20502,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51302,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20512,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51312,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20522,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51322,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20532,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51332,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20552,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51352,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20572,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51372,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20582,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51382,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20592,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51392,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20602,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51402,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20612,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51412,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20452,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51252,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20542,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51342,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1},{"id":20562,"org_gift":"","type_id":1,"count":0,"weight":100,"affix1id":0,"affix2id":0,"stageunit_id":51362,"quoteskill1id":0,"quoteskill2id":0,"quoteskill3id":0,"quoteskill4id":0,"followeddeff":1,"followdouble":1}] \ No newline at end of file diff --git a/config/formula_tbl.json b/config/formula_tbl.json index c5961df..ec4da09 100644 --- a/config/formula_tbl.json +++ b/config/formula_tbl.json @@ -1 +1 @@ -[{"id":70001,"name":"天梯分","code":"cp","number":0,"numtypeid":4,"prerequisite1id":0,"prerequisite2id":0,"":"新cp=旧cp+cp_chg1-cp_chg2+cp_chg3-cp_chg4"},{"id":70002,"name":"最小天梯分","code":"ll_cp","number":600,"numtypeid":2,"prerequisite1id":0,"prerequisite2id":0,"":"cp>=ll_cp"},{"id":70003,"name":"原始天梯分","code":"or_cp","number":1000,"numtypeid":2,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70004,"name":"玩家所在队伍天梯总分","code":"team_cp","number":0,"numtypeid":5,"prerequisite1id":0,"prerequisite2id":0,"":"team_cp=玩家cp+队友cp"},{"id":70005,"name":"玩家敌对队伍天梯总分","code":"eteam_cp","number":0,"numtypeid":5,"prerequisite1id":0,"prerequisite2id":0,"":"eteam_cp=敌玩家1cp+敌玩家2cp"},{"id":70006,"name":"队伍分高胜利天梯分增加","code":"cp_chg1","number":0,"numtypeid":6,"prerequisite1id":3,"prerequisite2id":1,"":"100/(1+10^((team_cp-eteam_cp)/2500))"},{"id":70007,"name":"队伍分高失败天梯分减少","code":"cp_chg2","number":0,"numtypeid":6,"prerequisite1id":3,"prerequisite2id":2,"":"80-80/(1+10^((team_cp-eteam_cp)/2500))"},{"id":70008,"name":"队伍分低胜利天梯分增加","code":"cp_chg3","number":0,"numtypeid":6,"prerequisite1id":4,"prerequisite2id":1,"":"100-100/(1+10^((eteam_cp-team_cp)/2500))"},{"id":70009,"name":"队伍分低失败天梯分减少","code":"cp_chg4","number":0,"numtypeid":6,"prerequisite1id":4,"prerequisite2id":2,"":"80/(1+10^((eteam_cp-team_cp)/2500))"},{"id":70010,"name":"赛季重置后天梯分","code":"recp","number":0,"numtypeid":4,"prerequisite1id":5,"prerequisite2id":0,"":"recp=1000+(cp-1000)*30%"},{"id":70011,"name":"十场胜率","code":"twp","number":0,"numtypeid":4,"prerequisite1id":0,"prerequisite2id":0,"":"twp=ten_wp*ten_wn-ten_lp*ten_ln-ten_ap*ten_an"},{"id":70012,"name":"原始十场胜率","code":"or_twp","number":50,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70013,"name":"十场获胜数","code":"ten_wp","number":0,"numtypeid":5,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70014,"name":"十场失败数","code":"ten_lp","number":0,"numtypeid":5,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70015,"name":"十场未打数","code":"ten_ap","number":0,"numtypeid":5,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70016,"name":"十场获胜系数","code":"ten_wn","number":10,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70017,"name":"十场失败系数","code":"ten_ln","number":0,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70018,"name":"十场未打系数","code":"ten_an","number":2,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70019,"name":"匹配分","code":"mp","number":0,"numtypeid":4,"prerequisite1id":0,"prerequisite2id":0,"":"mp=bm_mp+cp*(bm_twp+twp)"},{"id":70020,"name":"基准胜率","code":"bm_twp","number":50,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70021,"name":"基准匹配分","code":"bm_mp","number":1000,"numtypeid":2,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70022,"name":"房间平均分","code":"room_mp","number":0,"numtypeid":5,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70023,"name":"组队匹配时间","code":"ranktime","number":6,"numtypeid":6,"prerequisite1id":6,"prerequisite2id":0,"":"ranktime=6秒"},{"id":70024,"name":"同分匹配时间","code":"fairtime","number":6,"numtypeid":7,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70025,"name":"跨分匹配时间","code":"steptime","number":6,"numtypeid":7,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70026,"name":"新增匹配时间","code":"addtime","number":3,"numtypeid":7,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70027,"name":"组队成员匹配分","code":"rank_mp","number":0,"numtypeid":4,"prerequisite1id":0,"prerequisite2id":0,"":"rank_mp=rank_mpa*(100%+mp)"},{"id":70028,"name":"组队成员匹配分增值幅度","code":"rank_mpa","number":20,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70029,"name":"同分高于平均分幅度","code":"fair_ir","number":20,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70030,"name":"同分低于平均分幅度","code":"fair_dr","number":20,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70031,"name":"跨分高于平均分幅度","code":"step_ir","number":35,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70032,"name":"跨分高于平均分幅度","code":"step_dr","number":35,"numtypeid":3,"prerequisite1id":0,"prerequisite2id":0,"":""},{"id":70033,"name":"电脑默认天梯分","code":"aicp","number":0,"numtypeid":4,"prerequisite1id":0,"prerequisite2id":0,"":"其他玩家天梯平均分*aicp_ll= 10) { + records.pop(); + } + let smallTime = timeBeforeDay(30); + for (let r of records) { + if (r.time < smallTime) { + records.remove(r); + } + } + await user.save(); } + return {}; + } } diff --git a/src/models/GameRecord.ts b/src/models/GameRecord.ts index 42ba154..8a6fc52 100644 --- a/src/models/GameRecord.ts +++ b/src/models/GameRecord.ts @@ -10,7 +10,9 @@ import {Base, TimeStamps} from "@typegoose/typegoose/lib/defaultClasses"; interface GameRecordClass extends TimeStamps { } - +@modelOptions({ + options: {allowMixed: Severity.ALLOW} +}) class GamePlayer { @prop() public playerid: string; @@ -24,10 +26,10 @@ class GamePlayer { public heroid: number; @prop() public cardgroup: string; - @prop() + @prop({ type: () => [Number] }) public cards: [number]; @prop({type: mongoose.Schema.Types.Mixed}) - public statdata: any; + public statdata: NewableFunction; } /** * 对战记录 diff --git a/src/models/User.ts b/src/models/User.ts index d7bbbfa..bd31e7e 100644 --- a/src/models/User.ts +++ b/src/models/User.ts @@ -4,7 +4,7 @@ import { modelOptions, index, plugin, - mongoose + mongoose, Severity } from '@typegoose/typegoose'; import {dbconn} from '../decorators/dbconn'; // @ts-ignore @@ -18,13 +18,27 @@ import {Card} from "./subdoc/Card"; import {Hero} from "./subdoc/Hero"; import {ZError} from "../common/ZError"; import {MoneyTypeConst} from "../constants/MoneyTypeConst"; +import {timeBeforeDay} from "../utils/time.util"; +import {BaseConst} from "../constants/BaseConst"; + +export class RecordInfo { + @prop() + public time: number; + /** + * 游戏结果 + * @type {number} 1: 平局, 2: 赢 0:输 + */ + @prop() + public status: number; +} interface AccountClass extends Base, TimeStamps {} @dbconn() // @index({ _id: 1}, { unique: true }) @plugin(findOrCreate) @modelOptions({schemaOptions: - {collection: "account", timestamps: true} + {collection: "account", timestamps: true}, + options: {allowMixed: Severity.ALLOW} }) class UserClass extends FindOrCreate{ @prop() @@ -73,11 +87,17 @@ class UserClass extends FindOrCreate{ */ @prop({type: Number, default: [0,0,0,0]}) public season_stat: number[]; + /** + * 一个月内10场记录 + * @type {RecordInfo[]} + */ + @prop({_id: false, type: () => [RecordInfo]}) + public season_records: RecordInfo[]; /** * 当前赛季排位分 */ - @prop({type: Number, default: 1000}) + @prop({type: Number, default: -1}) public season_score: number; /** * 所有未定义的信息, 供扩展 @@ -91,6 +111,35 @@ class UserClass extends FindOrCreate{ } } + /** + * 获取匹配分 + * @return {number} + */ + public getMatchScore() { + //twp=ten_wp*ten_wn-ten_lp*ten_ln-ten_ap*ten_an + const fc = global.$cfg.get(BaseConst.FORMULA); + let smallTime = timeBeforeDay(30); + let records = this.season_records || []; + for (let r of records) { + if (r.time < smallTime) { + records.remove(r); + } + } + let win = 0; + let lost = 0; + let total = records.length; + for(let record of records) { + if (record.status == 2) { + win ++; + } else if (record.status == 0) { + lost ++; + } + } + let twp = win * fc.get(70016).number / 100 - lost * fc.get(70017).number / 100 - (10 - total) * fc.get(70018).number / 100; + // mp=bm_mp+cp*(bm_twp+twp) + return fc.get(70021).number + this.season_score * (fc.get(70020).number / 100 + twp); + } + public async unlockHero(heroid: number, useMoney: boolean) { if (this.heros.has(heroid + '')) { if (!this.heros.get(heroid + '').trial) { diff --git a/src/utils/time.util.ts b/src/utils/time.util.ts new file mode 100644 index 0000000..e763e85 --- /dev/null +++ b/src/utils/time.util.ts @@ -0,0 +1,9 @@ +/** + * 获取n天前的time + * @param {number} day + * @return {number} + */ +export function timeBeforeDay(day: number): number { + let time = Date.now(); + return time - day * 1000 * 24 * 24; +}