Files
TankIC/3DTank/docs/ObfuscatedSymbols.md

20 KiB
Raw Permalink Blame History

TankIC 混淆符号字典(原版 Kotlin/JS UI)

范围:3DTank/src/module_82347.js(UI 组件/样式/资源)、3DTank/src/module_63383.js(CSS DSL)、3DTank/src/module_37036.js(Kotlin 运行时)、3DTank/src/index.json(资源模块索引)。3DTank/src 为原版拆包,3dtank.com/play/static/js/unpacked 为同构微修改版;本表行号优先引用前者。 方法:静态解析 Sq / Lq 注册、样式类构造器、Eq("...") 字段、jq(...) 访问器、IIFE 参数表;并用 acorn 作用域分析确认资源参数的真实引用。 证据格式:文件:行号。资源模块优先引用 3DTank/src/index.json 的 id / path 行;压缩版 main.6469b966.js 仅作同构对照,不再作为主证据。 同构核对:3DTank/src/module_82347.js 与 3dtank.com/play/static/js/unpacked/module_82347.js 仅 137040-137047 内容不同(本地 SRV 显示补丁),行号一致;module_63383/37036/59131/24923 两版哈希一致。

0. 读法

  • Sq = To.$_$.ld(3DTank/src/module_82347.js:1326)→ 3DTank/src/module_37036.js:10177 → ie()(3DTank/src/module_37036.js:1276-1277,内部调用 ne("object", ...);ne 定义在 :1271)。它是 Kotlin 类元数据注册,不是 CSS 注册。
  • 真正的样式字段在样式类构造器内:this.<field> = this.aux([], <函数>).suv(this, Eq("<语义名>", ...))。
  • 访问器形如 jq(<类>).<方法> = function () { ... this.<field>.dk(this, Eq("<语义名>"...)) };因此 字段=访问器 可一一对应。
  • 带参数、且不绑定单一字段的方法单列为“参数化/共享样式方法”,不强行归入字段。

1. 样式类注册表

