diff --git a/game-server/app/services/guildActivity/guildActivityService.ts b/game-server/app/services/guildActivity/guildActivityService.ts index 0db35e4e7..91f7b55ab 100644 --- a/game-server/app/services/guildActivity/guildActivityService.ts +++ b/game-server/app/services/guildActivity/guildActivityService.ts @@ -33,6 +33,7 @@ import { CounterModel } from "../../db/Counter"; import { setInterval } from "timers"; import { DicRaceActivity } from "../../pubUtils/dictionary/DicRaceActivity"; import { dispatch } from "../../pubUtils/dispatcher"; +import { GuildModel } from "../../db/Guild"; let gateActivityObj: GateActivityObject; let cityActivityObj: CityActivityObject; @@ -389,7 +390,8 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb let guildScore = await r.getMyScore({ guildCode }); // console.log('****** ranks', rank, 'guildScore', guildScore); - let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY, rank); + let guild = await GuildModel.findByCode(guildCode, serverId, 'lv'); + let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY, rank, guild?.lv); // console.log('***** rewards', JSON.stringify(rewards)); let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.GATE_ACTIVITY, index, { @@ -468,7 +470,8 @@ export async function cityActivitySettleReward(cityId: number, serverId: number) await GuildActivityCityModel.guard(serverId, cityId, "", "", index + 1); // 无人能占领 } } - let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, guildRank, cityId); + let guild = await GuildModel.findByCode(guildCode, serverId, 'lv'); + let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, guildRank, guild?.lv, cityId); let members = obj.getMembersOfGuild(guildCode); let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, index, { @@ -539,7 +542,8 @@ export async function participants(guildCode: string, sourceType: number, source let rec = await GuildActivityRecordModel.findBySourceCode(guildCode, sourceType, sourceCode); if (!rec) return []; - let baseNum = getGuildAuctionBasicNum(rec.aid, rec.rank, rec.challengeCityId); + let guild = await GuildModel.findByCode(guildCode, null, 'lv'); + let baseNum = getGuildAuctionBasicNum(rec.aid, rec.rank, guild?.lv, rec.challengeCityId); let members = rec.members || []; return members.map(cur => { return { roleId: cur.roleId, job: cur.job, baseNum } @@ -682,7 +686,8 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W let isSuccess = distance >= GUILDACTIVITY.RACEACTIVITY_LENGTH; // 血条未击破则没有占领军团 let members = obj.getMembersOfGuild(guildCode); - let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, rank); + let guild = await GuildModel.findByCode(guildCode, serverId, 'lv'); + let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, rank, guild?.lv); let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, joinIndex, { memberCnt: members.length, members, isSuccess, isCompleted: true, rank, diff --git a/shared/pubUtils/data.ts b/shared/pubUtils/data.ts index d437af26b..78624d22e 100644 --- a/shared/pubUtils/data.ts +++ b/shared/pubUtils/data.ts @@ -659,15 +659,15 @@ export function getTodayGuildActivity() { * @param aid 活动id * @param rank 排名 */ -function getGuildAuction(aid: number, rank: number, cityId: number = 0) { - let ranksReward = gameData.guildAuction.get(`${aid}_${cityId}`) || []; +function getGuildAuction(aid: number, rank: number, struLv: number, cityId: number = 0) { + let ranksReward = gameData.guildAuction.get(`${aid}_${struLv}_${cityId}`) || []; return ranksReward.find(cur => { return rank >= cur.min && (rank <= cur.max || cur.max == 0); }); } -export function getGuildAuctionRewards(aid: number, rank: number, cityId: number = 0) { - let dic = getGuildAuction(aid, rank, cityId); +export function getGuildAuctionRewards(aid: number, rank: number, struLv: number, cityId: number = 0) { + let dic = getGuildAuction(aid, rank, struLv, cityId); if(dic) { return getAuctionRewardByPoolId(dic.rewards); } else { @@ -675,8 +675,8 @@ export function getGuildAuctionRewards(aid: number, rank: number, cityId: number } } -export function getGuildAuctionBasicNum(aid: number, rank: number, cityId: number = 0) { - let dic = getGuildAuction(aid, rank, cityId); +export function getGuildAuctionBasicNum(aid: number, rank: number, struLv: number, cityId: number = 0) { + let dic = getGuildAuction(aid, rank, struLv, cityId); return dic?.basicDividend||0; } diff --git a/shared/pubUtils/dictionary/DicGuildAuction.ts b/shared/pubUtils/dictionary/DicGuildAuction.ts index 4ee9ef96a..82e50a303 100644 --- a/shared/pubUtils/dictionary/DicGuildAuction.ts +++ b/shared/pubUtils/dictionary/DicGuildAuction.ts @@ -6,6 +6,8 @@ export interface DicGuildAuction { // 活动类型 1-蛮夷入侵 2-诸侯混战 3-粮草先行 readonly id: number; + // 建筑物等级 + readonly struLv: number; // 最低名次 readonly min: number; // 最高名次 @@ -30,9 +32,9 @@ export function loadGuildAuction() { cityIds = [0]; } for(let cityId of cityIds) { - let rank = dicGuildAuction.get(`${o.id}_${cityId}`)||[]; + let rank = dicGuildAuction.get(`${o.id}_${o.struLv}_${cityId}`)||[]; rank.push(o); - dicGuildAuction.set(`${o.id}_${cityId}`, rank); + dicGuildAuction.set(`${o.id}_${o.struLv}_${cityId}`, rank); } }); arr = undefined; diff --git a/shared/resource/jsons/dic_zyz_guildAuction.json b/shared/resource/jsons/dic_zyz_guildAuction.json index b94204365..656bb3573 100644 --- a/shared/resource/jsons/dic_zyz_guildAuction.json +++ b/shared/resource/jsons/dic_zyz_guildAuction.json @@ -2,6 +2,7 @@ { "id": 1, "name": "蛮夷入侵", + "struLv":2, "min": 1, "max": 1, "rewards": 4, @@ -11,6 +12,7 @@ { "id": 1, "name": "蛮夷入侵", + "struLv":2, "min": 2, "max": 3, "rewards": 5, @@ -20,6 +22,7 @@ { "id": 1, "name": "蛮夷入侵", + "struLv":2, "min": 4, "max": 0, "rewards": 6, @@ -29,6 +32,7 @@ { "id": 2, "name": "诸侯混战", + "struLv":2, "min": 1, "max": 1, "rewards": 16, @@ -38,6 +42,7 @@ { "id": 2, "name": "诸侯混战", + "struLv":2, "min": 2, "max": 3, "rewards": 17, @@ -47,6 +52,7 @@ { "id": 2, "name": "诸侯混战", + "struLv":2, "min": 4, "max": 0, "rewards": 18, @@ -56,6 +62,7 @@ { "id": 3, "name": "粮草先行", + "struLv":2, "min": 1, "max": 1, "rewards": 10, @@ -65,6 +72,7 @@ { "id": 3, "name": "粮草先行", + "struLv":2, "min": 2, "max": 3, "rewards": 11, @@ -74,6 +82,7 @@ { "id": 3, "name": "粮草先行", + "struLv":2, "min": 4, "max": 0, "rewards": 12, @@ -83,6 +92,7 @@ { "id": 2, "name": "诸侯混战", + "struLv":2, "min": 1, "max": 1, "rewards": 13, @@ -92,6 +102,7 @@ { "id": 2, "name": "诸侯混战", + "struLv":2, "min": 2, "max": 3, "rewards": 14, @@ -101,6 +112,7 @@ { "id": 2, "name": "诸侯混战", + "struLv":2, "min": 4, "max": 0, "rewards": 15, @@ -110,6 +122,7 @@ { "id": 2, "name": "诸侯混战", + "struLv":2, "min": 1, "max": 1, "rewards": 7, @@ -119,6 +132,7 @@ { "id": 2, "name": "诸侯混战", + "struLv":2, "min": 2, "max": 3, "rewards": 8, @@ -128,6 +142,7 @@ { "id": 2, "name": "诸侯混战", + "struLv":2, "min": 4, "max": 0, "rewards": 9,