Browse Source

version 1

master
gsd 2 years ago
parent
commit
1e0439530d
  1. 165
      API.js
  2. 60
      Player_API.js
  3. 502
      index.html
  4. 39
      shit_style.css
  5. 74
      site_content/css/shit_style.css
  6. BIN
      site_content/favicon.ico
  7. BIN
      site_content/fonts/tf2.ttf
  8. 0
      site_content/fonts/tf2build.ttf
  9. BIN
      site_content/fonts/tf2secondary.ttf
  10. BIN
      site_content/images/background/hasbik_dance.jpg
  11. BIN
      site_content/images/characters/engi_n.png
  12. BIN
      site_content/images/characters/mgesold.png
  13. BIN
      site_content/images/characters/pootisd.png
  14. BIN
      site_content/images/characters/pyro.png
  15. BIN
      site_content/images/characters/toilet.png
  16. BIN
      site_content/images/gameplay/gameplay_1.jpg
  17. BIN
      site_content/images/gameplay/gameplay_2.jpg
  18. BIN
      site_content/images/gameplay/gameplay_3.jpg
  19. BIN
      site_content/images/logo/discord.png
  20. BIN
      site_content/images/logo/qiwi.png
  21. 1
      site_content/images/logo/qiwi.svg
  22. BIN
      site_content/images/logo/steam.png
  23. BIN
      site_content/images/logo/vk.png
  24. BIN
      site_content/images/mge_brat.gif
  25. BIN
      site_content/images/rules/abuse.jpg
  26. BIN
      site_content/images/rules/abuse_vip.jpg
  27. BIN
      site_content/images/rules/ads.jpg
  28. BIN
      site_content/images/rules/bug_use.jpg
  29. BIN
      site_content/images/rules/cheats.jpg
  30. BIN
      site_content/images/rules/make_everyone.jpg
  31. BIN
      site_content/images/vip/VIP_1_DAY.jpg
  32. BIN
      site_content/images/vip/VIP_1_MOUNTH.jpg
  33. BIN
      site_content/images/vip/VIP_7_DAYS.jpg
  34. 288
      site_content/js/API.js
  35. 36
      site_content/js/BackgroundSlides.js
  36. 467
      site_content/js/Player_API.js
  37. 0
      site_content/js/SteamAuth.js
  38. 21
      site_content/js/VIP_API.js
  39. BIN
      site_content/sounds/alertmgs.mp3
  40. BIN
      site_content/sounds/nigger.mp3
  41. BIN
      site_content/sounds/pizdatchik.mp3
  42. BIN
      site_content/sounds/pootis.mp3
  43. BIN
      site_content/sounds/puk.mp3
  44. BIN
      site_content/sounds/soldier_laughevil03.mp3
  45. BIN
      site_content/sounds/sunboy-ledi-night-16.mp3

165
API.js

@ -1,165 +0,0 @@
$(async function() {
RequestAPI();
CheckProfile();
});
let servers_active = `
<div class="col text-center rounded border border-dark gy-3" style="background-color: #E2EFDE;">
<h2>Где сейчас играют карлики</h2>
</div>
`
let servers_inactive = `
<div class="col text-center rounded border border-dark gy-3" style="background-color: #E2EFDE;">
<h2>Пустуют без дела</h2>
</div>
`
let servers_dead = `
<div class="col text-center rounded border border-dark gy-3" style="background-color: #E2EFDE;">
<h2>Временно выключены</h2>
</div>
`
let invalid_captcha = `
<div class="col" id="InvalidCaptcha">
<br>
<h1 style="color: red">ДЯДЯ ТЫ ДУРАЧЕК, КАПЧА НЕПРАВИЛЬНАЯ, ЖМИ СНОВА НА КНОПКУ</h1>
</div>
`
function generate_working_server_div(data) {
let workshop = ``
let direct_url = ``
let connect_url = ``
/////////////////////
let w_disabled = ``
let d_disabled = ``
let c_disabled = ``
if (data.status == true) {
if ("workshop" in data && data.workshop != "") {
workshop = data.workshop
} else {
w_disabled = `disabled`
}
/////////////////////////////
if ("direct_url" in data && data.direct_url != "") {
direct_url = data.direct_url
} else {
d_disabled = `disabled`
}
/////////////////////////////
if ("address" in data && data.address != "") {
connect_url = data.address
} else {
c_disabled = `disabled`
}
} else {
w_disabled = `disabled`
d_disabled = `disabled`
c_disabled = `disabled`
}
workshop = `
<div class="col border" style="background-color: #d86800">
<a class="btn btn-link btn-lg ${w_disabled}" target="_blank" role="button" href="${data.workshop}" style="font-family: tf2build;">Workshop</a>
</div>
`
direct_url = `
<div class="col border" style="background-color: #d86800">
<a class="btn btn-link btn-lg ${d_disabled}" target="_blank" role="button" href="${data.direct_url}" style="font-family: tf2build;">Скачать карту</a>
</div>
`
connect_url = `
<div class="col border" style="background-color: #d86800">
<a class="btn btn-link btn-lg ${c_disabled}" role="button" href="steam://${data.address}" style="font-family: tf2build;">Подключиться</a>
</div>
`
return `
<div class="col text-center border gy-3 rounded">
<div class="row align-items-center" style="background-color: ${data.color};">
<div class="col align-self-center p-4" style="background-size: cover; background-image: url('${data.preview}');">
<div class="row justify-content-md-center">
<div class="col" style="background-color:rgba(255, 255, 255, 0.5); background-size: 100%;">
<h1>${data.name}</h1>
<h4>${data.player_count}/${data.max_players} ${data.human_name}</h4>
</div>
</div>
</div>
<div class="col row-cols-1 p-2" style="background-color: ${data.color};">
${connect_url}
${workshop}
${direct_url}
</div>
</div>
</div>
`;
}
async function RequestAPI() {
//, {headers: {'Cache-Control':'no-cache'}}
await fetch("https://tf2.pblr-nyk.pro/api/stats", {headers: {'Cache-Control':'no-cache'}})
.then(res => res.json())
.then(res => {
console.log(res.servers.statistic);
document.getElementById("current_players").innerHTML = res.servers.statistic.player_now;
document.getElementById("max_per_day").innerHTML = res.servers.statistic.player_max;
document.getElementById("servers_works").innerHTML = res.servers.statistic.working_servers + '/' + res.servers.statistic.total_servers;
document.getElementById("uniq_day_players").innerHTML = res.uniq.day;
document.getElementById("uniq_month_players").innerHTML = res.uniq.month;
document.getElementById("uniq_year_players").innerHTML = res.uniq.year;
let active = false;
let inactive = false;
let dead = false;
let insert_type = "beforeend";
//active servers
let sorted_servers = Object.keys(res.servers).sort((a, b) => {
return res.servers[b].player_count - res.servers[a].player_count;
});
console.log(sorted_servers);
for (let sort_id in sorted_servers) {
let server = sorted_servers[sort_id];
if (server == `statistic`) {continue;}
if(res.servers[server].status == true && res.servers[server].player_count > 0) {
if(!active) {
document.getElementById("servers_list").insertAdjacentHTML(insert_type,servers_active)
active = true;
}
document.getElementById("servers_list").insertAdjacentHTML(insert_type,generate_working_server_div(res.servers[server]));
}
}
//inactive server
for (const server in res.servers) {
if (server == `statistic`) {continue;}
if(res.servers[server].status == true && res.servers[server].player_count == 0) {
if(!inactive) {
document.getElementById("servers_list").insertAdjacentHTML(insert_type,servers_inactive)
inactive = true;
}
document.getElementById("servers_list").insertAdjacentHTML(insert_type,generate_working_server_div(res.servers[server]));
}
}
//dead server
for (const server in res.servers) {
if (server == `statistic`) {continue;}
if(res.servers[server].status == false) {
if(!dead) {
document.getElementById("servers_list").insertAdjacentHTML(insert_type,servers_dead)
dead = true;
}
document.getElementById("servers_list").insertAdjacentHTML(insert_type,generate_working_server_div(res.servers[server]));
}
}
});
}
function UNIX2TIMESTAMP(unix) {
return new Date(unix * 1000);
}

60
Player_API.js

@ -1,60 +0,0 @@
$(document).on("show.bs.modal", '#CheckProfileCaptcha', async function () {
console.log("setup captcha");
if(document.getElementById("InvalidCaptcha")) {document.getElementById("InvalidCaptcha").remove()}
let form = document.forms["formProfileChecker"];
let captcha_id;
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/captcha", {method:'POST'})
.then(response => response.json())
.then(response => {
console.log(response.id)
captcha_id = response.id;
form.captcha_img.src = "https://tf2.pblr-nyk.pro/player_api/v1/captcha?id=" + response.id;
})
form.addEventListener("submit", async function (ev) {
ev.preventDefault();
$("#check_profile_submit_button").prop("disabled", true);
$("#check_profile_close_button").prop("disabled", true);
console.log("pukkkk")
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/player?steam_url=" + form.steamurl.value + "&captcha_id=" + captcha_id + "&captcha_code=" + form.captcha.value)
.then(response => response.json())
.then(response => {
$("#check_profile_submit_button").removeAttr("disabled");
$("#check_profile_close_button").removeAttr("disabled");
if ("error" in response) {
if (response.error == "incorrect captcha") {
$('#check_profile_close_button').click();
document.getElementById("profile_list").insertAdjacentHTML("beforeend",invalid_captcha);
//await new Promise(r => setTimeout(r, 2000));
//document.getElementById('CheckProfileCaptchaLabel').innerHTML = "НЕВЕРНАЯ КАПЧА, ПОВТОРИ ПОПЫТКУ"
//document.getElementById('CheckProfileCaptchaLabel').style.color = 'red';
//$('#buttonCheck').click();
return;
} else {
alert("Сервер сказал хуй: " + response.error);
$('#check_profile_close_button').click();
return;
}
} else if ("detail" in response) {
alert("Сервер сказал хуй: " + response.detail[0].msg);
$('#check_profile_close_button').click();
return;
} else {
console.log(response);
document.getElementById("profile_check").remove();
document.getElementById("buy_vip").remove();
document.getElementById("profile_list").insertAdjacentHTML("beforeend",current_vip(response.permition));
document.getElementById("vip_prices").insertAdjacentHTML("beforeend",generate_vip_table());
$('#check_profile_close_button').click();
return;
}
})
});
});
async function CheckProfile() {
}

