给专业玩家分析,苍穹本人也转发过,看来基本认可。本文档基于对 BiaoGe 插件全部源代码的通读,梳理出所有涉及玩家之间通讯的功能模块,明确每个功能提供的能力、使用的通讯信道与传输的数据字段。生成日期:2026-08-26。
一、通讯机制总览 插件使用两类通讯手段:
Addon 消息(玩家间隐性通讯):通过 C_ChatInfo.SendAddonMessage / ChatThrottleLib:SendAddonMessage 在 RAID / GUILD / WHISPER 信道收发,监听 CHAT_MSG_ADDON 事件。这是插件间真正的数据传输通道。
普通聊天(公开/密语):通过 SendChatMessage 发到 RAID / RAID_WARNING / WHISPER / GUILD / SAY / YELL / 自定义频道,所有人可见,用于通报与提示。
注册的 Addon 消息前缀(DB.lua 设 addonChannelCount=10,部分前缀会扩展 1..10):
前缀
信道
用途
BiaoGe
RAID / GUILD
版本检测、交易同步、对账数据、重拍申请
BiaoGe2
RAID
提醒拍卖、退款转未拍
BiaoGeAuction
RAID
发起拍卖(第一代)
BiaoGeReceive + 1..10
WHISPER
分享完整表格
BiaoGeAIMap + 1..10
RAID
分享站位图
BiaoGeWorldBoss
RAID
世界BOSS CD 同步
TuanJianBoard + 1..5
RAID
减伤链 / 团长面板
说明:所有大体积数据(表格、站位图)均先 C_EncodingUtil.CompressString 压缩 + LibBase64 编码,再按 255 字节切片,用多 addon 通道并发以绕过单通道限速;小指令直接单包发送。指令类消息大多带身份校验(仅信任 ML/Leader/Assistant 发出),防止普通团员伪造。
二、各功能模块通讯详情 2.1 表格分享(Receive.lua)
功能:把当前/历史 BiaoGe 表格(含拍卖记录)整体发送给指定玩家。
信道:BiaoGeReceive / BiaoGeReceive1..10,WHISPER(点对点)。
流程与数据:
请求方点击聊天里 [!BiaoGe:玩家-服务器-Now/History-FB-标题] 链接 → 发送 Now-FB-title 或 History-FB-title 请求(Receive.lua L458)。
拥有方收到请求后构造表格代码,分包发送:!BIAOGE!!END!,按 255 字符切片(Receive.lua L732-755)。新版用 BiaoGeReceive1..10 多通道并发,旧版单通道。
压缩前明文结构(Receive.lua L511-548),用 ^^ 分三级、&& 分条目、¦ 分字段。
明文各段内容:
段1 基本信息:FB&&DT(时间戳)&&标题^^
段2 表格内容,每条:boss号¦格子号¦物品link¦买家¦金额¦欠款¦颜色r¦颜色g¦颜色b&&
段3 拍卖记录,每条:类型¦物品¦装等¦品质¦绑定类型¦买家¦金额¦颜色r¦颜色g¦颜色b&&
接收方解压后填充到接收表格界面,可使用该表格替换当前表格或保存至历史表格。
2.2 拍卖系统(Auction.lua)
功能:团长/ML 发起拍卖,团内所有插件用户同步看到拍卖窗口。
信道:BiaoGeAuction,RAID。
数据(Auction.lua L358-369):
第一代:StartAuction,time,itemID,money,duration,,mod,link
第二代(WA):StartAuction^time^itemID^money^duration^^mod^link^resetThreshold
字段含义:发起时间戳、物品ID、起拍价、时长、模式(normal/anonymous/roll)、物品link、重置阈值。
其他相关:
BiaoGeAuction / BiaoGe 上的 VersionCheck 与 MyVer-版本号 用于团内版本检测(Auction.lua L1312-1313)。
拍卖成功/流拍通过团长发 RAID_WARNING/RAID_LEADER 普通聊天通报({rt6}拍卖成功{rt6}),不走 addon 消息。拍卖记录框 AuctionMSG.lua 监听 CHAT_MSG_RAID_* 录入这些聊天。
Roll 点模式:SendChatMessage 发送 {rt1}Roll点开始{rt1} 物品link 到 RAID_WARNING(Auction.lua L428)。
团长可把拍卖 WA 字符串用密语发给没装插件的团员(Auction.lua L270)。
2.3 拍卖记录交互(AuctionLog.lua)
功能:团员可向团长发申请,团长端弹窗确认。
信道与数据:
BiaoGe RAID:ReAuction^itemID^link^金额(申请重拍,AuctionLog.lua L1434)
BiaoGe2 RAID:RemindAuction^itemID^link(提醒团长拍卖某件,AuctionLog.lua L1261)
BiaoGe2 RAID:RefundAuctionToFailed^itemID^link^买家^金额(退款转未拍同步,Trade.lua L253 发送,AuctionLog.lua L2534 接收)
2.4 交易记账同步(Trade.lua)
功能:团长/ML 与团员交易时,向全团广播正在交易谁/交易结束,让团员端高亮对应玩家与物品。
信道:BiaoGe RAID。
数据(Trade.lua L792-801):
tradeTo-目标玩家名(打开交易框时发)
tradeEnd(关闭交易框时发)
接收端 Trade.lua L768-780 仅信任 ML 发出的消息。
2.5 对账数据同步(DuiZhang.lua + TongBao/ZhangDan.lua)
功能:团长通报账单时,把每笔装备交易明细用 addon 消息发给团内其他 BiaoGe 用户,用于自动对账识别。
信道:BiaoGe RAID。
数据(ZhangDan.lua L539-563):
DuiZhang-买家-itemID 金额,itemID 金额,... (金额为 t 表示打包交易)
接收端 DuiZhang.lua L271-291 解析后存入对账临时表,配合聊天里的账单通报文本一起识别。账单本身还会通过 SendMsgToRaid 用普通聊天通报(RAID/GUILD/SAY/YELL,见 ZhangDan.lua L38、Channel.lua)。
2.6 站位图分享(Map.lua)
功能:团长/助理把站位图(玩家在 BOSS 图上的坐标与编号)广播给全团。
信道:BiaoGeAIMap / BiaoGeAIMap1..10,RAID。仅接受 leader/assistant 发送(Map.lua L618)。
数据:!AIMAP!!END!,按 255 切片(多通道并发)。明文结构(Map.lua L485-500):
段1:FB&&bossIndex&&mapWidth&&mapHeight&&childIndex&&bossName^^
段2:图标列表(编号、玩家名、坐标、颜色等)
接收后用 BG.BuildMapByCode 渲染并保存到 BiaoGe.maps(最多10张)。
2.7 世界 BOSS CD 同步(WorldBossCD.lua)
功能:团内成员互相同步各自的世界 BOSS 击杀进度,用于显示谁还差哪个BOSS。
信道:BiaoGeWorldBoss RAID。
数据(WorldBossCD.lua L335-348):
VersionCheck(请求)
cd^bossID:1,bossID:0,...(自己已击杀的BOSS列表,1=已杀)
2.8 减伤链 / 团长面板(BoardReceiver.lua)
功能:团长/助理下发某玩家在 X 秒后需交减伤技能任务,团员端显示倒计时进度条,并可被团长密语提醒。
信道:TuanJianBoard1..5,RAID。仅接受 leader/assistant 发送(BoardReceiver.lua L870-875)。
数据(BoardReceiver.lua L712-745),逗号分隔:
show,bossSpellID,index,player,duration,abilityText,autoHide,now,target
其中abilityText 用 ^ 连接多个技能/物品,每项 s <法术id> 或 i <物品id> (L87-103)
hide,bossSpellID(按首领技能清空)
hideAll(清空全部)
另有团长对责任人的密语提醒(普通聊天 WHISPER,BoardReceiver.lua L585-597):提醒:N秒后你需施放 <技能link> / 提醒:你需立刻施放 <技能link> 。
2.9 版本检测(BiaoGe.lua + Auction.lua)
功能:检测团/公会内是否有过期版本。
信道与数据:
BiaoGe GUILD:VersionCheck / MyVer-版本-(BiaoGe.lua L2616-2635)
BiaoGe RAID + BiaoGeAuction RAID:VersionCheck / MyVer-版本(Auction.lua L1267-1281)
三、不涉及玩家间通讯的模块
以下模块虽监听聊天事件,但只做本地记录/展示,不向其他玩家发送数据:
AuctionMSG.lua:监听 CHAT_MSG_RAID_* 录入拍卖聊天记录框(本地)。
ChannelHistory.lua、TradeHistory.lua、MailHistory.lua、History.lua、Dungeon.lua、RoleOverview.lua:无 addon 消息收发。
Loot.lua:原本设计 AutoLoot,itemID,count 的拾取同步,但发送代码已被注释禁用(L1984、L2025),仅保留接收逻辑。
Welcome.lua:自动发 YY 频道号到聊天(普通 SendChatMessage),非 addon 通讯。
MeetingHorn.lua:仅 hook SendChatMessage 拦截密语做活动匹配,不广播数据。
SendMail.lua:无 addon 通讯。
四、传输数据字段汇总表
功能
前缀
信道
方向
关键数据字段
表格分享
BiaoGeReceive(+1..10)
WHISPER
请求方→拥有方
Now/History-FB-标题
表格分享
同上
WHISPER
拥有方→请求方
!BIAOGE!{Base64(FB,DT,标题,[boss/i/物品/买家/金额/欠款/颜色],[拍卖记录])}!END!
发起拍卖
BiaoGeAuction
RAID
ML→团
StartAuction(^,)time,itemID,money,duration,mod,link,resetThreshold
版本检测
BiaoGe / BiaoGeAuction
RAID/GUILD
双向
VersionCheck / MyVer-版本
重拍申请
BiaoGe
RAID
团员→ML
ReAuction^itemID^link^金额
提醒拍卖
BiaoGe2
RAID
团员→ML
RemindAuction^itemID^link
退款转未拍
BiaoGe2
RAID
ML→团
RefundAuctionToFailed^itemID^link^买家^金额
交易同步
BiaoGe
RAID
ML→团
tradeTo-玩家名 / tradeEnd
对账明细
BiaoGe
RAID
ML→团
DuiZhang-买家-itemID 金额,...
站位图
BiaoGeAIMap(+1..10)
RAID
团长→团
!AIMAP!{Base64(FB,bossIndex,宽,高,子索引,boss名,[图标])}!END!
世界BOSS CD
BiaoGeWorldBoss
RAID
双向
VersionCheck / cd^bossID:1,...
减伤链
TuanJianBoard1..5
RAID
团长→团
show,bossSpellID,index,player,duration,abilities,autoHide,now,target / hide / hideAll
减伤密语提醒
(普通聊天)
WHISPER
团长→责任人
提醒:N秒后你需施放 <技能>
账单通报
(普通聊天)
RAID/GUILD/SAY/YELL
ML→团
账单文本(SendMsgToRaid)
热门跟贴