(寻宝): 将寻宝的服单拎出来

This commit is contained in:
luying
2023-05-05 15:42:33 +08:00
parent 0a18e7330b
commit ddc05d58b9
20 changed files with 352 additions and 125 deletions
@@ -1,55 +0,0 @@
import { Application, ChannelService, FrontendSession, RemoterClass, HandlerService, pinus, } from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { STATUS } from '../../../consts';
import { handleComBtlProgress, _addToSearchingTeams } from '../../../services/battle/comBattleService';
import { MemComBtlTeam } from '../../../domain/battleField/ComBattleTeamField';
import { errlogger } from '../../../util/logger';
import { saveComBattleMemory } from '../../../services/log/memoryLogService';
export default function (app: Application) {
new HandlerService(app, {});
return new ComBattleRemote(app);
}
export class ComBattleRemote {
bossHp = 10000;
constructor(private app: Application) {
this.app = app;
this.channelService = app.get('channelService');
}
private channelService: ChannelService;
public async checkMyTeam(roleId: string ) {
try {
let teamMap: Map<string, MemComBtlTeam> = this.app.get('teamMap');
let hasMyTeam = false;
for(let [,team] of teamMap) {
if(team.roleIds.indexOf(roleId) > -1) {
hasMyTeam = true; break;
}
}
return hasMyTeam
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public async addToSearchingTeams(teamCode: string, roleId: string, sid: string) {
try {
await _addToSearchingTeams(teamCode, roleId, sid);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public saveComBattleMemory() {
try {
return saveComBattleMemory();
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
}
@@ -1,4 +1,4 @@
import { ComBattleInvitation, MemComBtlTeam } from './../../../domain/battleField/ComBattleTeamField';
import { ComBattleInvitation, MemComBtlTeam } from '../../../domain/battleField/ComBattleTeamField';
import { difference, pick } from 'underscore';
/*
* @Author: 梁桐川
@@ -6,7 +6,7 @@ import { difference, pick } from 'underscore';
* @Last Modified by: 梁桐川
* @Last Modified time: 2021-08-27 17:47:56
*/
import { IT_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, COM_TEAM_STATUS, COM_BTL_CONST, CONSUME_TYPE, MSG_SOURCE, ROLE_SELECT, TASK_TYPE, KING_EXP_RATIO_TYPE, ITEM_CHANGE_REASON, getChannelType, CHANNEL_PREFIX, DEBUG_MAGIC_WORD, PUSH_ROUTE, POPULATE_TYPE } from './../../../consts';
import { IT_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, COM_TEAM_STATUS, COM_BTL_CONST, CONSUME_TYPE, MSG_SOURCE, ROLE_SELECT, TASK_TYPE, KING_EXP_RATIO_TYPE, ITEM_CHANGE_REASON, getChannelType, CHANNEL_PREFIX, DEBUG_MAGIC_WORD, PUSH_ROUTE, POPULATE_TYPE } from '../../../consts';
import Role, { RoleModel } from '../../../db/Role';
import { STATUS } from '../../../consts/statusCode';
import { Application, BackendSession } from 'pinus';
@@ -0,0 +1,119 @@
import { Application, ChannelService, FrontendSession, RemoterClass, HandlerService, pinus, } from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { STATUS } from '../../../consts';
import { handleComBtlProgress, _addToSearchingTeams } from '../../../services/battle/comBattleService';
import { MemComBtlTeam } from '../../../domain/battleField/ComBattleTeamField';
import { errlogger } from '../../../util/logger';
import { saveComBattleMemory } from '../../../services/log/memoryLogService';
import { setApiIsClose } from '../../../services/chatService';
import { setHiddenData } from '../../../services/memoryCache/hiddenData';
import { setKvToMemory } from '../../../services/pushService';
import { getServerMainten, setServerMainten, stopServerMainten } from '../../../services/gmService';
import { reloadResources } from '../../../pubUtils/data';
export default function (app: Application) {
new HandlerService(app, {});
return new ComBattleRemote(app);
}
export class ComBattleRemote {
bossHp = 10000;
constructor(private app: Application) {
this.app = app;
this.channelService = app.get('channelService');
}
private channelService: ChannelService;
public async checkMyTeam(roleId: string ) {
try {
let teamMap: Map<string, MemComBtlTeam> = this.app.get('teamMap');
let hasMyTeam = false;
for(let [,team] of teamMap) {
if(team.roleIds.indexOf(roleId) > -1) {
hasMyTeam = true; break;
}
}
return hasMyTeam
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public async addToSearchingTeams(teamCode: string, roleId: string, sid: string) {
try {
await _addToSearchingTeams(teamCode, roleId, sid);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public saveComBattleMemory() {
try {
return saveComBattleMemory();
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public async setApiIsClose(isClose: boolean) {
try {
setApiIsClose(isClose);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public async setHiddenData(heroes: number[], goods: number[], refTime: number) {
try {
setHiddenData(heroes, goods, refTime);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public async setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
try {
setKvToMemory(originK, originV, aesKey, aesIV, now);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public setServerMainten(serverIds: number[], startTime: number, endTime: number) {
try {
setServerMainten(serverIds, startTime, endTime);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public stopServerMainten(serverIds: number[]) {
try {
stopServerMainten(serverIds);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public getServerMainten(serverId: number) {
try {
return getServerMainten(serverId);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
/**
* 重载json资源
*/
public async reloadResources() {
try {
reloadResources();
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
}
@@ -91,6 +91,10 @@ export class GmHandler {
for (let { id } of battleServers) {
await this.app.rpc.battle.battleRemote.reloadResources.toServer(id);
}
let comBattleServers = this.app.getServersByType('comBattle');
for (let { id } of comBattleServers) {
await this.app.rpc.comBattle.comBattleRemote.reloadResources.toServer(id);
}
let chatServers = this.app.getServersByType('chat');
for (let { id } of chatServers) {
await this.app.rpc.chat.chatRemote.reloadResources.toServer(id);
+4 -2
View File
@@ -4,7 +4,7 @@
// UserRpc的命名空间自动合并
import { FrontendSession, RemoterClass } from 'pinus';
import { ChatRemote } from './chat/remote/chatRemote';
import { ComBattleRemote } from './battle/remote/comBattleRemote';
import { ComBattleRemote } from './comBattle/remote/comBattleRemote';
import { BattleRemote } from './battle/remote/battleRemote';
import { ConnectorRemote } from './connector/remote/connectorRemote';
import { SystimerRemote } from './systimer/remote/systimerRemote';
@@ -20,9 +20,11 @@ declare global {
activityRemote: RemoterClass<FrontendSession, ActivityRemote>;
};
battle: {
comBattleRemote: RemoterClass<FrontendSession, ComBattleRemote>;
battleRemote: RemoterClass<FrontendSession, BattleRemote>;
};
comBattle: {
comBattleRemote: RemoterClass<FrontendSession, ComBattleRemote>;
};
chat: {
chatRemote: RemoterClass<FrontendSession, ChatRemote>;
};
@@ -574,7 +574,7 @@ export async function addToSearchingTeams(roleId: string, sid: string, lvs: numb
let battleServer = await getComTeamSidByCode(lv, teamCode);
if(!battleServer) return false;
return await pinus.app.rpc.battle.comBattleRemote.addToSearchingTeams.toServer(battleServer, teamCode, roleId, sid);
return await pinus.app.rpc.comBattle.comBattleRemote.addToSearchingTeams.toServer(battleServer, teamCode, roleId, sid);
}
export async function _addToSearchingTeams(teamCode: string, roleId: string, sid: string) {
+1
View File
@@ -497,4 +497,5 @@ export async function setApiIsCloseToRemote(isClose: boolean) {
await pinus.app.rpc.order.orderRemote.setApiIsClose.broadcast(isClose);
await pinus.app.rpc.role.roleRemote.setApiIsClose.broadcast(isClose);
await pinus.app.rpc.systimer.systimerRemote.setApiIsClose.broadcast(isClose);
await pinus.app.rpc.comBattle.comBattleRemote.setApiIsClose.broadcast(isClose);
}
+24 -24
View File
@@ -10,12 +10,12 @@ export function checkRouteParam(route: string, msg: any) {
case 'activity.gachaHandler.getVisitedHero':
case 'activity.gachaHandler.getGuideGachaData':
case 'activity.selfServiceShopHandler.getSelfServiceShopActivity':
case "battle.comBattleHandler.cancelSearch":
case "battle.comBattleHandler.getTeamRec":
case "battle.comBattleHandler.getAssistCnt":
case "battle.comBattleHandler.getComBtlCnt":
case "battle.comBattleHandler.getRecentTeammates":
case "battle.comBattleHandler.getTeamInvitation":
case "comBattle.comBattleHandler.cancelSearch":
case "comBattle.comBattleHandler.getTeamRec":
case "comBattle.comBattleHandler.getAssistCnt":
case "comBattle.comBattleHandler.getComBtlCnt":
case "comBattle.comBattleHandler.getRecentTeammates":
case "comBattle.comBattleHandler.getTeamInvitation":
case "battle.dailyBattleHandler.getData":
case "battle.dungeonBattleHandler.getData":
case "battle.eventBattleHandler.getEvents":
@@ -505,54 +505,54 @@ export function checkRouteParam(route: string, msg: any) {
if(!checkNaturalStrings(rid, index, content)) return false;
break;
}
case "battle.comBattleHandler.createTeam":
case "comBattle.comBattleHandler.createTeam":
{
let { blueprtId, pub, ceLimit } = msg;
if(!checkNaturalNumbers(blueprtId, ceLimit)) return false;
if(!checkBoolean(pub)) return false;
break;
}
case "battle.comBattleHandler.searchTeam":
case "comBattle.comBattleHandler.searchTeam":
{
let { lv, magicWord } = msg;
if(!checkNumberArray(lv)) return false;
if(!!magicWord && magicWord != DEBUG_MAGIC_WORD) return false;
break;
}
case "battle.comBattleHandler.joinTeam":
case "comBattle.comBattleHandler.joinTeam":
{
if(!checkNaturalStrings(msg.teamCode)) return false;
if(!checkBoolean(msg.isFrd)) return false;
break;
}
case "battle.comBattleHandler.setFrdAssistance":
case "comBattle.comBattleHandler.setFrdAssistance":
{
if(!checkNaturalStrings(msg.teamCode)) return false;
if(!checkBoolean(msg.isFrd)) return false;
break;
}
case "battle.comBattleHandler.setupHeroes":
case "comBattle.comBattleHandler.setupHeroes":
{
let { teamCode, heroes, battleCode } = msg;
if(!checkNaturalStrings(teamCode, battleCode)) return false;
if(!checkNumberArray(heroes)) return false;
break;
}
case "battle.comBattleHandler.rmTeammate":
case "comBattle.comBattleHandler.rmTeammate":
{
if(!checkNaturalStrings(msg.teamCode, msg.roleIdToRm)) return false;
break;
}
case "battle.comBattleHandler.dismiss":
case "battle.comBattleHandler.startBattle":
case "battle.comBattleHandler.autoInvite":
case "battle.comBattleHandler.comBattleEnd":
case "battle.comBattleHandler.getComBtlStatus":
case "comBattle.comBattleHandler.dismiss":
case "comBattle.comBattleHandler.startBattle":
case "comBattle.comBattleHandler.autoInvite":
case "comBattle.comBattleHandler.comBattleEnd":
case "comBattle.comBattleHandler.getComBtlStatus":
{
if(!checkNaturalStrings(msg.teamCode)) return false;
break;
}
case "battle.comBattleHandler.action":
case "comBattle.comBattleHandler.action":
{
let { teamCode, bossHurts, killed, curRnd } = msg;
if(!checkNaturalStrings(teamCode)) return false;
@@ -566,12 +566,12 @@ export function checkRouteParam(route: string, msg: any) {
}
break;
}
case "battle.comBattleHandler.getBlueprtCount":
case "comBattle.comBattleHandler.getBlueprtCount":
{
if(!checkNumberArray(msg.ids)) return false;
break;
}
case "battle.comBattleHandler.sendTeamMsg":
case "comBattle.comBattleHandler.sendTeamMsg":
{
let { teamCode, type, content, targetRoleId, targetMsgCode } = msg;
if(!checkNaturalStrings(teamCode, content)) return false;
@@ -579,7 +579,7 @@ export function checkRouteParam(route: string, msg: any) {
if(!checkNaturalNumbers(type)) return false;
break;
}
case "battle.comBattleHandler.inviteTeammate":
case "comBattle.comBattleHandler.inviteTeammate":
{
if(!checkNaturalStrings(msg.teamCode, msg.targetRoleId)) return false;
break;
@@ -2105,9 +2105,9 @@ export function checkRouteParam(route: string, msg: any) {
if (msg.magicWord !== DEBUG_MAGIC_WORD || !isDevelopEnv()) return false;
break;
}
case "battle.comBattleHandler.getTeams":
case "battle.comBattleHandler.teammateReady":
case "battle.comBattleHandler.battleEnd":
case "comBattle.comBattleHandler.getTeams":
case "comBattle.comBattleHandler.teammateReady":
case "comBattle.comBattleHandler.battleEnd":
case "connector.entryHandler.addSession":
case "connector.entryHandler.getIp":
case "chat.chatHandler.getInitMessage":
@@ -354,6 +354,7 @@ export async function assignServer(roleId: string, session: FrontendOrBackendSes
let guild = await _assignServer(roleId, 'guild');
let role = await _assignServer(roleId, 'role');
let order = await _assignServer(roleId, 'order');
let comBattle = await _assignServer(roleId, 'comBattle');
if(activity) {
session.set('activityServer', activity);
session.push('activityServer', () => { });
@@ -378,6 +379,10 @@ export async function assignServer(roleId: string, session: FrontendOrBackendSes
session.set('orderServer', order);
session.push('orderServer', () => { });
}
if(comBattle) {
session.set('comBattleServer', comBattle);
session.push('comBattleServer', () => { });
}
} catch(e) {
console.log(e)
}
+1
View File
@@ -13,6 +13,7 @@ export async function setHiddenDataToMemory(data: HiddenDataModelType, nextData:
sendUpdateMessage(getHiddenData(), heroes, goods, refTime);
pinus.app.rpc.activity.activityRemote.setHiddenData.broadcast(heroes, goods, refTime);
pinus.app.rpc.battle.battleRemote.setHiddenData.broadcast(heroes, goods, refTime);
pinus.app.rpc.comBattle.comBattleRemote.setHiddenData.broadcast(heroes, goods, refTime);
pinus.app.rpc.chat.chatRemote.setHiddenData.broadcast(heroes, goods, refTime);
pinus.app.rpc.connector.connectorRemote.setHiddenData.broadcast(heroes, goods, refTime);
pinus.app.rpc.guild.guildRemote.setHiddenData.broadcast(heroes, goods, refTime);
@@ -101,7 +101,7 @@ export async function saveGuildActivityIndexMemory() {
}
async function _saveComBattleMemory() {
await pinus.app.rpc.battle.comBattleRemote.saveComBattleMemory.broadcast();
await pinus.app.rpc.comBattle.comBattleRemote.saveComBattleMemory.broadcast();
}
export async function saveComBattleMemory() {
+1
View File
@@ -223,6 +223,7 @@ function setKvToRemote(originK: string, originV: string, aesKey: string, aesIV:
pinus.app.rpc.order.orderRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
pinus.app.rpc.role.roleRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
pinus.app.rpc.systimer.systimerRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
pinus.app.rpc.comBattle.comBattleRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
}
export function setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
@@ -644,6 +644,7 @@ async function startMaintenanceSchedule(batchCode: string) {
pinus.app.rpc.connector.connectorRemote.setServerMainten.broadcast(serverIds, maintenance.startTime, maintenance.endTime);
pinus.app.rpc.activity.activityRemote.setServerMainten.broadcast(serverIds, maintenance.startTime, maintenance.endTime);
pinus.app.rpc.battle.battleRemote.setServerMainten.broadcast(serverIds, maintenance.startTime, maintenance.endTime);
pinus.app.rpc.comBattle.comBattleRemote.setServerMainten.broadcast(serverIds, maintenance.startTime, maintenance.endTime);
pinus.app.rpc.chat.chatRemote.setServerMainten.broadcast(serverIds, maintenance.startTime, maintenance.endTime);
pinus.app.rpc.guild.guildRemote.setServerMainten.broadcast(serverIds, maintenance.startTime, maintenance.endTime);
pinus.app.rpc.order.orderRemote.setServerMainten.broadcast(serverIds, maintenance.startTime, maintenance.endTime);
@@ -678,6 +679,7 @@ export async function stopMaintenance(batchCode: string, serverIds: number[]) {
pinus.app.rpc.connector.connectorRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.activity.activityRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.battle.battleRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.comBattle.comBattleRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.chat.chatRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.guild.guildRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.order.orderRemote.stopServerMainten.broadcast(serverIds);
+17 -5
View File
@@ -23,17 +23,30 @@ export async function battle(session: Session, msg: any, app: Application, cb: (
return;
}
let rid = session.get('roleId');
let id = session.get('battleServer')||(await dispatch(redisClient(), rid, battleServers, 'battle')).id;
cb(null, id);
}
export async function comBattle(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) {
let battleServers = app.getServersByType('comBattle');
if (!battleServers || battleServers.length === 0) {
cb(new Error('can not find comBattle servers.'));
return;
}
let rid = session.get('roleId');
let needDispatch = false;
if (msg.args && msg.args.length > 0) {
for (let arg of msg.args) {
if (!arg.route) continue;
if (['battle.comBattleHandler.createTeam', 'battle.comBattleHandler.searchTeam'].indexOf(arg.route) !== -1) {
if (['comBattle.comBattleHandler.createTeam', 'comBattle.comBattleHandler.searchTeam'].indexOf(arg.route) !== -1) {
needDispatch = true;
rid = Math.random().toString(36).slice(-8);
session.set('teamCode', rid);
} else if (arg.route.indexOf('battle.comBattleHandler') !== -1) {
} else if (arg.route.indexOf('comBattle.comBattleHandler') !== -1) {
if (arg.body.teamCode) {
needDispatch = true;
rid = arg.body.teamCode;
@@ -43,15 +56,14 @@ export async function battle(session: Session, msg: any, app: Application, cb: (
}
if(needDispatch) {
let id = (await dispatch(redisClient(), rid, battleServers, 'battle')).id;
let id = (await dispatch(redisClient(), rid, battleServers, 'comBattle')).id;
cb(null, id);
} else {
let id = session.get('battleServer')||(await dispatch(redisClient(), rid, battleServers, 'battle')).id;
let id = session.get('comBattleServer')||(await dispatch(redisClient(), rid, battleServers, 'comBattle')).id;
cb(null, id);
}
}
export async function guild(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) {
let guildServers = app.getServersByType('guild');