类名 语义名 文件:行号 已确认的字段/访问器
d7n MainScreenComponentStyle 3DTank/src/module_82347.js:107879(def 67488;acc 173741-173921) containerPanel=k1pz; containerForMenuGradient=l1pz; gradientBlock=m1pz; gradientBlockRight=n1pz; buttonPlay=e1o4; blockMainMenu=o1pz; noNew=p1pz; new=q1pz; playButtonContainer=r1pz; disabled=w1lw; disabledButtonPlay=s1pz; activeItem=t1pz; commonBlock=u1ju
fni UserInfoContainerStyle 3DTank/src/module_82347.js:107924(def 71520;acc 177288-177638) rankIconContainer=o1qe; containerRightBorder=p1qe; rankIconContainerClickable=q1qe; userNameRank=r1qe; textDecoration=s1qe; containerUserNameRank=t1qe; blockLeftPanel=y1qd; userTitleContainer=u1qe; titleRankIcon=v1qe; containerProgressMainScreen=w1qe; containerParameterProgress=x1qe; xpIcon=y1qe; progressValue=y1iq; tooltipContainer=u1je; premiumBenefitsContainer=u1qa; tooltipTimer=z1q9; grayColor=m1qa; regularUser=r1ih; friendUser=t1ih; clanMateUser=s1ih; blockForIconTankiOnline=n1qe; accountRemovalTimer=a1qe;参数化:u1iz(t) @177438
Yni UserScoreComponentStyle 3DTank/src/module_82347.js:107927(def 72033;acc 177929-178089) coinsContainer=b1ni; temporaryCashContainer=j1qd; temporaryCashButton=k1qd; blockRightPanel=z1qd; iconCrystal=o1k9; addRubyCrystal=m1qd; addCoins=i1qd; coinBlock=g1qd; coinIcon=h1qd;参数化:n1qd(t) @177974、l1qd(t) @178000、z1qc(t) @178059
d9 UserGroupTitleButtonComponentStyle 3DTank/src/module_82347.js:106987(def 5061;acc 110368-110398) userGroupTitle=u1ii; commonBlockGroup=w1ii; commonUserIconsBlockGroup=v1ii
d1n BreadcrumbsComponentStyle 3DTank/src/module_82347.js:107855(def 66052;acc 172496-172601) headerContainer=h1pt; backButton=y1ie; rightButtonsContainer=d1pt; exitGameButton=e1pt; logout=i1pt; iconLogout=j1pt; rootTitle=o1om; breadcrumbs=g1pt
kNi SettingsComponentStyle 3DTank/src/module_82347.js:108144(def 89525;acc 193943-194138) blockContentOptions=n1s2; scroll=r1k3; scrollCreateBattle=p1jd; settingsBlockOptions=u1rv; containerBlock=n1n3; borderLineOption=d1rn; commonBlock=u1ju; rowBlock=q1s2; textHeadlineOptions=f1rn; scrollingMenu=o1jn; dropDownTitle=e1rt; dropDown=x1nc; dropdownPlaceholder=z1mg; slider=e1nj
EMi SettingsMenuComponentStyle 3DTank/src/module_82347.js:108168(def 90329;acc 197540-197588) slideMenuOptions=g1s7; yellowLineMenuOptions=h1s7; menuItemOptions=a1s7; activeItemOptions=b1s7;共享样式:f1s7() @197540 返回 zMi(见 1.1)
UPi SettingsButtonsComponentStyle 3DTank/src/module_82347.js:108141(def 89326;acc 193821-193851) containerGroupButton=h1s2; buttonsWidthBackReset=g1s2; buttonSaveLeave=i1s2
J7t DropDownStyle 3DTank/src/module_82347.js:107449(def 34073;acc 141248-141385) dropdownRoot=h1mh; dropdownControl=i1mh; dropdownPlaceholder=z1mg; dropdownMenu=k1mh; outerContainerStyle=a1md; innerContainerStyle=r1mc; dataListControl=a1mh; arrowDropDown=j1mh;参数化:f1mh(t) @141263、c1mh(t) @141338
u7t ContextMenuStyle 3DTank/src/module_82347.js:107442(def 33638;acc 140826-140934) menu=y1mf; menuItem=z1mf; colorText=z1li; disabledMenuItem=a1mg; menuItemRank=b1mg; decoration=c1mg;参数化:d1mg(t) @140856、e1mg(t,n,i,r) @140934
QBi CheckBoxComponentStyle 3DTank/src/module_82347.js:108203(def 92742;acc 200405-200446) oneSetting=w1md;参数化:d1sh(t) @200420、x1md(t,n) @200446
Z0t CheckBoxStyle 3DTank/src/module_82347.js:107431(def 33272;acc 140535-140563) checkbox=k1md;参数化:l1md(t,n) @140550、n1md(t,n,i) @140553、m1md(t,n,i) @140563
EUi InputRangeComponentStyle 3DTank/src/module_82347.js:108205(def 92965;acc 200584-200614) blockSoundVolume=r1sh; soundVolume=s1sh; range=hd
o2n HeaderCommonStyle 3DTank/src/module_82347.js:107868(def 67109;acc 173096-173111) icons=sdy; iconFont=e1ka

表中 acc 是 jq(...) 方法范围,可能包含 1.1 节的参数化方法;字段=访问器 只列直接读取 this.<field>.dk(...) 的方法。

1.1 参数化/共享样式方法(已核对,不是字段)