502
index.html

@ -3,189 +3,367 @@
<meta charset="UTF-8">
<title>Факты 13</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
<link href="site_content/css/shit_style.css?version=9" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script>
<link rel="stylesheet" href="shit_style.css?version=1">
<meta http-equiv="cache-control" content="no-cache, must-revalidate, post-check=0, pre-check=0" />
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<link href="site_content/favicon.ico" rel="icon" type="image/x-icon" />
</head>
<body>
<div class="container-fluid">
<div class="container-fluid" id="Nav_MenuButtons">
<div class="row">
<ul class="nav nav-pills nav-fill" style="font-family: tf2build">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#MainSection">Факты 13</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#RulesSection">Правила</a>
<a class="nav-link" data-toggle="tab" href="#RulesSection" id="Rules_Button">Правила</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#ServersSection" id="MenuServersSection">Серверы</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#ProfileSection">Профиль/Баны</a>
<a class="nav-link" data-toggle="tab" href="#ProfileSection" id="Tab_Profile_Button">Профиль/Баны</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#VIPSection">Купить VIP</a>
<a class="nav-link" data-toggle="tab" href="#VIPSection" id="Tab_VIP_Button">Купить VIP</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#AboutSection">О нас</a>
</li>
<a class="nav-link" data-toggle="tab" href="#AboutSection" id="Tab_About">О нас</a>
</li>
</ul>
</div>
</div>
</div>
<div class="slideshow" style="background-color: darkgray;">
<div class="container col-8">
<div class="container-fluid" style="background-color: #ff8946; text-align: center;">
<a href="player_api/v1/auth" style="text-decoration: none; color: black; display: inline;" id="Header_CurrentUser">Авторизируйся через стим чтоб получить больше возможностей! (тык)</a>
<a href="#" style="text-decoration: none; color: red; display: inline;" id="Header_CurrentBan" onclick="document.getElementById('Tab_Profile_Button').click();"></a>
<a href="player_api/v1/deauth" style="text-decoration: none; color: black; display: inline;" id="Header_Logout"></a>
</div>
<div class="container-fluid" style="
background-color: #E2EFDE;
min-height: 100vh;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
transition: background-image 1s;" id="main_container">
<div class="tab-content">
<div class="tab-pane fade show active" id="MainSection">
<div class="row row-cols-1">
<div class="col gy-3">
<div class="row justify-content-md-center">
<div class="col-3 text-center rounded border border-dark p-3" style="background-color: #ff8946; ">
<h1>Факты 13</h1>
<div class="row justify-content-center pt-3">
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946; ">
<h2>Факты 13</h2>
</div>
</div>
<div class="row justify-content-center" id="Main_FunnyСharacters">
<!--<div class="col-3"></div>
<div class="col"><img class="img-fluid" src="site_content/images/characters/pootisd.png"></div>
<div class="col"><img class="img-fluid" src="site_content/images/characters/pyro.png"></div>
<div class="col"><img class="img-fluid" src="site_content/images/characters/toilet.png"></div>
<div class="col"><img class="img-fluid" src="site_content/images/characters/engi_n.png"></div>
<div class="col"><img class="img-fluid" src="site_content/images/characters/mgesold.png"></div>
<div class="col-3"></div>-->
</div>
<div class="row justify-content-center">
<div class="col-6 text-center rounded border border-dark" style="background-color: #ff8946; ">
<h2>Добро пожаловать на "лучший" ру-сервер ТФ2</h2>
</div>
</div>
<div class="row justify-content-center pt-3">
<div class="col-sm-8 text-center pt-3 rounded border border-dark" style="background-color: #E2EFDE;">
<h3>Давно искал место где можно почилить в данной мертвой игре??? Поздравляю ты его нашел!!!</h3>
<hr>
<div class="col-6 offset-3">
<div class="row row-cols-3 align-self-center">
<div class="col align-self-center"><h4>Сейчас играют</h4></div>
<div class="col align-self-center"><h4>Пик игроков за день</h4></div>
<div class="col align-self-center"><h4>Серверов работает</h4></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="current_players">~</h2></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="max_per_day">~</h2></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="servers_works">~</h2></div>
</div>
</div>
<div class="col-6 offset-3">
<hr>
<h1 class="rounded border border-dark text-center" style="background-color: #ff8946;">
<a class="nav-link" href="#" style="color: black" onclick="document.getElementById('MenuServersSection').click();">Подключиться к серверам</a>
</h1>
</div>
</div>
<div class="col" style="margin-top: -1%;">
<div class="row justify-content-md-center">
<div class="col-9 text-center rounded border border-dark p-2" style="background-color: #ff8946; ">
<h2>Добро пожаловать на "лучший" ру-сервер ТФ2</h2>
</div>
<div class="row justify-content-center pt-3">
<div class="col-sm-8 text-center pt-3 rounded border border-dark" style="background-color: #E2EFDE;">
<h3>Все еще сомневаешься??? Посмотри как много карликов у нас бывают!</h3>
<h6>p.s (статистика предоставлена при условии что игрок сыграл больше 5 минут)</h6>
<h6>p.s.s (уникальный = игрок зашел за данный период впервый раз)</h6>
<div class="col-6 offset-3">
<hr>
<div class="row row-cols-3 align-self-center">
<div class="col align-self-center"><h4>За день</h4></div>
<div class="col align-self-center"><h4>За месяц</h4></div>
<div class="col align-self-center"><h4>За год</h4></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_day_players">~</h2></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_month_players">~</h2></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_year_players">~</h2></div>
</div>
</div>
</div>
<div class="col" style="margin-top: -1%;">
<div class="row justify-content-md-center">
<div class="col-10 text-center rounded border border-dark" style="background-color: #fffefc; ">
<div class="row">
<!---->
<div class="col text-center pt-3 rounded border border-dark" style="background-color: #E2EFDE;">
<h3>Давно искал место где можно почилить в данной мертвой игре??? Поздравляю ты его нашел!!!</h3>
<hr>
<div class="col-6 offset-3">
<div class="row row-cols-3 align-self-center">
<div class="col align-self-center"><h4>Сейчас играют</h4></div>
<div class="col align-self-center"><h4>Пик игроков за день</h4></div>
<div class="col align-self-center"><h4>Серверов работает</h4></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="current_players">~</h2></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="max_per_day">~</h2></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="servers_works">~</h2></div>
</div>
</div>
<div class="col-6 offset-3">
<hr>
<h1 class="rounded border border-dark text-center" style="background-color: #ff8946;">
<a class="nav-link" data-toggle="tab" href="#ServersSection" style="color: black">Подключиться к серверам</a>
</h1>
</div>
</div>
</div>
</div>
<div class="row justify-content-center pt-3 pb-3">
<div class="col-sm-8 text-center rounded border border-dark" style="background-color: #E2EFDE; ">
<div class="col text-center">
<h1>Почему стоит начать играть?</h1>
</div>
<div class="row row-cols-1">
<div class="col text-left">
<h4>> Все карты на сервере уникальны и сделаны нами, ты всегда можншь найти место по вкусу!</h4>
</div>
<div class="col text-left">
<h4>> Большенство плагинов на сервере сделаны нами и добавляют некий шарм в геймплей.</h4>
</div>
<div class="col text-left">
<h4>> Правила для вас не писаны(каканы), можете делать всё что душе угодно, но ожидайте что вам дадут пиздюлей наши модераторы.</h4>
</div>
<div class="col text-left">
<h4>> Сервера работают на божем слове, так что шанс что проект закроется стремится к нулю. Конечно пока нам не надоест.</h4>
</div>
</div>
</div>
<div class="col pt-2" style="margin-top: -0%;">
<div class="row justify-content-md-center">
<div class="col-10 text-center rounded border border-dark" style="background-color: #fffefc; ">
<div class="row">
<!---->
<div class="col text-center pt-3 rounded border border-dark" style="background-color: #E2EFDE;">
<h3>Все еще сомневаешься??? Посмотри как много карликов у нас бывают!</h3>
<h6>p.s (статистика предоставлена при условии что игрок сыграл больше 5 минут)</h6>
<h6>p.s.s (уникальный = игрок зашел за данный период впервый раз)</h6>
<br>
<div class="col-6 offset-3">
<div class="row row-cols-3 align-self-center">
<div class="col align-self-center"><h4>За день</h4></div>
<div class="col align-self-center"><h4>За месяц</h4></div>
<div class="col align-self-center"><h4>За год</h4></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_day_players">~</h2></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_month_players">~</h2></div>
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_year_players">~</h2></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--#########################################################################################################################################################-->
<div class="tab-pane fade" id="RulesSection">
<div class="row row-cols-1" id="about_list">
<div class="row row-cols-1 justify-content-center pt-3 pb-3" id="AboutSection_row_header">
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946;">
<h2>Правила (для самых маленьких)</h2>
</div>
</div>
<!---->
<div class="col pt-2">
<div class="row justify-content-md-center">
<div class="col-10 text-center rounded border border-dark" style="background-color: #fffefc; ">
<div class="row">
<div class="col">
<div class="col text-center">
<h1>Почему стоит начать играть?</h1>
</div>
<div class="row row-cols-1">
<div class="col text-left">
<h4>> Все карты на сервере уникальны и сделаны нами, ты всегда можншь найти место по вкусу!</h4>
</div>
<div class="col text-left">
<h4>> Большенство плагинов на сервере сделаны нами и добавляют некий шарм в геймплей.</h4>
</div>
<div class="col text-left">
<h4>> Правила для вас не писаны(каканы), можете делать всё что душе угодно, но ожидайте что вам дадут пиздюлей наши модераторы.</h4>
</div>
<div class="col text-left">
<h4>> Сервера работают на божем слове, так что шанс что проект закроется стремится к нулю. Конечно пока нам не надоест.</h4>
</div>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-6 text-center rounded border border-dark" style="background-color: #E2EFDE;">
<div class="row">
<div class="col pt-3">
<h4>Правила на которые ты забьёшь х*й</h4>
<h4> ᐯ ᐯ ᐯ</h4>
<hr>
</div>
</div>
<div class="row justify-content-center" id="Rules_List">
<!---->
</div>
</div>
</div>
</div>
</div>
<!--#########################################################################################################################################################-->
<div class="tab-pane fade" id="ServersSection">
<div class="row row-cols-1" id="servers_list">
<div class="col text-center rounded border border-dark gy-3" style="background-color: #E2EFDE;">
<h2>Выбери сервер на свой "ОТЛИЧНЫЙ" вкус!</h2>
<div class="row justify-content-center pt-3 pb-3">
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946; ">
<h2>Список серверов</h2>
</div>
</div>
<div class="row">
<div class="col-10 offset-1 rounded border border-dark" style="background-color: #E2EFDE;" id="servers_list_container">
<div class="row text-center pt-3">
<div class="col-6 offset-3">
<h5>Для подключения к серверу просто нажми на него</h5>
</div>
</div>
<div class="row justify-content-center row-cols-12" id="servers_list_v2">
<!-- сюда сервера вставляются -->
</div>
</div>
</div>
<div class="row pt-1 justify-content-center">
<div class="col-5 rounded border border-dark text-center" style="background-color: #E2EFDE;">
<h6 id="ServersSectionLastUpdate">Информация обновлена: </h6>
</div>
</div>
</div>
<!--#########################################################################################################################################################-->
<div class="tab-pane fade" id="VIPSection">
<div class="row row-cols-1" id="vip_prices">
<!--<div class="row row-cols-1" id="vip_prices">
<div class="col text-center rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;" id="buy_vip">
<h2>Заинтересовался покупкой? Cкорее выбирай!</h2>
<h5 id="CheckAndDelete">Цены появятся только после проверки профиля!</h5>
<h5><a data-toggle="tab" href="#ProfileSection">> Проверить <</a></h5>
</div>
</div>-->
<div class="row row-cols-1 justify-content-center pt-3 pb-3" id="Section_VIP_row_header">
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946;">
<h2>Покупка VIP</h2>
</div>
</div>
<div class="row row-cols-1 justify-content-center" id="Section_VIP_row_content">
<div class="col-6 text-center rounded border border-dark" style="background-color: #E2EFDE;" id="Section_VIP_col">
<br>
<h3>Нагибай всех благодаря нашей випки!</h3>
<h6 style="font-family: tf2secondary;">(Смотри не перестарайся)</h6>
<h6 style="font-family: tf2secondary;" id="Section_VIP_users"></h6>
<div class="row justify-content-center">
<div class="col-10">
<hr>
<br>
<div class="row row-cols-3 justify-content-center" id="Section_VIP_buttons">
<div class="col-8 justify-content-center" id="Section_VIP_check_profile">
<a href=# onclick="document.getElementById('Tab_Profile_Button').click();">
<h3>Чтоб увидить цены, сначала введи профиль (>ТЫК<)</h3>
</a>
</div>
<!---->
</div>
<br>
<hr>
<div class="row justify-content-center">
<div class="col-8">
<h6 style="font-family: tf2secondary;">Что дает випка?</h6>
<div style="text-align: left;">
<p>- Одна випка на все наши сервера.</p>
<p>- Резервный слот и тебя не кикнет если сервер заполнится.</p>
<p>- Вас не кикнет за АФК.</p>
<p>- Хук, позволяет летать по карте используя паутину.</p>
<p>- Верёвка, позволяет висеть как говно.</p>
<p>- Раздатчик теперь играет музыку.</p>
<p>- Менять свой класс игнорируя ограничения.</p>
<p>- КД у РТД, всегда будет равным двум минутам.</p>
<p>- "Бесплатные" аньюжки, каждая на каждый сервер и на каждый клас.</p>
<br>
<p>И много еще чего... через !меню.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--#########################################################################################################################################################-->
<div class="tab-pane fade" id="ProfileSection">
<div class="row row-cols-1" id="profile_list">
<div class="col text-center rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;" id="profile_check">
<div class="row justify-content-center" id="Profile_Characters">
<!---->
</div>
<div class="row justify-content-center pb-3 pt-3">
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946; ">
<h2>Профиль</h2>
</div>
</div>
<div class="row row-cols-1 justify-content-center" id="profile_list">
<div class="col-6 text-center rounded border border-dark p-4" style="background-color: #E2EFDE;" id="profile_check">
<h2>Проверь свой профиль на фактах!</h2>
<h6>На этой странице после ввода твоего профиля, появится вся твоя статистика на фактах, наличие банов и их история, а так-же возможность купить випку!</h6>
<span> ></span>
<form id="formProfileSectionInput" action="#check">
<div class="row justify-content-center">
<div class="col-4">
<div class="row justify-content-center rounded border border-dark row-cols-1" id="formProfileSectionInputHelpText">
<div class="col pt-2"><h6>Ссылка на профиль:</h6></div>
<div class="col"><input class="form-control" type="text" name="steamurl" id="steamurl" required/></div>
<div class="col-12 pt-2">
<button type="button" class="btn btn-danger" id="check_profile_submit_button">Проверить профиль</button><!--data-toggle="modal" data-action="CaptchaModalHandler" data-target="#CaptchaModalHandler"-->
</div>
</div>
</div>
</div>
</form>
<!--<span> ></span>
<button type="button" class="btn btn-primary" data-toggle="modal" id="buttonCheck" data-action="CheckProfileCaptcha" data-target="#CheckProfileCaptcha">Проверить свой профиль</button>
<span> <</span>
<span> <</span>-->
</div>
</div>
<div class="row row-cols-1 justify-content-center" id="profile_stats">
<!---->
</div>
</div>
<!--#########################################################################################################################################################-->
<div class="tab-pane fade" id="AboutSection">
<div class="row row-cols-1" id="about_list">
<div class="col text-center rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;">
<h2>Здраствуйте, спасибо что выбрали факты 13 в качестве сервера, где можно весело проводить время!</h2>
<div class="row row-cols-1 justify-content-center pt-3 pb-3" id="AboutSection_row_header">
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946;">
<h2>О нас всех и тебе</h2>
</div>
</div>
<div class="col text-center rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;">
<h4>Наши "отличные" сервера выбирают, не только русские игроки, но и другие, из разных стран, например: украина</h2>
<div class="row">
<div class="col align-self-center m-1" style="background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Flag_of_Russia.svg/320px-Flag_of_Russia.svg.png'); background-size: 100% auto;" id="count_russian"><h3>~</h3></div>
<div class="col align-self-center m-1" style="background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Flag_of_Ukraine.svg/1280px-Flag_of_Ukraine.svg.png'); background-size: 100% auto;" id="count_ukraine"><h3>~</h3></div>
<div class="col align-self-center m-1" style="background-image: url('https://president.gov.by/content-pages/gosudarstvo/national-symbols/national-flag/image-thumb__17074__text-with-image/flag~-~media--06a35258--query.jpg'); background-size: 100% auto;" id="count_belorussia"><h3>~</h3></div>
<div class="col align-self-center m-1" style="background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Kazakhstan.svg/1280px-Flag_of_Kazakhstan.svg.png'); background-size: 100% auto;" id="count_kazakhstan"><h3>~</h3></div>
<div class="col align-self-center m-1" style="background-image: url('https://upload.wikimedia.org/wikipedia/commons/1/11/Flag_of_the_United_Nations.png'); background-size: 100% auto;" id="count_other"><h3>~</h3></div>
<div class="row row-cols-1 justify-content-center">
<div class="col-6 text-center rounded border border-dark" style="background-color: #E2EFDE;">
<div class="row">
<div class="col pt-3">
<h4>Кто мы?</h4>
<h6 style="font-family: tf2secondary;">и что мы делаем в вашем списке серверов?</h6>
</div>
</div>
<div class="row pl-3 pr-3">
<hr>
<div class="col-4 offset-1">
<div class="row rounded-5">
<div class="card">
<img class="card-img" src="site_content/images/gameplay/gameplay_1.jpg" alt="gameplay_1">
</div>
</div>
<br>
<div class="row rounded-5">
<div class="card">
<img class="card-img" src="site_content/images/gameplay/gameplay_2.jpg" alt="gameplay_2">
</div>
</div>
<br>
<div class="row rounded-5">
<div class="card">
<img class="card-img" src="site_content/images/gameplay/gameplay_3.jpg" alt="gameplay_3">
</div>
</div>
</div>
<div class="col-1"></div>
<div class="col-5">
<p style="font-family: tf2secondary; text-align: right;">Факты 13 - это дружный сервачок русского наолда, где вы можете хорошо отдохнуть со своими друзьями или тупыми рандомами после школы или завода.</p>
<hr>
<p style="font-family: tf2secondary; text-align: right;">У нас обширный список серверов, на котором стоят уникальные карты, сделанные картоделом <a href="https://steamcommunity.com/profiles/76561198141792724" target="_blank" style="font-family: tf2build;color: #ff8946;">РУССКИЙ ПУТИН</a></p>
<hr>
<p style="font-family: tf2secondary; text-align: right;">Прекрасные плагины недающие скучать и написанные таким же "прекрасным" кодером <a href="https://steamcommunity.com/profiles/76561198087598690" target="_blank" style="font-family: tf2build;color: #ff8946;">ОТДЫХАЕМ</a></p>
<hr>
<p style="font-family: tf2secondary; text-align: right;">Посмотреть наши смешные до усрачки посты можно в Дискорде или группе ВК</p>
<div style="text-align: right;">
<a href="https://tf2.pblr-nyk.pro/discord" target="_blank" style="text-decoration: none; color: black;"><p style="font-family: tf2secondary; display: inline;" id="AboutSection_discord">0 ГЕЙмеров </p><img style="height: 1rem;" src="site_content/images/logo/discord.png?version=2"></a>
<br style="height: 1rem;">
<a href="https://tf2.pblr-nyk.pro/vk" target="_blank" style="text-decoration: none; color: black;"><p style="font-family: tf2secondary; display: inline;" id="AboutSection_vk">0 Участников </p><img style="height: 1rem;" src="site_content/images/logo/vk.png?version=2"></a>
</div>
<hr>
<p style="font-family: tf2secondary; text-align: right;">Зачем ждать? Заходи сейчас! Если админ не разлил пиво на сервера</p>
</div>
<hr>
</div>
</div>
</div>
</div>
</div>
<!--#########################################################################################################################################################-->
<div class="tab-pane fade" id="SecretEgg">
<div class="row justify-content-center pt-5">
<div class="col-6 rounded-5" style="background-color: #E2EFDE; text-align: center;">
<div class="row p-5">
<div class="col-12">
<img class="img-fluid rounded-5" src="site_content/images/mge_brat.gif" alt="ЗАГРУЖАЕМ ЗАГРУЖАЕМ">
</div>
</div>
<div class="row pb-5">
<div class="offset-2 col-8">
<h1>Спасибо что продолжаете играть на фактах 13!</h1>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="text-center">
<div class="text-center" style="background-color: #ff8946;" id="Footer_Text">
<p class="current-profile-text">2018-2022</p>
<p class="current-profile-text"> | </p>
<p class="current-profile-text">Факты 13</p>
<p class="current-profile-text"> | </p>
<p class="current-profile-text current-profile-text-color-alarm">JS:off</p>
</div>
</footer>
<div class="modal fade" id="CheckProfileCaptcha" role="dialog" aria-hidden="true" aria-labelledby="CheckProfileCaptchaLabel" tabindex="-1">
<div class="modal-dialog modal-dialog-centered" role="document">
@ -221,22 +399,98 @@
</div>
</div>
<div class="modal fade" id="CheckProfileMain" aria-hidden="true" aria-labelledby="CheckProfileMainLabel" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal fade" id="CaptchaModalHandler" role="dialog" aria-hidden="true" aria-labelledby="CaptchaModalHandlerLabel" tabindex="-1">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<form id="formCaptchaHandler" action="#">
<div class="modal-header">
<h5 class="modal-title" id="CheckProfileMainLabel">Модалка 2</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
<h5 class="modal-title" id="CaptchaModalHandlerLabel">Проверка ICQ...</h5>
<button type="button" class="btn-close" data-dismiss="modal" aria-label="Close" id="check_captcha_close_button"></button>
</div>
<div class="modal-body">
Скройте это модальное окно и покажите первое с помощью кнопки ниже.
<div class="row">
<div class="col">
<div class="row">
<div class="col">Смещная картинка:</div>
<div class="col"><img alt="Captcha" src="" class="img-fluid" id="captcha_img"></img></div>
</div>
<div class="row">
<div class="col">Код с картинки:</div>
<div class="col"><input class="form-control" type="text" name="captcha" id="captcha" required/></div>
</div>
<div class="row" id="InvalidCaptchaTextArea">
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" data-bs-dismiss="modal">Я понял, я обосрался</button>
<button type="button" class="btn btn-danger" id="check_captcha_submit_button">Проверить капчу</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="Modal_SelectPayMethod" role="dialog" aria-hidden="true" aria-labelledby="Modal_SelectPayMethod_Label" tabindex="-1">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal_SelectPayMethod_Label">Выбери способ оплаты</h5>
<button type="button" class="btn-close" data-dismiss="modal" aria-label="Close" id="Modal_SelectPayMethod_Close"></button>
</div>
<div class="modal-body">
<div class="row justify-content-center">
<div class="col">
<a href="#" target="_blank" style="text-align: center;" id="Modal_SelectPayMethod_ProfileLink">
<h5 id="Modal_SelectPayMethod_ProfileName">Имя профиля</h5>
</a>
<br>
</div>
</div>
<div class="row justify-content-center">
<div class="col-5">
<div class="card">
<img class="card-img" src="site_content/images/logo/qiwi.svg" alt="Qiwi pay">
<div class="card-img-overlay text-center">
<a href="" target="_blank" class="stretched-link" id="Modal_SelectPayMethod_QIWI_Button"></a>
</div>
</div>
<h5 style="text-align: center;" id="Modal_SelectPayMethod_QIWI_Value">~</h5>
</div>
<div class="col-5">
<div class="card">
<img class="card-img" src="site_content/images/logo/steam.png" alt="Steam pay">
<div class="card-img-overlay text-center">
<a href="" target="_blank" class="stretched-link" id="Modal_SelectPayMethod_STEAM_Button"></a>
</div>
</div>
<h5 style="text-align: center;" id="Modal_SelectPayMethod_STEAM_Value">~</h5>
</div>
</div>
<div class="row justify-content-center">
<div class="col-10">
<p style="font-family: tf2secondary; text-align: center;">После оплаты в любым способом:</p>
<p style="font-family: tf2secondary; text-align: left;">- тебя кикнет с сервера, чтоб обновить права</p>
<p style="font-family: tf2secondary; text-align: left;">- если проверить профиль, то покажет: vip куплен</p>
<p style="font-family: tf2secondary; text-align: left;">- если випка так не появилась, напиши админам</p>
</div>
</div>
<div class="row justify-content-center">
<div class="col-10">
<a href="#" id="Modal_SelectPayMethod_CheckVIP">
<div style="text-align: center;">
<h6 style="display: inline;">Проверить випку: </h6>
<h6 style="display: inline;" id="Modal_SelectPayMethod_CheckVIP_Status">(отсутствует)</h6>
<h6 style="font-family: tf2secondary;" id="Modal_SelectPayMethod_CheckVIP_EndDate"></h6>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js"
integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
@ -247,9 +501,9 @@
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js"
integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2"
crossorigin="anonymous"></script>
<script type="text/javascript" src="/API.js?version=3"></script>
<script type="text/javascript" src="/Player_API.js?version=1"></script>
<script type="text/javascript" src="/VIP_API.js?version=1"></script>
<script type="text/javascript" src="/SlideShow.js?version=1"></script>
<script type="text/javascript" src="site_content/js/API.js?version=6.66v4"></script>
<script type="text/javascript" src="site_content/js/Player_API.js?version=1.75"></script>
<script type="text/javascript" src="site_content/js/VIP_API.js?version=1.3"></script>
<script type="text/javascript" src="site_content/js/BackgroundSlides.js?version=9.6"></script>
</body>
</html>

