优化:抽象推送方法
This commit is contained in:
@@ -3,7 +3,7 @@ import { RoleModel } from "../../db/Role";
|
||||
import { GUILDACTIVITY } from "../../pubUtils/dicParam";
|
||||
import { gameData, getGuildAuctionRewards, getCityActivityRewards } from "../../pubUtils/data";
|
||||
import { getCurDay, nowSeconds, getTimeFun } 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 } from "../../consts";
|
||||
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 } from "../../consts";
|
||||
import { Record, UserGuildActivityRecModel } from "../../db/UserGuildActivityRec";
|
||||
import { GateMembersRec, CityParam, Member, WoodenHorse } from "../../domain/battleField/guildActivity";
|
||||
import { DicGuildActivity } from "../../pubUtils/dictionary/DicGuildActivity";
|
||||
@@ -27,6 +27,7 @@ import { addActive } from "../guildService";
|
||||
import { ActivePlayer, GuildRecord, ServerRecordModel } from "../../db/ServerRecords";
|
||||
import { Attack } from "../../domain/battleField/pvp";
|
||||
import { getHonourObject } from "../role/rewardService";
|
||||
import { sendMessageToCityWithSuc, sendMessageToGuildWithSuc, sendMessageToServerWithSuc } from "../pushService";
|
||||
|
||||
let gateActivityObj: GateActivityObject;
|
||||
let cityActivityObj: CityActivityObject;
|
||||
@@ -143,14 +144,6 @@ export function getGuildActivityByDic(dicGuildActivity: DicGuildActivity) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 军团活动状态变化推送,包括开始活动和定时结束活动,3种活动都会推送
|
||||
*/
|
||||
export async function sendGuildActivityStatus(serverId: number) {
|
||||
let chatSid = await getWorldChannelSid(serverId);
|
||||
pinus.app.rpc.chat.chatRemote.sendGuildActivityUpdate.toServer(chatSid, serverId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据每回合上报数据判断军功
|
||||
* @param aid
|
||||
@@ -285,11 +278,9 @@ export async function sendAllGuildRanks(aid: number) {
|
||||
let obj = getGateActivityObj();
|
||||
let guilds = obj.getGuilds();
|
||||
for (let [serverId, guildCodes] of guilds) {
|
||||
// TODO 不需要每个军团都排序一次
|
||||
for (let guildCode of guildCodes) {
|
||||
let ranks = await getGateActivityRank(guildCode, serverId);
|
||||
let chatSid = await getGuildChannelSid(guildCode);
|
||||
pinus.app.rpc.chat.guildRemote.pushRank.toServer(chatSid, guildCode, ranks);
|
||||
await sendMessageToGuildWithSuc(guildCode, PUSH_ROUTE.GATE_ACT_RANK, ranks);
|
||||
}
|
||||
}
|
||||
} else if (aid == GUILD_ACTIVITY_TYPE.CITY_ACTIVITY) {
|
||||
@@ -299,8 +290,7 @@ export async function sendAllGuildRanks(aid: number) {
|
||||
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);
|
||||
await sendMessageToGuildWithSuc(guildCode, PUSH_ROUTE.CITY_ACT_RANK, ranks);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -310,7 +300,7 @@ export async function sendAllGuildRanks(aid: number) {
|
||||
* 活动结算奖励
|
||||
* @param aid 活动类型
|
||||
*/
|
||||
export async function sendGuildActEndMsg(aid: number) {
|
||||
export async function settleGuildActivityReward(aid: number) {
|
||||
|
||||
if (aid == GUILD_ACTIVITY_TYPE.GATE_ACTIVITY) {
|
||||
let obj = getGateActivityObj();
|
||||
@@ -343,24 +333,18 @@ export async function sendGuildActEndMsg(aid: number) {
|
||||
}
|
||||
|
||||
// 全服发送结束新号
|
||||
export async function sendEndMsgToAll() {
|
||||
export async function sendEndMsgToAllServer() {
|
||||
let serverlist = await getAllServers();
|
||||
for (let serverId of serverlist) {
|
||||
let chatSid = await getWorldChannelSid(serverId);
|
||||
pinus.app.rpc.chat.chatRemote.sendGuildActivityEnd.toServer(chatSid, serverId);
|
||||
await sendMessageToServerWithSuc(serverId, PUSH_ROUTE.GUILD_ACTIVITY_END, {});
|
||||
await sendGuildActivityStatus(serverId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 单个军团城门血条破了之后给他发奖励
|
||||
* @param guildCode 军团code
|
||||
*/
|
||||
// export async function sendSingleGateActEndMsg(guildCode: string, serverId: number) {
|
||||
// let chatSid = await getGuildChannelSid(guildCode);
|
||||
// pinus.app.rpc.chat.guildRemote.sendGuildActivityEnd.toServer(chatSid, guildCode);
|
||||
// await gateActivitySettleReward(guildCode, serverId);
|
||||
// }
|
||||
export async function sendGuildActivityStatus(serverId: number) {
|
||||
let guildActivities = getAllGuildActivityStatus();
|
||||
await sendMessageToServerWithSuc(serverId, PUSH_ROUTE.GUILD_ACTIVITY_STATUS, { guildActivities });
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -368,11 +352,10 @@ export async function sendEndMsgToAll() {
|
||||
* @param guildCode 军团code
|
||||
*/
|
||||
export async function sendSingleCityActEndMsg(cityId: number, serverId: number) {
|
||||
let chatSid = await getCityChannelSid(cityId);
|
||||
let obj = getCityActivityObj();
|
||||
let guildCodes = obj.getGuildsInCity(serverId, cityId);
|
||||
for (let guildCode of guildCodes) {
|
||||
pinus.app.rpc.chat.guildRemote.sendGuildActivityEnd.toServer(chatSid, guildCode);
|
||||
await sendMessageToGuildWithSuc(guildCode, PUSH_ROUTE.GUILD_ACTIVITY_END, {});
|
||||
}
|
||||
await cityActivitySettleReward(cityId, serverId);
|
||||
}
|
||||
@@ -383,8 +366,7 @@ export async function sendSingleCityActEndMsg(cityId: number, serverId: number)
|
||||
* @param guildCode 军团code
|
||||
*/
|
||||
export async function sendSingleRaceActEndMsg(guildCode: string, woodenHorse: WoodenHorse) {
|
||||
let chatSid = await getGuildChannelSid(guildCode);
|
||||
pinus.app.rpc.chat.guildRemote.sendGuildActivityEnd.toServer(chatSid, guildCode);
|
||||
await sendMessageToGuildWithSuc(guildCode, PUSH_ROUTE.GUILD_ACTIVITY_END, {});
|
||||
await raceActivitySettleReward(guildCode, woodenHorse);
|
||||
}
|
||||
|
||||
@@ -621,6 +603,12 @@ export function getCityStatus(guildCode: string, cityId: number, dic: DicCityAct
|
||||
return status;
|
||||
}
|
||||
|
||||
export async function sendGuildCityDeclare(cityId: number, declareGuildCode: string, declareCount: number) {
|
||||
let msg = { cityId, declareGuildCode, declareCount };
|
||||
await sendMessageToCityWithSuc(cityId, PUSH_ROUTE.GUILD_CITY_DECLARE, msg);
|
||||
await sendMessageToGuildWithSuc(declareGuildCode, PUSH_ROUTE.GUILD_CITY_DECLARE, msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 每秒计算木牛流马状态并下发
|
||||
* @param serverId 区id
|
||||
@@ -680,10 +668,8 @@ export async function calWoodenHorseAndSend(serverId: number) {
|
||||
let curRank = ranks[rank];
|
||||
let wh = await obj.getWoodenHorse(curRank.code, serverId);
|
||||
let myGuildRank = new SimpleGuildRankWithTimeParam(curRank.rank, curRank.code, curRank.name, wh);
|
||||
|
||||
let chatSid = await getGuildChannelSid(curRank.code);
|
||||
let events = obj.getEvents(curRank.code, wh ? wh.distance : 0);
|
||||
pinus.app.rpc.chat.guildRemote.pushRaceHorseUpdate.toServer(chatSid, curRank.code, woodenHorseList, { guildRank, myGuildRank }, events);
|
||||
await sendMessageToGuildWithSuc(curRank.code, PUSH_ROUTE.GUILD_RACE_UPDATE, { timestamp: Date.now(), woodenHorseList, guildRank, myGuildRank, events });
|
||||
|
||||
map.delete(rank);
|
||||
}
|
||||
@@ -700,8 +686,7 @@ export async function sendRaceStartMsg(serverId: number) {
|
||||
let obj = getRaceActivityObj();
|
||||
obj.startRace(); // 设置开启活动
|
||||
|
||||
let chatSid = await getWorldChannelSid(serverId);
|
||||
pinus.app.rpc.chat.chatRemote.sendRaceActivityStart.toServer(chatSid, serverId);
|
||||
await sendMessageToServerWithSuc(serverId, PUSH_ROUTE.RACE_START, {});
|
||||
await calWoodenHorseAndSend(serverId);
|
||||
}
|
||||
|
||||
@@ -747,15 +732,6 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W
|
||||
obj.deleteFromList(guildCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 军团练兵场通关层数后全团发送弹窗礼包
|
||||
* @param guildCode 军团code
|
||||
*/
|
||||
export async function sendPopUpActivityData(guildCode: string, serverId: number, data: any[]) {
|
||||
let chatSid = await getGuildChannelSid(guildCode);
|
||||
pinus.app.rpc.chat.guildRemote.sendPopUpActivity.toServer(chatSid, guildCode, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* !! 注意,这条函数会改变内存中的字典表,仅用于测试中使用
|
||||
* 改变字典表中的军团活动开始时间&持续时间
|
||||
|
||||
Reference in New Issue
Block a user