军团活动:修复粮草先行索引问题
This commit is contained in:
@@ -31,16 +31,16 @@ export class GateActivityObject {
|
||||
}
|
||||
|
||||
public pushMembers(guildCode: string, serverId: number, roleId: string, job: number, code: string) {
|
||||
|
||||
let member: Member;
|
||||
if(this.members.has(guildCode)) {
|
||||
let members = this.members.get(guildCode);
|
||||
if(members.findIndex(cur => cur.roleId == roleId) == -1) {
|
||||
members.push({ roleId, job, code });
|
||||
member = { roleId, job, code }
|
||||
members.push(member);
|
||||
}
|
||||
} else {
|
||||
let arr = new Array<string>();
|
||||
arr.push(roleId);
|
||||
this.members.set(guildCode, [{ roleId, job, code }]);
|
||||
member = { roleId, job, code }
|
||||
this.members.set(guildCode, [member]);
|
||||
}
|
||||
if(this.guilds.has(serverId)) {
|
||||
let arr = this.guilds.get(serverId);
|
||||
@@ -49,7 +49,7 @@ export class GateActivityObject {
|
||||
} else {
|
||||
this.guilds.set(serverId, [guildCode]);
|
||||
}
|
||||
|
||||
return member;
|
||||
}
|
||||
|
||||
public getMemberRecord(recCode: string, roleId: string) {
|
||||
|
||||
@@ -5,7 +5,7 @@ import { gameData, getGuildAuctionRewards, getCityActivityRewards, getGuildAucti
|
||||
import { getCurDay, nowSeconds, getTimeFun, getZeroPoint } from "../../pubUtils/timeUtil";
|
||||
import { GUILD_ACTIVITY_STATUS, GET_POINT_WAYS, GUILD_ACTIVITY_TYPE, REDIS_KEY, AUCTION_SOURCE, MAIL_TYPE, CITY_STATUS, DEBUG_MAGIC_WORD, GUILD_POINT_WAYS, TASK_TYPE, AUCTION_TIME, CITY_ACTIVITY_DOOR, ABI_TYPE, PUSH_ROUTE, RACE_ACTIVITY_STATUS, SHOP_REFRESH_TYPE, COUNTER } from "../../consts";
|
||||
import { Record, UserGuildActivityRecModel } from "../../db/UserGuildActivityRec";
|
||||
import { GateMembersRec, CityParam, Member, WoodenHorse, RaceActivityRankParam } from "../../domain/battleField/guildActivity";
|
||||
import { GateMembersRec, CityParam, WoodenHorse, RaceActivityRankParam } from "../../domain/battleField/guildActivity";
|
||||
import { DicGuildActivity } from "../../pubUtils/dictionary/DicGuildActivity";
|
||||
import { getAllServers, getRoleOnlineInfo } from "../redisService";
|
||||
import { SimpleGuildRankParam, SimpleRoleRankParam, GuildRankInfo, RoleRankInfo } from "../../domain/rank";
|
||||
@@ -462,7 +462,6 @@ export async function cityActivitySettleReward(cityId: number, serverId: number)
|
||||
let members = obj.getMembersOfGuild(guildCode);
|
||||
|
||||
let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, index, {
|
||||
memberCnt: members.length, members,
|
||||
isSuccess, isCompleted: true,
|
||||
rank: guildRank, damage: num, remainGateHp: gateHp,
|
||||
rewards: rewards.map(cur => cur.goods),
|
||||
@@ -660,8 +659,9 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W
|
||||
let { guildRank, myGuildRank } = await obj.getRanks(serverId, guildCode);
|
||||
let rank = myGuildRank?.rank||0;
|
||||
|
||||
let index = getGAIndexInPinus(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY);
|
||||
let r = new Rank(REDIS_KEY.RACE_ACTIVITY, { serverId, index });
|
||||
let joinIndex = getJoinIndex();
|
||||
console.log('##### raceActivitySettleReward', joinIndex, serverId, guildCode);
|
||||
let r = new Rank(REDIS_KEY.RACE_ACTIVITY, { serverId, index: joinIndex });
|
||||
await r.setRankWithGuildInfo2(guildCode, myGuildRank.num, myGuildRank.sortTime, myGuildRank.durability);
|
||||
let nextWeek = <number>getTimeFun().getAfterDayWithHour(7);
|
||||
await r.setExpire(nextWeek);
|
||||
@@ -670,8 +670,7 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W
|
||||
let members = obj.getMembersOfGuild(guildCode);
|
||||
|
||||
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, rank);
|
||||
let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, index, {
|
||||
memberCnt: members.length, members,
|
||||
let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, joinIndex, {
|
||||
isSuccess, isCompleted: true, rank,
|
||||
rewards: rewards.map(cur => cur.goods),
|
||||
woodenHorse: woodenHorse.getTreatTime(),
|
||||
@@ -860,4 +859,11 @@ export function getDeclareIndex() {
|
||||
let obj = getCityActivityObj();
|
||||
if(obj.guildActivityStatus == GUILD_ACTIVITY_STATUS.START) return index;
|
||||
return index + 1;
|
||||
}
|
||||
|
||||
export function getJoinIndex() {
|
||||
let index = getGAIndexInPinus(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY);
|
||||
let obj = getRaceActivityObj();
|
||||
if(obj.status == GUILD_ACTIVITY_STATUS.START) return index;
|
||||
return index + 1;
|
||||
}
|
||||
@@ -6,13 +6,13 @@ import { RewardInter } from "../../pubUtils/interface";
|
||||
import { getRaceEventItems, gameData } from "../../pubUtils/data";
|
||||
import { GuildModel } from "../../db/Guild";
|
||||
import { sendSingleRaceActEndMsg } from "./guildActivityService";
|
||||
import { REDIS_KEY, RACE_EVENT_TYPE, RACE_EVENT_EFFECT_TYPE, RACE_EVENT, STATUS, RACE_ACTIVITY_STATUS, PUSH_ROUTE, GUILD_ACTIVITY_STATUS, DEBUG_MAGIC_WORD } from "../../consts";
|
||||
import { REDIS_KEY, RACE_EVENT_TYPE, RACE_EVENT_EFFECT_TYPE, RACE_EVENT, STATUS, PUSH_ROUTE, GUILD_ACTIVITY_STATUS, DEBUG_MAGIC_WORD } from "../../consts";
|
||||
import { getRandEelm, sortArrRandom, resResult, getRandResultByMember } from "../../pubUtils/util";
|
||||
import { sendMessageToGuildWithSuc, sendMessageToServerWithSuc, sendMessageToUserWithSuc } from "../pushService";
|
||||
|
||||
// 粮草先行
|
||||
export class RaceActivityObject {
|
||||
public status = RACE_ACTIVITY_STATUS.WAITING; // 活动状态 0-未开始 1-已开始 2-已结束
|
||||
public status = GUILD_ACTIVITY_STATUS.WAITING; // 活动状态 0-未开始 1-已开始 2-已结束
|
||||
private allStartTime = 0; // 开启时间,每天晚上8点
|
||||
public guildList: Array<{ serverId: number, guildCode: string }> = []; // 所有军团
|
||||
private members: Map<string, Array<Member>> = new Map(); // 每个军团参与的成员 guildCode => [{roleId, job}]
|
||||
@@ -88,7 +88,7 @@ export class RaceActivityObject {
|
||||
let member = woodenHorse.joinMember(roleId, roleName, sid, code)
|
||||
this.pushMember(guildCode, roleId, job, code);
|
||||
|
||||
if(this.status == RACE_ACTIVITY_STATUS.START) {
|
||||
if(this.status == GUILD_ACTIVITY_STATUS.START) {
|
||||
this.sendRandItemsToMembers([member], woodenHorse, woodenHorse.remainItems);
|
||||
this.woodenHorseStartRace(woodenHorse);
|
||||
}
|
||||
@@ -150,7 +150,7 @@ export class RaceActivityObject {
|
||||
|
||||
// 定时任务到,开始比赛,设置开始赛道,发放初始道具
|
||||
public startRace() {
|
||||
this.status = RACE_ACTIVITY_STATUS.START;
|
||||
this.status = GUILD_ACTIVITY_STATUS.START;
|
||||
if(this.allStartTime == 0) this.allStartTime = Date.now();
|
||||
let guildCodes = new Array<string>();
|
||||
for(let [code, woodenHorse] of this.woodenHorses) {
|
||||
@@ -163,7 +163,7 @@ export class RaceActivityObject {
|
||||
}
|
||||
|
||||
public stopRace() {
|
||||
this.status = RACE_ACTIVITY_STATUS.END;
|
||||
this.status = GUILD_ACTIVITY_STATUS.END;
|
||||
for(let [_, woodenHorse] of this.woodenHorses) {
|
||||
woodenHorse.stopRace();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user