diff --git a/game-server/app/pubUtils b/game-server/app/pubUtils new file mode 120000 index 000000000..a3f89e4da --- /dev/null +++ b/game-server/app/pubUtils @@ -0,0 +1 @@ +/Users/bantu/zyz_server/shared/pubUtils \ No newline at end of file diff --git a/game-server/app/servers/battle/handler/dailyBattleHandler.ts b/game-server/app/servers/battle/handler/dailyBattleHandler.ts index 68bcde0c9..1aae4e8cb 100644 --- a/game-server/app/servers/battle/handler/dailyBattleHandler.ts +++ b/game-server/app/servers/battle/handler/dailyBattleHandler.ts @@ -1,7 +1,7 @@ import { Application, BackendSession } from 'pinus'; import { DailyRecordModel } from '../../../db/DailyRecord'; import { BattleRecordModel } from '../../../db/BattleRecord'; -import { getGamedata } from '../../../util/gamedata'; +import { getGamedata } from '../../../pubUtils/gamedata'; import { WAR_TYPE } from '../../../consts/consts'; export default function(app: Application) { diff --git a/game-server/app/servers/battle/handler/eventBattleHandler.ts b/game-server/app/servers/battle/handler/eventBattleHandler.ts index 36c639ca8..c86e649b1 100644 --- a/game-server/app/servers/battle/handler/eventBattleHandler.ts +++ b/game-server/app/servers/battle/handler/eventBattleHandler.ts @@ -1,5 +1,5 @@ import { Application, BackendSession } from 'pinus'; -import { getGamedata } from '../../../util/gamedata'; +import { getGamedata } from '../../../pubUtils/gamedata'; import EventRecord, { EventRecordModel } from '../../../db/EventRecord'; import { RoleModel } from '../../../db/Role'; import { EVENT_STATUS, EVENT_RECORD_STATUS } from '../../../consts/consts'; diff --git a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts index 4315981cd..e5f6f77d1 100644 --- a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts +++ b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts @@ -1,11 +1,11 @@ import { Application, BackendSession } from 'pinus'; -import { getGamedata, getWarById } from '../../../util/gamedata'; +import { getGamedata, getWarById } from '../../../pubUtils/gamedata'; import { BattleRecordModel } from '../../../db/BattleRecord'; import { ExpeditionRecordModel } from '../../../db/ExpeditionRecord'; import { ExpeditionWarRecordModel } from '../../../db/ExpeditionWarRecord'; import { ExpeditionPointModel } from '../../../db/ExpeditionPoint'; import { RoleModel } from '../../../db/Role'; -import { calculateSumCE, genCode } from '../../../util/util'; +import { calculateSumCE, genCode } from '../../../pubUtils/util'; import { matchPlayers, matchRobots, getPointRewardStatus, getCEScaleAndRange } from '../../../services/expeditionService'; import { EXPEDITION_INCREASE_POINT } from '../../../consts/consts'; import { WarReward } from '../../../services/warRewardService'; diff --git a/game-server/app/servers/battle/handler/normalBattleHandler.ts b/game-server/app/servers/battle/handler/normalBattleHandler.ts index d0a7ced77..72901480f 100644 --- a/game-server/app/servers/battle/handler/normalBattleHandler.ts +++ b/game-server/app/servers/battle/handler/normalBattleHandler.ts @@ -1,8 +1,8 @@ import { Application, BackendSession } from 'pinus'; import { BattleRecordModel } from '../../../db/BattleRecord'; import { BattleSweepRecordModel } from '../../../db/BattleSweepRecord'; -import { getWarById, } from '../../../util/gamedata'; -import { genCode } from '../../../util/util'; +import { getWarById, } from '../../../pubUtils/gamedata'; +import { genCode } from '../../../pubUtils/util'; import { WAR_TYPE, EVENT_START_BATTLE } from '../../../consts/consts'; import { checkDaily, checkDailyAndIncrease } from '../../../services/dailyBattleService'; import { checkTowerWar, towerBattleEnd } from '../../../services/battleService'; diff --git a/game-server/app/servers/battle/handler/towerBattleHandler.ts b/game-server/app/servers/battle/handler/towerBattleHandler.ts index fb79dc1ae..a4706cf00 100644 --- a/game-server/app/servers/battle/handler/towerBattleHandler.ts +++ b/game-server/app/servers/battle/handler/towerBattleHandler.ts @@ -5,8 +5,8 @@ import { HangUpRecordModel } from './../../../db/HangUpRecord'; import { RoleModel } from './../../../db/Role'; import { TowerRecordModel } from './../../../db/TowerRecord'; import { Application, BackendSession } from 'pinus'; -import { getTaskById, getTaskIdByQuality, getTowerDataByLv } from '../../../util/gamedata'; -import { decodeArrayStr, decodeIdCntArrayStr, getRandEelm } from '../../../util/util'; +import { getTaskById, getTaskIdByQuality, getTowerDataByLv } from '../../../pubUtils/gamedata'; +import { decodeArrayStr, decodeIdCntArrayStr, getRandEelm } from '../../../pubUtils/util'; import { calcuHangUpReward, checkTaskConditions } from '../../../services/battleService'; import { handleFixedReward } from '../../../services/rewardService'; diff --git a/game-server/app/servers/role/handler/roleHandler.ts b/game-server/app/servers/role/handler/roleHandler.ts index f3caef89b..a2bf5335e 100644 --- a/game-server/app/servers/role/handler/roleHandler.ts +++ b/game-server/app/servers/role/handler/roleHandler.ts @@ -1,7 +1,7 @@ import { CounterModel } from '../../../db/Counter'; import { HeroModel } from '../../../db/Hero'; import { EquipModel } from '../../../db/Equip'; -import { calculateCE } from '../../../util/util'; +import { calculateCE } from '../../../pubUtils/util'; import {Application, BackendSession, createTcpMailBox} from 'pinus'; export default function(app: Application) { diff --git a/game-server/app/services/battleService.ts b/game-server/app/services/battleService.ts index d5e7babdc..6c503c194 100644 --- a/game-server/app/services/battleService.ts +++ b/game-server/app/services/battleService.ts @@ -5,8 +5,8 @@ import { HANG_UP_CONSTS } from './../consts/consts'; import { BattleRecordModel } from './../db/BattleRecord'; import { TowerRecordModel } from './../db/TowerRecord'; import { RoleModel } from './../db/Role'; -import { getHeroInfoById, getJobInfoById, getTowerDataByLv } from "../util/gamedata" -import { decodeArrayStr, shouldRefresh } from '../util/util'; +import { getHeroInfoById, getJobInfoById, getTowerDataByLv } from "../pubUtils/gamedata" +import { decodeArrayStr, shouldRefresh } from '../pubUtils/util'; import { handleFixedReward } from './rewardService'; export async function checkTowerWar(roleId: string, battleId: number, heroes: Array) { diff --git a/game-server/app/services/dailyBattleService.ts b/game-server/app/services/dailyBattleService.ts index b9f0a954e..8c349fdc0 100644 --- a/game-server/app/services/dailyBattleService.ts +++ b/game-server/app/services/dailyBattleService.ts @@ -3,7 +3,7 @@ */ import { DailyRecordModel } from '../db/DailyRecord'; -import { getGamedata } from '../util/gamedata'; +import { getGamedata } from '../pubUtils/gamedata'; // 检查每日本次数checkBattle使用 export async function checkDaily(roleId: string, battleId: number, inc: number) { diff --git a/game-server/app/services/eventSercive.ts b/game-server/app/services/eventSercive.ts index 78a7d063a..0a26e5e06 100644 --- a/game-server/app/services/eventSercive.ts +++ b/game-server/app/services/eventSercive.ts @@ -1,8 +1,8 @@ import { Application, FrontendOrBackendSession } from 'pinus'; -import { getGamedata } from '../util/gamedata'; +import { getGamedata } from '../pubUtils/gamedata'; import { EventRecordModel } from '../db/EventRecord'; import { RoleModel } from '../db/Role'; -import { genCode, decodeStrSingle, decodeStr } from '../util/util'; +import { genCode, decodeStrSingle, decodeStr } from '../pubUtils/util'; import { EVENT_STATUS, EVENT_RECORD_STATUS, EVENT_TYPE } from '../consts/consts'; diff --git a/game-server/app/services/expeditionService.ts b/game-server/app/services/expeditionService.ts index 08eb7f251..c4b6b6112 100644 --- a/game-server/app/services/expeditionService.ts +++ b/game-server/app/services/expeditionService.ts @@ -2,8 +2,8 @@ import { ExpeditionPointModel } from '../db/ExpeditionPoint'; import { RoleModel } from '../db/Role'; -import { getWarJsons, getGamedata } from '../util/gamedata'; -import { decodeStr } from '../util/util'; +import { getWarJsons, getGamedata } from '../pubUtils/gamedata'; +import { decodeStr } from '../pubUtils/util'; import { WAR_JSON_ATTRIBUTE_TYPE } from '../consts/consts'; diff --git a/game-server/app/services/rewardService.ts b/game-server/app/services/rewardService.ts index 2ccdcc3da..0929c3823 100644 --- a/game-server/app/services/rewardService.ts +++ b/game-server/app/services/rewardService.ts @@ -1,8 +1,8 @@ import { GOOD_TYPE } from './../consts/consts'; import { EquipModel } from './../db/Equip'; import { CounterModel } from './../db/Counter'; -import { decodeStr } from '../util/util'; -import { getGoodById } from '../util/gamedata'; +import { decodeStr } from '../pubUtils/util'; +import { getGoodById } from '../pubUtils/gamedata'; export async function handleFixedReward(roleId: string, roleName: string, rewardStr: string, multi: number) { let reward = decodeStr('fixReward', rewardStr); diff --git a/game-server/app/services/warRewardService.ts b/game-server/app/services/warRewardService.ts index 0711edefe..8dbbe9ef6 100644 --- a/game-server/app/services/warRewardService.ts +++ b/game-server/app/services/warRewardService.ts @@ -4,8 +4,8 @@ */ import { BattleDropModel } from '../db/BattleDrop'; -import { getWarById } from '../util/gamedata'; -import { decodeStr } from '../util/util'; +import { getWarById } from '../pubUtils/gamedata'; +import { decodeStr } from '../pubUtils/util'; import { BATTLE_REWARD_TYPE } from '../consts/consts'; import { handleReward } from './rewardService'; diff --git a/gm-server/app/pubUtils b/gm-server/app/pubUtils new file mode 120000 index 000000000..a3f89e4da --- /dev/null +++ b/gm-server/app/pubUtils @@ -0,0 +1 @@ +/Users/bantu/zyz_server/shared/pubUtils \ No newline at end of file diff --git a/shared/db/HangUpSpdUpRec.ts b/shared/db/HangUpSpdUpRec.ts index c0bcb5f51..5f39e60d8 100644 --- a/shared/db/HangUpSpdUpRec.ts +++ b/shared/db/HangUpSpdUpRec.ts @@ -1,4 +1,4 @@ -import { HANG_UP_CONSTS } from './../consts/consts'; +// import { HANG_UP_CONSTS } from './../consts/consts'; import BaseModel from './BaseModel'; import { index, getModelForClass, prop } from '@typegoose/typegoose'; diff --git a/shared/db/Role.ts b/shared/db/Role.ts index 7d502ad60..d89460f65 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -2,7 +2,7 @@ import { HANG_UP_CONSTS } from './../consts/consts'; import BaseModel from './BaseModel'; import { index, getModelForClass, prop } from '@typegoose/typegoose'; import User from './User'; -import { shouldRefresh } from '../util/util'; +import { shouldRefresh } from '../pubUtils/util'; /** * 角色字段接口 @@ -155,7 +155,8 @@ export default class Role extends BaseModel { public static async hangUpSpdUp(roleId: string, cnt: number, curTime: Date, lean = true) { if (cnt < 0) return null; - const {lastSpdUpTime} = await RoleModel.findOneAndUpdate({roleId}, {$inc: {hangUpSpdUpCnt: -cnt}, lastSpdUpTime: curTime}, {new: true}).lean(lean); + const result = await RoleModel.findOneAndUpdate({roleId}, {$inc: {hangUpSpdUpCnt: -cnt}, lastSpdUpTime: curTime}, {new: true}).lean(lean); + const lastSpdUpTime = result?result.lastSpdUpTime: curTime; let role = null; if (shouldRefresh(lastSpdUpTime, curTime, HANG_UP_CONSTS.REFRESH_TIME, 1) && cnt <= HANG_UP_CONSTS.MAX_SPD_UP_CNT) { role = await RoleModel.findOneAndUpdate({roleId}, {hangUpSpdUpCnt: HANG_UP_CONSTS.MAX_SPD_UP_CNT - cnt, lastSpdUpTime: curTime}, {new: true}).lean(lean); diff --git a/shared/db/TowerTaskRec.ts b/shared/db/TowerTaskRec.ts index 910e694bb..47265b455 100644 --- a/shared/db/TowerTaskRec.ts +++ b/shared/db/TowerTaskRec.ts @@ -1,16 +1,16 @@ import BaseModel from './BaseModel'; import { index, getModelForClass, prop } from '@typegoose/typegoose'; -class TowerTask { - @prop({ required: true }) - id: number; // 任务唯一 Id,来自任务表 - @prop({ required: true}) - taskCode: string; // 服务器生成的任务唯一编号 - @prop({ required: true, type: Number, default: []}) - heroes: Array; // 派遣武将 hid - @prop({ required: true }) - status: boolean; // 派遣任务当前状态,0-可派遣,1-已派遣,2-已完成,3-已领取 -} +// class TowerTask { +// @prop({ required: true }) +// id: number; // 任务唯一 Id,来自任务表 +// @prop({ required: true}) +// taskCode: string; // 服务器生成的任务唯一编号 +// @prop({ required: true, type: Number, default: []}) +// heroes: Array; // 派遣武将 hid +// @prop({ required: true }) +// status: boolean; // 派遣任务当前状态,0-可派遣,1-已派遣,2-已完成,3-已领取 +// } function genCodeTmp(len) { const chars = '123456789ABCDEFGHJKLMNPQRSTWXYZabcdefghijklmnopqrstuvwxyz'; @@ -61,7 +61,7 @@ export default class TowerTaskRec extends BaseModel { return recs; } - public static async createTasks(roleId: string, roleName: string, taskIds: Array, lean = true) { + public static async createTasks(roleId: string, roleName: string, taskIds: Array/*, lean = true*/) { const batchCode = genCodeTmp(8); const tasksData = taskIds.map(id => { const taskModel = new TowerTaskRecModel(); @@ -78,8 +78,8 @@ export default class TowerTaskRec extends BaseModel { return recs; } - public static async sendHeroes(roleId: string, batchCode: string, tasks: Array<{taskCode:string, heroes: Array}>, sendTime: Date, lean = true) { - let recs = []; + public static async sendHeroes(_roleId: string, batchCode: string, tasks: Array<{taskCode:string, heroes: Array}>, sendTime: Date, lean = true) { + let recs = new Array(); const refTime = getRefTime(); for (let task of tasks) { const rec = await TowerTaskRecModel.findOneAndUpdate( @@ -93,8 +93,8 @@ export default class TowerTaskRec extends BaseModel { } public static async finishTask(batchCode: string, tasks: Array, lean = true) { - let recs = []; - const refTime = getRefTime(); + let recs = new Array(); + // const refTime = getRefTime(); for (let task of tasks) { const rec = await TowerTaskRecModel.findOneAndUpdate( {batchCode, taskCode: task}, diff --git a/game-server/app/util/gamedata.ts b/shared/pubUtils/gamedata.ts similarity index 94% rename from game-server/app/util/gamedata.ts rename to shared/pubUtils/gamedata.ts index db431af4d..347220855 100644 --- a/game-server/app/util/gamedata.ts +++ b/shared/pubUtils/gamedata.ts @@ -1,5 +1,5 @@ -const fs = require('fs'); -const path = require('path'); +import fs = require('fs'); +import path = require('path'); 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']; // 关卡相关的表 @@ -66,7 +66,7 @@ function parseJobData() { }); } -function initData (folder) { +function initData (folder: string) { if(!gamedata.hasOwnProperty(folder)) { gamedata[folder] = {}; } @@ -79,10 +79,11 @@ function initData (folder) { var name = file.split('.')[0]; try { gamedata[folder][name] = JSON.parse( - fs.readFileSync(path.resolve(__dirname, "../resource/" + folder + "/" + file)) + fs.readFileSync(path.resolve(__dirname, "../resource/" + folder + "/" + file)).toString() ); } catch(e) { - console.error('【文件缺少】:' + file); + console.error(e); + console.error('【文件错误】:' + file); gamedata[folder][name] = []; } diff --git a/game-server/app/util/util.ts b/shared/pubUtils/util.ts similarity index 93% rename from game-server/app/util/util.ts rename to shared/pubUtils/util.ts index 38a3296ff..383f2e7dc 100644 --- a/game-server/app/util/util.ts +++ b/shared/pubUtils/util.ts @@ -1,9 +1,9 @@ -import { getWarById, getGoodById, getGamedata } from './gamedata'; -import { CounterModel } from '../db/Counter'; -import { EquipModel } from '../db/Equip'; +import { getGamedata } from './gamedata'; +// import { CounterModel } from '../db/Counter'; +// import { EquipModel } from '../db/Equip'; import { HeroModel } from '../db/Hero'; -import { GOOD_TYPE } from '../consts/consts'; +// import { GOOD_TYPE } from '../consts/consts'; const moment = require('moment'); export function genCode(len) { @@ -101,7 +101,7 @@ export function decodeIdCntArrayStr(str: string, multi: number) { export async function calculateSumCE(roleId: string, type: number, param: { num?: number, heroes?: Array }) { let sum; if(type == 1) { // 最高num人战力和 - sum = await HeroModel.sumTopHeroCe(roleId, param.num); + sum = await HeroModel.sumTopHeroCe(roleId, param.num||0); } else if(type == 2) { // 所有人战力和 sum = await HeroModel.sumHeroCe(roleId); } @@ -171,7 +171,7 @@ export function shouldRefresh(preTime: Date, curTime: Date, hour: number, deltaD } export function getRandEelm(source: Array = [], cnt = 1): Array { - if (cnt > source.length) return null; + if (cnt > source.length) return []; if (cnt === source.length) return source; let idxs = new Set(); for (let i = 0; i < cnt; ++i) { @@ -181,5 +181,5 @@ export function getRandEelm(source: Array = [], cnt = 1): Array { break; } } - return source.filter((item, idx) => idxs.has(idx)); + return source.filter((_item, idx) => idxs.has(idx)); } \ No newline at end of file diff --git a/shared/resource/jsons/const.json b/shared/resource/jsons/const.json index 759eb69de..4d4c33d7c 100644 --- a/shared/resource/jsons/const.json +++ b/shared/resource/jsons/const.json @@ -1,4 +1,4 @@ -[ +[ { "IsTestService":true, "OpenIosAliPay":false, diff --git a/web-server/app/pubUtils b/web-server/app/pubUtils new file mode 120000 index 000000000..a3f89e4da --- /dev/null +++ b/web-server/app/pubUtils @@ -0,0 +1 @@ +/Users/bantu/zyz_server/shared/pubUtils \ No newline at end of file