方法 参数/返回 调用点 已核对语义 证据文件:行号
fni.u1iz(t) 百分比数值 3DTank/src/module_82347.js:177904 XP 进度条容器;子节点宽度按 t% 3DTank/src/module_82347.js:177438-177460
Yni.n1qd(t) 布尔 cursor 开关 3DTank/src/module_82347.js:176977 水晶货币行样式 3DTank/src/module_82347.js:177974-177980
Yni.l1qd(t) 布尔 cursor 开关 3DTank/src/module_82347.js:176951 红宝石货币行样式(带底边框) 3DTank/src/module_82347.js:178000-178009
Yni.z1qc(t) 布尔 cursor 开关 3DTank/src/module_82347.js:176918 金币按钮行样式 3DTank/src/module_82347.js:178059-178069
EMi.f1s7() 返回共享函数 zMi 3DTank/src/module_82347.js:197505 设置菜单项共享布局样式 3DTank/src/module_82347.js:197540; zMi 定义 3DTank/src/module_82347.js:90245-90258
J7t.f1mh(t) 布尔 isWhiteTheme 3DTank/src/module_82347.js:141083 下拉容器主题样式 3DTank/src/module_82347.js:141263-141271
J7t.c1mh(t) 布尔 isWhiteTheme 3DTank/src/module_82347.js:33852 下拉滚动条主题样式 3DTank/src/module_82347.js:141338-141348
u7t.d1mg(t) 布尔分支 3DTank/src/module_82347.js:141061 菜单项样式(普通/选中分支) 3DTank/src/module_82347.js:140856-140868
u7t.e1mg(t,n,i,r) 4 个参数 3DTank/src/module_82347.js:143351 菜单项复合样式 3DTank/src/module_82347.js:140934-140946
QBi.d1sh(t) 布尔 disabled 3DTank/src/module_82347.js:93016 设置行/复选框行样式 3DTank/src/module_82347.js:200420-200439
QBi.x1md(t,n) 元素 + 布尔 3DTank/src/module_82347.js:33330, 93020 设置输入/开关行样式 3DTank/src/module_82347.js:200446-200463
Z0t.l1md(t,n) 元素 + 布尔 3DTank/src/module_82347.js:33315, 140502 开关容器基础样式 3DTank/src/module_82347.js:140550-140551
Z0t.n1md(t,n,i) 元素 + 两个布尔 3DTank/src/module_82347.js:33321, 140530 开关轨道样式 3DTank/src/module_82347.js:140553-140561
Z0t.m1md(t,n,i) 元素 + 两个布尔 3DTank/src/module_82347.js:140530 圆形开关/勾选样式 3DTank/src/module_82347.js:140563-140575

2. CSS DSL 映射表

仅列已由 module_63383.js 函数体 $e("<cssProperty>") 直接确认的项。

压缩名 导出键 实际函数名 CSS 属性 证据文件:行号
Wy Ho.$_$.sb Pc width 3DTank/src/module_82347.js:1398; 3DTank/src/module_63383.js:8082, 5120, 5126
Vy Ho.$_$.b9 ua height 3DTank/src/module_82347.js:1399; 3DTank/src/module_63383.js:7803, 3566, 3571
R$ Ho.$_$.ka rc position 3DTank/src/module_82347.js:1440; 3DTank/src/module_63383.js:7931, 4528, 4533
H$ Ho.$_$.b8 $h cursor 3DTank/src/module_82347.js:1451; 3DTank/src/module_63383.js:7670, 2937, 2942
o$ Ho.$_$.p9 za marginRight 3DTank/src/module_82347.js:1413; 3DTank/src/module_63383.js:7885, 3862, 3867
jj Ho.$_$.x6 Uu borderBottom 3DTank/src/module_82347.js:1541; 3DTank/src/module_63383.js:7610, 512, 517
fS Ho.$_$.i8 Ah flexDirection 3DTank/src/module_82347.js:1581; 3DTank/src/module_63383.js:7694, 3085, 3090
pS Ho.$_$.h6 h_ alignItems 3DTank/src/module_82347.js:1583; 3DTank/src/module_63383.js:7577, 1642, 1647
cx Ho.$_$.g9 oa justifyContent 3DTank/src/module_82347.js:1471; 3DTank/src/module_63383.js:7853, 3603, 3608
_x Ho.$_$.i6 c_ alignSelf 3DTank/src/module_82347.js:1468; 3DTank/src/module_63383.js:7578, 1679, 1684
Jy Ho.$_$.c8 jh display 3DTank/src/module_82347.js:1403; 3DTank/src/module_63383.js:7671, 2974, 2979
LS Ho.$_$.fa Ya paddingLeft 3DTank/src/module_82347.js:1608; 3DTank/src/module_63383.js:7924, 4380, 4385
BS Ho.$_$.ga Ja paddingRight 3DTank/src/module_82347.js:1609; 3DTank/src/module_63383.js:7925, 4417, 4422