39
shit_style.css

@ -1,39 +0,0 @@
@font-face {
font-family: tf2build;
src: url('tf2build.ttf');
}
h1,h2,h3,h4,h5,h6 {
font-family: tf2build;
color: #333333;
}
a {
font-family: tf2build;
}
.nav-pills {
background-color: #d86800;
}
.nav-link {
color: #000000;
}
.nav-pills > li > a:hover {
color: #5a5a5a;
}
.slideshow
{
position: relative;
width: 350px;
height: 150px;
}
.slideshow img
{
position: absolute;
width: 350px;
height: 150px;
z-index:-1;
}

74
site_content/css/shit_style.css

@ -0,0 +1,74 @@
@font-face {
font-family: tf2build;
src: url('site_content/fonts/tf2build.ttf');
}
@font-face {
font-family: tf2secondary;
src: url('site_content/fonts/tf2secondary.ttf');
}
h1,h2,h3,h4,h5,h6 {
font-family: tf2build;
color: #333333;
}
p {
font-family: tf2secondary;
}
a {
font-family: tf2build;
}
.nav-pills {
background-color: #d86800;
}
.nav-link {
color: #000000;
}
.nav-pills > li > a:hover {
color: #5a5a5a;
}
.slideshow
{
position: relative;
width: 350px;
height: 150px;
}
.slideshow img
{
position: absolute;
width: 350px;
height: 150px;
z-index:-1;
}
.current-profile-text {
display: inline;
font-family: tf2secondary;
}
.current-profile-bigtext {
font-size: 1.7rem;
}
.current-profile-text-color-alarm {
color: red;
}
.current-profile-text-color-maybe {
color: yellow;
}
.current-profile-text-color-normal {
color: green;
}
.vip-card-text {
color: whitesmoke;
text-align: right;
}

