pvp初次挑战次数不增加、镇念塔加速

This commit is contained in:
luying
2022-01-19 19:27:11 +08:00
parent 2519a55aae
commit c813762bf9
5 changed files with 26 additions and 8 deletions
@@ -344,7 +344,9 @@ export class PvpHandler {
if(refOppObj.setAttackCnt >= PVP.PVP_SET_ATTACK_FREE_CNT + refOppObj.buyAttackCnt) { if(refOppObj.setAttackCnt >= PVP.PVP_SET_ATTACK_FREE_CNT + refOppObj.buyAttackCnt) {
return resResult(STATUS.PVP_SET_ATTACK_CNT_NOT_ENOUGH); return resResult(STATUS.PVP_SET_ATTACK_CNT_NOT_ENOUGH);
} }
refOppObj.setAttackCnt ++; if(!!pvpDefense.attack) {
refOppObj.setAttackCnt ++;
}
let seasonNum: number = this.app.get('pvpSeasonNum'); let seasonNum: number = this.app.get('pvpSeasonNum');
let seasonEndTime: number = this.app.get('pvpSeasonEndTime'); let seasonEndTime: number = this.app.get('pvpSeasonEndTime');
@@ -186,6 +186,12 @@ export class RaceActivityHandler {
await UserGuildActivityRecModel.updateInfo(code, { hasShow: true }); await UserGuildActivityRecModel.updateInfo(code, { hasShow: true });
} }
let obj = getRaceActivityObj();
let woodenHorse = await obj.getWoodenHorse(guildCode, serverId);
if(!woodenHorse) { // 已被结算
woodenHorse = guildActivityRec.woodenHorse;
}
// 返回当前军团总军功 // 返回当前军团总军功
let r = new Rank(REDIS_KEY.RACE_ACTIVITY, { serverId }); let r = new Rank(REDIS_KEY.RACE_ACTIVITY, { serverId });
let myGuildRank = await r.getMyRank({ guildCode }); let myGuildRank = await r.getMyRank({ guildCode });
@@ -193,7 +199,7 @@ export class RaceActivityHandler {
return resResult(STATUS.SUCCESS, { return resResult(STATUS.SUCCESS, {
timestamp: Date.now(), timestamp: Date.now(),
hasShow, hasShow,
woodenHorse: guildActivityRec.woodenHorse, woodenHorse,
myGuildRank myGuildRank
}) })
} }
+1 -1
View File
@@ -301,7 +301,7 @@ export async function calcuHangUpReward(roleId: string, speedUp = false, speedUp
} }
if (speedUp) { // 加速,直接收取6小时收益,小数的累积和普通收取独立 if (speedUp) { // 加速,直接收取6小时收益,小数的累积和普通收取独立
if (hangUpSpdUpCnt + speedUpCnt < dicParam.TOWER_BOOST.TOWER_BOOSTTIME || !lastSpdUpTime || shouldRefresh(lastSpdUpTime, new Date)) { // 可加速 if (hangUpSpdUpCnt + speedUpCnt <= dicParam.TOWER_BOOST.TOWER_BOOSTTIME || !lastSpdUpTime || shouldRefresh(lastSpdUpTime, new Date)) { // 可加速
let multi = Math.floor(HANG_UP_CONSTS.SPD_UP_REC_TIME / HANG_UP_CONSTS.UNIT_TIME); let multi = Math.floor(HANG_UP_CONSTS.SPD_UP_REC_TIME / HANG_UP_CONSTS.UNIT_TIME);
let spdUpRec = await HangUpSpdUpRecModel.getSpdUpRec(roleId, towerLv - 1); let spdUpRec = await HangUpSpdUpRecModel.getSpdUpRec(roleId, towerLv - 1);
let goods = []; let goods = [];
@@ -215,6 +215,7 @@ export class RaceActivityObject {
private woodenHorses: Map<string, WoodenHorse> = new Map(); // 每个军团的木牛流马 guildCode => WoodenHorse private woodenHorses: Map<string, WoodenHorse> = new Map(); // 每个军团的木牛流马 guildCode => WoodenHorse
private events: Map<string, Event[]> = new Map(); // 每个军团遇到的事件 private events: Map<string, Event[]> = new Map(); // 每个军团遇到的事件
private items: Map<string, RewardInter[]> = new Map(); // 每个玩家的道具 roleId => [{id, count}] private items: Map<string, RewardInter[]> = new Map(); // 每个玩家的道具 roleId => [{id, count}]
private hasSentGuild: string[] = [];
public getItem(roleId: string) { public getItem(roleId: string) {
return this.items.get(roleId)||[] return this.items.get(roleId)||[]
@@ -400,7 +401,10 @@ export class RaceActivityObject {
} }
public deleteFromList(guildCode: string) { public deleteFromList(guildCode: string) {
let index = this.guildList.findIndex(cur => cur.guildCode == guildCode); this.hasSentGuild.push(guildCode);
this.guildList.splice(index, 1); }
public hasSend(guildCode: string) {
return this.hasSentGuild.indexOf(guildCode) != -1;
} }
} }
@@ -323,7 +323,7 @@ export async function sendGuildActEndMsg(aid: number) {
for (let { guildCode, serverId } of obj.guildList) { for (let { guildCode, serverId } of obj.guildList) {
let woodenHorse = await obj.getWoodenHorse(guildCode, serverId); let woodenHorse = await obj.getWoodenHorse(guildCode, serverId);
if (woodenHorse && woodenHorse.status != 0) { if (woodenHorse && woodenHorse.status != 0 && !obj.hasSend(guildCode)) {
await raceActivitySettleReward(guildCode, woodenHorse); await raceActivitySettleReward(guildCode, woodenHorse);
} }
} }
@@ -618,9 +618,15 @@ export async function calWoodenHorseAndSend(serverId: number) {
console.log('calWoodenHorseAndSend'); console.log('calWoodenHorseAndSend');
let guildKey = REDIS_KEY.RACE_ACTIVITY; let guildKey = REDIS_KEY.RACE_ACTIVITY;
let obj = getRaceActivityObj(); let obj = getRaceActivityObj();
let calResult = new Map<string, WoodenHorse>();
for(let [code] of obj.getAllWoodenHorses()) {
let _obj = await obj.getWoodenHorse(code, serverId);
if(_obj) calResult.set(code, _obj);
}
let fun = async function (param: GuildRankInfo) { let fun = async function (param: GuildRankInfo) {
let { rank, code, name } = param; let { rank, code, name } = param;
let _obj = await obj.getWoodenHorse(code, serverId); let _obj = calResult.get(code);
return new SimpleGuildRankWithTimeParam(rank, code, name, _obj); return new SimpleGuildRankWithTimeParam(rank, code, name, _obj);
} }
let r = new Rank(REDIS_KEY.RACE_ACTIVITY, { serverId }, true); let r = new Rank(REDIS_KEY.RACE_ACTIVITY, { serverId }, true);
@@ -672,7 +678,7 @@ export async function calWoodenHorseAndSend(serverId: number) {
} }
} }
} }
calResult.clear();
return; return;
} }