mirror of
https://gitee.com/cssfw/tmgsl.git
synced 2026-03-28 00:51:37 +08:00
1575 lines
56 KiB
HTML
1575 lines
56 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<title>服务器加载界面 | 基于GmodLoad</title>
|
||
<meta charset="utf-8">
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<link rel="dns-prefetch" href="https://cdnjs.cloudflare.com">
|
||
<link rel="dns-prefetch" href="https://steamcdn-a.akamaihd.net">
|
||
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
|
||
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
|
||
<link href="https://cdn.bootcdn.net/ajax/libs/aplayer/1.10.1/APlayer.min.css" rel="stylesheet">
|
||
<script src="https://cdn.bootcdn.net/ajax/libs/aplayer/1.10.1/APlayer.min.js"></script>
|
||
<audio autoplay loop>
|
||
<source src="music.php" type="audio/mpeg">
|
||
</audio>
|
||
|
||
|
||
|
||
<style>
|
||
.circle-clip {
|
||
clip-path: circle(50% at 50% 50%);
|
||
}
|
||
</style>
|
||
|
||
|
||
|
||
|
||
<style>
|
||
/*
|
||
* K-Load v2 (https://demo.maddela.org/k-load/).
|
||
*
|
||
* @link https://www.maddela.org
|
||
* @link https://github.com/kanalumaddela/k-load-v2
|
||
*
|
||
* @author kanalumaddela <git@maddela.org>
|
||
* @copyright Copyright (c) 2018-2021 kanalumaddela
|
||
* @license MIT
|
||
*/
|
||
|
||
*, *:before, *:after {
|
||
-webkit-box-sizing: inherit;
|
||
box-sizing: inherit;
|
||
}
|
||
|
||
html {
|
||
-webkit-box-sizing: border-box;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
html, body {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
body {
|
||
font-family: sans-serif;
|
||
/*color: #fff;*/
|
||
/*background-color: #000;*/
|
||
}
|
||
|
||
body:before {
|
||
z-index: -999999;
|
||
content: '';
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background-size: cover;
|
||
background-position: center;
|
||
background-repeat: no-repeat;
|
||
}
|
||
|
||
body, .no-margin {
|
||
margin: 0 !important;
|
||
}
|
||
|
||
.no-padding {
|
||
padding: 0 !important;
|
||
}
|
||
|
||
.linear-transition {
|
||
-webkit-transition: all 0.3s linear;
|
||
}
|
||
|
||
.fixed-background, .overlay, .overlay:before {
|
||
z-index: -99999;
|
||
position: fixed;
|
||
width: 100%;
|
||
height: 100%;
|
||
top: 0;
|
||
bottom: 0;
|
||
right: 0;
|
||
left: 0;
|
||
}
|
||
|
||
.overlay:before {
|
||
content: '';
|
||
}
|
||
|
||
.overlay {
|
||
background-color: rgba(0, 0, 0, 0.45);
|
||
}
|
||
|
||
.overlay.dark {
|
||
background-color: rgba(0, 0, 0, 0.6);
|
||
}
|
||
|
||
.overlay.dots {
|
||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADAQMAAABs5if8AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURQAAAAAAAKVnuc8AAAABdFJOUwBA5thmAAAADElEQVQI12NoYAACAAKGAIH/kuy5AAAAAElFTkSuQmCC');
|
||
}
|
||
|
||
.overlay.vertical {
|
||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAEklEQVQImWNgQID/TEgcBhQOABtaAQQflFz/AAAAAElFTkSuQmCC);
|
||
}
|
||
|
||
.overlay.horizontal {
|
||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAEklEQVQImWNgwAUYGRgY/sM4AAkrAQG/PtYkAAAAAElFTkSuQmCC);
|
||
}
|
||
|
||
.overlay.diagonal-left {
|
||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAEAQMAAACTPww9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURQAAAAAAAKVnuc8AAAABdFJOUwBA5thmAAAAEElEQVQI12MQYFBgcGBoAAACWADxfYADLwAAAABJRU5ErkJggg==');
|
||
}
|
||
|
||
.overlay.diagonal-right {
|
||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAEAQMAAACTPww9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURQAAAAAAAKVnuc8AAAABdFJOUwBA5thmAAAAEElEQVQI12NoYHBgUGAQAAAFOADxk53MZwAAAABJRU5ErkJggg==');
|
||
}
|
||
|
||
.plz-hide, .hide {
|
||
display: none;
|
||
}
|
||
|
||
.fucking-hide {
|
||
display: none !important;
|
||
}
|
||
|
||
.avatar {
|
||
max-width: 175px;
|
||
}
|
||
|
||
.avatar.medium {
|
||
max-width: 125px;
|
||
}
|
||
|
||
.avatar.small {
|
||
max-width: 75px;
|
||
}
|
||
|
||
.avatar.extra.small {
|
||
max-width: 25px;
|
||
}
|
||
|
||
.avatar.circle {
|
||
border-radius: 50%;
|
||
}
|
||
|
||
.avatar.shadow {
|
||
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.35);
|
||
}
|
||
|
||
.pure-center {
|
||
position: fixed;
|
||
top: 50%;
|
||
left: 50%;
|
||
-webkit-transform: translate(-50%, -50%);
|
||
}
|
||
|
||
.pure-center.relative {
|
||
position: relative;
|
||
}
|
||
|
||
.center-text {
|
||
text-align: center;
|
||
}
|
||
|
||
.fade-in {
|
||
opacity: 0;
|
||
-webkit-animation-name: fade-in;
|
||
-webkit-animation-fill-mode: forwards;
|
||
-webkit-animation-duration: 1s;
|
||
}
|
||
|
||
.fade-in.long {
|
||
-webkit-animation-duration: 3s;
|
||
}
|
||
|
||
.fade-in.delay {
|
||
-webkit-animation-delay: .75s;
|
||
}
|
||
|
||
.fade-in.long.delay {
|
||
-webkit-animation-delay: 2s;
|
||
}
|
||
|
||
.messages {
|
||
opacity: 1;
|
||
-webkit-transition: opacity 1s ease;
|
||
}
|
||
|
||
@-webkit-keyframes fade-in {
|
||
from {
|
||
opacity: 0;
|
||
}
|
||
to {
|
||
opacity: 1;
|
||
}
|
||
}
|
||
@-webkit-keyframes fade-out {
|
||
from {
|
||
opacity: 1;
|
||
}
|
||
to {
|
||
opacity: 0;
|
||
}
|
||
}
|
||
|
||
.fixed {
|
||
position: fixed;
|
||
}
|
||
|
||
.fixed.top {
|
||
top: 0;
|
||
}
|
||
|
||
.fixed.bottom {
|
||
bottom: 0;
|
||
}
|
||
|
||
.fixed.left {
|
||
left: 0;
|
||
}
|
||
|
||
.fixed.right {
|
||
right: 0;
|
||
}
|
||
|
||
.fixed.vertical-center {
|
||
top: 50%;
|
||
-webkit-transform: translateY(-50%);
|
||
}
|
||
|
||
.fixed.horizontal-center {
|
||
left: 50%;
|
||
-webkit-transform: translateX(-50%);
|
||
}
|
||
|
||
.loading-bar {
|
||
max-width: 100%;
|
||
height: 5px;
|
||
-webkit-transition: all 0.3s linear;
|
||
}
|
||
|
||
.svg-icon {
|
||
width: 25px;
|
||
height: 25px;
|
||
}
|
||
|
||
.svg-icon path {
|
||
fill: currentColor;
|
||
}
|
||
|
||
.k-load-staff-block, .k-load-rule-block {
|
||
display: none;
|
||
opacity: 0;
|
||
-webkit-transition: opacity 1s ease;
|
||
}
|
||
|
||
.k-load-rule-block {
|
||
-webkit-transition: opacity .5s ease;
|
||
}
|
||
|
||
.k-load-staff-block.active, .k-load-rule-block.active {
|
||
opacity: 1;
|
||
}
|
||
.k-load-staff-avatar {
|
||
font-size: 0;
|
||
}
|
||
|
||
#k-load-rules {
|
||
counter-reset: rule;
|
||
}
|
||
|
||
.k-load-rule {
|
||
counter-increment: rule;
|
||
}
|
||
|
||
</style>
|
||
|
||
<link rel="stylesheet" href="static/css/css2.css">
|
||
|
||
<style>
|
||
*, :after, :before {
|
||
-webkit-box-sizing: inherit;
|
||
box-sizing: inherit
|
||
}
|
||
|
||
html {
|
||
-webkit-box-sizing: border-box;
|
||
box-sizing: border-box
|
||
}
|
||
|
||
body {
|
||
margin: 0
|
||
}
|
||
|
||
.container {
|
||
margin: auto;
|
||
width: 80%;
|
||
max-width: 1250px
|
||
}
|
||
|
||
.row {
|
||
font-size: 0
|
||
}
|
||
|
||
.col {
|
||
display: inline-block;
|
||
padding: 5px 15px;
|
||
font-size: initial
|
||
}
|
||
|
||
.hide, .hide-xl {
|
||
display: none
|
||
}
|
||
|
||
.col.xl-1 {
|
||
width: 8.3333333333%
|
||
}
|
||
|
||
.col.xl-2 {
|
||
width: 16.6666666667%
|
||
}
|
||
|
||
.col.xl-3 {
|
||
width: 25%
|
||
}
|
||
|
||
.col.xl-4 {
|
||
width: 33.3333333333%
|
||
}
|
||
|
||
.col.xl-5 {
|
||
width: 41.6666666667%
|
||
}
|
||
|
||
.col.xl-6 {
|
||
width: 50%
|
||
}
|
||
|
||
.col.xl-7 {
|
||
width: 58.3333333333%
|
||
}
|
||
|
||
.col.xl-8 {
|
||
width: 66.6666666667%
|
||
}
|
||
|
||
.col.xl-9 {
|
||
width: 75%
|
||
}
|
||
|
||
.col.xl-10 {
|
||
width: 83.3333333333%
|
||
}
|
||
|
||
.col.xl-11 {
|
||
width: 91.6666666667%
|
||
}
|
||
|
||
.col.xl-12 {
|
||
width: 100%
|
||
}
|
||
</style>
|
||
<style>
|
||
/*
|
||
* K-Load v2 (https://demo.maddela.org/k-load/).
|
||
*
|
||
* @link https://www.maddela.org
|
||
* @link https://github.com/kanalumaddela/k-load-v2
|
||
*
|
||
* @author kanalumaddela <git@maddela.org>
|
||
* @copyright Copyright (c) 2018-2019 Maddela
|
||
* @license MIT
|
||
*/
|
||
|
||
body {
|
||
font-family: 'Jura', sans-serif;
|
||
color: #fff;
|
||
background-color: #353535;
|
||
font-weight: 300;
|
||
}
|
||
|
||
h1, h2, h3, h4, h5, h6 {
|
||
margin: 0;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
h1 {
|
||
font-size: 3rem;
|
||
}
|
||
|
||
h3 {
|
||
font-size: 1.5rem;
|
||
}
|
||
|
||
p {
|
||
margin: 0;
|
||
}
|
||
|
||
.avatar {
|
||
border-radius: 3px;
|
||
}
|
||
|
||
.overlay:before {
|
||
opacity: .2;
|
||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAEAQMAAACTPww9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURQAAAAAAAKVnuc8AAAABdFJOUwBA5thmAAAAEElEQVQI12MQYFBgcGBoAAACWADxfYADLwAAAABJRU5ErkJggg==');
|
||
}
|
||
|
||
.loading-bar {
|
||
margin-top: 10px;
|
||
background-color: #31c3fd;
|
||
}
|
||
|
||
#container {
|
||
width: 95%;
|
||
max-width: 1450px;
|
||
height: 75%;
|
||
max-height: 700px;
|
||
}
|
||
|
||
.row, .col, .block > div {
|
||
height: 450px;
|
||
}
|
||
|
||
.col {
|
||
font-size: 1.1rem
|
||
}
|
||
|
||
.absolute-align-vertical {
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 0;
|
||
right: 0;
|
||
transform: translateY(-50%);
|
||
-webkit-transform: translateY(-50%);
|
||
}
|
||
|
||
.header {
|
||
margin-bottom: 15px;
|
||
text-shadow: 0 2px 4px rgba(0, 0, 0, .5);
|
||
}
|
||
|
||
.header > * {
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
}
|
||
|
||
.header > .avatar {
|
||
margin-top: 5px;
|
||
}
|
||
|
||
.col {
|
||
padding: 0;
|
||
}
|
||
|
||
.col:not(:last-child) {
|
||
padding-right: 5px;
|
||
}
|
||
|
||
.block {
|
||
vertical-align: top;
|
||
}
|
||
|
||
.block-item {
|
||
position: relative;
|
||
background-color: rgba(27, 30, 34, .75);
|
||
border-top: 1px solid #31c3fd;
|
||
}
|
||
|
||
.block-header {
|
||
margin-bottom: 5px;
|
||
padding: 15px 0;
|
||
text-align: center;
|
||
}
|
||
|
||
.block-item .block-header h2 {
|
||
font-weight: 500;
|
||
}
|
||
|
||
.block-content {
|
||
padding: 12px;
|
||
height: 100%;
|
||
max-height: 380px;
|
||
}
|
||
|
||
.gradient {
|
||
background: -webkit-linear-gradient(0deg, rgba(15, 18, 21, 0.65), transparent);
|
||
background: linear-gradient(90deg, rgba(15, 18, 21, 0.65), transparent);
|
||
}
|
||
|
||
.k-load-rule {
|
||
padding: 12px 20px;
|
||
/*margin: 8px 0;*/
|
||
}
|
||
|
||
.k-load-rule:not(:last-child) {
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
#staff .block-content {
|
||
padding: 0 5px;
|
||
}
|
||
|
||
.k-load-staff {
|
||
padding: 14px 0;
|
||
}
|
||
|
||
.k-load-staff:not(:last-child) {
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
.k-load-staff > * {
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
}
|
||
|
||
.k-load-staff .avatar {
|
||
max-width: 45px;
|
||
}
|
||
|
||
.k-load-staff-info {
|
||
margin-left: 10px;
|
||
}
|
||
|
||
.k-load-staff-info > span {
|
||
display: block;
|
||
font-weight: 600;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
.k-load-staff--rank {
|
||
font-size: .9rem;
|
||
color: #31c3fd;
|
||
}
|
||
|
||
.info {
|
||
padding: 16px 0;
|
||
text-align: center;
|
||
font-weight: 300;
|
||
/*border-top: 1px solid rgba(255, 255, 255, 0.1);*/
|
||
/*border-bottom: 1px solid rgba(255, 255, 255, 0.1);*/
|
||
background: -webkit-linear-gradient(0deg, #1b1e22, transparent);
|
||
}
|
||
|
||
.info:not(:last-child) {
|
||
margin-bottom: 14px;
|
||
}
|
||
|
||
span.server-name {
|
||
color: #31c3fd;
|
||
}
|
||
|
||
.staff-rank {
|
||
color: #31c3fd;
|
||
}
|
||
|
||
.messages {
|
||
margin-top: 12px;
|
||
font-size: 1.25rem;
|
||
}
|
||
|
||
.current-song, .percentage {
|
||
font-weight: 300;
|
||
}
|
||
|
||
.k-load-rule:before {
|
||
content: counter(rule)'.';
|
||
margin-right: 1rem;
|
||
}
|
||
</style>
|
||
|
||
<style>
|
||
body:before {
|
||
background-image: url(static/image/particles_blue.jpg);
|
||
}
|
||
|
||
.block-item, .info {
|
||
border-top-color: #79eb6f;
|
||
}
|
||
|
||
.k-load-staff--rank, span.server-name {
|
||
color: #66db89;
|
||
}
|
||
</style>
|
||
|
||
<style>
|
||
|
||
.bg-primary-50{background-color: rgb(253,245,245);}.text-primary-50{color: rgb(253,245,245);}.bg-primary-100{background-color: rgb(200, 239, 209);}.text-primary-100{color: rgb(199, 248, 200);}.bg-primary-200{background-color: rgb(180, 235, 171);}.text-primary-200{color: rgb(150, 231, 163);}.bg-primary-300{background-color: rgb(133, 234, 131);}.text-primary-300{color: rgb(152, 232, 113);}.bg-primary-400{background-color: rgb(63, 219, 66);}.text-primary-400{color: rgb(76, 177, 90);}.bg-primary-500{background-color: rgb(34, 165, 65);}.text-primary-500{color: rgb(27, 192, 101);}.bg-primary-600{background-color: rgb(27, 159, 62);}.text-primary-600{color: rgb(27, 165, 50);}.bg-primary-700{background-color: rgb(12, 107, 41);}.text-primary-700{color: rgb(15, 106, 50);}.bg-primary-800{background-color: rgb(21, 96, 41);}.text-primary-800{color: rgb(19, 93, 39);}.bg-primary-900{background-color: rgb(16, 87, 30);}.text-primary-900{color: rgb(15, 67, 30);}
|
||
|
||
|
||
</style>
|
||
</head>
|
||
<body class="">
|
||
<div id="xf-MusicPlayer" data-localMusic="playlistData.json"></div>
|
||
<div class="overlay horizontal"></div>
|
||
|
||
<div id="container" class="pure-center" style="top: 47.5%;">
|
||
<div class="header">
|
||
<img class="avatar" style="max-width: 65px;" src="https://img.cdn1.vip/i/6979f85754147_1769601111.webp">
|
||
<div style="margin-left: 10px">
|
||
<h1 style="text-transform: uppercase;font-weight: 700">[CN]Legacy Breach-MINT<p style="color: green;">薄荷服务器</p> </h1>
|
||
<h3 style="font-weight: 500">You are now joining <span class="server-name"></span></h3>
|
||
</div>
|
||
</div>
|
||
<div class="row">
|
||
<!-- about us -->
|
||
<div id="about-parent" class="col xl-3 block">
|
||
<div>
|
||
<div class="block-item block-header">
|
||
<h2>关于我们</h2>
|
||
</div>
|
||
<div class="block-item block-content">
|
||
<div class="absolute-align-vertical" style="top: 45%;padding: 15px;">
|
||
<p>MINT薄荷服务器是一个以玩家游戏体验为中心的GMODSCP服务器我们深知每一位玩家都是由萌新转变过来的所以我们的宗旨是耐心培养 陪伴每一位萌新</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- sever qq -->
|
||
<div id="about-parent" class="col xl-3 block">
|
||
<div>
|
||
<div class="block-item block-header">
|
||
<h2>服务器群聊</h2>
|
||
</div>
|
||
<div class="block-item block-content">
|
||
<div class="absolute-align-vertical" style="top: 45%;padding: 15px;">
|
||
<p>QQ群1073757338,这边建议加群,以便获取最新的更新公告与规则变动</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- sever admin -->
|
||
<div id="about-parent" class="col xl-3 block">
|
||
<div>
|
||
<div class="block-item block-header">
|
||
<h2>服务器主要成员</h2>
|
||
</div>
|
||
<div class="block-item block-content">
|
||
<div class="absolute-align-vertical" style="top: 45%;padding: 15px;">
|
||
<img src="https://avatars.steamstatic.com/f1be9dfe14412b4e9b18c3064d256b67b32e5c6d_full.jpg" alt="Pulpit rock" width="50" height="50" align="middle" class="circle-clip">𝓓𝓡.𝓒𝓪𝓻𝓽𝓮𝓻(服主+技术)</p>
|
||
<img src="https://avatars.steamstatic.com/e368e189d6fd1040cf01db143b3555b66e7f42ed_full.jpg" alt="Pulpit rock" width="50" height="50" align="middle"class="circle-clip">青圭Небо没有パーティ(副服主)</p>
|
||
<img src="https://avatars.steamstatic.com/23f12b56f182de15ef4541366f3e27f193928e25_full.jpg" alt="Pulpit rock" width="50" height="50" align="middle"class="circle-clip">轻风(服务器大赞助)</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<!-- 音乐播放器(已经重置,此为旧代码) -->
|
||
<div id="music" class="col xl-3 block hide">
|
||
<div>
|
||
<div class="block-item block-header">
|
||
<h2>now playing</h2>
|
||
</div>
|
||
<div class="block-item block-content">
|
||
<div class="absolute-align-vertical center-text" style="top: 45%;padding: 15px;">
|
||
<h1 style="font-size: 7.5rem;">♫</h1>
|
||
<h3 class="youtube-playing-title current-song"></h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 服务器地图 -->
|
||
<div id="map-block" class="col xl-3 block hide">
|
||
<div>
|
||
<div class="block-item block-header">
|
||
<h2>map</h2>
|
||
</div>
|
||
<div class="block-item block-content">
|
||
<div class="absolute-align-vertical center-text" style="top: 45%;padding: 15px;">
|
||
<img onerror="this.src='https://images.weserv.nl/?url=https://image.gametracker.com/images/maps/160x120/nomap.jpg'" src="https://images.weserv.nl/?url=https://image.gametracker.com/images/maps/160x120/garrysmod/%25m.jpg">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 服务器信息 -->
|
||
<div class="col xl-3 block">
|
||
<div>
|
||
<div class="block-item block-header">
|
||
<h2>信息</h2>
|
||
</div>
|
||
<div class="block-item block-content no-padding">
|
||
<div class="absolute-align-vertical">
|
||
<h2 class="info server-name"></h2>
|
||
<h2 class="info"><span class="max-players"></span> max players</h2>
|
||
<h2 class="info map"></h2>
|
||
<h2 class="info gamemode"></h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 不知道有啥用的,不管了 -->
|
||
<div id="percentage" class="col xl-3 block hide">
|
||
<div>
|
||
<div class="block-item block-header">
|
||
<h2>progress</h2>
|
||
</div>
|
||
<div class="block-item block-content">
|
||
<div class="absolute-align-vertical center-text" style="top: 47%;padding: 15px;">
|
||
<h1 class="percentage"></h1>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="loading-bar bg-primary-500"></div>
|
||
<div class="center-text">
|
||
<p class="messages"></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
window.globalConfig = JSON.parse('{\u0022backgrounds\u0022:{\u0022random\u0022:true,\u0022fade\u0022:1000,\u0022duration\u0022:5000},\u0022messages\u0022:{\u0022random\u0022:true,\u0022fade\u0022:1000,\u0022duration\u0022:5000},\u0022staff\u0022:{\u0022duration\u0022:6000,\u0022perPage\u0022:1},\u0022rules\u0022:{\u0022perPage\u0022:4,\u0022fade\u0022:500,\u0022duration\u0022:8000},\u0022music\u0022:{\u0022volume\u0022:10}}');
|
||
|
||
window.backgrounds = JSON.parse('[\u0022https:\\\/\\\/img.cdn1.vip\\\/i\\\/6979e125da3c9_1769595173.webp\u0022,\u0022https:\\\/img.cdn1.vip\\\/\\\/i\\\/6979e129977d8_1769595177.webp\u0022,\u0022https:\\\/\\\/img.cdn1.vip\\\/i\\\/6979e12ec03af_1769595182.webp\u0022,\u0022https:\\\/\\\/img.cdn1.vip\\\/i\\\/6979e13360d3c_1769595187.webp\u0022,\u0022https:\\\/\\\/img.cdn1.vip\\\/i\\\/6979e136c1de0_1769595190.webp\u0022,\u0022https:\\\/\\\/img.cdn1.vip\\\/i\\\/6979e13af4213_1769595194.webp\u0022,\u0022https:\\\/\\\/img.cdn1.vip\\\/i\\\/6979e14910649_1769595209.webp\u0022,\u0022https:\\\/\\\/img.cdn1.vip\\\/i\\\/697a00c646bf9_1769603270.webp\u0022,\u0022https:\\\/\\\/img.cdn1.vip\\\/i\\\/697a00d8264c2_1769603288.webp\u0022]');
|
||
|
||
window.messages = JSON.parse('[{\u0022message\u0022:\u0022\\u672c\\u670d\\u5bf9\\u65b0\\u4eba\\u53cb\\u597d\\uff0c\\u65b0\\u4eba\\u53ef\\u4ee5\\u5728\\u9075\\u5b88\\u89c4\\u5219\\u7684\\u524d\\u63d0\\u4e0b\\u79ef\\u6781\\u63a2\\u7d22\u0022},{\u0022message\u0022:\u0022 \\u4e00\\u4e9b\\u5927\\u66f4\\u65b0\\uff08\\u771f\\u7684\\u5f88\\u5927\\uff01\\uff09\\u6b63\\u5728\\u7b56\\u5212\\u4e2d\\uff0c\\u656c\\u8bf7\\u671f\\u5f85\\uff01\u0022},{\u0022message\u0022:\u0022\\u672c\\u670d\\u5c06\\u8981\\u66f4\\u65b0\\u7684\\u5730\\u56fe\\u4e0e\\u673a\\u5236\\u540c\\u5176\\u4ed6\\u670d\\u52a1\\u5668\\u6709\\u4e9b\\u4e0d\\u540c\\uff0c\\u5c4a\\u65f6\\u8bf7\\u597d\\u597d\\u63a2\\u7d22\\u4e00\\u4e0b\\u5427\\uff01\u0022},{\u0022message\u0022:\u0022\\u6e38\\u73a9\\u524d\\u987b\\u77e5\\uff1a\\u8bf7\\u643a\\u5e26\\u5927\\u8111\\u6e38\\u73a9\\u4ee5\\u83b7\\u53d6\\u6e38\\u620f\\u4f53\\u9a8c\u0022}]');
|
||
|
||
<!-- 已经重置 window.staff = JSON.parse('[{\u0022steamid\u0022:\u002276561199781249754\u0022,\u0022rank\u0022:\u0022\\u5927\\u8150\\u7af9\u0022,\u0022order\u0022:0,\u0022steamid2\u0022:\u0022STEAM_1:0:910492013\u0022,\u0022steamid3\u0022:\u0022[U:1:1820984026]\u0022,\u0022communityvisibilitystate\u0022:3,\u0022profilestate\u0022:1,\u0022personaname\u0022:\u0022青圭Небо没有パーティ\u0022,\u0022commentpermission\u0022:1,\u0022profileurl\u0022:\u0022https:\\\/\\\/steamcommunity.com\\\/profiles\\\/76561199781249754\\\/\u0022,\u0022avatar\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/e368e189d6fd1040cf01db143b3555b66e7f42ed_full.jpg\u0022,\u0022avatarmedium\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/4a15140bcae1e667e241b705b2bffeceea10d864_medium.jpg\u0022,\u0022avatarfull\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/4a15140bcae1e667e241b705b2bffeceea10d864_full.jpg\u0022,\u0022avatarhash\u0022:\u00224a15140bcae1e667e241b705b2bffeceea10d864\u0022,\u0022personastate\u0022:1,\u0022primaryclanid\u0022:\u0022103582791429521408\u0022,\u0022timecreated\u0022:1631240278,\u0022personastateflags\u0022:0,\u0022loccountrycode\u0022:\u0022JP\u0022,\u0022locstatecode\u0022:\u002214\u0022,\u0022loccityid\u0022:25946},{\u0022steamid\u0022:\u002276561198831291960\u0022,\u0022rank\u0022:\u0022\\u8150\\u7af9\u0022,\u0022order\u0022:1,\u0022steamid2\u0022:\u0022STEAM_0:0:435513116\u0022,\u0022steamid3\u0022:\u0022[U:1:871026232]\u0022,\u0022communityvisibilitystate\u0022:3,\u0022profilestate\u0022:1,\u0022personaname\u0022:\u0022\\u738b\\u747e\u0022,\u0022commentpermission\u0022:1,\u0022profileurl\u0022:\u0022https:\\\/\\\/steamcommunity.com\\\/profiles\\\/76561198831291960\\\/\u0022,\u0022avatar\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/e890f0d20b7842f2f54ecbdb36310d7ba553be44.jpg\u0022,\u0022avatarmedium\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/e890f0d20b7842f2f54ecbdb36310d7ba553be44_medium.jpg\u0022,\u0022avatarfull\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/e890f0d20b7842f2f54ecbdb36310d7ba553be44_full.jpg\u0022,\u0022avatarhash\u0022:\u0022e890f0d20b7842f2f54ecbdb36310d7ba553be44\u0022,\u0022personastate\u0022:0,\u0022realname\u0022:\u0022\\u738b\\u747e\u0022,\u0022primaryclanid\u0022:\u0022103582791429521408\u0022,\u0022timecreated\u0022:1524278142,\u0022personastateflags\u0022:0,\u0022loccountrycode\u0022:\u0022CN\u0022,\u0022locstatecode\u0022:\u002225\u0022},{\u0022steamid\u0022:\u002276561199238379836\u0022,\u0022rank\u0022:\u0022\\u8150\\u7af9\u0022,\u0022order\u0022:2,\u0022steamid2\u0022:\u0022STEAM_0:0:639057054\u0022,\u0022steamid3\u0022:\u0022[U:1:1278114108]\u0022,\u0022communityvisibilitystate\u0022:3,\u0022profilestate\u0022:1,\u0022personaname\u0022:\u0022asdqwertyfgh12345\u0022,\u0022profileurl\u0022:\u0022https:\\\/\\\/steamcommunity.com\\\/id\\\/17828905640\\\/\u0022,\u0022avatar\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/087a48aab0d1f27af6c4e0dce8d9a071c2b3ec6f.jpg\u0022,\u0022avatarmedium\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/087a48aab0d1f27af6c4e0dce8d9a071c2b3ec6f_medium.jpg\u0022,\u0022avatarfull\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/087a48aab0d1f27af6c4e0dce8d9a071c2b3ec6f_full.jpg\u0022,\u0022avatarhash\u0022:\u0022087a48aab0d1f27af6c4e0dce8d9a071c2b3ec6f\u0022,\u0022personastate\u0022:0,\u0022realname\u0022:\u00221111\u0022,\u0022primaryclanid\u0022:\u0022103582791429521408\u0022,\u0022timecreated\u0022:1643095875,\u0022personastateflags\u0022:0},{\u0022steamid\u0022:\u002276561199235465266\u0022,\u0022rank\u0022:\u0022\\u670d\\u52a1\\u5668\\u6280\\u672f\u0022,\u0022order\u0022:3,\u0022steamid2\u0022:\u0022STEAM_0:0:637599769\u0022,\u0022steamid3\u0022:\u0022[U:1:1275199538]\u0022,\u0022communityvisibilitystate\u0022:3,\u0022profilestate\u0022:1,\u0022personaname\u0022:\u0022\\u4f50\\u57ce \\u667a\\u60e0\u0022,\u0022commentpermission\u0022:1,\u0022profileurl\u0022:\u0022https:\\\/\\\/steamcommunity.com\\\/profiles\\\/76561199235465266\\\/\u0022,\u0022avatar\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/f501c8936cfe9c98369e2f42ae9cd8e1382190e3.jpg\u0022,\u0022avatarmedium\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/f501c8936cfe9c98369e2f42ae9cd8e1382190e3_medium.jpg\u0022,\u0022avatarfull\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/f501c8936cfe9c98369e2f42ae9cd8e1382190e3_full.jpg\u0022,\u0022avatarhash\u0022:\u0022f501c8936cfe9c98369e2f42ae9cd8e1382190e3\u0022,\u0022personastate\u0022:1,\u0022primaryclanid\u0022:\u0022103582791430434937\u0022,\u0022timecreated\u0022:1642280744,\u0022personastateflags\u0022:0,\u0022gameserverip\u0022:\u0022114.66.63.98:27095\u0022,\u0022gameserversteamid\u0022:\u002285568392935236946\u0022,\u0022gameextrainfo\u0022:\u0022Garry\\u0027s Mod\u0022,\u0022gameid\u0022:\u00224000\u0022,\u0022loccountrycode\u0022:\u0022IR\u0022,\u0022locstatecode\u0022:\u002230\u0022,\u0022loccityid\u0022:24215},{\u0022steamid\u0022:\u002276561199389358627\u0022,\u0022rank\u0022:\u0022\\u670d\\u52a1\\u5668\\u6280\\u672f\u0022,\u0022order\u0022:4,\u0022steamid2\u0022:\u0022STEAM_0:1:714546449\u0022,\u0022steamid3\u0022:\u0022[U:1:1429092899]\u0022,\u0022communityvisibilitystate\u0022:3,\u0022profilestate\u0022:1,\u0022personaname\u0022:\u0022DR.Carter\u0022,\u0022profileurl\u0022:\u0022https:\\\/\\\/steamcommunity.com\\\/id\\\/CarterTC\\\/\u0022,\u0022avatar\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/4914047c5917afb5afc5c634ef094ea67f2ce727.jpg\u0022,\u0022avatarmedium\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/4914047c5917afb5afc5c634ef094ea67f2ce727_medium.jpg\u0022,\u0022avatarfull\u0022:\u0022https:\\\/\\\/avatars.steamstatic.com\\\/4914047c5917afb5afc5c634ef094ea67f2ce727_full.jpg\u0022,\u0022avatarhash\u0022:\u00224914047c5917afb5afc5c634ef094ea67f2ce727\u0022,\u0022personastate\u0022:1,\u0022primaryclanid\u0022:\u0022103582791440016262\u0022,\u0022timecreated\u0022:1662353784,\u0022personastateflags\u0022:0,\u0022gameserverip\u0022:\u0022153.99.74.10:27015\u0022,\u0022gameserversteamid\u0022:\u002285568392935394541\u0022,\u0022gameextrainfo\u0022:\u0022Garry\\u0027s Mod\u0022,\u0022gameid\u0022:\u00224000\u0022,\u0022loccountrycode\u0022:\u0022US\u0022}]'); -->
|
||
|
||
<!--写的啥jb window.rules = JSON.parse('[{\u0022rule\u0022:\u0022\\u8bf7\\u52a0Q\\u7fa41076190286\\u4ee5\\u83b7\\u53d6\\u6e38\\u73a9\\u6240\\u9700\\u7684\\u521b\\u610f\\u5de5\\u574a\\u5408\\u96c6\u0022},{\u0022rule\u0022:\u0022\\u672c\\u670d\\u5bf9\\u65b0\\u4eba\\u53cb\\u597d\\uff0c\\u65b0\\u4eba\\u53ef\\u4ee5\\u5728\\u9075\\u5b88\\u89c4\\u5219\\u7684\\u524d\\u63d0\\u4e0b\\u79ef\\u6781\\u63a2\\u7d22\u0022},{\u0022rule\u0022:\u0022\\u4e00\\u4e9b\\u5927\\u66f4\\u65b0\\uff08\\u771f\\u7684\\u5f88\\u5927\\uff01\\uff09\\u6b63\\u5728\\u7b56\\u5212\\u4e2d\\uff0c\\u656c\\u8bf7\\u671f\\u5f85\\uff01\u0022},{\u0022rule\u0022:\u0022\\u672c\\u670d\\u5c06\\u8981\\u66f4\\u65b0\\u7684\\u5730\\u56fe\\u4e0e\\u673a\\u5236\\u540c\\u5176\\u4ed6\\u670d\\u52a1\\u5668\\u6709\\u4e9b\\u4e0d\\u540c\\uff0c\\u5c4a\\u65f6\\u8bf7\\u597d\\u597d\\u63a2\\u7d22\\u4e00\\u4e0b\\u5427\\uff01\u0022},{\u0022rule\u0022:\u0022\\u6e38\\u73a9\\u524d\\u987b\\u77e5\\uff1a\\u8bf7\\u643a\\u5e26\\u5927\\u8111\\u6e38\\u73a9\\u4ee5\\u83b7\\u53d6\\u6e38\\u620f\\u4f53\\u9a8c\u0022}]'); -->
|
||
|
||
window.music = [];
|
||
</script>
|
||
|
||
<script type="text/javascript">
|
||
window.globalConfig.staff.perPage = 5;
|
||
window.globalConfig.rules.perPage = 6;
|
||
</script>
|
||
|
||
<script type="text/javascript">
|
||
var currentProgress, demoInterval;
|
||
|
||
const gamemodes = {
|
||
cinema: 'Cinema',
|
||
demo: 'Demo',
|
||
darkrp: 'DarkRP',
|
||
deathrun: 'Deathrun',
|
||
jailbreak: 'Jailbreak',
|
||
melonbomber: 'Melon Bomber',
|
||
militaryrp: 'MilitaryRP',
|
||
murder: 'Murder',
|
||
morbus: 'Morbus',
|
||
policerp: 'PoliceRP',
|
||
prophunt: 'Prophunt',
|
||
sandbox: 'Sandbox',
|
||
santosrp: 'SantosRP',
|
||
schoolrp: 'SchoolRP',
|
||
starwarsrp: 'SWRP',
|
||
stopitslender: 'Stop it Slender',
|
||
slashers: 'Slashers',
|
||
terrortown: 'TTT',
|
||
};
|
||
|
||
const elem = function (tag, attrs, children) {
|
||
const elem = document.createElement(tag);
|
||
|
||
Object.keys(attrs).forEach(function (key) {
|
||
if (key in document.createElement(tag)) {
|
||
elem[key] = attrs[key];
|
||
} else {
|
||
elem.setAttribute(key, attrs[key]);
|
||
}
|
||
});
|
||
|
||
if (Array.isArray(children)) {
|
||
children.forEach(function (child) {
|
||
if (typeof child === "string") {
|
||
child = document.createTextNode(child);
|
||
}
|
||
elem.appendChild(child);
|
||
});
|
||
}
|
||
|
||
return elem;
|
||
};
|
||
|
||
const clearChildren = function (parent) {
|
||
while (parent.firstChild) {
|
||
parent.removeChild(parent.firstChild);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Generate a random string.
|
||
*
|
||
* @returns {string}
|
||
*/
|
||
const str_random = function () {
|
||
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
||
};
|
||
|
||
/**
|
||
* {@link https://stackoverflow.com/a/1349426}
|
||
*
|
||
* @param length
|
||
* @returns {string}
|
||
*/
|
||
const str_random_v2 = function (length) {
|
||
var text = "";
|
||
const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||
|
||
if (!length) {
|
||
length = 12;
|
||
}
|
||
|
||
for (var i = 0; i < length; i++) {
|
||
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
||
}
|
||
|
||
return text;
|
||
};
|
||
|
||
/**
|
||
* Return a NodeList matching the given selector.
|
||
*
|
||
* @param {string} selector
|
||
* @returns {NodeListOf<Element>}
|
||
*/
|
||
const getElements = function (selector) {
|
||
return document.querySelectorAll(selector);
|
||
};
|
||
|
||
const randColor = function () {
|
||
return "#" + ((1 << 24) * Math.random() | 0).toString(16);
|
||
};
|
||
|
||
const shuffle = function (array) {
|
||
var i, j = 0, temp = null;
|
||
|
||
for (i = array.length - 1; i > 0; i -= 1) {
|
||
j = Math.floor(Math.random() * (i + 1));
|
||
temp = array[i];
|
||
array[i] = array[j];
|
||
array[j] = temp;
|
||
}
|
||
};
|
||
|
||
const text = function (selector, text) {
|
||
[].forEach.call(getElements(selector), function (elem) {
|
||
elem.textContent = text;
|
||
});
|
||
};
|
||
|
||
const width = function (selector, width) {
|
||
[].forEach.call(getElements(selector), function (elem) {
|
||
elem.style.width = width;
|
||
});
|
||
};
|
||
|
||
const image = function (selector, src) {
|
||
[].forEach.call(getElements(selector), function (elem) {
|
||
elem.src = src;
|
||
});
|
||
};
|
||
|
||
const clamp = function (num, min, max) {
|
||
if (!min && !max) {
|
||
console.error('clamp() min and max not defined!');
|
||
return;
|
||
}
|
||
|
||
if (!max) {
|
||
max = Infinity;
|
||
}
|
||
if (!min) {
|
||
min = -Infinity;
|
||
}
|
||
|
||
return Math.min(Math.max(num, min), max);
|
||
};
|
||
|
||
const rgbToRgba = function (rgb, alpha) {
|
||
return rgb.replace('rgb', 'rgba').replace(')', ','+alpha+')');
|
||
};
|
||
</script>
|
||
<script type="text/javascript">
|
||
var KLoad = {
|
||
isGmod: navigator.userAgent.toLowerCase().indexOf('valve') !== -1,
|
||
loadingHooks: {},
|
||
events: {},
|
||
data: {
|
||
demoMode: false,
|
||
volume: 15,
|
||
GameDetails: {},
|
||
files: {
|
||
downloaded: 0,
|
||
needed: 1,
|
||
total: 1,
|
||
downloadComplete: false,
|
||
},
|
||
},
|
||
finishedStatuses: [
|
||
'Sending client info...',
|
||
'Client info sent!',
|
||
'Received all Lua files we needed!',
|
||
'No files to request!',
|
||
'Starting Lua...',
|
||
],
|
||
tmp: {
|
||
ignoreLoadings: false,
|
||
lastFileDownloaded: null,
|
||
statuses: [],
|
||
progressRegex: /(\d+)\/(\d+)/,
|
||
}
|
||
};
|
||
|
||
|
||
KLoad.emit = function (event) {
|
||
if (typeof KLoad.events[event] !== 'undefined') {
|
||
const args = [].slice.call(arguments);
|
||
args.shift();
|
||
|
||
KLoad.events[event].forEach(function (func) {
|
||
func.apply(null, args);
|
||
});
|
||
}
|
||
};
|
||
|
||
KLoad.on = function (event, func) {
|
||
if (typeof KLoad.events[event] === 'undefined') {
|
||
KLoad.events[event] = [];
|
||
}
|
||
|
||
KLoad.events[event].push(func);
|
||
};
|
||
|
||
KLoad.on('GameDetails', function (servername, serverurl, mapname, maxplayers, steamid, gamemode, volume, language, gamemodeNice) {
|
||
KLoad.data.GameDetails.servername = servername;
|
||
KLoad.data.GameDetails.serverurl = serverurl;
|
||
KLoad.data.GameDetails.mapname = mapname;
|
||
KLoad.data.GameDetails.maxplayers = maxplayers;
|
||
KLoad.data.GameDetails.steamid = steamid;
|
||
KLoad.data.GameDetails.gamemode = gamemode;
|
||
KLoad.data.GameDetails.volume = volume;
|
||
KLoad.data.GameDetails.language = language;
|
||
KLoad.data.GameDetails.gamemodeNice = gamemodeNice;
|
||
|
||
text('.server-name', servername);
|
||
text('.server-url', serverurl);
|
||
text('.map', mapname);
|
||
text('.mapname', mapname);
|
||
text('.max-players', maxplayers);
|
||
text('.steamid', steamid);
|
||
text('.gamemode', gamemode);
|
||
text('.volume', volume);
|
||
text('.language', language);
|
||
text('.gamemodeNice', gamemodeNice);
|
||
});
|
||
|
||
KLoad.on('SetFilesTotal', function (total) {
|
||
KLoad.data.files.total = total;
|
||
text('.files-total', total);
|
||
});
|
||
|
||
KLoad.on('SetFilesNeeded', function (needed) {
|
||
KLoad.data.files.needed = needed;
|
||
text('.files-needed', needed);
|
||
});
|
||
|
||
KLoad.getProgress = function () {
|
||
const progress = KLoad.data.files.downloaded / KLoad.data.files.needed;
|
||
|
||
return {
|
||
progress: KLoad.data.files.downloadComplete ? 1 : progress,
|
||
percentage: KLoad.data.files.downloadComplete ? 100 : Math.round(progress * 100)
|
||
}
|
||
}
|
||
|
||
KLoad.on('DownloadingFile', function (file) {
|
||
KLoad.data.files.downloaded++;
|
||
|
||
if ((KLoad.data.files.needed <= 0 || KLoad.data.files.downloaded >= KLoad.data.files.needed) && !KLoad.data.demoMode) {
|
||
SetFilesNeeded(KLoad.data.files.downloaded + 1);
|
||
}
|
||
|
||
KLoad.tmp.lastFileDownloaded = file;
|
||
|
||
SetStatusChanged('Downloading ' + file);
|
||
text('.files-downloading', file);
|
||
|
||
if (!KLoad.data.files.downloadComplete) {
|
||
KLoad.emit('DownloadProgress', KLoad.getProgress());
|
||
}
|
||
});
|
||
|
||
KLoad.on('DownloadProgress', function (data) {
|
||
text('.files-downloaded', KLoad.data.files.downloaded);
|
||
text('.percentage', data.percentage + '%');
|
||
|
||
[].forEach.call(document.querySelectorAll('.loading-bar, .loading-bar--vertical'), function (elem) {
|
||
if (elem.classList.contains('.loading-bar--vertical')) {
|
||
elem.style.height = data.percentage + '%';
|
||
} else {
|
||
elem.style.width = data.percentage + '%';
|
||
}
|
||
});
|
||
});
|
||
|
||
KLoad.on('SetStatusChanged', function (status) {
|
||
if (status.indexOf('Extracting') !== -1 || status.indexOf('Retrieving') !== -1) {
|
||
return;
|
||
}
|
||
|
||
const i = status.indexOf('Loading');
|
||
if (i !== -1) {
|
||
if (status.indexOf(KLoad.tmp.lastFileDownloaded) === -1) {
|
||
KLoad.data.files.downloaded++;
|
||
KLoad.emit('DownloadProgress', KLoad.getProgress());
|
||
}
|
||
|
||
status = status.substr(i);
|
||
}
|
||
|
||
text('.status', status);
|
||
|
||
if (KLoad.finishedStatuses.indexOf(status) !== -1) {
|
||
KLoad.data.files.downloadComplete = true;
|
||
|
||
KLoad.emit('DownloadProgress', {
|
||
progress: 1,
|
||
percentage: 100
|
||
});
|
||
}
|
||
});
|
||
|
||
KLoad.init = function () {
|
||
window.GameDetails = function (servername, serverurl, mapname, maxplayers, steamid, gamemode, volume, language) {
|
||
KLoad.emit('GameDetails', servername, serverurl, mapname, maxplayers, steamid, gamemode, volume, language)
|
||
};
|
||
|
||
window.SetFilesTotal = function (total) {
|
||
KLoad.emit('SetFilesTotal', total);
|
||
};
|
||
|
||
window.SetFilesNeeded = function (needed) {
|
||
KLoad.emit('SetFilesNeeded', needed);
|
||
};
|
||
|
||
window.DownloadingFile = function (fileName) {
|
||
KLoad.emit('DownloadingFile', fileName);
|
||
};
|
||
|
||
window.SetStatusChanged = function (status) {
|
||
KLoad.emit('SetStatusChanged', status);
|
||
};
|
||
};
|
||
|
||
// shuffle before anything is called
|
||
shuffle(window.backgrounds)
|
||
shuffle(window.messages)
|
||
shuffle(window.music)
|
||
|
||
function onMessageContainers(callback) {
|
||
[].forEach.call(document.querySelectorAll('.messages'), callback);
|
||
}
|
||
|
||
var message_counter = 0;
|
||
if(messages[message_counter]) {
|
||
text('.messages', messages[message_counter].message);
|
||
|
||
var message_rotation = setInterval(function() {
|
||
message_counter++;
|
||
if (message_counter >= messages.length) {
|
||
message_counter = 0;
|
||
}
|
||
|
||
onMessageContainers(function (el) {
|
||
el.style.opacity = '0';
|
||
|
||
setTimeout(function () {
|
||
onMessageContainers(function (el) {
|
||
el.innerText = messages[message_counter].message;
|
||
el.style.opacity = '1';
|
||
})
|
||
}, 1000);
|
||
});
|
||
}, window.globalConfig.messages.duration + 500);
|
||
}
|
||
|
||
var gmodload = {};
|
||
KLoad.Backgrounds = {
|
||
init: function (backgrounds, options) {
|
||
this.setBackgrounds(backgrounds);
|
||
this.setOptions(options);
|
||
this.setupCss();
|
||
this.setupContainer();
|
||
this.data = {
|
||
currentIndex: -1,
|
||
backgroundChildren: 0,
|
||
activeBackgrounds: [],
|
||
timer: null,
|
||
}
|
||
|
||
if (backgrounds && backgrounds.length) {
|
||
this.start();
|
||
}
|
||
|
||
return this;
|
||
},
|
||
|
||
start: function () {
|
||
[].forEach.call(this.backgrounds, function (url) {
|
||
this.container.appendChild(this.createBackground(url))
|
||
}.bind(this));
|
||
|
||
this.data.activeBackgrounds = this.backgrounds;
|
||
this.data.backgroundChildren = this.container.querySelectorAll('.bg-item');
|
||
|
||
this.nextBackground();
|
||
|
||
if (this.data.activeBackgrounds.length > 1) {
|
||
this.data.timer = setInterval(function () {
|
||
this.nextBackground();
|
||
}.bind(this), this.options.duration);
|
||
}
|
||
},
|
||
|
||
nextBackground: function () {
|
||
this.data.currentIndex++;
|
||
|
||
if (this.data.currentIndex >= this.data.activeBackgrounds.length) {
|
||
this.data.currentIndex = 0;
|
||
}
|
||
|
||
const indx = this.data.currentIndex;
|
||
|
||
this.data.backgroundChildren[indx].style.opacity = '1';
|
||
|
||
if (this.data.activeBackgrounds.length > 1) {
|
||
if (indx === 0) {
|
||
this.data.backgroundChildren[this.data.activeBackgrounds.length-1].style.opacity = '0';
|
||
} else {
|
||
this.data.backgroundChildren[indx-1].style.opacity = '0';
|
||
}
|
||
}
|
||
|
||
return this;
|
||
},
|
||
|
||
setupContainer: function () {
|
||
this.container = document.querySelector('.k-load-background-container');
|
||
|
||
if (!this.container) {
|
||
window.document.body.innerHTML += '<div class="k-load-background-container"></div>';
|
||
this.container = document.querySelector('.k-load-background-container');
|
||
}
|
||
|
||
return this;
|
||
},
|
||
|
||
setupCss: function () {
|
||
window.document.body.innerHTML += '<style>body > .k-load-background-container {z-index: -999999;pointer-events: none;position: fixed;top: 50%;left: 50%;width: 110%;height: 110%;-webkit-transform: translate(-50%, -50%)}.k-load-background-container > .bg-item {z-index: -9998;position: absolute;width: 100%;height: 100%;background-size: cover;background-position: center;opacity: 0;-webkit-transition: opacity '+(Math.round(this.options.fade/1000*100)/100)+'s ease-in;}</style>';
|
||
|
||
return this;
|
||
},
|
||
|
||
setBackgrounds: function (backgrounds) {
|
||
if (!backgrounds) {
|
||
backgrounds = [];
|
||
}
|
||
|
||
this.backgrounds = backgrounds;
|
||
|
||
return this;
|
||
},
|
||
|
||
getBackgrounds: function () {
|
||
return this.backgrounds;
|
||
},
|
||
|
||
createBackground: function (imageUrl) {
|
||
const div = document.createElement('div');
|
||
|
||
div.className = 'bg-item';
|
||
div.style.backgroundImage = 'url('+imageUrl+')';
|
||
|
||
return div;
|
||
},
|
||
|
||
setOptions: function (options) {
|
||
if (!options) {
|
||
options = {};
|
||
}
|
||
|
||
this.options = {
|
||
random: options.hasOwnProperty('random') ? options.random : true,
|
||
fade: options.hasOwnProperty('fade') ? options.fade : 750,
|
||
duration: options.hasOwnProperty('duration') ? options.duration : 5*1000,
|
||
}
|
||
|
||
return this;
|
||
},
|
||
|
||
getOptions: function () {
|
||
return this.options;
|
||
}
|
||
}
|
||
|
||
KLoad.Music = {
|
||
init: function (music, volume) {
|
||
if (!volume) {
|
||
volume = 0;
|
||
}
|
||
|
||
this.data = {
|
||
currentIndex: -1,
|
||
currentlyPlaying: null,
|
||
songs: [],
|
||
songNames: [],
|
||
};
|
||
|
||
this.setVolume(volume);
|
||
this.setMusic(music);
|
||
|
||
if (this.data.songs.length) {
|
||
this.start();
|
||
}
|
||
|
||
return this;
|
||
},
|
||
|
||
start: function () {
|
||
[].forEach.call(document.querySelectorAll('.music-container'), function (el) {
|
||
el.style.display = 'block';
|
||
});
|
||
this.nextSong();
|
||
KLoad.emit('MusicStarted');
|
||
},
|
||
|
||
nextSong: function () {
|
||
this.data.currentIndex++;
|
||
|
||
if (this.data.currentIndex >= this.data.songs.length) {
|
||
this.data.currentIndex = 0;
|
||
}
|
||
|
||
if (this.data.currentlyPlaying) {
|
||
this.data.currentlyPlaying.pause();
|
||
this.data.currentlyPlaying.currentTime = 0;
|
||
}
|
||
|
||
this.audios[this.data.currentIndex].volume = this.volume;
|
||
this.audios[this.data.currentIndex].play();
|
||
|
||
this.data.currentlyPlaying = this.audios[this.data.currentIndex];
|
||
text('.current-song', this.data.currentlyPlaying.title);
|
||
KLoad.emit('CurrentSong', this.data.currentlyPlaying.title);
|
||
},
|
||
|
||
setMusic: function (music) {
|
||
if (!music) {
|
||
music = [];
|
||
}
|
||
|
||
this.data.currentIndex = -1;
|
||
this.data.songs = music;
|
||
this.data.songNames = [];
|
||
this.audios = [];
|
||
|
||
[].forEach.call(this.data.songs, function (song) {
|
||
const aud = new Audio(song.url);
|
||
|
||
aud.addEventListener('ended', function () {
|
||
this.nextSong();
|
||
}.bind(this));
|
||
aud.volume = this.volume;
|
||
aud.title = song.name;
|
||
|
||
this.audios.push(aud);
|
||
this.data.songNames.push(song.name);
|
||
}.bind(this));
|
||
|
||
return this;
|
||
},
|
||
|
||
setVolume: function (volume) {
|
||
if (!volume && volume !== 0) {
|
||
volume = 10;
|
||
}
|
||
|
||
this.volume = volume / 100;
|
||
|
||
if (this.data.currentlyPlaying) {
|
||
this.data.currentlyPlaying.volume = this.volume;
|
||
}
|
||
|
||
return this;
|
||
}
|
||
}
|
||
|
||
function fixNames(data) {
|
||
var steamid = data.steamid;
|
||
text('name_' + steamid, data.personaname);
|
||
}
|
||
|
||
const rules_block = document.getElementById('k-load-rules');
|
||
|
||
var rulesInterval, ruleBlockCounter = 0;
|
||
|
||
function setRules() {
|
||
if (rules_block) {
|
||
clearInterval(rulesInterval);
|
||
clearChildren(rules_block);
|
||
|
||
const num_blocks = Math.ceil(window.rules.length / window.globalConfig.rules.perPage);
|
||
var ruleCount = 0;
|
||
|
||
|
||
for (var i = 0; i < num_blocks; i++) {
|
||
var children = [];
|
||
|
||
for (var x = 0; x < window.globalConfig.rules.perPage; x++) {
|
||
if (ruleCount < window.rules.length) {
|
||
children.push(
|
||
elem('div', {className: 'k-load-rule', innerText: window.rules[ruleCount].rule})
|
||
);
|
||
|
||
ruleCount++;
|
||
}
|
||
}
|
||
|
||
rules_block.appendChild(
|
||
elem('div', {id: 'k-load-rule-block-' + i, className: 'k-load-rule-block'}, children)
|
||
);
|
||
}
|
||
|
||
if(!rules_block.childNodes[ruleBlockCounter]) return;
|
||
rules_block.childNodes[ruleBlockCounter].style.display = 'block';
|
||
rules_block.childNodes[ruleBlockCounter].classList.add('active');
|
||
|
||
if (num_blocks > 1) {
|
||
rulesInterval = setInterval(function () {
|
||
const rules_block = document.getElementById('k-load-rules');
|
||
|
||
rules_block.childNodes[ruleBlockCounter].classList.remove('active');
|
||
setTimeout(function () {
|
||
rules_block.childNodes[ruleBlockCounter].style.display = 'none';
|
||
|
||
var nextSib = rules_block.childNodes[ruleBlockCounter].nextSibling;
|
||
|
||
if (nextSib) {
|
||
ruleBlockCounter++;
|
||
} else {
|
||
ruleBlockCounter = 0;
|
||
nextSib = rules_block.childNodes[ruleBlockCounter];
|
||
}
|
||
|
||
nextSib.style.display = 'block';
|
||
|
||
setTimeout(function () {
|
||
nextSib.classList.add('active');
|
||
}, 100);
|
||
}.bind(rules_block), window.globalConfig.rules.fade);
|
||
}, window.globalConfig.rules.duration);
|
||
}
|
||
}
|
||
}
|
||
|
||
KLoad.Rules = {}
|
||
KLoad.Rules.genericCounterFix = function () {
|
||
const ruleBlockCssNum = Math.ceil(window.rules.length / window.globalConfig.rules.perPage);
|
||
var ruleBlockCssFix = '';
|
||
|
||
for (var x = 1; x <= ruleBlockCssNum; x++) {
|
||
ruleBlockCssFix += generateRuleBlockCss(x);
|
||
}
|
||
|
||
function generateRuleBlockCss(nth) {
|
||
return '.k-load-rule-block:nth-child('+nth+') {counter-reset: rule '+window.globalConfig.rules.perPage*(nth-1)+';}';
|
||
}
|
||
|
||
document.body.innerHTML += '<style>'+ruleBlockCssFix+'</style>';
|
||
}
|
||
|
||
const staff_block = document.getElementById('k-load-staff');
|
||
var staffInterval, staffBlockCounter = 0, staffActive = false;
|
||
|
||
function setStaff() {
|
||
if (staff_block) {
|
||
clearInterval(staffInterval);
|
||
clearChildren(staff_block);
|
||
|
||
staffActive = true;
|
||
|
||
const num_blocks = Math.ceil(window.staff.length / window.globalConfig.staff.perPage);
|
||
|
||
var staffCount = 0;
|
||
var staff_fade_delay = 1000;
|
||
|
||
for (var i = 0; i < num_blocks; i++) {
|
||
var children = [];
|
||
|
||
for (var x = 0; x < window.globalConfig.staff.perPage; x++) {
|
||
if (staffCount < staff.length) {
|
||
var staff_member = window.staff[staffCount];
|
||
children.push(
|
||
elem('div', {className: 'k-load-staff'}, [
|
||
elem('div', {className: 'k-load-staff-avatar'}, [
|
||
elem('img', {
|
||
className: 'avatar avatar-'+staff_member.steamid
|
||
})
|
||
]),
|
||
elem('div', {className: 'k-load-staff-info'}, [
|
||
elem('span', {
|
||
className: 'k-load-staff--name username-' + staff_member.steamid,
|
||
innerText: staff_member.steamid
|
||
}),
|
||
elem('span', {className: 'k-load-staff--rank', innerText: staff_member.rank})
|
||
])
|
||
])
|
||
);
|
||
|
||
staffCount++;
|
||
}
|
||
}
|
||
|
||
var tmp_staff_block = elem('div', {id: 'k-load-staff-block-' + i, className: 'k-load-staff-block'}, children);
|
||
staff_block.appendChild(tmp_staff_block);
|
||
}
|
||
|
||
fixStaff(window.staff)
|
||
|
||
if (num_blocks > 1) {
|
||
staffInterval = setInterval(function () {
|
||
const staff_block = document.getElementById('k-load-staff');
|
||
|
||
staff_block.childNodes[staffBlockCounter].classList.remove('active');
|
||
const tmpCounter = staffBlockCounter;
|
||
setTimeout(function () {
|
||
staff_block.childNodes[tmpCounter].style.display = 'none';
|
||
|
||
var nextSib = staff_block.childNodes[tmpCounter].nextSibling;
|
||
|
||
if (nextSib) {
|
||
staffBlockCounter = tmpCounter+1;
|
||
} else {
|
||
staffBlockCounter = 0;
|
||
nextSib = staff_block.childNodes[staffBlockCounter];
|
||
}
|
||
nextSib.style.display = 'block';
|
||
|
||
setTimeout(function () {
|
||
nextSib.classList.add('active');
|
||
}, 100);
|
||
}.bind(staff_block), staff_fade_delay / 2);
|
||
}, window.globalConfig.staff.duration);
|
||
}
|
||
}
|
||
}
|
||
|
||
function fixStaff(data) {
|
||
for (var i = 0; i < data.length; i++) {
|
||
var row = data[i]
|
||
text('.username-'+row.steamid, row.personaname);
|
||
image('.avatar-'+row.steamid, 'https://images.weserv.nl/?url=' + row.avatarmedium);
|
||
}
|
||
|
||
if(!staff_block.childNodes[staffBlockCounter]) return;
|
||
|
||
staff_block.childNodes[staffBlockCounter].style.display = 'block';
|
||
staff_block.childNodes[staffBlockCounter].classList.add('active');
|
||
}
|
||
|
||
setStaff();
|
||
setRules();
|
||
</script>
|
||
|
||
<script type="text/javascript">
|
||
KLoad.Rules.genericCounterFix();
|
||
|
||
var missingDynamicBlocks = 1;
|
||
|
||
if (!rules.length) {
|
||
missingDynamicBlocks++;
|
||
document.getElementById('rules-parent').style.display = 'none';
|
||
}
|
||
|
||
if (!staff.length) {
|
||
missingDynamicBlocks++;
|
||
document.getElementById('staff-parent').style.display = 'none';
|
||
}
|
||
|
||
KLoad.on('MusicStarted', showMusicBlock);
|
||
|
||
function showMusicBlock() {
|
||
missingDynamicBlocks--;
|
||
|
||
if (missingDynamicBlocks !== 0) {
|
||
document.getElementById('music').style.display = 'inline-block';
|
||
}
|
||
}
|
||
|
||
function showPercentageBlock() {
|
||
document.getElementById('percentage').style.display = 'inline-block';
|
||
}
|
||
|
||
function showMapBlock() {
|
||
document.getElementById('map-block').style.display = 'inline-block'
|
||
}
|
||
|
||
KLoad.on('Ready', function () {
|
||
switch (missingDynamicBlocks) {
|
||
case 3:
|
||
showPercentageBlock();
|
||
showMapBlock();
|
||
break;
|
||
case 2:
|
||
showPercentageBlock();
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
});
|
||
</script>
|
||
|
||
<script>
|
||
KLoad.init();
|
||
|
||
if(backgrounds.length > 0) {
|
||
KLoad.Backgrounds.init(backgrounds, window.globalConfig.backgrounds);
|
||
}
|
||
|
||
KLoad.Music.init(music, window.globalConfig.music.volume);
|
||
|
||
KLoad.emit('Ready');
|
||
|
||
/**
|
||
* Start up demo mode.
|
||
*/
|
||
function demoMode() {
|
||
KLoad.data.demoMode = true;
|
||
|
||
SetFilesNeeded(Math.floor(Math.random() * 150) + 75);
|
||
GameDetails('[CN]MINT Server', window.location.href, 'legacy_site19_cn_mint', 64, '76561197960287930', 'Breach', Math.floor(Math.random() * 100) + 1, 'en', 'BREACH');
|
||
|
||
demoInterval = setInterval(function () {
|
||
if (KLoad.data.files.downloaded >= KLoad.data.files.needed) {
|
||
KLoad.data.files.downloaded = 0;
|
||
}
|
||
|
||
DownloadingFile('example/folder/file-' + str_random_v2() + '.ext');
|
||
}, 125);
|
||
}
|
||
|
||
/**
|
||
* If we're not in game, demo the loading screen.
|
||
*/
|
||
if (!KLoad.isGmod) {
|
||
demoMode();
|
||
}
|
||
</script>
|
||
|
||
|
||
<script id="plausible-script">!function(){"use strict";var t=window.location,e=window.document,a=e.getElementById("plausible-script");function i(t){console.warn("Ignoring Event: "+t)}function n(n,r){if(/^localhost$|^127(\.[0-9]+){0,2}\.[0-9]+$|^\[::1?\]$/.test(t.hostname)||"file:"===t.protocol)return i("localhost");if(!(window._phantom||window.__nightmare||window.navigator.webdriver||window.Cypress)){try{if("true"===window.localStorage.plausible_ignore)return i("localStorage flag")}catch(l){}var s={};s.n=n,s.u=t.href,s.d=a.getAttribute("data-domain"),s.r=e.referrer||null,s.w=window.innerWidth,r&&r.meta&&(s.m=JSON.stringify(r.meta)),r&&r.props&&(s.p=r.props);var o=new XMLHttpRequest;o.open("POST","https://analytics.physgun.com/api/event",!0),o.setRequestHeader("Content-Type","text/plain"),o.send(JSON.stringify(s)),o.onreadystatechange=function(){4===o.readyState&&r&&r.callback&&r.callback()}}}var r=window.plausible&&window.plausible.q||[];window.plausible=n;for(var l,s=0;s<r.length;s++)n.apply(this,r[s]);function o(){l!==t.pathname&&(l=t.pathname,n("pageview"))}var p,c=window.history;c.pushState&&(p=c.pushState,c.pushState=function(){p.apply(this,arguments),o()},window.addEventListener("popstate",o)),"prerender"===e.visibilityState?e.addEventListener("visibilitychange",function(){l||"visible"!==e.visibilityState||o()}):o()}();</script>
|
||
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9bb4b5380aff2fda-AMS',t:'MTc2Nzk2OTgxNg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
|
||
</html>
|
||
<!--代码可以修改无数次,人生只有一次,珍惜当下吧(纪念某人) --> |