BIN
site_content/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
site_content/fonts/tf2.ttf

Binary file not shown.

0
tf2build.ttf → site_content/fonts/tf2build.ttf

BIN
site_content/fonts/tf2secondary.ttf

Binary file not shown.

BIN
site_content/images/background/hasbik_dance.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

BIN
site_content/images/characters/engi_n.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
site_content/images/characters/mgesold.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
site_content/images/characters/pootisd.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
site_content/images/characters/pyro.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
site_content/images/characters/toilet.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 KiB

BIN
site_content/images/gameplay/gameplay_1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 KiB

BIN
site_content/images/gameplay/gameplay_2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 KiB

BIN
site_content/images/gameplay/gameplay_3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 KiB

BIN
site_content/images/logo/discord.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
site_content/images/logo/qiwi.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

1
site_content/images/logo/qiwi.svg

@ -0,0 +1 @@
<?xml version="1.0"?><svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"> <path d="M 23.5 0 C 11.093 0 1 10.093 1 22.5 C 1 34.907 11.093 45 23.5 45 C 26.095 45 27.935594 44.704359 29.558594 44.443359 C 30.976594 44.215359 32.315 44 34 44 C 42.165 44 47.199047 49.603156 47.248047 49.660156 C 47.444047 49.882156 47.721 49.998047 48 49.998047 C 48.186 49.998047 48.374063 49.947844 48.539062 49.839844 C 48.955062 49.572844 49.113109 49.042797 48.912109 48.591797 C 48.802109 48.343797 46.085359 42.483891 35.193359 39.962891 L 34.896484 39.880859 C 32.204484 39.214859 30.0305 38.13025 28.4375 36.65625 C 26.3795 34.75425 25.986375 32.834266 25.984375 32.822266 C 25.892375 32.313266 25.416156 31.960906 24.910156 32.003906 C 24.394156 32.050906 24 32.482 24 33 C 24 33.102 24.006516 35.09075 24.353516 36.96875 C 24.055516 36.98975 23.773 37 23.5 37 C 15.505 37 9 30.495 9 22.5 C 9 14.505 15.505 8 23.5 8 C 31.495 8 38 14.505 38 22.5 C 38 23.096 37.962719 23.698828 37.886719 24.298828 C 36.000719 24.000828 34.125 24 34 24 C 33.418 24 33 24.499531 33 25.019531 C 33.012 25.562531 33.455047 25.999 33.998047 26 C 34.018047 26 36.098938 26.019797 37.960938 27.216797 C 41.047937 29.200797 41.786969 32.196656 41.792969 32.222656 C 41.885969 32.634656 42.228437 32.942188 42.648438 32.992188 C 43.065437 33.035188 43.474109 32.822359 43.662109 32.443359 C 45.213109 29.308359 46 25.962 46 22.5 C 46 10.093 35.907 0 23.5 0 z M 38.634766 32.001953 C 38.389703 31.987 38.19875 32.093594 38.09375 32.277344 C 37.88175 32.648344 38.039797 33.383437 38.466797 34.023438 C 38.899797 34.671437 39.266594 35 39.558594 35 C 39.826594 35 40.09475 34.664516 39.96875 33.853516 C 39.89375 33.369516 39.611484 32.317594 38.896484 32.058594 C 38.803984 32.025094 38.716453 32.006937 38.634766 32.001953 z M 35.367188 35 C 34.918187 35 34.544453 35.116797 34.314453 35.341797 C 33.724453 35.919797 33.989578 36.9355 34.892578 37.5625 C 35.287578 37.8355 35.855109 38 36.412109 38 C 36.979109 38 37.453094 37.830438 37.746094 37.523438 C 38.271094 36.963438 37.969563 36.170906 36.976562 35.503906 C 36.484563 35.173906 35.912187 35 35.367188 35 z"/></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
site_content/images/logo/steam.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
site_content/images/logo/vk.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
site_content/images/mge_brat.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 MiB

