Compare commits

...

2 Commits

2 changed files with 23 additions and 2 deletions

View File

@ -1,6 +1,6 @@
import { ApiCall, WsClientStatus } from "tsrpc";
import { ActionLog } from '../../public/actionLog/actionLog';
import { ChatFun } from '../../public/chat';
import { ChatFun, getCrossChatGroupByOpenDay } from '../../public/chat';
import { ReqSend, ResSend } from "../../shared/protocols/chat/PtlSend";
import { chatMsgLog } from "../../shared/protocols/type"
import { getGud } from "../../public/gud";
@ -40,6 +40,8 @@ export default async function (call: ApiCall<ReqSend, ResSend>) {
if (sendData.type == 'cross' && G.clientCross?.status == WsClientStatus.Opened) {
//如果是跨服的话调用跨服API的这条协议
sendData.otherData.group = getCrossChatGroupByOpenDay();
G.clientCross.sendMsg('msg_cross/CrossChat', sendData);
call.succ({});
return;

View File

@ -3,6 +3,7 @@ import { ApiCall } from 'tsrpc';
import { MsgChat } from '../shared/protocols/msg_s2c/MsgChat';
import { player } from '../shared/protocols/user/type';
import { chatLog, chatMsgLog } from '../shared/protocols/type'
import { PublicShared } from '../shared/public/public';
const msgListLen = {
'cross': 30,
@ -10,6 +11,20 @@ const msgListLen = {
'guild': 20
};
/**
*
*/
export function getCrossChatGroupByOpenDay(){
let openday = PublicShared.getOpenServerDay();
if(openday<=7){
return 1;
}else if(openday <= 30){
return 2;
}else{
return 3;
}
}
export class ChatFun {
/**新增消息 */
static async newMsg(sendData: MsgChat) {
@ -23,7 +38,11 @@ export class ChatFun {
G.server.broadcastClusterMsg('msg_s2c/Chat', sendData,{ghId:(sendData.sender as player)?.ghId});
}else if(sendData.type == 'cross'){
//所有的子进程都会收到,不需要集群内分别广播
G.server.broadcastMsg('msg_s2c/Chat', sendData);
if(sendData?.otherData?.group == getCrossChatGroupByOpenDay()){
//如果时候同一个分组的
delete sendData?.otherData?.group;
G.server.broadcastMsg('msg_s2c/Chat', sendData);
}
}else{
G.server.broadcastClusterMsg('msg_s2c/Chat', sendData);
}