20 KiB
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的官方组件名:未找到;statep6n已确认它是 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)→ 资源模块98628iconBackArrow.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)。