BIN
site_content/images/rules/abuse.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
site_content/images/rules/abuse_vip.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

BIN
site_content/images/rules/ads.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
site_content/images/rules/bug_use.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

BIN
site_content/images/rules/cheats.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
site_content/images/rules/make_everyone.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
site_content/images/vip/VIP_1_DAY.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

BIN
site_content/images/vip/VIP_1_MOUNTH.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

BIN
site_content/images/vip/VIP_7_DAYS.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

288
site_content/js/API.js

@ -0,0 +1,288 @@
/*
<div class="col-xs-8">
<div class="row row-cols-5">
<div class="col-xs-3 col-xl-3" >
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035250528554319982/pootisd.png">
</div>
<div class="col-xs-2 col-xl-2">
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035250528973754428/pyro.png" >
</div>
<div class="col-xs-2 col-xl-2">
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035253201563303967/toilet.png" >
</div>
<div class="col-xs-2 col-xl-2">
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035250529389002862/engi_n.png" >
</div>
<div class="col-xs-3 col-xl-3">
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035250529883918448/mgesold.png" >
</div>
</div>
</div>
*/
$(async function() {
$(document).on("keypress", "input", function (e) {
var code = e.keyCode || e.which;
if (code == 13) {
e.preventDefault();
return false;
}
});
FillCharacters();
FillRules();
await CheckApi();
await RequestAPI();
if(window.location.href.endsWith("#RulesSection")){
document.getElementById('Rules_Button').click();
}
if(window.location.href.endsWith("#VIPSection")){
document.getElementById('Tab_VIP_Button').click();
}
});
let servers_active = `
<div class="row text-center">
<div class="col">
<hr>
<h6>Где сейчас играют карлики</h6>
</div>
</div>
`
let servers_inactive = `
<div class="row text-center">
<div class="col">
<hr>
<h6>Пустую без дела</h6>
</div>
</div>
`
let servers_dead = `
<div class="row text-center">
<div class="col">
<hr>
<h6>Временно отключены</h6>
</div>
</div>
`
let invalid_captcha = `
<div class="col" id="InvalidCaptcha">
<br>
<h1 style="color: red">ДЯДЯ ТЫ ДУРАЧЕК, КАПЧА НЕПРАВИЛЬНАЯ, ЖМИ СНОВА НА КНОПКУ</h1>
</div>
`
function generate_server_card_div(data){
return `
<div class="col-auto justify-content-center align-self-center" style="padding: 1rem;">
<div class="card text-right" style="width: 15rem; height: 15rem;">
<img class="card-img" src="${data.preview}" alt="${data.name}" style="filter: blur(1px); height: 100%;">
<div class="card-img-overlay" style="background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.7))"><!--background-color: rgba(0, 0, 0, 0.205);-->
<a href="steam://connect/${data.address}" class="stretched-link" ${data.status ? "" : "disabled"}></a>
<h4 class="card-title" style="color: whitesmoke;">${data.name}</h4>
<p class="card-text" style="color: whitesmoke; font-family: tf2build; font-size: 3rem; text-align: center;">${data.player_count}/${data.max_players}</p>
<h4 class="card-title" style="color: whitesmoke; text-align: right;">${data.human_name}</h4>
</div>
</div>
</div>
`
}
async function CheckApi() {
let api_request_time = (new Date).getTime();
await fetch("https://tf2.pblr-nyk.pro/api", {headers: {'Cache-Control':'no-cache'}})
.then(res => res.text())
.then(res => {api_request_time = (new Date).getTime() - api_request_time})
.catch(err => {api_request_time = 0});
////////////////////////////////////////////
let player_api_request_time = (new Date).getTime();
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/ping", {headers: {'Cache-Control':'no-cache'}})
.then(res => res.text())
.then(res => {player_api_request_time = (new Date).getTime() - player_api_request_time})
.catch(err => {player_api_request_time = 0});
////////////////////////////////////////////
FillFooter("", api_request_time, player_api_request_time);
}
async function RequestAPI() {
//let api_request_time = (new Date).getTime();
//, {headers: {'Cache-Control':'no-cache'}}
await fetch("https://tf2.pblr-nyk.pro/api/stats", {headers: {'Cache-Control':'no-cache'}})
.then(res => res.json())
.then(res => {
FillServices(res);
document.getElementById("current_players").innerHTML = res.servers.statistic.player_now;
document.getElementById("max_per_day").innerHTML = res.servers.statistic.player_max;
document.getElementById("servers_works").innerHTML = res.servers.statistic.working_servers + '/' + res.servers.statistic.total_servers;
document.getElementById("uniq_day_players").innerHTML = res.uniq.day;
document.getElementById("uniq_month_players").innerHTML = res.uniq.month;
document.getElementById("uniq_year_players").innerHTML = res.uniq.year;
document.getElementById("ServersSectionLastUpdate").innerHTML = `Информация обновлена: ${UNIX2TIMESTAMP(res.updates.servers)}`;
document.getElementById("AboutSection_discord").innerHTML = `${res.discord_users} ГЕЙмеров `;
document.getElementById("AboutSection_vk").innerHTML = `${res.vk_users} Участников `;
document.getElementById("Section_VIP_users").innerHTML = `${res.vip_players} карликов уже имеют випку!`;
let active = false;
let inactive = false;
let dead = false;
let insert_type = "beforeend";
//active servers
let sorted_servers = Object.keys(res.servers).sort((a, b) => {
return res.servers[b].player_count - res.servers[a].player_count;
});
//console.log(sorted_servers);
for (let sort_id in sorted_servers) {
let server = sorted_servers[sort_id];
if (server == `statistic`) {continue;}
if(res.servers[server].status == true && res.servers[server].player_count > 0) {
if(!active) {
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,servers_active)
active = true;
}
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,generate_server_card_div(res.servers[server]));
}
else if (res.servers[server].status == true && res.servers[server].player_count == 0) {
if(!inactive) {
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,servers_inactive)
inactive = true;
}
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,generate_server_card_div(res.servers[server]));
}
}
for (let sort_id in sorted_servers) {
let server = sorted_servers[sort_id];
if (res.servers[server].status == false) {
if(!dead) {
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,servers_dead)
dead = true;
}
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,generate_server_card_div(res.servers[server]));
}
}
}).catch((err) => {
console.log(err);
//FillFooter("", 0, 0);
});
//FillFooter("", api_request_time, "");
}
function FillFooter(data, api_time, player_api_time){
const text = `<p class="current-profile-text">{text}</p>`;
const text_bad = `<p class="current-profile-text current-profile-text-color-alarm">{text}</p>`;
const text_good = `<p class="current-profile-text current-profile-text-color-normal">{text}</p>`;
while(document.getElementById("Footer_Text").firstChild) {
document.getElementById("Footer_Text").lastChild.remove();
}
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", `2018-${(new Date()).getFullYear()} | `));
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", `Факты 13 | `));
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", `JS: `));
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text_good.replace("{text}", `on`));
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", ` | API: `));//${api_time} ms
if(api_time == 0) {
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text_bad.replace("{text}", `not work`));
} else {
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text_good.replace("{text}", `${api_time} ms`));
}
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", ` | Player API: `));
if(player_api_time == 0) {
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text_bad.replace("{text}", `not work`));
} else {
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text_good.replace("{text}", `${player_api_time} ms`));
}
}
function FillServices(data) {
const ping_time = 90;
const text = `<p class="current-profile-text" id="{service_id}"></p>`;
console.log(`${((new Date()).getTime() / 1000) - data.updates.qiwi_bot}`);
console.log(`${((new Date()).getTime() / 1000) - data.updates.steam_bot}`);
if(data.updates.qiwi_bot && ((new Date()).getTime() / 1000) - data.updates.qiwi_bot < ping_time) {
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{service_id}","Footer_Services_QIWI"));
}
if(data.updates.steam_bot && ((new Date()).getTime() / 1000) - data.updates.steam_bot < ping_time) {
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{service_id}","Footer_Services_STEAM"));
}
}
function UNIX2TIMESTAMP(unix) {
return (new Date((unix + 3600 * 3) * 1000)).toGMTString().replace("GMT", "MSK");
}
function FillCharacters() {
let CharactersArray = new Array(
["site_content/images/characters/pootisd.png","site_content/sounds/pootis.mp3", ""],
["site_content/images/characters/pyro.png","site_content/sounds/alertmgs.mp3", ""],
["site_content/images/characters/toilet.png","site_content/sounds/puk.mp3", ""],
["site_content/images/characters/engi_n.png","site_content/sounds/nigger.mp3", ""],
["site_content/images/characters/mgesold.png","site_content/sounds/soldier_laughevil03.mp3", ""]
);
let InjectCharacter = ``;
document.getElementById("Main_FunnyСharacters").insertAdjacentHTML("beforeend", `<div class="col-3"></div>`);
for (const element in CharactersArray) {
InjectCharacter = `<div class="col"><img class="img-fluid" src="${CharactersArray[element][0]}" onclick="(new Audio('${CharactersArray[element][1]}')).play();"></div>`;
if(CharactersArray[element][2]){
document.getElementById(CharactersArray[element][2]).insertAdjacentHTML("beforeend", `<div class="col-5"></div>`);
document.getElementById(CharactersArray[element][2]).insertAdjacentHTML("beforeend", InjectCharacter);
document.getElementById(CharactersArray[element][2]).insertAdjacentHTML("beforeend", `<div class="col-5"></div>`);
}
document.getElementById("Main_FunnyСharacters").insertAdjacentHTML("beforeend", InjectCharacter);
}
document.getElementById("Main_FunnyСharacters").insertAdjacentHTML("beforeend", `<div class="col-3"></div>`);
}
function FillRules() {
const rules = new Array(
{"name":"Читы", "about":"Бан навсегда сука", "image":"site_content/images/rules/cheats.jpg"},
{"name":"Реклама серверов", "about":"Кроме мге, бан навсегда сука", "image":"site_content/images/rules/ads.jpg"},
{"name":"Багоюз", "about":"Пиздец тебе, бан навсегда", "image":"site_content/images/rules/bug_use.jpg"},
{"name":"Абуз команды !mir", "about":"Блокировка дверей, открытие спавна и т.д", "image":"site_content/images/rules/abuse.jpg"},
{"name":"Абуз випки на сервере", "about":"Модеры сам решат как и за что", "image":"site_content/images/rules/abuse_vip.jpg"},
{"name":"Делай короче чё хочешь", "about":":troll_face:", "image":"site_content/images/rules/make_everyone.jpg"}
)
let card = ``;
//const shift = ``;//<div class="col-1 pb-4"></div>`;
//let counter = 1
for(const rule in rules) {
//if(counter == 1){document.getElementById("Rules_List").insertAdjacentHTML("beforeend", shift);}
card = `
<div class="col-4 pb-4">
<div class="card" style="height: 18rem; background-image: url('${rules[rule].image}'); background-size: cover;">
<!--<img class="card-img" src="${rules[rule].image}" alt="читы">-->
<div class="card-img-overlay d-flex flex-column" style="background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.7));">
<div class="mt-auto" style="text-align: right;">
<h5 style="color: white;" >${rules[rule].name}</h5>
<hr style="color: white;">
<p style="font-family: tf2secondary; color: white;">${rules[rule].about}</p>
</div>
</div>
</div>
</div>`
document.getElementById("Rules_List").insertAdjacentHTML("beforeend", card);
//counter++;
//if(counter == 4){counter=1;}
}
}

