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

This commit is contained in:
luying
2022-01-19 19:26:58 +08:00
parent 2519a55aae
commit c813762bf9
5 changed files with 26 additions and 8 deletions

View File

@@ -344,7 +344,9 @@ export class PvpHandler {
if(refOppObj.setAttackCnt >= PVP.PVP_SET_ATTACK_FREE_CNT + refOppObj.buyAttackCnt) {
return resResult(STATUS.PVP_SET_ATTACK_CNT_NOT_ENOUGH);
}
refOppObj.setAttackCnt ++;
if(!!pvpDefense.attack) {
refOppObj.setAttackCnt ++;
}
let seasonNum: number = this.app.get('pvpSeasonNum');
let seasonEndTime: number = this.app.get('pvpSeasonEndTime');

View File

@@ -186,6 +186,12 @@ export class RaceActivityHandler {
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 myGuildRank = await r.getMyRank({ guildCode });
@@ -193,7 +199,7 @@ export class RaceActivityHandler {
return resResult(STATUS.SUCCESS, {
timestamp: Date.now(),
hasShow,
woodenHorse: guildActivityRec.woodenHorse,
woodenHorse,
myGuildRank
})
}

View File

@@ -301,7 +301,7 @@ export async function calcuHangUpReward(roleId: string, speedUp = false, speedUp
}
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 spdUpRec = await HangUpSpdUpRecModel.getSpdUpRec(roleId, towerLv - 1);
let goods = [];

View File

@@ -215,6 +215,7 @@ export class RaceActivityObject {
private woodenHorses: Map<string, WoodenHorse> = new Map(); // 每个军团的木牛流马 guildCode => WoodenHorse
private events: Map<string, Event[]> = new Map(); // 每个军团遇到的事件
private items: Map<string, RewardInter[]> = new Map(); // 每个玩家的道具 roleId => [{id, count}]
private hasSentGuild: string[] = [];
public getItem(roleId: string) {
return this.items.get(roleId)||[]
@@ -400,7 +401,10 @@ export class RaceActivityObject {
}
public deleteFromList(guildCode: string) {
let index = this.guildList.findIndex(cur => cur.guildCode == guildCode);
this.guildList.splice(index, 1);
this.hasSentGuild.push(guildCode);
}
public hasSend(guildCode: string) {
return this.hasSentGuild.indexOf(guildCode) != -1;
}
}

View File

@@ -323,7 +323,7 @@ export async function sendGuildActEndMsg(aid: number) {
for (let { guildCode, serverId } of obj.guildList) {
let woodenHorse = await obj.getWoodenHorse(guildCode, serverId);
if (woodenHorse && woodenHorse.status != 0) {
if (woodenHorse && woodenHorse.status != 0 && !obj.hasSend(guildCode)) {
await raceActivitySettleReward(guildCode, woodenHorse);
}
}
@@ -618,9 +618,15 @@ export async function calWoodenHorseAndSend(serverId: number) {
console.log('calWoodenHorseAndSend');
let guildKey = REDIS_KEY.RACE_ACTIVITY;
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 { rank, code, name } = param;
let _obj = await obj.getWoodenHorse(code, serverId);
let _obj = calResult.get(code);
return new SimpleGuildRankWithTimeParam(rank, code, name, _obj);
}
let r = new Rank(REDIS_KEY.RACE_ACTIVITY, { serverId }, true);
@@ -672,7 +678,7 @@ export async function calWoodenHorseAndSend(serverId: number) {
}
}
}
calResult.clear();
return;
}