军团活动:修复bug
This commit is contained in:
@@ -216,6 +216,17 @@ export async function sendAllGuildRanks(aid: number) {
|
||||
pinus.app.rpc.chat.guildRemote.pushRank.toServer(chatSid, guildCode, ranks);
|
||||
}
|
||||
}
|
||||
} else if (aid == GUILD_ACTIVITY_TYPE.CITY_ACTIVITY) {
|
||||
let obj = getCityActivityObj();
|
||||
let { cities } = obj.getAllCities();
|
||||
console.log(JSON.stringify(cities));
|
||||
for(let { serverId, cityId, guildCodes } of cities) {
|
||||
for(let guildCode of guildCodes) {
|
||||
let ranks = await getCityActivityRank(guildCode, serverId, cityId);
|
||||
let chatSid = await getGuildChannelSid(guildCode);
|
||||
pinus.app.rpc.chat.guildRemote.pushCityActRank.toServer(chatSid, guildCode, ranks);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -373,6 +384,8 @@ export async function cityActivitySettleReward(cityId: number, serverId: number)
|
||||
await updateUserRecAndSendHonour(honour, 0, 0, roleId, members);
|
||||
}
|
||||
}
|
||||
|
||||
obj.delCityRecord(cityId, serverId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -414,9 +427,9 @@ export function getCities(guildCode: string, dbCities: GuildActivityCityType[])
|
||||
let curCity = dbCities.find(cur => cur.cityId == cityId);
|
||||
|
||||
if(curCity) {
|
||||
param.guardGuildCode = curCity.guardGuildCode;
|
||||
param.guardGuildName = curCity.guardGuildName;
|
||||
param.declareCount = curCity.declareCount;
|
||||
param.guardGuildCode = curCity.guardGuildCode||"";
|
||||
param.guardGuildName = curCity.guardGuildName||"";
|
||||
param.declareCount = curCity.declareCount||0;
|
||||
}
|
||||
|
||||
param.status = getCityStatus(guildCode, cityId, dic.preCity, dbCities);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { GOOD_QUALITY, REDIS_RANK_TO_INFO, COM_BTL_QUALITY } from './../consts';
|
||||
import { GOOD_QUALITY, REDIS_RANK_TO_INFO, COM_BTL_QUALITY, GUILD_ACTIVITY_TYPE, GUILD_ACTIVITY_STATUS } from './../consts';
|
||||
import { RoleModel, RoleType } from "../db/Role";
|
||||
import * as Redis from 'redis';
|
||||
import {REDIS_KEY} from '../consts'
|
||||
@@ -11,6 +11,7 @@ import { GuildRankParam, GuildLeader, RankParam } from '../domain/rank';
|
||||
import { GuildModel } from '../db/Guild';
|
||||
import { comBtlRanges } from '../pubUtils/gamedata';
|
||||
import { getNextHourPoint } from '../pubUtils/timeUtil';
|
||||
import { gameData } from '../pubUtils/data';
|
||||
/**
|
||||
* 在服务重新启动时,将信息存入redis
|
||||
*/
|
||||
@@ -183,7 +184,6 @@ export async function getRank(key: string, serverId: number, roleId: string, lim
|
||||
const rankFromDb = await redisClient().zrevrangebyscoreAsync(getKeyName(key, serverId), '+inf', '-inf', "WITHSCORES", "LIMIT", 0, limit);
|
||||
|
||||
let _key = key.split(':')[0];
|
||||
console.log('****', _key)
|
||||
let infoKey = REDIS_RANK_TO_INFO.get(_key)||REDIS_KEY.USER_INFO;
|
||||
|
||||
for(let ii = 0; ii < rankFromDb.length; ii+=2) {
|
||||
@@ -674,14 +674,29 @@ export function getCityKeyName(key: string, cityId: number) {
|
||||
* debug接口使用,直接删除排行榜数据
|
||||
* @param params serverId => guildCodes
|
||||
*/
|
||||
export async function delGuildActivityRank(params: Map<number, string[]>) {
|
||||
for(let [serverId, guildCodes] of params) {
|
||||
await redisClient().delAsync(getKeyName(REDIS_KEY.GATE_ACTIVITY, serverId));
|
||||
await redisClient().delAsync(getKeyName(REDIS_KEY.GATE_ACTIVITY, serverId, 'time'));
|
||||
await redisClient().delAsync(getKeyName(REDIS_KEY.GATE_ACTIVITY, serverId, 'union'));
|
||||
|
||||
for(let guildCode of guildCodes) {
|
||||
await redisClient().delAsync(getKeyName(getGuildKeyName(REDIS_KEY.USER_GATE_ACTIVITY, guildCode), serverId));
|
||||
export async function delGuildActivityRank(aid: number, params: Map<number, string[]>) {
|
||||
if(aid == GUILD_ACTIVITY_TYPE.GATE_ACTIVITY) {
|
||||
for(let [serverId, guildCodes] of params) {
|
||||
await redisClient().delAsync(getKeyName(REDIS_KEY.GATE_ACTIVITY, serverId));
|
||||
await redisClient().delAsync(getKeyName(REDIS_KEY.GATE_ACTIVITY, serverId, 'time'));
|
||||
await redisClient().delAsync(getKeyName(REDIS_KEY.GATE_ACTIVITY, serverId, 'union'));
|
||||
|
||||
for(let guildCode of guildCodes) {
|
||||
await redisClient().delAsync(getKeyName(getGuildKeyName(REDIS_KEY.USER_GATE_ACTIVITY, guildCode), serverId));
|
||||
}
|
||||
}
|
||||
} else if (aid == GUILD_ACTIVITY_TYPE.CITY_ACTIVITY) {
|
||||
let dicCity = gameData.cityActivity;
|
||||
for(let [cityId] of dicCity) {
|
||||
for(let [serverId, guildCodes] of params) {
|
||||
await redisClient().delAsync(getKeyName(getCityKeyName(REDIS_KEY.CITY_ACTIVITY, cityId) , serverId));
|
||||
await redisClient().delAsync(getKeyName(getCityKeyName(REDIS_KEY.CITY_ACTIVITY, cityId), serverId, 'time'));
|
||||
await redisClient().delAsync(getKeyName(getCityKeyName(REDIS_KEY.CITY_ACTIVITY, cityId), serverId, 'union'));
|
||||
|
||||
for(let guildCode of guildCodes) {
|
||||
await redisClient().delAsync(getKeyName(getGuildKeyName(REDIS_KEY.USER_CITY_ACTIVITY, guildCode), serverId));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -379,7 +379,9 @@ export async function guildActivityStart(dicGuildActivity?: DicGuildActivity) {
|
||||
// 结束时间
|
||||
guildActEndJobId = scheduleJob('guildActivityEnd', dicGuildActivity.duringTime, gateActivityEnd);
|
||||
} else if (dicGuildActivity.id == GUILD_ACTIVITY_TYPE.CITY_ACTIVITY) {
|
||||
|
||||
guildActSecondsJobId = scheduleJob('guildActivitySeconds', '*/10 * * * * *', cityActivitySeconds);
|
||||
// 结束时间
|
||||
guildActEndJobId = scheduleJob('guildActivityEnd', dicGuildActivity.duringTime, cityActivityEnd);
|
||||
} else if (dicGuildActivity.id == GUILD_ACTIVITY_TYPE.RACE_ACTIVITY) {
|
||||
|
||||
}
|
||||
@@ -406,6 +408,27 @@ export async function gateActivitySeconds() {
|
||||
}
|
||||
}
|
||||
|
||||
// 诸侯混战
|
||||
// 结束军团活动
|
||||
export async function cityActivityEnd() {
|
||||
|
||||
let servers = pinus.app.getServersByType('guild');
|
||||
for(let { id } of servers) {
|
||||
await pinus.app.rpc.guild.guildActivityRemote.guildActivityEnd.toServer(id, GUILD_ACTIVITY_TYPE.CITY_ACTIVITY);
|
||||
}
|
||||
|
||||
if(guildActSecondsJobId) guildActSecondsJobId.cancel();
|
||||
if(guildActEndJobId) guildActEndJobId.cancel();
|
||||
}
|
||||
|
||||
// 每10秒下发一次的任务
|
||||
export async function cityActivitySeconds() {
|
||||
let servers = pinus.app.getServersByType('guild');
|
||||
for(let { id } of servers) {
|
||||
await pinus.app.rpc.guild.guildActivityRemote.sendRankToGuilds.toServer(id, GUILD_ACTIVITY_TYPE.CITY_ACTIVITY);
|
||||
}
|
||||
}
|
||||
|
||||
function auctionSchedule() {
|
||||
scheduleJob('startGuildAuction', '0 0 20 20 * ?', startGuildAuction);
|
||||
scheduleJob('startWorldAuction', '0 0 20 30 * ?', startWorldAuction);
|
||||
|
||||
Reference in New Issue
Block a user