36
SlideShow.js → site_content/js/BackgroundSlides.js

@ -1,29 +1,21 @@
$(async function() {
//вам смешно,а мне нет
ChangeBackgoundImageRandom();
});
function ChangeBackgoundImageRandom() {
var images=new Array(
'https://sun9-54.userapi.com/impf/L4gabJSytEz1NpTNLMMY4H2I0Ii2G8BZWLF43w/qYSHLfNsb7s.jpg?size=1920x1080&quality=96&proxy=1&sign=dd5b204676b475018a320a3ea4da605d&type=album',
'https://sun9-47.userapi.com/impf/W24ZlAJv_hRsfSWo52xJuQxiYsLIBACpZrZLZQ/PloSNn9b2mQ.jpg?size=1920x1080&quality=96&proxy=1&sign=1fd9c7ede5a4824442b79bff28bcc928&type=album',
'https://sun9-56.userapi.com/impf/gumag_-zFNTd9kxmAlDnX12T1kOzx10Nel8NBg/cQlqHiyWdxQ.jpg?size=1920x1080&quality=96&proxy=1&sign=1c348f58c41e5ebc19e49e6bd9535998&type=album');
var nextimage=0;
return;
doSlideshow();
ChangeBackgoundImage(images[getRandomInt(images.length-1)]);
}
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
function doSlideshow()
{
if($('.slideshowimage').length!=0)
{
$('.slideshowimage').fadeOut(500,function(){slideshowFadeIn();$(this).remove()});
}
else
{
slideshowFadeIn();
}
}
function slideshowFadeIn()
{
$('.slideshow').prepend($('<img class="slideshowimage" src="'+images[nextimage++]+'" style="display:none">').fadeIn(500,function(){setTimeout(doSlideshow,1000);}));
if(nextimage>=images.length)
nextimage=0;
}
});
function ChangeBackgoundImage(url) {
let sample = `linear-gradient(to bottom, rgba(46, 13, 3, 0), rgba(34, 10, 3, 0.46)),url('${url}')`
document.getElementById('main_container').style.backgroundImage = sample;
}

467
site_content/js/Player_API.js