Ho 即模块 63383:3DTank/src/module_82347.js:212990 的 i(63383) 对应参数 Ho。3DTank/src/module_24923.js:1313 又依赖 63383 做样式注入/类名生成;本表只确认 63383 中的属性名字面量,不把 24923 的生成器内部实现当作语义。13 项导出键→函数→$e 属性已逐项机器校验一致。

3. 资源模块表

3DTank/src/module_82347.js 的资源参数名 → 调用参数 i(<id>) → 3DTank/src/index.json 中同 id 的 path 字段(原版拆包索引;压缩版 main.6469b966.js 为同构对照)。前 9 行为任务指定资源,后 8 行为同组件/核对项直接引用的补充项。

模块 id static/images/... 文件名 用途 证据文件:行号
32475 ruby.ce62efbc.svg ruby 红宝石图标 参数 cn 3DTank/src/module_82347.js:123;i(32475) :212634;3DTank/src/index.json:2375-2377;使用 3DTank/src/module_82347.js:176956
91844 crystalSmall.242e6c15.svg crystalSmall 小水晶图标 参数 fo 3DTank/src/module_82347.js:448、I :37;i(91844) :212548;3DTank/src/index.json:6245-6247;使用 3DTank/src/module_82347.js:96447, 176985
39856 addRuby.ff47c8be.svg addRuby 红宝石加号 参数 Ku 3DTank/src/module_82347.js:375;i(39856) :212886;3DTank/src/index.json:2845-2847;使用 3DTank/src/module_82347.js:176972
33190 addCrystal.af9a397c.svg addCrystal 水晶加号 参数 Yu 3DTank/src/module_82347.js:376;i(33190) :212887;3DTank/src/index.json:2430-2432;使用 3DTank/src/module_82347.js:176996
17881 groupUser.67c9ec61.svg groupUser 组队成员剪影 参数 m 3DTank/src/module_82347.js:24;i(17881) :212535;3DTank/src/index.json:1320-1322;使用 3DTank/src/module_82347.js:4860
51963 iconButtonPremium.bc17a592.svg iconButtonPremium 高级账号图标 参数 H 3DTank/src/module_82347.js:50;i(51963) :212561;3DTank/src/index.json:3610-3612;使用 3DTank/src/module_82347.js:176468
39688 iconTankiOnline.2a9c236f.svg iconTankiOnline Tanki Online 标志 参数 Ju 3DTank/src/module_82347.js:378;i(39688) :212889;3DTank/src/index.json:2825-2827;使用 3DTank/src/module_82347.js:177224
70556 fullscreen.0b4547f5.svg fullscreen 全屏图标 参数 zn 3DTank/src/module_82347.js:132;i(70556) :212643;3DTank/src/index.json:4830-4832;使用 3DTank/src/module_82347.js:137380
88309 iconBack.62869951.svg iconBack 返回/退出箭头 参数 g 3DTank/src/module_82347.js:23;i(88309) :212534;3DTank/src/index.json:5960-5962;使用 3DTank/src/module_82347.js:66013, 4762
98628 iconBackArrow.9f950ca9.svg Breadcrumbs 子页返回箭头 参数 kr 3DTank/src/module_82347.js:239;i(98628) :212750;3DTank/src/index.json:6635-6637;IconStyle.iconBackArrow @3DTank/src/module_82347.js:211486,使用 :172388
82126 back.72d79619.svg 触摸控制编辑器返回键 参数 uo 3DTank/src/module_82347.js:440;i(82126) :212951;3DTank/src/index.json:5555-5557;使用 3DTank/src/module_82347.js:92464(TouchControlsEditorComponentStyle.backButton @:108202)
91451 fullscreenOff.5691cd5d.svg 退出全屏图标(与 fullscreen 成对) 参数 bn 3DTank/src/module_82347.js:133;i(91451) :212644;3DTank/src/index.json:6200-6202;使用 3DTank/src/module_82347.js:137380
86552 coin.3a16e831.svg 金币图标 参数 Vi 3DTank/src/module_82347.js:212;i(86552) :212640;3DTank/src/index.json:5855-5857;使用 3DTank/src/module_82347.js:176926
22511 addCoin.cc7a25d3.svg 金币加号 参数 Wu 3DTank/src/module_82347.js:373;i(22511) :212884;3DTank/src/index.json:1695-1697;使用 3DTank/src/module_82347.js:176941
22198 caution.b9d12319.svg 临时货币按钮图标 参数 Vu 3DTank/src/module_82347.js:374;i(22198) :212885;3DTank/src/index.json:1665-1667;使用 3DTank/src/module_82347.js:176904(UserScoreComponentStyle.temporaryCashButton @:176901)
16849 empty.c3b3f789.svg Tanki Online 标志占位图(mr4_1 为真时替代 logo) 参数 Xu 3DTank/src/module_82347.js:377;i(16849) :212888;3DTank/src/index.json:1240-1242;使用 3DTank/src/module_82347.js:177224
30786 ic_delete_from_group.bdff6efa.svg 组队成员行删除/移出图标 参数 w 3DTank/src/module_82347.js:21;i(30786) :212532;3DTank/src/index.json:2240-2242;使用 3DTank/src/module_82347.js:4765、:110194(v4.tap 组队成员行 @:110022)

