From 38f321596096e71d0eb3d8275c69e9570ae024e1 Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Mon, 7 Dec 2020 19:46:47 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=AD=97=E6=AE=B5=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/battle/handler/comBattleHandler.ts | 2 +- shared/db/ComBattleTeam.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index 1c9e5e6ad..63c7b8902 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -98,7 +98,7 @@ export class ComBattleHandler { if (lv < COM_BTL_CONST.ENABLE_LV) return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH); let blueprt = await ItemModel.findbyRoleAndGidAndCount(roleId, blueprtId, 1); - if (!blueprt) return resResult(STATUS.COM_BATTLE_BLUEPRT_NOT_FOUND); + if (!blueprt || blueprt.count < 1) return resResult(STATUS.COM_BATTLE_BLUEPRT_NOT_FOUND); // 检查是否有已创建未结束的寻宝,预先占用一张藏宝图 let teams = await ComBattleTeamModel.getTeamByCapAndStatus(roleId, COM_TEAM_STATUS.FIGHTING); if (teams && blueprt.count <= teams.length) return resResult(STATUS.COM_BATTLE_BLUEPRT_NOT_ENOUGH); diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index d6d5766cf..9466d3f9c 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -121,6 +121,14 @@ export default class ComBattleTeam extends BaseModel { @prop({ required: true, default: 1 }) roleCnt: number; + // boss 总血量 + @prop({ required: true, default: 0 }) + bossHp: number; + + // boss 当前血量 + @prop({ required: true, default: 0 }) + bossCurHp: number; + // 单个 boss 血量状态 @prop({ required: false, type: BossHp, default: [] }) bossHpArr: Array; From 5e625d414712869a039880290eca7fcca49901cf Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Mon, 7 Dec 2020 20:27:41 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=8C=B9=E9=85=8D=E6=9C=BA=E5=99=A8=E4=BA=BA=E5=BC=80?= =?UTF-8?q?=E6=88=98=E6=8F=90=E7=A4=BA=E5=AF=BB=E5=AE=9D=E6=9C=AA=E5=BC=80?= =?UTF-8?q?=E5=A7=8B=E7=9A=84=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/servers/battle/handler/comBattleHandler.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index 63c7b8902..ad38920d9 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -251,7 +251,12 @@ export class ComBattleHandler { } // 机器人队伍 3 秒直接开战 setTimeout(async () => { - await ComBattleTeamModel.updateStatus(teamCode, COM_TEAM_STATUS.FIGHTING); + let t = await ComBattleTeamModel.updateStatus(teamCode, COM_TEAM_STATUS.FIGHTING); + let memT = thiz.teamMap.get(teamCode); + if (!t || !memT) { + return; + } + memT.status = COM_TEAM_STATUS.FIGHTING; channelService.pushMessageByUids('onComBtlStart', {teamCode, roleStatus: comTeam.roleStatus}, [{uid: roleId, sid}]); }, 3000); }, COM_BTL_CONST.ASSIST_TIME); From d13c0d42575028bb3ee4847c2058b1265907ad16 Mon Sep 17 00:00:00 2001 From: luying Date: Tue, 8 Dec 2020 14:20:06 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=87=A0=E4=B8=AA?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E5=8F=B7=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/consts/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/consts/consts.ts b/shared/consts/consts.ts index 928785b29..4548a96bf 100644 --- a/shared/consts/consts.ts +++ b/shared/consts/consts.ts @@ -241,7 +241,7 @@ export const EVENT_QUIZ_NUM = 3; export const DEFAULT_HEROES = [ 312, 314, 311, 309, 315]; -export const FIX_SMS_CODE_TELS = ['18855953630', '13911134885', '15167549151', '15618654010', '15167549151']; +export const FIX_SMS_CODE_TELS = ['18855953630', '13911134885', '15167549151', '15618654010', '15167549151', '15000250967','19921300694','13636354764']; export const GONGSHI = { "TOWER_HANG_UP_SPEED_COST": "50", From d6cfbc53e3a9286f1d33ce6946a0ed490606e463 Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Tue, 8 Dec 2020 23:15:05 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dboss=E8=A1=80=E9=87=8F=E4=B8=B2=E7=BA=BF=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=BA=E5=99=A8=E4=BA=BA=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/battle/handler/comBattleHandler.ts | 4 ++-- game-server/app/services/comBattleService.ts | 8 +++++--- shared/db/ComBattleTeam.ts | 2 +- shared/pubUtils/gamedata.ts | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index ad38920d9..8728f9794 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -549,7 +549,7 @@ export class ComBattleHandler { if (teamStatus && teamStatus.status === COM_TEAM_STATUS.FIGHTING) { let channelService = thiz.app.get('channelService'); let channel = channelService.getChannel(teamCode, false); - let team = await ComBattleTeamModel.syncTeamData({teamCode, status: COM_TEAM_STATUS.LOOSE, roleStatus: teamStatus.roleStatus, bossHpArr: teamStatus.bossHpArr}); + let team = await ComBattleTeamModel.syncTeamData({teamCode, status: COM_TEAM_STATUS.LOOSE, roleStatus: teamStatus.roleStatus, bossHpArr: teamStatus.bossHpArr, bossCurHp: teamStatus.bossCurHp}); if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR); channel.pushMessage('onTeamComplete', {teamCode, result: false}); thiz.teamMap.delete(teamCode); @@ -645,7 +645,7 @@ export class ComBattleHandler { st.fixReward = await getRealReward(teamStatus.blueprtId, st); }; } - let team = await ComBattleTeamModel.syncTeamData({teamCode, status: battleSt, roleStatus: teamStatus.roleStatus, bossHpArr: teamStatus.bossHpArr}); + let team = await ComBattleTeamModel.syncTeamData({teamCode, status: battleSt, roleStatus: teamStatus.roleStatus, bossHpArr: teamStatus.bossHpArr, bossCurHp: teamStatus.bossCurHp}); if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR); // 战斗胜利队长扣减藏宝图 diff --git a/game-server/app/services/comBattleService.ts b/game-server/app/services/comBattleService.ts index cf24ae967..bc1ac7d77 100644 --- a/game-server/app/services/comBattleService.ts +++ b/game-server/app/services/comBattleService.ts @@ -24,17 +24,19 @@ export function getRandBlueprtId(qualityArr: Array, cnt = 1) { export function getRandComBtlRobots(topFiveCe: number, lv: number, cnt: number) { let robotHeroes = getRandRobot(cnt); // 随机几个阵容 + let robots = getRandEelm(COM_BATTLE_ROBOT_ID_NAME, cnt); // 创建并添加机器人 let robotStArr = [], robotIdArr = []; - for (let robot of robotHeroes) { + robotHeroes.forEach((robot, idx) => { const robotCe = getRandValue(topFiveCe || 0, COM_BTL_CONST.ROBOT_CE_RATIO, 0); const robotLv = getRandValue(lv, COM_BTL_CONST.ROBOT_CE_RATIO, 0); const imgHid = robot[Math.floor(Math.random() * robot.length)]; - const { robotRoleId, robotRoleName } = COM_BATTLE_ROBOT_ID_NAME[Math.floor(Math.random() * COM_BATTLE_ROBOT_ID_NAME.length)]; + const { robotRoleId, robotRoleName } = robots[idx]; let robotStatus = new RoleStatus(robotRoleId, robotRoleName, false, false, imgHid, imgHid, robotCe, robotLv, robot, true); robotStArr.push(robotStatus); robotIdArr.push(robotRoleId); - } + }); + return { robotStArr, robotIdArr } diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index 9466d3f9c..05bc6f3ec 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -168,7 +168,7 @@ export default class ComBattleTeam extends BaseModel { return team; } - public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: Array, bossHpArr: Array}, lean = true) { + public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: Array, bossHpArr: Array, bossCurHp: number}, lean = true) { console.log('syncTeamData bossHpArr: ', teamData.bossHpArr); const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleStatus.length}}, {new: true}).lean(lean); return team; diff --git a/shared/pubUtils/gamedata.ts b/shared/pubUtils/gamedata.ts index 01ab5ab20..847df0361 100644 --- a/shared/pubUtils/gamedata.ts +++ b/shared/pubUtils/gamedata.ts @@ -378,7 +378,7 @@ export function getBossHpByWarId(warId: number) { btlBossHpSum.set(warId, bossHpSum); } } - return { bossHpSum, bossHpArr }; + return { bossHpSum, bossHpArr: JSON.parse(JSON.stringify(bossHpArr))}; } export function getWarIdByBlueprtId(blueprtId: number) { From 2694d977d20af22bb40cb2ea3f9b693070e67f1b Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Tue, 8 Dec 2020 23:28:47 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=8D=A0=E7=94=A8=E8=97=8F=E5=AE=9D=E5=9B=BE=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/servers/battle/handler/comBattleHandler.ts | 2 +- shared/db/ComBattleTeam.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index 8728f9794..f40122716 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -100,7 +100,7 @@ export class ComBattleHandler { let blueprt = await ItemModel.findbyRoleAndGidAndCount(roleId, blueprtId, 1); if (!blueprt || blueprt.count < 1) return resResult(STATUS.COM_BATTLE_BLUEPRT_NOT_FOUND); // 检查是否有已创建未结束的寻宝,预先占用一张藏宝图 - let teams = await ComBattleTeamModel.getTeamByCapAndStatus(roleId, COM_TEAM_STATUS.FIGHTING); + let teams = await ComBattleTeamModel.getOccupiedBlueprt(roleId, COM_TEAM_STATUS.FIGHTING, blueprtId); if (teams && blueprt.count <= teams.length) return resResult(STATUS.COM_BATTLE_BLUEPRT_NOT_ENOUGH); let roleStatus = []; diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index 05bc6f3ec..1eb2f876f 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -211,6 +211,11 @@ export default class ComBattleTeam extends BaseModel { return teams; } + public static async getOccupiedBlueprt(roleId: string, status: number, blueprtId: number, lean = true) { + const teams = await ComBattleTeamModel.find({status, capId: roleId, blueprtId}).lean(lean); + return teams; + } + public static async getTeamByBlueprt(blueprtIds: Array, status: number, pub = true, limit = 50, lean = true) { const teams = await ComBattleTeamModel.find({blueprtId: {$in: blueprtIds}, status, pub}).limit(limit).lean(lean); return teams; From 334019f05fc638acef924846edf4d7906475e8f7 Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Wed, 9 Dec 2020 16:58:27 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=9C=BA=E5=99=A8=E4=BA=BA=E4=BC=A4=E5=AE=B3=E7=AE=97?= =?UTF-8?q?=E6=B3=95=EF=BC=9B=E5=B0=86=E5=8C=B9=E9=85=8D=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=2020s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/battle/handler/comBattleHandler.ts | 18 +++++++++++------- shared/consts/consts.ts | 6 +++--- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index f40122716..05a4fff8a 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -605,15 +605,19 @@ export class ComBattleHandler { roleSt.totalDmg += totalHurtHp; } else if (curRnd > teamStatus.curRnd && curRnd <= COM_BTL_CONST.ROBOT_RND_LMT && roleSt.isRobot) { // 机器人的伤害为:boss 血量的一定比例,平均到一定回合数内,再平均到每个敌军,上下浮动一定比例 - let eachHurtHp = getRandValue(teamStatus.bossHp / COM_BTL_CONST.ROBOT_RND_LMT * COM_BTL_CONST.ROBOT_HURT_RATIO / 5, COM_BTL_CONST.ROBOT_HURT_CH_RATIO, 0); + let hurtBudget = getRandValue(teamStatus.bossHp / COM_BTL_CONST.ROBOT_RND_LMT * COM_BTL_CONST.ROBOT_HURT_RATIO, COM_BTL_CONST.ROBOT_HURT_CH_RATIO, 0); let robotTotalHurt = 0; teamStatus.bossHpArr.forEach(boss => { - if (boss.curHp >= eachHurtHp) { - robotTotalHurt += eachHurtHp; - boss.curHp -= eachHurtHp; - } else if (boss.curHp > 0) { // 丢弃溢出的伤害 - robotTotalHurt += boss.curHp; - boss.curHp = 0; + if (hurtBudget > 0) { + if (boss.curHp >= hurtBudget) { + robotTotalHurt += hurtBudget; + boss.curHp -= hurtBudget; + hurtBudget = 0; + } else if (boss.curHp > 0) { // 丢弃溢出的伤害 + robotTotalHurt += boss.curHp; + boss.curHp = 0; + hurtBudget -= boss.curHp; + } } }); teamStatus.bossCurHp -= robotTotalHurt; diff --git a/shared/consts/consts.ts b/shared/consts/consts.ts index 4548a96bf..5e433d3ca 100644 --- a/shared/consts/consts.ts +++ b/shared/consts/consts.ts @@ -281,10 +281,10 @@ export const COM_BTL_CONST = { ROBOT_HURT_RAND_RATE: 0.05, // 每个机器人消耗 boss 血量百分比浮动范围 FRDCNT_DROP: 10, // 每场情谊点掉落 ROBOT_CE_RATIO: 0.2, // 机器人战力上下浮动百分比 - ASSIST_TIME: 60 * 1000, // 助战匹配机器人的等待时长 - CAP_TIME: 60 * 1000, // 队长匹配机器人的等待时长 + ASSIST_TIME: 20 * 1000, // 助战匹配机器人的等待时长 + CAP_TIME: 20 * 1000, // 队长匹配机器人的等待时长 CAP_START_TIME: 60 * 1000, // 人齐后队长开始时长倒计时 - ROBOT_RND_LMT: 10, // 机器人输出伤害的回合数 + ROBOT_RND_LMT: 2, // 机器人输出伤害的回合数 ROBOT_HURT_RATIO: 0.2, // 单个机器人输出总伤害占 boss 血量比重 ROBOT_HURT_CH_RATIO: 0.1, // 机器人伤害上下浮动的比例 ASSIST_REWARD_RATIO: 0.5, // 队员奖励比例 From 39ebfc9dfd7d429d7c8ac3ef9f4976adb728f954 Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 9 Dec 2020 15:46:49 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E6=97=B6=E5=B0=B1=E7=BB=99=E4=BB=A5=E4=B8=8B=E9=81=93?= =?UTF-8?q?=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/consts/consts.ts | 10 ++++++++++ shared/db/Role.ts | 2 +- web-server/app/service/Auth.ts | 23 ++++++++++++++++++++--- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/shared/consts/consts.ts b/shared/consts/consts.ts index 5e433d3ca..167cf01f8 100644 --- a/shared/consts/consts.ts +++ b/shared/consts/consts.ts @@ -240,6 +240,16 @@ export const WAR_JSON_ATTRIBUTE_TYPE = { export const EVENT_QUIZ_NUM = 3; export const DEFAULT_HEROES = [ 312, 314, 311, 309, 315]; +export const DEFAULT_ITEMS = [ + {id: 33106, count: 200}, + {id: 33107, count: 200}, + {id: 33108, count: 200}, + {id: 33109, count: 200}, + {id: 33110, count: 200}, + {id: 40002, count: 20000}, +]; +export const DEFAULT_GOLD = 20000; +export const DEFAULT_LV = 60; export const FIX_SMS_CODE_TELS = ['18855953630', '13911134885', '15167549151', '15618654010', '15167549151', '15000250967','19921300694','13636354764']; diff --git a/shared/db/Role.ts b/shared/db/Role.ts index 02c7cb467..8e874fc00 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -172,7 +172,7 @@ export default class Role extends BaseModel { return role; } - public static async createRole(uid: number, serverId: number, roleInfo: {roleId: string; roleName: string; seqId: number; code: string}, lean = true) { + public static async createRole(uid: number, serverId: number, roleInfo: {roleId: string; roleName: string; seqId: number; code: string, lv?:number, exp?:number}, lean = true) { const user = await User.findUserByUid(uid); if (!user) return null; const doc = new RoleModel(); diff --git a/web-server/app/service/Auth.ts b/web-server/app/service/Auth.ts index 34b393afe..65eba0df2 100644 --- a/web-server/app/service/Auth.ts +++ b/web-server/app/service/Auth.ts @@ -1,4 +1,4 @@ -import { FIX_SMS_CODE_TELS, COUNTER } from '@consts/consts'; +import { FIX_SMS_CODE_TELS, COUNTER, DEFAULT_ITEMS, ITID, DEFAULT_GOLD, DEFAULT_LV } from '@consts/consts'; import { CounterModel } from '@db/Counter'; import { DEFAULT_HEROES } from '@consts/consts'; import { HeroModel } from '@db/Hero'; @@ -8,7 +8,8 @@ import { STATUS } from '@consts/statusCode'; import { smsModel } from '@db/Sms'; import { Service } from 'egg'; import Counter from '@db/Counter'; -import { getHeroInfoById } from 'app/pubUtils/gamedata'; +import { getHeroInfoById, getGoodById, getExpByLv } from 'app/pubUtils/gamedata'; +import { ItemModel } from '@db/Item'; const _ = require('underscore'); /** @@ -131,7 +132,9 @@ export default class Auth extends Service { const roleId = ctx.service.utils.genCode(10); const code = ctx.service.utils.genCode(6); const seqId = await Counter.getNewCounter(COUNTER.ROLE) || -1; - const role = await RoleModel.createRole(uid, serverId, { roleId, code, roleName, seqId }); + let lv = DEFAULT_LV; + let ge =getExpByLv(lv); + const role = await RoleModel.createRole(uid, serverId, { roleId, code, roleName, seqId, lv, exp: ge?ge.sum:0 }); if (role) { for (let hid of DEFAULT_HEROES) { let hero = await HeroModel.findByHidAndRole(hid, roleId); @@ -156,6 +159,20 @@ export default class Auth extends Service { } await HeroModel.createHero(heroInfo); } + + for(let {id, count} of DEFAULT_ITEMS) { + let dicGood = getGoodById(id); + if(!dicGood) continue; + let dicItid = ITID.get(dicGood.itid); + if(!dicItid) continue; + let type = dicItid.type||0; + + await ItemModel.increaseItem(roleId, id, count, { + roleId, roleName: role.roleName, id, itemName: dicGood.name, type + }) + } + await RoleModel.addGoldFree(roleId, DEFAULT_GOLD); + return ctx.service.utils.resResult(STATUS.SUCCESS, { roleId: role.roleId }); } return ctx.service.utils.resResult(STATUS.ROLE_NOT_FOUND); From 16d34a43facce84fab3b1a5481a827f3be21f250 Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 14 Dec 2020 11:56:21 +0800 Subject: [PATCH 08/10] =?UTF-8?q?ceAttr=E5=88=9D=E5=A7=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/db/BaseModel.ts | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/shared/db/BaseModel.ts b/shared/db/BaseModel.ts index 779100c34..1bf965c0d 100644 --- a/shared/db/BaseModel.ts +++ b/shared/db/BaseModel.ts @@ -35,33 +35,33 @@ export class CeAttrData { export class CeAttr { @prop({ required: false }) - hp?: CeAttrData; + hp?: CeAttrData = new CeAttrData(); @prop({ required: false }) - atk?: CeAttrData; + atk?: CeAttrData = new CeAttrData(); @prop({ required: false }) - matk?: CeAttrData; + matk?: CeAttrData = new CeAttrData(); @prop({ required: false }) - def?: CeAttrData; + def?: CeAttrData = new CeAttrData(); @prop({ required: false }) - mdef?: CeAttrData; + mdef?: CeAttrData = new CeAttrData(); @prop({ required: false }) - agi?: CeAttrData; + agi?: CeAttrData = new CeAttrData(); @prop({ required: false }) - luk?: CeAttrData; + luk?: CeAttrData = new CeAttrData(); @prop({ required: false }) - hit?: CeAttrData; + hit?: CeAttrData = new CeAttrData(); @prop({ required: false }) - cri?: CeAttrData; + cri?: CeAttrData = new CeAttrData(); @prop({ required: false }) - flee?: CeAttrData; + flee?: CeAttrData = new CeAttrData(); @prop({ required: false }) - antCri?: CeAttrData; + antCri?: CeAttrData = new CeAttrData(); @prop({ required: false }) - damageIncrease?: CeAttrData; + damageIncrease?: CeAttrData = new CeAttrData(); @prop({ required: false }) - damageDecrease?: CeAttrData; + damageDecrease?: CeAttrData = new CeAttrData(); @prop({ required: false }) - defIngnore?: CeAttrData; + defIngnore?: CeAttrData = new CeAttrData(); @prop({ required: false }) - bloodSuck?: CeAttrData; + bloodSuck?: CeAttrData = new CeAttrData(); } \ No newline at end of file From b27f684e1f22c1503c1d515bd688d18847438a04 Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 14 Dec 2020 14:52:21 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E5=90=8E=E5=8F=B0=EF=BC=8C=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E8=B4=A6=E5=8F=B7=E6=97=B6=E6=AD=A6=E5=B0=86lv?= =?UTF-8?q?=E5=92=8Cexp=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gm-server/app/service/users.ts | 4 +++- shared/consts/consts.ts | 5 +++++ shared/db/Hero.ts | 2 +- shared/db/Role.ts | 2 +- web-server/app/service/Auth.ts | 11 ++++++----- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/gm-server/app/service/users.ts b/gm-server/app/service/users.ts index 221ccdd61..a5f12ced1 100644 --- a/gm-server/app/service/users.ts +++ b/gm-server/app/service/users.ts @@ -25,6 +25,7 @@ import { STATUS } from '@consts/statusCode'; import { ITID, COUNTER } from '@consts/consts'; import Actor from '@pubUtils/actor'; import { ItemModel } from '@db/Item'; +import { getHeroExpByLv } from '@pubUtils/gamedata'; /** * Test Service @@ -187,6 +188,7 @@ export default class GMUsers extends Service { if(isNaN(hid)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); } + let exp = getHeroExpByLv(hlv); let heroInfos = new Array(); for(let roleId of uids) { let role = await RoleModel.findByRoleId(roleId); @@ -199,7 +201,7 @@ export default class GMUsers extends Service { let {quality, initialStars: star, jobid: job, name: hName} = dicHero; const heroInfo = { roleId, roleName: role.roleName, hid, hName, star, quality, job, serverId: role.serverId, - lv: hlv + lv: hlv, exp } heroInfos.push(heroInfo); } diff --git a/shared/consts/consts.ts b/shared/consts/consts.ts index 86b521eeb..eb45b94bf 100644 --- a/shared/consts/consts.ts +++ b/shared/consts/consts.ts @@ -229,6 +229,7 @@ export const EXPEDITION_CONST = { export const EVENT_QUIZ_NUM = 3; export const DEFAULT_HEROES = [ 12, 14, 11, 9, 15]; +export const DEFAULT_HEROES_LV = 30; export const DEFAULT_ITEMS = [ {id: 33106, count: 200}, {id: 33107, count: 200}, @@ -334,4 +335,8 @@ export const HERO_GROW_MAX = { export const JOB_TYPE = { PHYSIC: 1, MAGIC: 2 +} + +export const FILENAME = { + DIC_HERO: 'dic_zyz_hero' } \ No newline at end of file diff --git a/shared/db/Hero.ts b/shared/db/Hero.ts index 933962e44..2f5f6fd98 100644 --- a/shared/db/Hero.ts +++ b/shared/db/Hero.ts @@ -123,7 +123,7 @@ export default class Hero extends BaseModel { return hero; } - public static async createHero(heroInfo: {roleId: string, serverId: number, roleName: string, hid: number, hName: string, star: number, quality: number, job: number, lv?: number }, lean = true) { + public static async createHero(heroInfo: {roleId: string, serverId: number, roleName: string, hid: number, hName: string, star: number, quality: number, job: number, lv?: number, exp?:number }, lean = true) { const doc = new HeroModel(); const seqId = await CounterModel.getNewCounter(COUNTER.HID)||-1; const update = Object.assign(doc.toJSON(), heroInfo, {seqId}); diff --git a/shared/db/Role.ts b/shared/db/Role.ts index f20ec1c6b..217be83ea 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -171,7 +171,7 @@ export default class Role extends BaseModel { return role; } - public static async createRole(uid: number, serverId: number, roleInfo: {roleId: string; roleName: string; seqId: number; code: string}, lean = true) { + public static async createRole(uid: number, serverId: number, roleInfo: {roleId: string; roleName: string; seqId: number; code: string, lv?:number, exp?:number}, lean = true) { const user = await User.findUserByUid(uid); if (!user) return null; const doc = new RoleModel(); diff --git a/web-server/app/service/Auth.ts b/web-server/app/service/Auth.ts index 323eef011..7f7259f48 100644 --- a/web-server/app/service/Auth.ts +++ b/web-server/app/service/Auth.ts @@ -1,4 +1,4 @@ -import { FIX_SMS_CODE_TELS, COUNTER, DEFAULT_ITEMS, ITID, DEFAULT_GOLD, DEFAULT_LV } from '@consts/consts'; +import { FIX_SMS_CODE_TELS, COUNTER, DEFAULT_ITEMS, ITID, DEFAULT_GOLD, DEFAULT_LV, DEFAULT_HEROES_LV } from '@consts/consts'; import { DEFAULT_HEROES } from '@consts/consts'; import { HeroModel } from '@db/Hero'; import { RoleModel } from '@db/Role'; @@ -7,7 +7,7 @@ import { STATUS } from '@consts/statusCode'; import { smsModel } from '@db/Sms'; import { Service } from 'egg'; import Counter from '@db/Counter'; -import { getHeroInfoById, getGoodById, getExpByLv } from 'app/pubUtils/gamedata'; +import { getHeroInfoById, getGoodById, getExpByLv, getHeroExpByLv } from 'app/pubUtils/gamedata'; import { ItemModel } from '@db/Item'; const _ = require('underscore'); @@ -132,7 +132,7 @@ export default class Auth extends Service { const code = ctx.service.utils.genCode(6); const seqId = await Counter.getNewCounter(COUNTER.ROLE) || -1; let lv = DEFAULT_LV; - let ge =getExpByLv(lv); + let ge = getExpByLv(lv); const role = await RoleModel.createRole(uid, serverId, { roleId, code, roleName, seqId, lv, exp: ge?ge.sum:0 }); if (role) { for (let hid of DEFAULT_HEROES) { @@ -146,9 +146,10 @@ export default class Auth extends Service { break; } let {quality, initialStars: star, jobid: job, name: hName} = dicHero; - + let lv = DEFAULT_HEROES_LV; + let exp = getHeroExpByLv(lv); hero = await HeroModel.createHero({ - roleId, roleName: role.roleName, hid, hName, star, quality, job, serverId: role.serverId + roleId, roleName: role.roleName, hid, hName, star, quality, job, serverId: role.serverId, lv, exp }); } From 7bc8be231ea61380d323825aea8eff4bc011e653 Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 14 Dec 2020 15:06:08 +0800 Subject: [PATCH 10/10] =?UTF-8?q?fix=20=E5=90=8E=E5=8F=B0=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E7=AD=89=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gm-server/app/service/users.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gm-server/app/service/users.ts b/gm-server/app/service/users.ts index a5f12ced1..5e25837c0 100644 --- a/gm-server/app/service/users.ts +++ b/gm-server/app/service/users.ts @@ -188,7 +188,7 @@ export default class GMUsers extends Service { if(isNaN(hid)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); } - let exp = getHeroExpByLv(hlv); + let exp = getHeroExpByLv(hlv - 1)||0; let heroInfos = new Array(); for(let roleId of uids) { let role = await RoleModel.findByRoleId(roleId); @@ -318,7 +318,7 @@ export default class GMUsers extends Service { let lv = parseInt(_lv); if(isNaN(lv)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); for(let roleId of uids) { - let exp = ctx.service.utils.getExpByLv(lv); + let exp = ctx.service.utils.getExpByLv(lv - 1); await RoleModel.levelup(roleId, lv, exp?exp.sum:0); }