@ -0,0 +1,467 @@
$(async function() {
await CheckCurrentUser();
})
async function CheckCurrentUser(){
if(!check_cookie_name("steam64")){return;}
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/current_user", {credentials:"same-origin", headers: {'Cache-Control':'no-cache'}})
.then(response => response.json())
.then(response => {
if("error" in response) {
console.log(response.error);
} else {
var current_user = document.getElementById("Header_CurrentUser");
var current_ban = document.getElementById("Header_CurrentBan");
var logout = document.getElementById("Header_Logout");
current_user.href = "#";
if (response.ban) {
current_user.innerHTML = `Привет ${response.steam_data.nickname}! У меня хорошие новости!`
current_ban.innerHTML = "У тебя БАН! (нажми чтоб посмотреть его)";
} else {
current_user.innerHTML = `Привет ${response.steam_data.nickname}!`
}
logout.innerHTML = ` (нажми чтоб выйти)`
}
})
}
function check_cookie_name(name) {
var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
if (match && match[2] != "None") {return true;}
else {return false;}
}
let captcha_error_div = `<div class="col" id="ModalCaptchaErrorText"><h6 style="color: red;" id="captcha_error">пук</h6></div>`
let ProfileLinkError_div = `<div class="col" id="ProfileLinkIsNotFull"><h6 style="color: red;" id="profile_error">Долбаеб введи ссылку на профиль!</h6></div>`
console.log("puk");
//buttonCheckProfile
$('#check_captcha_close_button').click(async function(ev) {
ev.preventDefault();
$('#CaptchaModalHandler').modal('hide');
});
document.getElementById("check_profile_submit_button").addEventListener("keypress", async function(ev){
ev.preventDefault();
console.log(ev.key);
return false;
});
$('#check_profile_submit_button').click(async function(ev) {
//ev.preventDefault();
console.log("check profile button presed");
if (document.getElementById("ProfileLinkIsNotFull")) {
document.getElementById("ProfileLinkIsNotFull").remove();
}
if (!document.forms["formProfileSectionInput"].steamurl.value.startsWith("https://")) {
document.getElementById("formProfileSectionInputHelpText").insertAdjacentHTML("beforeend",ProfileLinkError_div);
//document.getElementById("profile").innerHTML = "Долбаеб введи ссылку на профиль!";
} else {
$('#CaptchaModalHandler').modal('show');
}
return false;
});
$(document).on("show.bs.modal", "#CaptchaModalHandler", async function () {
console.log("setup captcha modal");
let form_url = document.forms["formProfileSectionInput"];
let form_captcha = document.forms["formCaptchaHandler"];
let captcha_id;
await RefreshCaptcha();
async function RefreshCaptcha() {
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/captcha", {method:'POST'})
.then(response => response.json())
.then(response => {
console.log("captcha id: " + response.id);
captcha_id = response.id;
form_captcha.captcha_img.src = "https://tf2.pblr-nyk.pro/player_api/v1/captcha?id=" + response.id;
});
}
$('#check_captcha_submit_button').click(async function (ev) {
//ev.preventDefault();
if ($('#ModalCaptchaErrorText')) { $('#ModalCaptchaErrorText').remove();}
await CheckAndFill(ev);
return false;
});
async function CheckAndFill(event) {
if(form_captcha.captcha.value.length == 0){
if(!document.getElementById("captcha_error")){
document.getElementById("InvalidCaptchaTextArea").insertAdjacentHTML("beforeend",captcha_error_div);
}
document.getElementById("captcha_error").innerHTML = "Капчу введи!";
return;
}
$("#check_captcha_close_button").prop("disabled", true);
$("#check_captcha_submit_button").prop("disabled", true);
if(document.getElementById("current_profile")){
document.getElementById("current_profile").remove();
}
console.log(new Date());
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/player?steam_url=" + form_url.steamurl.value + "&captcha_id=" + captcha_id + "&captcha_code=" + form_captcha.captcha.value)
.then(response => response.json())
.then(response => {
$("#check_captcha_close_button").removeAttr("disabled");
$("#check_captcha_submit_button").removeAttr("disabled");
/////////////////////////////////////////////////////////
if ("error" in response) {
console.log(`id: ${captcha_id} error: ${response}`);
if(!document.getElementById("captcha_error")){
document.getElementById("InvalidCaptchaTextArea").insertAdjacentHTML("beforeend",captcha_error_div);
}
if (response.error == "incorrect captcha") {
document.getElementById("captcha_error").innerHTML = "Капча невалидна, попробуй снова!";
} else {
document.getElementById("captcha_error").innerHTML = "Ошибка: " + response.error;
}
RefreshCaptcha();
} else if ("detail" in response) {
if(!document.getElementById("captcha_error")){
document.getElementById("InvalidCaptchaTextArea").insertAdjacentHTML("beforeend",captcha_error_div);
}
document.getElementById("captcha_error").innerHTML = "Ошибка: " + response.detail[0].msg;
RefreshCaptcha();
} else {
console.log(response);
document.getElementById("profile_stats").insertAdjacentHTML("beforeend",FillPlayerInfo(response));
ReconstructVipSection(response);
$('#check_captcha_close_button').click();
}
form_captcha.captcha.value = '';
});
}});
function CalculateVipEndDate(permition) {
return new Date((permition["UNIX_TIMESTAMP(`reg_date`)"] + permition.amount) * 1000);
}
function FillPlayerInfo(data) {
let player_ban_div = "";
if(data.ban) {
let player_ban_length;
if (data.ban.ban_length > 0){
let player_ban_end = new Date((new Date(data.ban.timestamp)).getTime() + (data.ban.ban_length * 60 * 1000)).toLocaleString();
player_ban_length = `<p class="current-profile-text">Дата окончания: </p><p class="current-profile-text">${player_ban_end}</p>`
} else {
player_ban_length = '<p class="current-profile-text">Дата окончания: </p><p class="current-profile-text current-profile-text-color-alarm">Навсегда в бане</p>'
}
player_ban_div = `
<div id="ban_section">
<hr>
<p class="current-profile-text current-profile-bigtext">Статус бана: </p>
<p class="current-profile-text current-profile-bigtext current-profile-text-color-alarm">Забанен</p>
<br>
<p class="current-profile-text">ID бана: </p>
<p class="current-profile-text">${data.ban.id}</p>
<br>
<p class="current-profile-text">Причина бана: </p>
<p class="current-profile-text">${data.ban.ban_reason}</p>
<br>
<p class="current-profile-text">Кто выдал бан: </p>
<p class="current-profile-text">${data.ban.banned_by ? data.ban.banned_by : 'bot'}</p>
<!---->
<a href="${data.ban.admin_info.steam_url}" target="_blank" class="current-profile-text"><img style="height: 1.0rem;" class="rounded-1" src="site_content/images/logo/steam.png"></a>
<a href="https://vk.me/id${data.ban.admin_info.vk_id}" target="_blank" class="current-profile-text"><img style="height: 1.0rem;" class="rounded-1" src="site_content/images/logo/vk.png"></a>
<a href="#" class="current-profile-text" onclick="alert('Пиши в дискорд сюда: ${data.ban.admin_info.discord_name}');"><img style="height: 1.0rem;" class="rounded-1" src="site_content/images/logo/discord.png?version=2"></a>
<!---->
<br>
${player_ban_length}
</div>
`
}
let player_permition_div;
let player_permition_length = "";
let player_permition_continue = `(купить)`;
if(data.permition) {
let player_permition_status;
if (data.permition.status == "VIP"){
let player_permition_end_date = `бесконечны`;
let player_permition_end_date_color_status = `current-profile-text-color-normal`;
if(data.permition.amount){
player_permition_continue = `(продлить)`;
let date = CalculateVipEndDate(data.permition);// new Date((data.permition["UNIX_TIMESTAMP(`reg_date`)"] + data.permition.amount) * 1000);
player_permition_end_date = date.toLocaleString();
document.getElementById("Modal_SelectPayMethod_CheckVIP_EndDate").innerHTML = `До: ${player_permition_end_date}`;
if(date.getTime() - new Date().getTime() > 604800000){
player_permition_end_date_color_status = `current-profile-text-color-normal`;
} else if (date.getTime() - new Date().getTime() > 259200000){
player_permition_end_date_color_status = `current-profile-text-color-maybe`;
} else {
player_permition_end_date_color_status = `current-profile-text-color-alarm`;
}
}
player_permition_length = `
<br>
<p class="current-profile-text">Дата окончания ${data.permition.status}: </p><p class="current-profile-text">${player_permition_end_date}</p>
`;
player_permition_status = `
<p class="current-profile-text current-profile-bigtext">Статус ${data.permition.status}: </p>
<p class="current-profile-text current-profile-bigtext">Имеется </p><a href="#" onclick="document.getElementById('Tab_VIP_Button').click();" class="current-profile-text current-profile-bigtext ${player_permition_end_date_color_status}">${player_permition_continue}</a>
`
} else {
player_permition_status = `
<p class="current-profile-text current-profile-bigtext">Статус ${data.permition.status}: </p>
<p class="current-profile-text current-profile-bigtext">Имеется</p>
`
}
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").innerHTML = "(имеется)";
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").style += "color: green;";
player_permition_div = `
<div id="vip_section">
<hr>
${player_permition_status}
${player_permition_length}
<br>
</div>
`
} else {
player_permition_div = `
<div id="vip_section">
<hr>
<p class="current-profile-text current-profile-bigtext">Статус VIP: </p>
<p class="current-profile-text current-profile-bigtext">Отсутствует </p><a href="#" onclick="document.getElementById('Tab_VIP_Button').click();" class="current-profile-text current-profile-bigtext current-profile-text-color-alarm">${player_permition_continue}</a>
<br>
<div>
`;
}
let player_statistic_div = "";
let total_gametime = 0;
/*
<div id="statistic_section">
<hr>
<p class="current-profile-text current-profile-bigtext">Статистика карт</p>
<br>
<p class="current-profile-text">zavod_3_jirikupdate - 1 день 2:19:13</p>
<br>
<p class="current-profile-text">zavod_3_jirik - 1 день 2:19:13</p>
<br>
<p class="current-profile-text">zavod_3 - 1 день 2:19:13</p>
</div>
*/
if(data.gametime){
player_statistic_div = `<div id="statistic_section">
<hr>
<p class="current-profile-text current-profile-bigtext">Статистика карт</p>
`;
for(const srv in data.gametime) {
for(const map_name in data.gametime[srv]){
//<a href="${data.ban.admin_info.steam_url}" target="_blank" class="current-profile-text"><img style="height: 1.0rem;" class="rounded-1" src="site_content/images/logo/steam.png"></a>
//<img style="height: 1.0rem;" class="rounded-1" src="${return_last_api_response().servers[srv].preview}">
let map = map_name.replace("workshop/", "").split(".ugc", 1)[0];
player_statistic_div += `<br><p class="current-profile-text">${map} - ${UNIX2FACTI_TIME(data.gametime[srv][map_name])}</p>`;
total_gametime += data.gametime[srv][map_name];
}
}
player_statistic_div += "</div>"
}
let player_data_div = `
<div class="col-md-8 col-sm-6 col-lg-6 col-xl-5 rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;" id="current_profile">
<div class="row">
<div class="col-6 offset-3">
<hr>
</div>
</div>
<div class="row" id="player_data">
<div class="col" id="player_data_window">
<div class="row">
<div class="col" style="text-align: left;">
<h2>${data.steam_data.nickname}</h2>
${player_ban_div}
${player_permition_div}
${player_statistic_div}
</div>
</div>
</div>
<div class="col-4">
<img class="img-fluid w-100 rounded-5" src="${data.steam_data.avatar}">
<p></p>
<!--<p>Убийств: 20</p>
<p>Смертей: 582</p>-->
<p>Наиграно: ${UNIX2FACTI_TIME(total_gametime)}</p>
<div class="row">
<div class="col justify-content-end">
<a href="${data.steamids.community_url}" target="_blank"><img class="img-fluid w-25" src="site_content/images/logo/steam.png"></a>
</div>
</div>
</div>
</div>
</div>
`
return player_data_div;
}
function UNIX2FACTI_TIME(u_time){
const divmod = (x, y) => [Math.floor(x / y), x % y];
let s = divmod(u_time, 60)[1];
let m = divmod(u_time, 60)[0];
let h = divmod(m, 60)[0];
m = divmod(m, 60)[1];
let d = divmod(h, 24)[0];
h = divmod(h, 24)[1];
//бля простите я тупой
if(!s&!m&!h&!d){
return "не играл";
}
let time = `${h>9?h:'0'+h}:${m>9?m:'0'+m}:${s>9?s:'0'+s}`;
if (!d) {
return time;
} else if (d<2){
return `${d} день ${time}`;
} else {
return `${d} дней ${time}`;
}
}
function ReconstructVipSection(data){
$('#Modal_SelectPayMethod_Close').click(async function(ev) {
ev.preventDefault();
$('#Modal_SelectPayMethod').modal('hide');
});
$('#Modal_SelectPayMethod_CheckVIP').click(async function(ev) {
ev.preventDefault();
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/player/permitions?steam_url=" + document.forms["formProfileSectionInput"].steamurl.value)
.then(response => response.json())
.then(response => {
if(response.permition){
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").innerHTML = "(имеется)";
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").style += "color: green;";
if(response.permition.amount){
document.getElementById("Modal_SelectPayMethod_CheckVIP_EndDate").innerHTML = `До: ${CalculateVipEndDate(response.permition).toLocaleString()}`;
} else {
document.getElementById("Modal_SelectPayMethod_CheckVIP_EndDate").innerHTML = `бесконечность не предел`;
}
} else {
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").innerHTML = "(отсутствует)";
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").style += "color: red;";
document.getElementById("Modal_SelectPayMethod_CheckVIP_EndDate").innerHTML = `Время проверки: ${new Date().toLocaleString()}`;
}
});
});
//document.getElementById("Section_VIP_check_profile")?document.getElementById("Section_VIP_check_profile").remove():null;
while(document.getElementById("Section_VIP_buttons").firstChild) {
document.getElementById("Section_VIP_buttons").lastChild.remove();
}
const STEAM_TRADE = "https://steamcommunity.com/tradeoffer/new/?partner=47239992&token=8gNFVl7h";
const QIWI_TRADE = "https://qiwi.com/payment/form/99?currency=643&amount=(AMOUNT)&extra%5B%27comment%27%5D=(COMMENT)&extra%5B%27account%27%5D=79207516287&blocked%5B0%5D=sum&blocked%5B1%5D=account&blocked%5B2%5D=comment";
//STEAM_0%3A0%3A54354355
//"https://qiwi.com/payment/form/99?currency=643&amount=(AMOUNT)&extra%%5B%%27comment%%27%%5D=(COMMENT)&extra%%5B%%27account%%27%%5D=%%2B79207516287&blocked%%5B0%%5D=account";
document.getElementById("Modal_SelectPayMethod_ProfileLink").href = data.steamids.community_url;
document.getElementById("Modal_SelectPayMethod_ProfileName").innerHTML = "Вип будет выдан: " + data.steam_data.nickname;
let price_array = new Array(
["VIP (1 месяц)", 150, "1 ключ", "site_content/images/vip/VIP_1_MOUNTH.jpg", "month"],
["VIP (1 неделя)", 75, "20 рефов", "site_content/images/vip/VIP_7_DAYS.jpg", "seven_day"],
["VIP (1 день)", 20, "5 рефов", "site_content/images/vip/VIP_1_DAY.jpg", "day"]
);
let vip_select;
for(const select in price_array) {
vip_select = `
<div class="col">
<div class="card">
<img class="card-img" src="${price_array[select][3]}" alt="${price_array[select][0]}">
<div class="card-img-overlay d-flex flex-column" style="background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.7))">
<a href="#" class="stretched-link" id="Section_VIP_buttons_${price_array[select][4]}"></a>
<div class="mt-auto">
<h5 class="vip-card-text">${price_array[select][0]}</h5>
<hr class="vip-card-text">
<h6 class="vip-card-text">${price_array[select][1]} Рублей</h6>
<h6 class="vip-card-text">${price_array[select][2]}</h6>
</div>
</div>
</div>
</div>
`
document.getElementById("Section_VIP_buttons").insertAdjacentHTML("beforeend", vip_select);
$(`#Section_VIP_buttons_${price_array[select][4]}`).click(async function(ev) {
ev.preventDefault();
document.getElementById('Modal_SelectPayMethod_QIWI_Button').href = QIWI_TRADE.replace("(AMOUNT)", price_array[select][1]).replace("(COMMENT)",data.steamids.steam2.replace(":","%3A"));
document.getElementById('Modal_SelectPayMethod_QIWI_Value').innerHTML = `${price_array[select][1]} Рублей`;
document.getElementById('Modal_SelectPayMethod_STEAM_Button').href = STEAM_TRADE;
document.getElementById('Modal_SelectPayMethod_STEAM_Value').innerHTML = price_array[select][2];
$('#Modal_SelectPayMethod').modal('show');
return false;
});
}
}
/*
//Section_VIP_buttons
let vip_select_sample = `
<div class="col">
<div class="card">
<img class="card-img" src="site_content/images/vip/VIP_1_MOUNTH.jpg" alt="Вип на месяц">
<div class="card-img-overlay d-flex flex-column" style="background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.7))">
<a href="#" class="stretched-link" id="Section_VIP_buttons_month"></a>
<div class="mt-auto">
<h5 class="vip-card-text">VIP (1 месяц)</h5>
<hr class="vip-card-text">
<h6 class="vip-card-text">150 Рублей</h6>
<h6 class="vip-card-text">1 Ключ</h6>
</div>
</div>
</div>
</div>
`;
$('#Section_VIP_buttons_month').click(async function(ev) {
ev.preventDefault();
console.log("vip button presed");
document.getElementById('Modal_SelectPayMethod_QIWI_Button').href = QIWI_TRADE;
document.getElementById('Modal_SelectPayMethod_QIWI_Value').innerHTML = "150 Рублей";
document.getElementById('Modal_SelectPayMethod_STEAM_Button').href = STEAM_TRADE;
document.getElementById('Modal_SelectPayMethod_STEAM_Value').innerHTML = "1 Ключ";
$('#Modal_SelectPayMethod').modal('show');
return false;
});
*/
//secret egg
let konami_code = "";
let activated = false;
document.addEventListener('keypress', (event) => {
if(activated){return;}
konami_code += event.key;
if(konami_code.length == 6 || event.key == "-"){
if(konami_code == "nigger"){
activated = true;
document.getElementById("Tab_About").href="#SecretEgg";
$('.nav-pills a[href="#SecretEgg"]').tab('show');
(new Audio("site_content/sounds/sunboy-ledi-night-16.mp3")).play();
document.getElementById("Nav_MenuButtons").remove()
ChangeBackgoundImage("site_content/images/background/hasbik_dance.jpg");
//$('Tab_Secret_Egg').click();
}
konami_code = ""
}
});

