本帖最后由 jet 于 2024-11-9 12:55 编辑
一、ModuleS 扩展脚本 DSModuleS
两个主要接口,发送全服消息和接收到全服消息
/**
* 发送消息
* @param type 自定义类型,方便接到消息判断
* @param data 数据
* @param ignoreVer 忽略版本
* @param beHost 主机才收到
*/
protected sendMsg(type: number, data: string, ignoreVer: boolean = true, beHost: boolean = false): void {
}
/**
* 接到全DS消息
* @param type 自定义消息类型
* @param data 内容
*/
public onMsg(type: number, data: string): void {
}
DSModuleS 脚本文件中的 DSMgr 类为DS房间主从管理器及全服消息同步
使用 Event.dispatchSceneEvent 来同步
二、弹幕案例
服务器模块脚本 SocialModuleS 改为继承DSModuleS
export class SocialModuleS extends DSModuleS<SocialModuleC, null>
//服务器受到信息后同步给全服
public net_allBarrage(uid: string, name: string, msg: string, type: number = 0) {
let info = {
uid: uid,
type: type,
name: name,
txt: msg
}
this.sendMsg(2, JSON.stringify(info)); //发送全服消息
}
//接收到消息后处理
public onMsg(type: number, data: string): void {
let info = JSON.parse(data);
switch (type) {
case 1://机器人弹幕
this.getAllClient().net_robotBarrage(info.ndx, info.bid);
break;
case 2://玩家弹幕
this.net_locBarrage(info.uid, info.name, info.txt, info.type)
break;
}
}
客户端模块脚本 SocialModuleC
export class SocialModuleC extends ModuleC<SocialModuleS, null>
处理弹幕显示管理脚本 BarrageMgr
相关脚本文件
DSModule.ts
(9.01 KB, 下载次数: 2)
|