// ==UserScript==
// @name KRHanhua
// @namespace http://tampermonkey.net/
// @version 0.2
// @description Translate krunker.io into Chinese.克鲁克汉化js脚本。好耶!
// @author DD
// @match https://krunker.io/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
//设置二级分类,三维数组,1:设置页;2:元素;3:正则表达式与中文.
var setTaghed = [
[
['/(.*)Localization(.*)requires restart(.*)/s','$1本地化$2需要重启$3'],
['/Network/','网络'],
['/Server Browser/','服务器浏览'],
['/Popups/','弹窗'],
['/Experimental/','实验性'],
],[
['/Gameplay/','键盘'],
['/Controller/','手柄'],
],[
['/Interface/','UI'],
['/Chat/','聊天'],
['/Crosshair/','准星'],
['/Hitmarker/','判定点'],
],[
['/Performance/','显示'],
['/Post Processing/','后处理'],
['/Editing/','编辑'],
],[
['/Gameplay Privacy/','游玩隐私'],
['/View Model/','模型显示'],
['/Customization/','自定义'],
],[
['/Audio/','音频'],
]
]
//设置名,三维数组,1:设置页;2:元素;3:正则表达式与中文.
var setTagName = [
[
//['/(.*)Backup Settings(.*)Upload(.*)Download(.*)/s','$1后台设置$2下载$3上传$4'],
['/(.*)Default Region(.*)Frankfurt(.*)Silicon Valley(.*)Sydney(.*)Tokyo(.*)Miami(.*)Singapore(.*)New York(.*)India(.*)Dallas(.*)Brazil(.*)Middle East(.*)South Africa(.*)South Korea(.*)/s','$1默认区服$2法兰克福$3硅谷$4悉尼$5东京$6迈阿密$7新加坡$8纽约$9印度$10达拉斯$11巴西$12中东$13南非$14韩国$15'],
['/(.*)Language(.*)English(.*)Spanish(.*)German(.*)Korean(.*)Portuguese(.*)Japanese(.*)/s','$1语言$2英语$3西班牙语$4德语$5韩语$6葡萄牙语$7日语$8'],
['/Lag Compensation/','滞后补偿'],
['/Auto Routing \([^\)]*\)/','自动路由(影响Ping)'],
['/High Tickrate/','高刷新率'],
['/Legacy Browser/','旧版浏览器'],
['/Default Region Only/','仅默认区服'],
['/Show Free KR Popup/','显示免费KR弹窗'],
['/Mouse Flick Fix/','鼠标甩动修正'],
['/Mouse Flick Fix undefined/','鼠标甩动修正未定义'],
['/Aim Freeze Fix/','瞄准卡顿修正'],
['/Instance Rendering/','实例渲染'],
],[
['/(.*)Keybinds(.*)Edit(.*)/s','$1按键绑定$2编辑$3'],
['/X Sensitivity/','X灵敏度'],
['/Y Sensitivity/','Y灵敏度'],
['/Aim X Sensitivity/','瞄准X灵敏度'],
['/Aim Y Sensitivity/','瞄准Y灵敏度'],
['/Scroll Direction/','滚轮方向'],
['/Challenge Mode/','挑战模式'],
['/Invert Y-Axis/','Y轴反转'],
['/Disable Controllers/','禁用手柄'],
['/X Sensitivity/','X灵敏度'],
['/Y Sensitivity/','Y灵敏度'],
['/Aim X Sensitivity/','瞄准X灵敏度'],
['/Aim Y Sensitivity/','瞄准Y灵敏度'],
['/Dead Zone \([^\)]*\)/','死区(左)'],
['/Dead Zone \([^\)]*\)/','死区(右)'],
['/Trigger Threshold/','触发阈值'],
['/Invert Y-Axis/','Y轴反转'],
['/Vibration/','震动'],
['/Gradual Speed/','渐进速度'],
],[
['/UI Scale/','UI大小'],
['/UI Scale undefined/','UI大小未定义'],
['/Show UI/','显示UI'],
['/Use Old Scoreboard/','使用旧版记分板'],
['/Disable Rarity Animations/','禁用Rarity动画'],
['/Show Profile Pictures/','显示头像'],
['/Dynamic HP Bars/','动态HP栏'],
['/Show Hit Indicators/','显示命中标识'],
['/Hit Indicator Color/','命中标识颜色'],
['/Show Damage/','显示伤害'],
['/Damage Color/','伤害颜色'],
['/Crit Color/','暴击颜色'],
['/Damage Scale/','伤害显示大小'],
['/Show Kill Feed/','显示KillFeed'],
['/Show Kill Counter/','显示击杀数'],
['/Show Death Counter/','显示死亡数'],
['/(.*)Show (.*) Counter(.*)/s','$1显示$2比$3'],
['/Show Score Counter/','显示分数'],
['/Show Streak Counter/','显示连续击杀数'],
['/Show Ping/','显示Ping'],
['/Show Network Stats/','显示网络状态'],
['/Show FPS/','显示FPS'],
['/Show Movement Speed/','显示移动速度'],
['/Speed X Offset/','速度显示X偏移'],
['/Speed Y Offset/','速度显示Y偏移'],
['/Speed Scale/','速度显示大小'],
['/Speed Opacity/','速度显示不透明度'],
['/Speed Color \([^\)]*\)/','速度显示颜色(一般)'],
['/Speed Color \([^\)]*\)/','速度控件颜色(Max)'],
['/Show Medals/','显示奖励'],
['/(.*)Nametag Display(.*)Everyone(.*)Team Only(.*)Enemy Only(.*)Off(.*)/s','$1名签显示$2所有人$3仅队友$4仅敌人$5关闭$6'],
['/Nametag Opacity/','名签不透明度'],
['/(.*)Nametag Style(.*)Everything(.*)Name Only(.*)Name & Level Only(.*)Health Only(.*)/s','$1名签格式$2全部$3仅名字$4仅名字和等级$5仅血量$6'],
['/Nametag Health Number/','血量数'],
['/Nametag Health Color Team/','队友血条颜色'],
['/Nametag Health Color Enemy/','敌人血条颜色'],
['/XP Bar Color/','XP栏颜色'],
['/XP Bar Opacity/','XP栏透明度'],
['/(.*)Show Chat Box(.*)Always(.*)While Focused(.*)Off(.*)/s','$1显示聊天框$2总是$3仅获得焦点时$4关闭$5'],
['/Profanity Filter/','芬芳过滤器'],
['/Show Player/','显示玩家消息'],
['/Show Unboxings/','显示开箱'],
['/Chat Opacity/','聊天不透明度'],
['/Chat BG Opacity/','聊天背景不透明度'],
['/Chat Text Outline/','聊天文本轮廓'],
['/Chat Height/','聊天高度'],
['/Chat Timer/','聊天计时器(s)'],
['/(.*)Type(.*)Off(.*)Default(.*)Custom(.*)Layered(.*)Image(.*)Precision(.*)/s','$1类型$2关闭$3默认$4自定义$5分层$6图片$7精细$8'],
['/(.*)Style(.*)Cross(.*)Hollow Circle(.*)Solid Circle(.*)Hollow Square(.*)Solid Square(.*)/s','$1风格$2十字形$3空心圆$4实心圆$5空心方$6实心方$7'],
['/Image/','图像'],
['/Custom Opacity/','自定义不透明度'],
['/Use Custom Opacity undefined/','使用自定义不透明度未定义'],
['/Always Show/','总是显示'],
['/Color/','颜色'],
['/Shadow Color/','阴影颜色'],
['/Shadow Thickness/','阴影厚度'],
['/Thickness/','厚度'],
['/Size/','大小'],
['/Gap/','间隙'],
['/Dot/','点'],
['/Show/','显示'],
['/Color/','颜色'],
['/Kill Color/','击杀颜色'],
['/Opacity/','不透明度'],
['/Length/','长度'],
['/Thickness/','厚度'],
['/Spacing/','间距'],
['/Anim Size/','动画大小'],
['/Anim Speed/','动画速度'],
['/Fade Speed/','消失速度'],
['/Hitmarker Image/','Hitmarker图像'],
],[
['/Resolution/','分辨率'],
['/Frame Cap/','Frame cap(?)'],
['/(.*)Aspect Ratio(.*)Presets(.*)Native(.*)/s','$1长宽比$2预设$3本地$4'],
['/Antialiasing/','抗锯齿'],
['/Low Spec/','低配模式'],
['/No Textures/','无纹理'],
['/Map Details/','地图细节'],
['/Particles/','粒子效果'],
['/Particle Distance/','粒子距离'],
['/Render Distance/','渲染距离'],
['/(.*)Reflection Quality(.*)Map Dependent(.*)/s','$1反射质量$2跟随地图$3'],
['/Shadows/','阴影'],
['/Soft Shadows/','软阴影'],
['/High-Res/','高分辨率阴影'],
['/Dynamic Shadows/','动态阴影'],
['/Ambient Shading/','环境光着色'],
['/Old Shading/','旧版着色'],
['/Bullet Trails/','子弹轨迹'],
['/Your Trails/','你的轨迹'],
['/Muzzle Flash/','枪口闪光'],
['/Sniper Flap/','sniper flap(?)'],
['/Texture Animations/','纹理动画'],
['/Object Animations/','物体动画'],
['/Screen Shake/','屏幕抖动'],
['/Weapons Shine/','武器发光'],
['/(.*)Lighting(.*)Low(.*)Normal(.*)High(.*)/s','$1光照$2低$3中$4高$5'],
['/Show Explosions/','显示爆炸'],
['/Post Processing/','后处理'],
['/Bloom/','Bloom'],
['/Bloom Threshold/','Bloom阈值'],
['/Bloom Strength/','Bloom强度'],
['/Bloom Radius/','Bloom半径'],
['/SSAO/','SSAO'],
['/SSAO Radius/','SSAO半径'],
['/HUD Health High/','血量高HUD颜色'],
['/HUD Health Low/','血量低HUD颜色'],
['/Speed Lines/','速度线'],
['/Speed Lines Color/','速度线颜色'],
['/Show Popup Score/','显示弹出得分'],
['/Popup Score Color/','弹出得分颜色'],
['/Popup Score Shadow/','弹出得分阴影'],
['/Popup Score Scale/','弹出得分大小'],
['/Popup Score X Offset/','弹出得分X偏移'],
['/Popup Score Y Offset/','弹出得分Y偏移'],
['/Progress Bar Color/','进度条颜色'],
['/Progress Bar Opacity/','进度条不透明度'],
['/Progress Bar Shadow/','进度条阴影'],
['/Progress Bar Scale/','进度条大小'],
['/Progress Bar X Offset/','进度条X偏移'],
['/Progress Bar Y Offset/','进度条Y偏移'],
['/Progress Bar Rotation/','进度条角度'],
['/Saturation \([^\)]*\)/','画面饱和度(游戏中)'],
['/Saturation \([^\)]*\)/','画面饱和度(UI)'],
['/Color Hue \([^\)]*\)/','画面色调(游戏)'],
['/Color Hue \([^\)]*\)/','画面色调(UI)'],
['/Vignette/','Vignette(?)'],
['/Killfeed Limit/','Killfeed限制'],
['/Bullet Tracers undefined/','子弹示踪未定义'],
['/Bullet Tracers/','子弹示踪'],
['/Tracer Offset/','示踪偏移'],
],[
['/Streamer Mode/','主播模式'],
['/Anonymous Mode/','匿名模式'],
['/Hide Game Title/','隐藏游戏标题'],
['/Field of View/','视场'],
['/Weapon FOV/','武器视场'],
['/Weapon Bobbing/','武器颠簸'],
['/Weapon Leaning/','武器摇摆'],
['/Weapon Rotation/','武器角度'],
['/Weapon X Offset/','武器X偏移'],
['/Weapon Y Offset/','武器Y偏移'],
['/Weapon Z Offset/','武器Z偏移'],
['/Weapon ADS Y Offset/','武器开镜Y偏移'],
['/Weapon Swap Y/','武器更换Y位置'],
['/Weapon Reload Y/','武器装填Y位置'],
['/Left Handed/','左手持枪'],
['/ADS FOV Power/','ADS FOV power(?)'],
['/Weapon Aim Animation/','武器瞄准动画'],
['/Hide Weapon on ADS/','开镜隐藏武器'],
['/Show Hands/','显示双手'],
['/Show Primary/','显示主武器'],
['/Show Secondary/','显示副武器'],
['/Show Melee/','显示近战武器'],
['/Rounded Arms/','Rounded Arms(?)'],
['/Load Mods/','加载Mod'],
['/Allow Logo Changes/','允许Logo变换'],
['/Auto-Load Mod/','自动加载Mod'],
['/Scope Borders/','镜筒遮罩颜色'],
['/Scope Borders undefined/','镜筒遮罩未定义'],
['/Scope Borders Opacity/','镜筒遮罩不透明度'],
['/Scope Image Width/','镜筒图像宽度'],
['/Scope Image Height/','镜筒图像高度'],
['/Scope Opacity/','镜筒不透明度'],
['/Reticle Image Width/','十字线图像宽度(?)'],
['/Reticle Image Height/','十字线图像高度(?)'],
['/Match End Message/','对局结束自动回复'],
['/Ammo Icon Image/','子弹图标图像'],
['/Kills Icon Image/','击杀图标图像'],
['/Deaths Icon Image/','死亡图标形象'],
['/Streak Counter Icon Image/','连续击杀计数器图标图像'],
['/Use Damage Overlay/','使用伤害覆盖'],
['/Damage Overlay Image/','伤害覆盖图像'],
['/Timer Icon Image/','计时器覆盖图像'],
['/Game Overlay Image/','游戏覆盖图像'],
],[
['/Master Volume/','主音量'],
['/Ambient Volume/','环境音量'],
['/Action Volume/','动作音量'],
['/Voice Volume/','语音音量'],
['/Weapon Volume/','武器音量'],
['/Player Volume/','玩家音量'],
['/Cosmetics Volume/','Cosmetics音量(?)'],
['/UI Volume/','UI音量'],
['/Asset Volume/','资产音量(?)'],
]
]
//base fuction
function walkList(list, doFor) {
for(var i in list){
doFor(list, i)
}
}
function classname(classname) {
return document.getElementsByClassName(classname)
}
function replace(i, name, a, b) {
classname(name)[i].innerHTML = classname(name)[i].innerHTML.replace(eval(a), b)
}
function id(id) {
return document.getElementById(id)
}
//汉化菜单
var Menu = ["账号","商店","挑战","中心","游戏","Mod","设置","退出"]
walkList(Menu, (list, i)=>{
classname('menuItemTitle')[i].innerHTML = list[i]
classname('menuItemTitle')[i].style.cssText = 'font-size:20px;'
})
//修改菜单单击事件绑定汉化面板函数
var openWindow = [5,14,33,0,10,4,1]
var changeWindow = [] //汉化面板函数列表
walkList(openWindow, (list, i)=>{
classname('menuItem')[i].onclick = ()=>{
showWindow(list[i])
changeWindow[i]
}
})
//每秒检测一遍设置页
var setTag = ['General', 'Controls', 'Display', 'Render', 'Game', 'Sound']
var oldSetTag = ''
var newSetTag = ''
var setTagIndex = -1
setInterval(()=>{
newSetTag = classname('settingTab tabANew')[0].innerText
setTagIndex = setTag.indexOf(newSetTag)
if( newSetTag != oldSetTag && setTagIndex >= 0 ) {
//改setHed设置二级分类
walkList(setTaghed[setTagIndex], (list, i)=>{
replace(i, 'setHed',list[i][0], list[i][1])
})
//改settName设置名
walkList(setTagName[setTagIndex], (list, i)=>{
replace(i, 'settName',list[i][0], list[i][1])
})
}
oldSetTag = newSetTag
}, 200)
})();