BiaoGe 魔兽世界插件 玩家间通讯分析报告

给专业玩家分析,苍穹本人也转发过,看来基本认可。本文档基于对 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)

展开阅读全文

更新时间:2026-08-29

标签:游戏   魔兽世界   插件   通讯   玩家   团长   信道   数据   表格   金额   功能   团员   密语

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号

Top