diff --git a/game-server/app/servers/guild/handler/guildBossHandler.ts b/game-server/app/servers/guild/handler/guildBossHandler.ts index fd1798236..daa778912 100644 --- a/game-server/app/servers/guild/handler/guildBossHandler.ts +++ b/game-server/app/servers/guild/handler/guildBossHandler.ts @@ -4,7 +4,7 @@ import { AUCTION_SOURCE, DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON, MAIL_TYPE, PUSH_R import { BossInstanceModel } from '../../../db/BossInstance'; import { BattleRecordModel } from '../../../db/BattleRecord'; import { nowSeconds, getZeroPoint, getSeconds } from '../../../pubUtils/timeUtil'; -import { getBossInstanceInfo, checkBossBattleMemberExists, pushBossHpMessage, addBossInstance, refreshUserGuildOfBoss, refreshGuildOfBoss, getBossHp, getBossInstanceInfoByData, pushBossStatus } from '../../../services/guildBossService'; +import { getBossInstanceInfo, checkBossBattleMemberExists, pushBossHpMessage, addBossInstance, refreshUserGuildOfBoss, refreshGuildOfBoss, getBossHp, getBossInstanceInfoByData, pushBossStatus, zoomOutDamage, zoomInDamage } from '../../../services/guildBossService'; import { findWhere } from 'underscore' import { GUILD_STRUCTURE, GUILD_BOSS_STATUS, GUILD_POINT_WAYS } from '../../../consts/constModules/guildConst'; import { DATA_NAME } from '../../../consts/dataName'; @@ -113,7 +113,7 @@ export class GuildHandler { $set: { roleId, roleName, battleId: warId, status: 0, - record: { heroes: [], bossInstanceCode: bossCode, bossHp: bossHp, encourageCnt }, + record: { heroes: [], bossInstanceCode: bossCode, bossHp: zoomOutDamage(bossHp), encourageCnt }, } }, true); const serverId: number = parseInt(session.get('serverId')); @@ -163,11 +163,11 @@ export class GuildHandler { } //记录伤害 - let bossInstance = await BossInstanceModel.updateBossHp(bossCode, damage, roleId); + let bossInstance = await BossInstanceModel.updateBossHp(bossCode, zoomInDamage(damage), roleId); if(!bossInstance) { // 如果已经被扣成负的了 return resResult(STATUS.SUCCESS, { bossHp: 0 }); } - await BattleRecordModel.incBossDamage(battleCode, damage, bossInstance.bossHp); + await BattleRecordModel.incBossDamage(battleCode, zoomInDamage(damage), bossInstance.bossHp); if (bossInstance.bossHp <= 0) {//进入结算 diff --git a/game-server/app/services/guildBossService.ts b/game-server/app/services/guildBossService.ts index 195575143..3c47d30c4 100644 --- a/game-server/app/services/guildBossService.ts +++ b/game-server/app/services/guildBossService.ts @@ -45,7 +45,7 @@ export async function getBossInstanceInfoByData(bossInstance: BossInstanceType, let { code, warId, ranks, bossHp, bossTotalHp, ratio, bossLv, encourageCnt } = bossInstance; let dicBossBase = gameData.bossBaseByBossLv.get(bossLv); let rankInfo = getRanks(ranks, userGuild.roleId); - bossInfo = { bossCode: code, warId, ...rankInfo, bossHp, bossTotalHp, bossLv, encourageCnt, encourageMax: dicBossBase.encourageSum, ratio }; + bossInfo = { bossCode: code, warId, ...rankInfo, bossHp: zoomOutDamage(bossHp), bossTotalHp: zoomOutDamage(bossTotalHp), bossLv, encourageCnt, encourageMax: dicBossBase.encourageSum, ratio }; } return { status, bossInfo, ...refObj } } @@ -93,9 +93,9 @@ export function getRanks(ranks: {roleId: string; score: number; time: number; jo let myRank = {}; let lastRanks = ranks.map(({roleId: battleRoleId, score }, index) => { if (roleId == battleRoleId) { - myRank = { roleId, score, rankLv: index + 1 }; + myRank = { roleId, score: zoomOutDamageWithoutRadix(score), rankLv: index + 1 }; } - return {roleId: battleRoleId, score, rankLv: index + 1}; + return {roleId: battleRoleId, score: zoomOutDamageWithoutRadix(score), rankLv: index + 1}; }); return { ranks: lastRanks, myRank } } @@ -143,7 +143,7 @@ export async function pushBossHpMessage(code: string, serverId:number, bossHp:nu let sid = arr[1]; return {uid, sid}; }); - sendMessageToUsersWithSuc(PUSH_ROUTE.BOSS_HP_UPDATE, { bossHp }, uids); + sendMessageToUsersWithSuc(PUSH_ROUTE.BOSS_HP_UPDATE, { bossHp: zoomOutDamage(bossHp) }, uids); if (isDelKey) { delAsync(key); } @@ -193,7 +193,7 @@ export async function getBossHp(serverId: number, guildCode: string, dicBossBase console.log('getBossHp', warId, minBossHp, bossHpRatio) let serverRecord = await ServerRecordModel.findTodayData(serverId); - if(!serverRecord) return { ratio: 1, bossHp: minBossHp }; + if(!serverRecord) return { ratio: 1, bossHp: zoomInDamage(minBossHp) }; let dicWar = gameData.war.get(warId); let dicWarJson = gameData.warJson.get(dicWar.dispatchJsonId); @@ -224,5 +224,17 @@ export async function getBossHp(serverId: number, guildCode: string, dicBossBase bossHp = minBossHp; } console.log(`getBossHp B ${B}`); - return { ratio: B, bossHp }; + return { ratio: B, bossHp: zoomInDamage(bossHp) }; +} + +export function zoomInDamage(damage: number, ratio = 100) { + return Math.floor(damage * ratio); +} + +export function zoomOutDamage(damage: number, ratio = 100) { + return Math.floor(damage)/ratio; +} + +export function zoomOutDamageWithoutRadix(damage: number, ratio = 100) { + return Math.floor(damage/ratio); } \ No newline at end of file