本文档说明如何把「匿名模式对你无效」这个选项真正注册成可勾选控件,并让它对装了 BiaoGe 本体的团员生效。方式上与「蓝龙 CD 伪装」类似:不改广播数据、不改他人视角,只在自己客户端显示层做覆盖。
一、背景:选项原本「只存在于文案中」
更新日志提到有「匿名模式对你无效」选项,但原代码里它只注册了语言文案,没有注册成控件:
Core/Options.lua的ontextDB里有L["匿名模式对你无效"]的标题与说明;- 但
auctionCheckButtons配置表里没有对应的name = "noAnonymous"项;
因此游戏内插件设置界面找不到这个勾选框。本修改把它真正注册出来。
二、修改 1:在 Options.lua 注册控件
1.1 加入文案(标题 + 说明 + 注意)
-- Core/Options.lua ~2525,ontextDB 表内
noAnonymous = {
L["匿名模式对你无效"],
L["勾选后,在竞拍过程中,匿名对你无效,你将可以直接看到实际出价人,不管你是团长还是团员。"],
" ",
L["注意:该选项仅在装了BiaoGe插件本体(内置拍卖窗口)时生效,不依赖任何外部WA光环。"]
},
1.2 加入选项配置项
-- Core/Options.lua ~2584,auctionCheckButtons 表末尾
{ name = "noAnonymous", default = 0 },
机制说明(与插件其它开关一致):
auctionCheckButtons里每项会按name自动从ontextDB[name]取标题/说明生成勾选框;- 同时生成
BiaoGe.options["noAnonymous"](勾选状态,0/1)和BG.options["buttonnoAnonymous"](控件引用)。
三、修改 2:在 Auction.lua 让覆盖生效
匿名显示靠的是每个窗口对象 f.mod(值为 "normal" 或 "anonymous")。我们只要在本地把 f.mod 强制成 "normal",WA / 内置窗口就会按非匿名渲染出真实出价人。
3.1 新建拍卖时立即覆盖
-- Core/Module/Auction.lua ~1447,BG.HookCreateAuction 末尾
-- 匿名模式对你无效:本地强制把该拍卖窗口按非匿名显示(覆盖WA读取的f.mod)
if BiaoGe.options.noAnonymous == 1 then
f.realMod = f.mod -- 备份真实 mod
f.mod = "normal" -- 强制非匿名显示
end
3.2 勾选框实时切换所有进行中窗口
为了让玩家在拍卖进行中勾选/取消也能立即生效,新增一个 BG.Init2 钩子,给勾选框挂 OnClick:
-- Core/Module/Auction.lua ~1701,在 BG.Init2 结束处后新增
-- 匿名模式对你无效:选项勾选时实时覆盖所有正在进行的拍卖窗口
BG.Init2(function()
local bt = BG.options and BG.options["buttonnoAnonymous"]
if not bt then return end
local function ApplyNoAnonymous()
local on = BiaoGe.options.noAnonymous == 1
for _, f in pairs(_G.BGA.Frames or {}) do
if on then
f.realMod = f.realMod or f.mod
f.mod = "normal"
elseif f.realMod then
f.mod = f.realMod -- 取消勾选时还原真实 mod
f.realMod = nil
end
if f.Update then f:Update() end -- 立即刷新显示
end
end
bt:HookScript("OnClick", function()
BG.After(0, ApplyNoAnonymous)
end)
end)
四、生效方式
- 重新加载游戏:
/reload。 - 打开插件设置 → 「自动拍卖」分区,会看到「匿名模式对你无效」勾选框。
- 勾选后:
- 之后新建的拍卖窗口:本地直接按非匿名显示真实出价人;
- 进行中的拍卖窗口:勾选瞬间立即全部刷新为真实出价人;
- 取消勾选:还原为匿名显示。
五、影响范围(与蓝龙CD伪装一致原则)
- 只改本地显示层,不影响发出去的
StartAuction广播数据; - 不影响其他团员看到的样子(他们仍按自己的设置/匿名模式显示);
- 不影响团长/ML 记账(团长原本就能看到真实出价人);
- 生效前提是装了 BiaoGe 插件本体(内置拍卖窗口),不依赖任何外部 WA 光环。
六、相关文件改动清单
Core/Options.lua:ontextDB新增noAnonymous文案(~2525 行)auctionCheckButtons新增{ name = "noAnonymous", default = 0 }(~2584 行)
Core/Module/Auction.lua:BG.HookCreateAuction末尾新增本地f.mod覆盖(~1448 行)- 新增
BG.Init2钩子实现勾选框实时覆盖所有进行中窗口(~1703-1719 行)