4. 组件渲染表

只记录 tap 内可直接读出的层级;节点标签由 Ry=div(3DTank/src/module_59131.js:746)、jx=span(3DTank/src/module_59131.js:797)、Iq=h3(3DTank/src/module_59131.js:758)、tj=img(3DTank/src/module_59131.js:770)确认。

组件类/函数 渲染函数 tap 行号 生成的 DOM 结构(父 → 子) 关键样式字段
x6n(Premium 购买/入口按钮) 3DTank/src/module_82347.js:176431 div(g6n) → 可选 div(k6n) 文本、div(z6n) 高级图标、span(b6n) 计时器 根:box-shadow、cursor、96×96、未开通 VIP 时金红径向渐变(176436-176441);图标使用 iconButtonPremium(176468);state p6n 含 isPremiumBuyButton / hasPremium / premiumRemainingTime(176382-176393)
L4(组队标题按钮) 3DTank/src/module_82347.js:110273 div($4) → 可选 div(j4) 金币文本、div(E4) 组队槽容器 → q4/b4 成员槽、可选 Z5 tooltip Vy/Wy 96/95、border-right、背景(110277-110283);UserGroupTitleButtonComponentStyle.userGroupTitle/commonBlockGroup/commonUserIconsBlockGroup(110307, 110327, 110299);state d4 含 isCanInvite / membersGroup / onlineStatus / maxUsersInGroup(110214-110225)
Eni(用户信息子组件) 3DTank/src/module_82347.js:177748 div(dni) → div(mni) 等级/头像 → img 头像;div(gni) → 昵称/称号/XP 区 UserInfoContainerStyle:rankIconContainerClickable、containerUserNameRank、containerProgressMainScreen、xpIcon、progressValue(177761, 177781, 177789, 177909-177915);state pni 含 userId / uid / userInGroup / userScore / rank / clanTag / hasPremium(177677-177704)
rii(用户信息容器/左侧面板) 3DTank/src/module_82347.js:178113 div(Qni) → x6n、可选 L4、Eni UserInfoContainerStyle.blockLeftPanel(178116);三个子组件均在 isLobbyLayout 下装配(178117-178124);state Jni 仅 groupButtonActive(178104-178106)
lti(用户货币/全屏条) 3DTank/src/module_82347.js:176892 div(nti) → 可选 div(ati) 临时货币、div(sti) 金币块、div(iti) 红宝石行、div(eti) 水晶行 UserScoreComponentStyle:temporaryCashContainer、coinsContainer、addCoins、blockRightPanel、addRubyCrystal、iconCrystal、addRubyCrystal(176897-176977);state fti 含 user / isMobileDevice / isFullScreen / showExitButton / removalTimer(177000-177014)
eKt(全屏按钮) 3DTank/src/module_82347.js:137348 div(nKt) → div(iKt) 全屏图标、可选 h3(rKt) 文本 FullScreenButtonStyle.b1m0/c1m0(107372, 137351-137363);图标在 fullscreen / fullscreenOff 间切换(137380);state JVt 含 isFullScreen / inputMode(137312-137314)
d9(样式类,无 tap) 无 tap(已核对为样式类) 渲染在 L4.tap(3DTank/src/module_82347.js:110273) userGroupTitle/commonBlockGroup/commonUserIconsBlockGroup(110368-110398)

