Init Commit
This commit is contained in:
BIN
backgrounds/gm_construct/1.jpg
Normal file
BIN
backgrounds/gm_construct/1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 492 KiB |
BIN
backgrounds/gm_construct/2.jpg
Normal file
BIN
backgrounds/gm_construct/2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 319 KiB |
23
config.json
Normal file
23
config.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"map": {
|
||||||
|
"gm_construct": {
|
||||||
|
"images": [
|
||||||
|
"/backgrounds/gm_construct/1.jpg",
|
||||||
|
"/backgrounds/gm_construct/2.jpg"
|
||||||
|
],
|
||||||
|
"music": [
|
||||||
|
"/music/gm_construct/1.mp3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"gm_flatgrass": {
|
||||||
|
"images": [
|
||||||
|
"/backgrounds/gm_flatgrass/1.jpg",
|
||||||
|
"/backgrounds/gm_flatgrass/2.jpg"
|
||||||
|
],
|
||||||
|
"music": [
|
||||||
|
"/music/gm_flatgrass/1.mp3",
|
||||||
|
"/music/gm_flatgrass/2.mp3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
62
effects.js
vendored
Normal file
62
effects.js
vendored
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
let currentImage = 1, prevImage = 0;
|
||||||
|
let bgObj;
|
||||||
|
|
||||||
|
// Certified MDN Classic
|
||||||
|
function getRandomInt(max)
|
||||||
|
{
|
||||||
|
return Math.floor(Math.random() * max);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function GameDetails( servername, serverurl, mapname, maxplayers, steamid, gamemode, volume, language )
|
||||||
|
{
|
||||||
|
const config = await (await fetch("/config.json")).json();
|
||||||
|
const audioplayer = document.getElementById("audioplayer");
|
||||||
|
|
||||||
|
let imgArray = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < config.map[mapname].images.length; i++)
|
||||||
|
{
|
||||||
|
imgArray[i] = new Image();
|
||||||
|
imgArray[i].src = config.map[mapname].images[i];
|
||||||
|
|
||||||
|
let obj = document.createElement("img");
|
||||||
|
obj.classList.add("bgImage");
|
||||||
|
obj.src = imgArray[i].src;
|
||||||
|
document.getElementsByClassName("backgroundImages")[0].appendChild(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
bgObj = document.getElementsByClassName("bgImage");
|
||||||
|
|
||||||
|
document.getElementsByClassName("mapName")[0].innerHTML = "<h1>" + mapname.toUpperCase() + "</h1>";
|
||||||
|
document.getElementsByClassName("gamemodeName")[0].textContent = gamemode;
|
||||||
|
|
||||||
|
let autoCycleImages = setInterval(() => {
|
||||||
|
|
||||||
|
if (bgObj[prevImage].classList.contains("blendInAnimation"))
|
||||||
|
{
|
||||||
|
bgObj[prevImage].classList.remove("blendInAnimation");
|
||||||
|
}
|
||||||
|
|
||||||
|
bgObj[prevImage].classList.add("blendOutAnimation");
|
||||||
|
|
||||||
|
if (bgObj[currentImage].classList.contains("blendOutAnimation"))
|
||||||
|
{
|
||||||
|
bgObj[currentImage].classList.remove("blendOutAnimation");
|
||||||
|
}
|
||||||
|
|
||||||
|
bgObj[currentImage].classList.add("blendInAnimation");
|
||||||
|
|
||||||
|
prevImage = currentImage;
|
||||||
|
currentImage++;
|
||||||
|
|
||||||
|
if (currentImage >= imgArray.length)
|
||||||
|
currentImage = 0;
|
||||||
|
}, 5000)
|
||||||
|
|
||||||
|
audioplayer.volume = 0;
|
||||||
|
let autoAdjustVolume = setInterval(() => { if (audioplayer.volume > 0.9) { clearInterval(autoAdjustVolume); return; } audioplayer.volume += 0.01}, 40);
|
||||||
|
audioplayer.src = config.map[mapname].music[getRandomInt(config.map[mapname].music.length)];
|
||||||
|
audioplayer.play();
|
||||||
|
|
||||||
|
document.getElementsByClassName("loadingEntry")[0].classList.add("blendInAnimation");
|
||||||
|
}
|
||||||
BIN
fonts/Purista.ttf
Normal file
BIN
fonts/Purista.ttf
Normal file
Binary file not shown.
42
index.html
Normal file
42
index.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>GMod BF4 Loading Screen</title>
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
<script src="/effects.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="loadingEntry">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="backgroundMusic">
|
||||||
|
<audio loop id="audioplayer">
|
||||||
|
<source src="" type="audio/mp3">
|
||||||
|
</audio>
|
||||||
|
</div>
|
||||||
|
<div class="backgroundImages">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="loadingIcon">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="mapName">
|
||||||
|
<h1>Map Name</h1>
|
||||||
|
</div>
|
||||||
|
<div class="gamemodeName">
|
||||||
|
<p>Gamemode Name</p>
|
||||||
|
</div>
|
||||||
|
<div class="gamemodeInfo">
|
||||||
|
<p>▶ Gamemode Info line 1</p>
|
||||||
|
<p>▶ Gamemode Info line 2</p>
|
||||||
|
<p>▶ Gamemode Info line 3</p>
|
||||||
|
</div>
|
||||||
|
<div class="serverInfo">
|
||||||
|
<p>Server Info line 1</p>
|
||||||
|
<p>Server Info line 2</p>
|
||||||
|
<p>Server Info line 3</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
music/gm_construct/1.mp3
Normal file
BIN
music/gm_construct/1.mp3
Normal file
Binary file not shown.
109
style.css
Normal file
109
style.css
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
/* purista-regular - latin */
|
||||||
|
@font-face
|
||||||
|
{
|
||||||
|
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||||
|
font-family: 'Purista';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url('/fonts/Purista.ttf') format('truetype'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||||
|
}
|
||||||
|
|
||||||
|
*
|
||||||
|
{
|
||||||
|
margin: 0;
|
||||||
|
font-family: Purista;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgImage
|
||||||
|
{
|
||||||
|
background-color: black;
|
||||||
|
|
||||||
|
position: fixed;
|
||||||
|
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loadingEntry
|
||||||
|
{
|
||||||
|
z-index: 1;
|
||||||
|
position: fixed;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
background-color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blendInAnimation
|
||||||
|
{
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
animation-name: blendIn;
|
||||||
|
animation-duration: 2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blendOutAnimation
|
||||||
|
{
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
animation-name: blendOut;
|
||||||
|
animation-duration: 2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mapName
|
||||||
|
{
|
||||||
|
background-color: rgba(0, 0, 0, 0.4);
|
||||||
|
color: white;
|
||||||
|
font-size: 20pt;
|
||||||
|
padding: 10px;
|
||||||
|
position: fixed;
|
||||||
|
top: 50px;
|
||||||
|
left: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gamemodeName
|
||||||
|
{
|
||||||
|
background-color: rgba(0, 0, 0, 0.4);
|
||||||
|
color: white;
|
||||||
|
font-size: 20pt;
|
||||||
|
padding: 10px;
|
||||||
|
position: fixed;
|
||||||
|
top: 140px;
|
||||||
|
left: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gamemodeInfo
|
||||||
|
{
|
||||||
|
color: white;
|
||||||
|
font-size: 20pt;
|
||||||
|
padding: 10px;
|
||||||
|
position: fixed;
|
||||||
|
top: 280px;
|
||||||
|
left: 90px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gamemodeInfo > p
|
||||||
|
{
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serverInfo
|
||||||
|
{
|
||||||
|
background-color: rgba(0, 0, 0, 0.4);
|
||||||
|
color: white;
|
||||||
|
font-size: 20pt;
|
||||||
|
padding: 10px;
|
||||||
|
max-width: 700px;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 110px;
|
||||||
|
right: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blendIn
|
||||||
|
{
|
||||||
|
from {opacity: 1;}
|
||||||
|
to {opacity: 0;}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blendOut
|
||||||
|
{
|
||||||
|
from {opacity: 0;}
|
||||||
|
to {opacity: 1;}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user