0
SteamAuth.js → site_content/js/SteamAuth.js

21
VIP_API.js → site_content/js/VIP_API.js

@ -1,7 +1,26 @@
$(async function() {
await VIP_API();
});
/*
const STEAM_TRADE = "https://steamcommunity.com/tradeoffer/new/?partner=47239992&token=8gNFVl7h";
const QIWI_TRADE = "https://qiwi.com/payment/form/99?currency=643&amount=(AMOUNT)&extra%%5B%%27comment%%27%%5D=(COMMENT)&extra%%5B%%27account%%27%%5D=%%2B79207516287&blocked%%5B0%%5D=account";
$('#Modal_SelectPayMethod_Close').click(async function(ev) {
ev.preventDefault();
$('#Modal_SelectPayMethod').modal('hide');
});
*//*
$('#Section_VIP_buttons_month').click(async function(ev) {
ev.preventDefault();
console.log("vip button presed");
document.getElementById('Modal_SelectPayMethod_QIWI_Button').href = QIWI_TRADE;
document.getElementById('Modal_SelectPayMethod_QIWI_Value').innerHTML = "150 Рублей";
document.getElementById('Modal_SelectPayMethod_STEAM_Button').href = STEAM_TRADE;
document.getElementById('Modal_SelectPayMethod_STEAM_Value').innerHTML = "1 Ключ";
$('#Modal_SelectPayMethod').modal('show');
return false;
});*/
/*
function generate_vip_table(steamid3) {
let h_size = "h4"
let table = `
@ -92,7 +111,7 @@ function current_vip(permition) {
</div>
`;
}
*/
async function VIP_API() {
}

BIN
site_content/sounds/alertmgs.mp3

Binary file not shown.

BIN
site_content/sounds/nigger.mp3

Binary file not shown.

BIN
site_content/sounds/pizdatchik.mp3

Binary file not shown.

BIN
site_content/sounds/pootis.mp3

Binary file not shown.

BIN
site_content/sounds/puk.mp3

Binary file not shown.

BIN
site_content/sounds/soldier_laughevil03.mp3

Binary file not shown.

BIN
site_content/sounds/sunboy-ledi-night-16.mp3

Binary file not shown.
Loading…
Cancel
Save