军团活动:修复rpc调用以及其他问题
This commit is contained in:
@@ -12,7 +12,7 @@ import { MAIL_TYPE, REDIS_KEY, ADULT_AGE, GUEST_MAX_TIME, ADDICTION_PREVENTION_C
|
||||
import { RankParam } from '../domain/rank';
|
||||
import { RoleModel } from '../db/Role';
|
||||
import { MailModel, MailType } from '../db/Mail';
|
||||
import { pinus } from 'pinus';
|
||||
import { pinus, Application } from 'pinus';
|
||||
import { indexOf } from 'underscore';
|
||||
import { PvpSeasonResultModel } from '../db/PvpSeasonResult';
|
||||
import { settleGuildWeekly } from './guildService';
|
||||
@@ -20,8 +20,9 @@ import { STATUS } from '../consts/statusCode';
|
||||
import { getMailContent, sendMail } from './mailService';
|
||||
import { reportOnline } from '../pubUtils/httpUtil';
|
||||
import User, { UserModel } from '../db/User';
|
||||
import { getGuildActivityByDic, getGuildActivityRank } from './guildActivityService';
|
||||
import { getGuildActivityByDic, getGuildActivityRank, setMedianCe } from './guildActivityService';
|
||||
import { sendUngotDividend, startGuildAuction, startWorldAuction, stopAuction } from './auctionService';
|
||||
import { DicGuildActivity } from '../pubUtils/dictionary/DicGuildActivity';
|
||||
const PER_SECOND = 1 * 1000;
|
||||
const PER_DAY = 24 * 60 * 60;
|
||||
const SETTLE_DIFF = 29 * 60;
|
||||
@@ -68,9 +69,14 @@ export async function init() {
|
||||
// 每5分钟汇报在线玩家在线情况
|
||||
scheduleJob('reportOnline', '0 0/5 * * * *', reportOnlineSchedule);
|
||||
|
||||
// 军团活动排行榜
|
||||
guildActivitySchedule();
|
||||
// 每天0点计算前一天活跃玩家中位数战力
|
||||
scheduleJob('setMedian', '0 0 5 * * ?', setMedianCe);
|
||||
|
||||
// 拍卖行刷新:拍卖阶段刷新,分红发放
|
||||
auctionSchedule();
|
||||
|
||||
}
|
||||
|
||||
function setPvpSeasonSchdule() {
|
||||
@@ -334,8 +340,9 @@ export async function reportOneOnline(roleId: string, userCode: string, sid: str
|
||||
* 军团活动,每晚8点开启
|
||||
*/
|
||||
async function guildActivitySchedule() {
|
||||
// 军团晚间活动,每天8点开始
|
||||
scheduleJob('guildActivityStart', '0 0 20 * * ?', guildActivityStart);
|
||||
/***********guildActivitySchedule***********/
|
||||
|
||||
scheduleJob('guildActivityStart', '0 0 20 * * ?', guildActivityStartSchedule);
|
||||
|
||||
let dicGuildActivity = getTodayGuildActivity();
|
||||
let statusResult = getGuildActivityByDic(dicGuildActivity);
|
||||
@@ -347,38 +354,44 @@ async function guildActivitySchedule() {
|
||||
if(dicGuildActivity.id == GUILD_ACTIVITY_TYPE.RACE_ACTIVITY) {
|
||||
seconds = 1;
|
||||
}
|
||||
guildActSecondsJobId = scheduleJob('guildActivitySeconds', seconds, guildActivitySeconds);
|
||||
guildActSecondsJobId = scheduleJob('guildActivitySeconds', `*/${seconds} * * * * *`, gateActivitySeconds);
|
||||
}
|
||||
|
||||
if(!guildActEndJobId) {
|
||||
guildActEndJobId = scheduleJob('guildActivityEnd', statusResult.time, guildActivityEnd);
|
||||
guildActEndJobId = scheduleJob('guildActivityEnd', statusResult.time, gateActivityEnd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 开始军团活动
|
||||
export async function guildActivityStart() {
|
||||
// 军团晚间活动,每天8点开始
|
||||
async function guildActivityStartSchedule() {
|
||||
await guildActivityStart();
|
||||
}
|
||||
|
||||
let dicGuildActivity = getTodayGuildActivity();
|
||||
export async function guildActivityStart(dicGuildActivity?: DicGuildActivity) {
|
||||
console.log('***********开始军团晚间活动****')
|
||||
if(!dicGuildActivity) dicGuildActivity = getTodayGuildActivity();
|
||||
if(!dicGuildActivity) return;
|
||||
|
||||
|
||||
let seconds = 10; // 每10秒下发一次
|
||||
if(dicGuildActivity.id == GUILD_ACTIVITY_TYPE.RACE_ACTIVITY) {
|
||||
seconds = 1;
|
||||
if(dicGuildActivity.id == GUILD_ACTIVITY_TYPE.GATE_ACTIVITY) {
|
||||
guildActSecondsJobId = scheduleJob('guildActivitySeconds', '*/10 * * * * *', gateActivitySeconds);
|
||||
// 结束时间
|
||||
guildActEndJobId = scheduleJob('guildActivityEnd', dicGuildActivity.duringTime, gateActivityEnd);
|
||||
} else if (dicGuildActivity.id == GUILD_ACTIVITY_TYPE.CITY_ACTIVITY) {
|
||||
|
||||
} else if (dicGuildActivity.id == GUILD_ACTIVITY_TYPE.RACE_ACTIVITY) {
|
||||
|
||||
}
|
||||
guildActSecondsJobId = scheduleJob('guildActivitySeconds', seconds, guildActivitySeconds);
|
||||
// 结束时间
|
||||
guildActEndJobId = scheduleJob('guildActivityEnd', dicGuildActivity.duringTime, guildActivityEnd);
|
||||
}
|
||||
|
||||
// 蛮夷入侵
|
||||
// 结束军团活动
|
||||
export async function guildActivityEnd() {
|
||||
export async function gateActivityEnd() {
|
||||
|
||||
let servers = pinus.app.getServersByType('guild');
|
||||
console.log(servers);
|
||||
for(let { id } of servers) {
|
||||
await pinus.app.rpc.guild.guildActivityRemote.guildActivityEnd.toServer(id);
|
||||
await pinus.app.rpc.guild.guildActivityRemote.guildActivityEnd.toServer(id, GUILD_ACTIVITY_TYPE.GATE_ACTIVITY);
|
||||
}
|
||||
|
||||
if(guildActSecondsJobId) guildActSecondsJobId.cancel();
|
||||
@@ -386,11 +399,10 @@ export async function guildActivityEnd() {
|
||||
}
|
||||
|
||||
// 每10秒下发一次的任务
|
||||
export async function guildActivitySeconds() {
|
||||
export async function gateActivitySeconds() {
|
||||
let servers = pinus.app.getServersByType('guild');
|
||||
console.log(servers);
|
||||
for(let { id } of servers) {
|
||||
await pinus.app.rpc.guild.guildActivityRemote.sendRankToGuilds.toServer(id);
|
||||
await pinus.app.rpc.guild.guildActivityRemote.sendRankToGuilds.toServer(id, GUILD_ACTIVITY_TYPE.GATE_ACTIVITY);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user