diff --git a/game-server/app/servers/battle/handler/guildRefineHandler.ts b/game-server/app/servers/battle/handler/guildRefineHandler.ts index 15d5c9f8a..f7c50ac5b 100644 --- a/game-server/app/servers/battle/handler/guildRefineHandler.ts +++ b/game-server/app/servers/battle/handler/guildRefineHandler.ts @@ -106,7 +106,6 @@ export class GuildRefineHandler { const roleId: string = session.get('roleId'); const serverId: number = session.get('serverId'); const sid: string = session.get('sid'); - let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode'); if (!userGuild) return resResult(STATUS.WRONG_PARMS); @@ -124,13 +123,11 @@ export class GuildRefineHandler { return resResult(STATUS.GUILD_IS_ASSISTED_SCIENCETREE); if (scienceTree.assistRoleIds.length >= ARMY.ARMY_DEVELOPMENT_SPEEDTMES) return resResult(STATUS.GUILD_REACH_MAX_ASSIST_COUNT); - let result = await handleCost(roleId, sid, [{id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.GOLD), count: ARMY.ARMY_DEVELOPMENT_SPEEDCOST}]); - if(!result) + if (!result) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); scienceTree.assistRoleIds.push(roleId); scienceTree.endTime -= scienceTree.endTime - ARMY.ARMY_DEVELOPMENT_SPEED * 60; - let { scienceTrees } = await GuildRefineModel.updateRefine(code, { scienceTrees: guildRefine.scienceTrees }) res.releaseCallback(); return resResult(STATUS.SUCCESS, { scienceTrees }); diff --git a/game-server/app/servers/battle/handler/guildTrainHandler.ts b/game-server/app/servers/battle/handler/guildTrainHandler.ts index 48a820692..2c5c9b36e 100644 --- a/game-server/app/servers/battle/handler/guildTrainHandler.ts +++ b/game-server/app/servers/battle/handler/guildTrainHandler.ts @@ -15,6 +15,7 @@ import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/it import { handleCost, addItems } from '../../../services/rewardService'; import { ARMY } from '../../../pubUtils/dicParam'; import { addActive } from '../../../services/guildService'; +import { GUILD_STRUCTURE } from '../../../consts/constModules/guildConst'; export default function (app: Application) { return new GuildTrainHandler(app); } @@ -131,14 +132,14 @@ export class GuildTrainHandler { if (!trainInstance) return resResult(STATUS.WRONG_PARMS); - let { trainInstances } = getArmyTrainJuDian(trainId); + let { trainInstances, soloRewardRatio } = getArmyTrainJuDian(trainId); let instance = findWhere(trainInstances, { hid }); if (!instance) return resResult(STATUS.WRONG_PARMS); let trainSoloReward = getTrainSoloReward(battleRecord.record.difficulty); if (!trainSoloReward) return resResult(STATUS.WRONG_PARMS); - let addScore = isSuccess?trainSoloReward.winScore:trainSoloReward.failScore; + let addScore = Math.floor((isSuccess?trainSoloReward.winScore:trainSoloReward.failScore) * (soloRewardRatio + 100 ) / 100); let goods = await addItems(roleId, roleName, sid, [{id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.HONOUR), count: isSuccess?trainSoloReward.failHonour:trainSoloReward.failHonour}]); let guildTrains = []; let trainIds = []; @@ -210,9 +211,13 @@ export class GuildTrainHandler { if (!userGuild) return resResult(STATUS.WRONG_PARMS); const { guildCode: code } = userGuild; + let { structure } = await GuildModel.findGuild(code, serverId, 'structure'); + let stru = findWhere(structure, {id: 4}); let res:any = await lockData(serverId, GUILD_DATA_NAME.TRAIN_BOX, code + '_' + trainId);//加锁 if (!!res.err) return resResult(STATUS.REDLOCK_ERR); + + let { shilianRewardRatio } = getTrainBaseByLv(GUILD_STRUCTURE.TRAIN); let { heroRewards, trainInstances } = getArmyTrainJuDian(trainId); let { progress } = findWhere(trainInstances, {hid}); let guildTrain = await GuildTrainModel.findTrainInstanceBoxByIndex(code, roleId, trainId, hid, index, progress, nowSeconds()); @@ -222,6 +227,7 @@ export class GuildTrainHandler { } let good = getRandomByLen(heroRewards); + good.count = Math.floor((100 + shilianRewardRatio) * good.count/100); let goods = await addItems(roleId, roleName, sid, [good]); let resGuildTrain = await GuildTrainModel.receiveBoxByIndex(code, roleId, trainId, hid, index, good); diff --git a/game-server/app/services/guildBossService.ts b/game-server/app/services/guildBossService.ts index 4539b539a..8fe8f5e21 100644 --- a/game-server/app/services/guildBossService.ts +++ b/game-server/app/services/guildBossService.ts @@ -27,10 +27,10 @@ export async function getBossInstanceInfo(bossInstance: BossInstanceType, roleId await BossInstanceModel.recordRoleIdWhenCheck(guildCode, roleId); } if (bossInstance.startTime < getTodayZeroPoint()) { - result.type = 1; + result.status = 1; return result; } else { - result.type = 2; + result.status = 2; return result; } } @@ -45,7 +45,7 @@ export async function getBossInstanceInfo(bossInstance: BossInstanceType, roleId } return {roleId, score, rankLv: index + 1}; }); - return {warId, ranks: lastRanks, myRank, bossHp, type: 3, isBattled}; + return {warId, ranks: lastRanks, myRank, bossHp, status: 3, isBattled}; } /** * 战斗结束返回 @@ -59,11 +59,11 @@ export async function getBossInstanceWhenEnd(bossInstance: BossInstanceType, rol let result:any = {}; if (battleNum == winNum) { pushRanks = deepCopy(recordRanks); - result = {warId: winWarId, bossHp: 0, type: 3}; + result = {warId: winWarId, bossHp: 0, status: 3}; await BossInstanceModel.recordRoleIdWhenCheck(guildCode, roleId); } else { pushRanks = deepCopy(ranks); - result = {warId, bossHp, type: 3}; + result = {warId, bossHp, status: 3}; } pushRanks.sort(function(a, b) { return b.score - a.score + a.time - b.time; diff --git a/game-server/app/services/guildTrainService.ts b/game-server/app/services/guildTrainService.ts index dc8da408f..08b7e89bc 100644 --- a/game-server/app/services/guildTrainService.ts +++ b/game-server/app/services/guildTrainService.ts @@ -1,7 +1,7 @@ import { UserGuildModel } from '../db/UserGuild'; -import { getArmyTrainJuDian } from '../pubUtils/data'; +import { getArmyTrainJuDian, getTrainBaseByLv } from '../pubUtils/data'; import { nowSeconds, getHourPoint } from '../pubUtils/timeUtil'; -import { GUILD_REPORT_NUM, GUILD_DATA_NAME, REFRESH_HOUR } from '../consts/constModules/guildConst'; +import { GUILD_REPORT_NUM, GUILD_DATA_NAME, REFRESH_HOUR, GUILD_STRUCTURE } from '../consts/constModules/guildConst'; import { GuildTrainType, GuildTrainModel, TrainInstance } from '../db/GuildTrain'; import { GuildModel } from '../db/Guild'; import { findWhere } from 'underscore'; @@ -12,6 +12,7 @@ import { MailModel, MailType } from '../db/Mail'; import { getRandomByLen, resResult } from '../pubUtils/util'; import { getRedis } from './redisService'; import { STATUS } from '../consts/statusCode'; + export async function getUserGuild(roleId: string, serverId: number) { let userGuild = await UserGuildModel.getMyGuild(roleId,'trainCount trainTime trainRewards guildCode'); if (!userGuild) @@ -146,6 +147,8 @@ export async function resetTrain(code: string, serverId: number) { let mails = new Array(); let pushMessage = []; let uids = []; + let { shilianRewardRatio } = getTrainBaseByLv(GUILD_STRUCTURE.TRAIN); + userGuildList.forEach(async function ({roleId, trainRewards}) { let goods = []; guildTrains.forEach(guildTrain=>{ @@ -153,6 +156,7 @@ export async function resetTrain(code: string, serverId: number) { if (!findWhere(trainBoxs, {roleId})) { let { heroRewards } = getArmyTrainJuDian(guildTrain.trainId); let good = getRandomByLen(heroRewards); + good.count = Math.floor((100 + shilianRewardRatio) * good.count/100); goods.push(good); } }) diff --git a/shared/consts/constModules/sysConst.ts b/shared/consts/constModules/sysConst.ts index a10e9f78c..b4a344919 100644 --- a/shared/consts/constModules/sysConst.ts +++ b/shared/consts/constModules/sysConst.ts @@ -322,7 +322,8 @@ export const FILENAME = { DIC_ARMY_TRAIN_SOLO_REWARD: 'dic_army_trainSoloReward', DIC_ARMY_ACTIVE_POINT_WAYS: 'dic_army_activePointWays', DIC_ARMY_DEVELOPMENTCONSUME: 'dic_army_developmentConsume', - DIC_ARMY_BOSS_RANK_REWARD: 'dic_army_bossrankReward' + DIC_ARMY_BOSS_RANK_REWARD: 'dic_army_bossrankReward', + } export const WAR_RELATE_TABLES = [ diff --git a/shared/pubUtils/dictionary/DicArmyTrainJuDian.ts b/shared/pubUtils/dictionary/DicArmyTrainJuDian.ts index e3935dd3f..566b6e1bc 100644 --- a/shared/pubUtils/dictionary/DicArmyTrainJuDian.ts +++ b/shared/pubUtils/dictionary/DicArmyTrainJuDian.ts @@ -11,14 +11,16 @@ export interface DicArmyTrainJuDian { readonly trainInstances: Array<{hid: number, warId: number, progress: number}>; readonly heroRewards: Array<{id: number, count: number}>; // 进阶奖励 - readonly jinjieReward: RewardInter[]; + readonly jinjieReward: RewardInter[]; + readonly soloRewardRatio: number; } const DicArmyTrainJuDianKeys: KeysEnum = { id: true, trainInstances: true, heroRewards: true, - jinjieReward: true + jinjieReward: true, + soloRewardRatio: true }; const str = readJsonFile(FILENAME.DIC_ARMY_TRAIN_JU_DIAN); diff --git a/shared/pubUtils/dictionary/DicStructure.ts b/shared/pubUtils/dictionary/DicStructure.ts index 28cd90932..ba51855b2 100644 --- a/shared/pubUtils/dictionary/DicStructure.ts +++ b/shared/pubUtils/dictionary/DicStructure.ts @@ -80,7 +80,8 @@ export interface DicTrainBase { readonly difficultyRatio: number; // 据点奖励增长系数 readonly judianRewardRatio: number; - + + readonly shilianRewardRatio: number; } const DicTrainKeys: KeysEnum = { @@ -89,6 +90,7 @@ const DicTrainKeys: KeysEnum = { trainLevel: true, difficultyRatio: true, judianRewardRatio: true, + shilianRewardRatio: true }; // 捐献所 @@ -200,6 +202,7 @@ const strTrain = readJsonFile(FILENAME.DIC_GUILD_TRAIN_BASE); let arrTrain = JSON.parse(strTrain); arrTrain.forEach(o => { setStructureConsume(o); + dicTrainBase.set(o.level, _.pick(o, Object.keys(DicTrainKeys))); }); arrTrain = undefined;