5. 未确认清单

  • x6n / L4 / Eni / rii / lti / eKt 的官方语义类名:未找到;Lq 注册对这些类均传空名(3DTank/src/module_82347.js:107914, 106986, 107926, 107929, 107920, 107371),本表只用样式归属和渲染内容标注。
  • x6n 的官方组件名:未找到;state p6n 已确认它是 Premium 购买/入口按钮(isPremiumBuyButton、hasPremium、premiumRemainingTime,3DTank/src/module_82347.js:176382-176393),本表按 HEAD premium 按钮记录。
  • 资源模块的行号以 3DTank/src/index.json 的 id / path 行为准;压缩版 main.6469b966.js 为单行,仅用于同构对照。

已核对后移出未确认:

  • d9:确认是 UserGroupTitleButtonComponentStyle 样式类,没有 tap;渲染在 L4.tap(3DTank/src/module_82347.js:106987, 110273)。
  • 14 个参数化/共享方法:确认不是字段访问器,已列入 1.1 节;其中 EMi.f1s7() 返回共享函数 zMi(3DTank/src/module_82347.js:197540, 3DTank/src/module_82347.js:90245-90258)。
  • iconBack / iconBackArrow / back 分工:iconBack 用于 Logout(:66013),iconBackArrow 用于 Breadcrumbs 子页返回(:172388),back 用于触摸控制编辑器返回(:92464)。

6. 待核对(仅记录,不改原文档)

  • 3DTank/docs/HeadStyleTable.md:64 的 head.exit 写 back.72d79619.svg;源码中 Breadcrumbs 子页返回按钮使用 IconStyle.iconBackArrow(3DTank/src/module_82347.js:172388)→ 资源模块 98628 iconBackArrow.9f950ca9.svg(3DTank/src/index.json:6635-6637)。back.72d79619.svg 在 module_82347 中只用于触摸控制编辑器返回键(3DTank/src/module_82347.js:92464)。同文档 :88 的 head.logout.icon 使用 iconBack.62869951.svg,与源码一致;UI_Rebuild_Plan.md:475 描述的是 logout,也与源码一致。
  • 3DTank/docs/SettingsStyleTable.md 第 6 节存在行号漂移,语义均正确:InputRangeComponentStyle 的 EUi 构造器实际在 3DTank/src/module_82347.js:92965(表写 92980,位于首字段结束);kUi 实际在 92902(表写 92930);hUi.tap 实际在 200482(表写 200507);SettingsComponentStyle-slider 的 z1jp_1 -> slider 的 Eq("slider") 实际在 89711(表写 89620)。