parent
691806c1de
commit
50b3f61ba6
@ -1,261 +1,261 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TTT2 Role Adder</title>
|
||||
<meta name="description" content="Add a new TTT2 Role">
|
||||
<meta name="author" content="James">
|
||||
<meta property="og:title" content="TTT2 Role Adder">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://ttt.james-things.com">
|
||||
<meta property="og:description" content="All TTT2 Roles documented halfheartedly">
|
||||
<meta property="og:image" content="https://e7.pngegg.com/pngimages/710/403/png-clipart-the-embodiment-of-scarlet-devil-team-shanghai-alice-video-game-banjo-tooie-mario-luigi-partners-in-time-marisa-logo-computer-wallpaper.png">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||
<!--MATERIALIZE-->
|
||||
<!--Import jQuery-->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<!--Import Google Icon Font-->
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<!--Import materialize.css-->
|
||||
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection" />
|
||||
<!--My Custom Stylesheet-->
|
||||
<link rel="stylesheet" href="css/styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="row">
|
||||
<div class="col s6">
|
||||
<div class="card-panel white">
|
||||
<form>
|
||||
<div class="row">
|
||||
<div class="input-field col s3">
|
||||
<input id="name" type="text" onchange="updateName()" class="validate">
|
||||
<label for="name">Rolename</label>
|
||||
</div>
|
||||
<div class="input-field col s9">
|
||||
<input id="description" type="text" onchange="updateDescription()">
|
||||
<label for="description">Roledescription</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s3">
|
||||
<select id="rolecolor" onchange="updateColor()">
|
||||
<option value="" disabled selected>Color</option>
|
||||
<option value="red">Red</option>
|
||||
<option value="pink">Pink</option>
|
||||
<option value="purple">Purple</option>
|
||||
<option value="deep-purple">Deep-purple</option>
|
||||
<option value="indigo">Indigo</option>
|
||||
<option value="blue">Blue</option>
|
||||
<option value="light-blue">Light-blue</option>
|
||||
<option value="cyan">Cyan</option>
|
||||
<option value="teal">Teal</option>
|
||||
<option value="green">Green</option>
|
||||
<option value="light-green">Light-green</option>
|
||||
<option value="lime">Lime</option>
|
||||
<option value="yellow">Yellow</option>
|
||||
<option value="amber">Amber</option>
|
||||
<option value="orange">Orange</option>
|
||||
<option value="deep-orange">Deep-orange</option>
|
||||
<option value="brown">Brown</option>
|
||||
<option value="grey">Grey</option>
|
||||
<option value="blue-grey">Blue-grey</option>
|
||||
<option value="black">Black</option>
|
||||
<option value="white">White</option>
|
||||
<option value="transparent">Transparent</option>
|
||||
</select>
|
||||
<label>Select color</label>
|
||||
</div>
|
||||
<div class="input-field col s3">
|
||||
<select id="modifier" onchange="updateColor()">
|
||||
<option value="" selected>None</option>
|
||||
<option value="lighten">lighten</option>
|
||||
<option value="darken">darken</option>
|
||||
<option value="accent">accent</option>
|
||||
</select>
|
||||
<label>Select Modifier</label>
|
||||
</div>
|
||||
<div class="input-field col s3">
|
||||
<select id="strength" onchange="updateColor()">
|
||||
<option value="" disabled selected>Strength</option>
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
<label>Select Strength</label>
|
||||
</div>
|
||||
<div class="input-field col s3">
|
||||
<select id="tcolor" onchange="updateColor()">
|
||||
<option value="" disabled selected>Textcolor</option>
|
||||
<option value="black-text">Black</option>
|
||||
<option value="white-text">White</option>
|
||||
</select>
|
||||
<label>Select Textcolor</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<textarea id="howtoplay" onchange="updateHowToPlay()" class="materialize-textarea"></textarea>
|
||||
<label for="howtoplay">Text to describe how to play</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<select id="goodRoles" onchange="updateGoodRoles()" multiple>
|
||||
<option value="" disabled> Choose your option </option>
|
||||
<?php
|
||||
$files = glob("roles/en/*.php");
|
||||
$count = 1;
|
||||
|
||||
foreach ($files as $filename) {
|
||||
include $filename;
|
||||
|
||||
$shortname = substr($filename, 9);
|
||||
$shortname = substr($shortname, 0, -4);
|
||||
echo "<option value=".$count.">".ucfirst($shortname)."</option>";
|
||||
$count++;
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<label>Select good Roles that go with this role</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<textarea id="credits" class="materialize-textarea"></textarea>
|
||||
<label for="credits">Drop your credits here!</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s6">
|
||||
<textarea id="gconvars" class="materialize-textarea"></textarea>
|
||||
<label for="convars">Paste your general convars</label>
|
||||
</div>
|
||||
<div class="input-field col s6">
|
||||
<textarea id="cconvars" class="materialize-textarea"></textarea>
|
||||
<label for="convars">Paste your role specific convars</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<button class="btn waves-effect waves-light" type="submit" name="action">Submit <i class="material-icons right">send</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Cardpreview -->
|
||||
<div class="col s6">
|
||||
<div class="blurry">
|
||||
<div id="rolecard" class="card">
|
||||
<div class="card-content">
|
||||
<span class="card-title" id="cardname"></span>
|
||||
<p id="carddescription"></p>
|
||||
</div>
|
||||
<ul class="collapsible black-text white">
|
||||
<li class="active">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">help_outline</i>How to Play
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<pre id="thowtoplay">Soup</pre>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">check</i>Plays best with
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<span>
|
||||
<ul id="tplaysbestwith">
|
||||
</ul>
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">code</i>Convars
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<pre >Normal Role Convars (also found in ULX):
|
||||
<code id="cvars"></code>
|
||||
|
||||
Rolespecific Convars:
|
||||
<code id="rcvars"></code></pre>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">whatshot</i>Credits
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<span>Main Creator: <a id="authorurl" href="{AUTHORURL}">{AUTHORNAME}</a>
|
||||
<br>
|
||||
<pre id="credits"></pre>
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">link</i>Links
|
||||
</div>
|
||||
<div class="center collapsible-body">
|
||||
<span>
|
||||
<a id="steamurl" href="">Steam Workshop</a>
|
||||
<br>
|
||||
<a id="githuburl" href="">Github Source</a>
|
||||
</div>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Updatescript -->
|
||||
<script>
|
||||
function updateName() {
|
||||
document.getElementById("cardname").innerHTML = $('#name').val();
|
||||
}
|
||||
|
||||
function updateHowToPlay() {
|
||||
document.getElementById("thowtoplay").innerHTML = $('#howtoplay').val();
|
||||
}
|
||||
|
||||
function createMenuItem(name) {
|
||||
let li = document.createElement('li');
|
||||
li.textContent = name;
|
||||
return li;
|
||||
}
|
||||
|
||||
function updateGoodRoles() {
|
||||
goodRoles = $('#goodRoles').val();
|
||||
goodRoles.forEach(element => document.getElementById("tplaysbestwith").appendChild(createMenuItem(element)); )
|
||||
);
|
||||
}
|
||||
|
||||
function updateDescription() {
|
||||
document.getElementById("carddescription").innerHTML = $('#description').val();
|
||||
}
|
||||
|
||||
function updateColor() {
|
||||
document.getElementById("rolecard").className = "card " + $('#rolecolor').val() +" "+ $('#modifier').val() +"-"+ $('#strength').val() + " " + $('#tcolor').val();
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<!-- Start Tab init -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('select').formSelect();
|
||||
$('.collapsible').collapsible();
|
||||
M.updateTextFields();
|
||||
});
|
||||
</script>
|
||||
<!-- End Tab init -->
|
||||
<!--JavaScript at end of body for optimized loading-->
|
||||
<script type="text/javascript" src="js/materialize.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TTT2 Role Adder</title>
|
||||
<meta name="description" content="Add a new TTT2 Role">
|
||||
<meta name="author" content="James">
|
||||
<meta property="og:title" content="TTT2 Role Adder">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://ttt.james-things.com">
|
||||
<meta property="og:description" content="All TTT2 Roles documented halfheartedly">
|
||||
<meta property="og:image" content="https://e7.pngegg.com/pngimages/710/403/png-clipart-the-embodiment-of-scarlet-devil-team-shanghai-alice-video-game-banjo-tooie-mario-luigi-partners-in-time-marisa-logo-computer-wallpaper.png">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||
<!--MATERIALIZE-->
|
||||
<!--Import jQuery-->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<!--Import Google Icon Font-->
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<!--Import materialize.css-->
|
||||
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection" />
|
||||
<!--My Custom Stylesheet-->
|
||||
<link rel="stylesheet" href="css/styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="row">
|
||||
<div class="col s6">
|
||||
<div class="card-panel white">
|
||||
<form>
|
||||
<div class="row">
|
||||
<div class="input-field col s3">
|
||||
<input id="name" type="text" onchange="updateName()" class="validate">
|
||||
<label for="name">Rolename</label>
|
||||
</div>
|
||||
<div class="input-field col s9">
|
||||
<input id="description" type="text" onchange="updateDescription()">
|
||||
<label for="description">Roledescription</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s3">
|
||||
<select id="rolecolor" onchange="updateColor()">
|
||||
<option value="" disabled selected>Color</option>
|
||||
<option value="red">Red</option>
|
||||
<option value="pink">Pink</option>
|
||||
<option value="purple">Purple</option>
|
||||
<option value="deep-purple">Deep-purple</option>
|
||||
<option value="indigo">Indigo</option>
|
||||
<option value="blue">Blue</option>
|
||||
<option value="light-blue">Light-blue</option>
|
||||
<option value="cyan">Cyan</option>
|
||||
<option value="teal">Teal</option>
|
||||
<option value="green">Green</option>
|
||||
<option value="light-green">Light-green</option>
|
||||
<option value="lime">Lime</option>
|
||||
<option value="yellow">Yellow</option>
|
||||
<option value="amber">Amber</option>
|
||||
<option value="orange">Orange</option>
|
||||
<option value="deep-orange">Deep-orange</option>
|
||||
<option value="brown">Brown</option>
|
||||
<option value="grey">Grey</option>
|
||||
<option value="blue-grey">Blue-grey</option>
|
||||
<option value="black">Black</option>
|
||||
<option value="white">White</option>
|
||||
<option value="transparent">Transparent</option>
|
||||
</select>
|
||||
<label>Select color</label>
|
||||
</div>
|
||||
<div class="input-field col s3">
|
||||
<select id="modifier" onchange="updateColor()">
|
||||
<option value="" selected>None</option>
|
||||
<option value="lighten">lighten</option>
|
||||
<option value="darken">darken</option>
|
||||
<option value="accent">accent</option>
|
||||
</select>
|
||||
<label>Select Modifier</label>
|
||||
</div>
|
||||
<div class="input-field col s3">
|
||||
<select id="strength" onchange="updateColor()">
|
||||
<option value="" disabled selected>Strength</option>
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
<label>Select Strength</label>
|
||||
</div>
|
||||
<div class="input-field col s3">
|
||||
<select id="tcolor" onchange="updateColor()">
|
||||
<option value="" disabled selected>Textcolor</option>
|
||||
<option value="black-text">Black</option>
|
||||
<option value="white-text">White</option>
|
||||
</select>
|
||||
<label>Select Textcolor</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<textarea id="howtoplay" onchange="updateHowToPlay()" class="materialize-textarea"></textarea>
|
||||
<label for="howtoplay">Text to describe how to play</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<select id="goodRoles" onchange="updateGoodRoles()" multiple>
|
||||
<option value="" disabled> Choose your option </option>
|
||||
<?php
|
||||
$files = glob("roles/en/*.php");
|
||||
$count = 1;
|
||||
|
||||
foreach ($files as $filename) {
|
||||
include $filename;
|
||||
|
||||
$shortname = substr($filename, 9);
|
||||
$shortname = substr($shortname, 0, -4);
|
||||
echo "<option value=".$count.">".ucfirst($shortname)."</option>";
|
||||
$count++;
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<label>Select good Roles that go with this role</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<textarea id="credits" class="materialize-textarea"></textarea>
|
||||
<label for="credits">Drop your credits here!</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s6">
|
||||
<textarea id="gconvars" class="materialize-textarea"></textarea>
|
||||
<label for="convars">Paste your general convars</label>
|
||||
</div>
|
||||
<div class="input-field col s6">
|
||||
<textarea id="cconvars" class="materialize-textarea"></textarea>
|
||||
<label for="convars">Paste your role specific convars</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<button class="btn waves-effect waves-light" type="submit" name="action">Submit <i class="material-icons right">send</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Cardpreview -->
|
||||
<div class="col s6">
|
||||
<div class="blurry">
|
||||
<div id="rolecard" class="card">
|
||||
<div class="card-content">
|
||||
<span class="card-title" id="cardname"></span>
|
||||
<p id="carddescription"></p>
|
||||
</div>
|
||||
<ul class="collapsible black-text white">
|
||||
<li class="active">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">help_outline</i>How to Play
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<pre id="thowtoplay">Soup</pre>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">check</i>Plays best with
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<span>
|
||||
<ul id="tplaysbestwith">
|
||||
</ul>
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">code</i>Convars
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<pre >Normal Role Convars (also found in ULX):
|
||||
<code id="cvars"></code>
|
||||
|
||||
Rolespecific Convars:
|
||||
<code id="rcvars"></code></pre>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">whatshot</i>Credits
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<span>Main Creator: <a id="authorurl" href="{AUTHORURL}">{AUTHORNAME}</a>
|
||||
<br>
|
||||
<pre id="credits"></pre>
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">link</i>Links
|
||||
</div>
|
||||
<div class="center collapsible-body">
|
||||
<span>
|
||||
<a id="steamurl" href="">Steam Workshop</a>
|
||||
<br>
|
||||
<a id="githuburl" href="">Github Source</a>
|
||||
</div>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Updatescript -->
|
||||
<script>
|
||||
function updateName() {
|
||||
document.getElementById("cardname").innerHTML = $('#name').val();
|
||||
}
|
||||
|
||||
function updateHowToPlay() {
|
||||
document.getElementById("thowtoplay").innerHTML = $('#howtoplay').val();
|
||||
}
|
||||
|
||||
function createMenuItem(name) {
|
||||
let li = document.createElement('li');
|
||||
li.textContent = name;
|
||||
return li;
|
||||
}
|
||||
|
||||
function updateGoodRoles() {
|
||||
goodRoles = $('#goodRoles').val();
|
||||
goodRoles.forEach(element => document.getElementById("tplaysbestwith").appendChild(createMenuItem(element)); )
|
||||
);
|
||||
}
|
||||
|
||||
function updateDescription() {
|
||||
document.getElementById("carddescription").innerHTML = $('#description').val();
|
||||
}
|
||||
|
||||
function updateColor() {
|
||||
document.getElementById("rolecard").className = "card " + $('#rolecolor').val() +" "+ $('#modifier').val() +"-"+ $('#strength').val() + " " + $('#tcolor').val();
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<!-- Start Tab init -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('select').formSelect();
|
||||
$('.collapsible').collapsible();
|
||||
M.updateTextFields();
|
||||
});
|
||||
</script>
|
||||
<!-- End Tab init -->
|
||||
<!--JavaScript at end of body for optimized loading-->
|
||||
<script type="text/javascript" src="js/materialize.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,68 +1,68 @@
|
||||
html {
|
||||
/* background: url("https://cutewallpaper.org/21/gmod-backgrounds/Garrys-Mod-Ttt-Addons-Kesho-Wazo.jpg") no-repeat center center fixed; */
|
||||
background: url("https://img4.goodfon.com/wallpaper/nbig/2/39/tokho-toukhou-devushka-fon-mech.jpg") no-repeat center center fixed;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
|
||||
--scrollbarBG: #CFD8DC00;
|
||||
--thumbBG: #90A4AE00;
|
||||
}
|
||||
body::-webkit-scrollbar {
|
||||
width: 0px;
|
||||
}
|
||||
body {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: var(--thumbBG) var(--scrollbarBG);
|
||||
}
|
||||
body::-webkit-scrollbar-track {
|
||||
background: var(--scrollbarBG);
|
||||
}
|
||||
body::-webkit-scrollbar-thumb {
|
||||
background-color: var(--thumbBG) ;
|
||||
border-radius: 6px;
|
||||
border: 3px solid var(--scrollbarBG);
|
||||
}
|
||||
|
||||
.card {
|
||||
border-top-right-radius: 42px;
|
||||
opacity: 0.9;
|
||||
background: url("data:image/png;base64,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") repeat center center;
|
||||
}
|
||||
|
||||
.blurry {
|
||||
backdrop-filter: blur(7px) !important;
|
||||
}
|
||||
|
||||
.sidenav-overlay {
|
||||
backdrop-filter: blur(10px) !important;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
||||
overflow-x: auto;
|
||||
white-space: pre-wrap;
|
||||
white-space: -moz-pre-wrap;
|
||||
white-space: -pre-wrap;
|
||||
white-space: -o-pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
pre code {
|
||||
color: #fff;
|
||||
background-color: #aaa;
|
||||
border: 1px solid #999;
|
||||
display: block;
|
||||
padding: 5px;
|
||||
overflow-x: auto;
|
||||
white-space: pre-wrap;
|
||||
white-space: -moz-pre-wrap;
|
||||
white-space: -pre-wrap;
|
||||
white-space: -o-pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.background img {
|
||||
width: 100%;
|
||||
}
|
||||
html {
|
||||
/* background: url("https://cutewallpaper.org/21/gmod-backgrounds/Garrys-Mod-Ttt-Addons-Kesho-Wazo.jpg") no-repeat center center fixed; */
|
||||
background: url("https://img4.goodfon.com/wallpaper/nbig/2/39/tokho-toukhou-devushka-fon-mech.jpg") no-repeat center center fixed;
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
|
||||
--scrollbarBG: #CFD8DC00;
|
||||
--thumbBG: #90A4AE00;
|
||||
}
|
||||
body::-webkit-scrollbar {
|
||||
width: 0px;
|
||||
}
|
||||
body {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: var(--thumbBG) var(--scrollbarBG);
|
||||
}
|
||||
body::-webkit-scrollbar-track {
|
||||
background: var(--scrollbarBG);
|
||||
}
|
||||
body::-webkit-scrollbar-thumb {
|
||||
background-color: var(--thumbBG) ;
|
||||
border-radius: 6px;
|
||||
border: 3px solid var(--scrollbarBG);
|
||||
}
|
||||
|
||||
.card {
|
||||
border-top-right-radius: 42px;
|
||||
opacity: 0.9;
|
||||
background: url("data:image/png;base64,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") repeat center center;
|
||||
}
|
||||
|
||||
.blurry {
|
||||
backdrop-filter: blur(7px) !important;
|
||||
}
|
||||
|
||||
.sidenav-overlay {
|
||||
backdrop-filter: blur(10px) !important;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
||||
overflow-x: auto;
|
||||
white-space: pre-wrap;
|
||||
white-space: -moz-pre-wrap;
|
||||
white-space: -pre-wrap;
|
||||
white-space: -o-pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
pre code {
|
||||
color: #fff;
|
||||
background-color: #aaa;
|
||||
border: 1px solid #999;
|
||||
display: block;
|
||||
padding: 5px;
|
||||
overflow-x: auto;
|
||||
white-space: pre-wrap;
|
||||
white-space: -moz-pre-wrap;
|
||||
white-space: -pre-wrap;
|
||||
white-space: -o-pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.background img {
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -1,231 +1,231 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TTT2 Role Overview</title>
|
||||
<meta name="description" content="All TTT2 Roles halfheartedly documented">
|
||||
<meta name="author" content="James">
|
||||
<meta property="og:title" content="TTT2 Role Overview">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://ttt.james-things.com">
|
||||
<meta property="og:description" content="All TTT2 Roles documented halfheartedly">
|
||||
<meta property="og:image" content="https://e7.pngegg.com/pngimages/710/403/png-clipart-the-embodiment-of-scarlet-devil-team-shanghai-alice-video-game-banjo-tooie-mario-luigi-partners-in-time-marisa-logo-computer-wallpaper.png">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||
|
||||
|
||||
|
||||
<!--MATERIALIZE-->
|
||||
<!--Import jQuery-->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<!--Import Google Icon Font-->
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<!--Import materialize.css-->
|
||||
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection"/>
|
||||
|
||||
<!--My Custom Stylesheet-->
|
||||
<link rel="stylesheet" href="css/styles.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
<ul id="slide-out" class="sidenav">
|
||||
|
||||
<li>
|
||||
<div class="user-view">
|
||||
<div class="background">
|
||||
<img src="https://external-preview.redd.it/7j49A5chcbjitz5C6QHYbZ80EW4QMKPO7dEZwJDu2PM.jpg?auto=webp&s=3d2518085b02a5e80dcb34c31479499d2e9a14d1">
|
||||
</div>
|
||||
<div class="blurry">
|
||||
<a href="https://steamcommunity.com/workshop/filedetails/?id=1737053146"><span class="center white-text name">TTT2 Role Overview</span></a>
|
||||
<a href="https://steamcommunity.com/id/truebaka/"><span class="center white-text email">Made by James</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li><a href="https://discord.gg/Npcbb4W">Official TTT2 Discord</a></li>
|
||||
<li><div class="divider"></div></li>
|
||||
<li><a class="subheader">Roles</a></li>
|
||||
|
||||
<?php
|
||||
$defaultlanguage = "en";
|
||||
|
||||
# Get language from URL
|
||||
if(isset($_GET["lang"])) {
|
||||
$language = $_GET["lang"];
|
||||
} else {
|
||||
$language = $defaultlanguage;
|
||||
}
|
||||
|
||||
#Check if Language folder exists
|
||||
if(file_exists("roles/".$language."/")) {
|
||||
$files = glob("roles/".$language."/*.php");
|
||||
} else {
|
||||
$language = $defaultlanguage;
|
||||
$files = glob("roles/".$language."/*.php");
|
||||
}
|
||||
#Get all files from the language folder
|
||||
sort($files);
|
||||
|
||||
foreach ($files as $filename) {
|
||||
include $filename;
|
||||
|
||||
$shortname = substr($filename, 9);
|
||||
$shortname = substr($shortname, 0, -4);
|
||||
|
||||
echo '
|
||||
<div class="col s12">
|
||||
|
||||
<div class="card-panel '.$color.' '.$tcolor.'-text">
|
||||
<li>
|
||||
<a class="sidenav-close waves-effect '.$tcolor.'-text" href="#'.$shortname.'">
|
||||
<span class="card-title">'.$name.'</span>
|
||||
</a>
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
};
|
||||
?>
|
||||
|
||||
</ul>
|
||||
<div class="fixed-action-btn">
|
||||
<a id="menu" href="#" data-target="slide-out" class="sidenav-trigger btn-floating btn-large waves-effect waves-dark brown"><i class="material-icons">menu</i></a>
|
||||
</div>
|
||||
|
||||
<!-- Tap Target Structure -->
|
||||
<div class="tap-target indigo white-text" data-target="menu">
|
||||
<div class="tap-target-content">
|
||||
<h5 class="center">Menu</h5>
|
||||
<p>You can find an overview to all the Roles over here!</p>
|
||||
<p>Also is it just me or might this be a bit overkill? You know, this huge bubble which informs you about a Menu you probably have found yourself</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<?php
|
||||
$defaultlanguage = "en";
|
||||
|
||||
# Get language from URL
|
||||
if(isset($_GET["lang"])) {
|
||||
$language = $_GET["lang"];
|
||||
} else {
|
||||
$language = $defaultlanguage;
|
||||
}
|
||||
|
||||
#Check if Language folder exists
|
||||
if(file_exists("roles/".$language."/")) {
|
||||
$files = glob("roles/".$language."/*.php");
|
||||
} else {
|
||||
$language = $defaultlanguage;
|
||||
$files = glob("roles/".$language."/*.php");
|
||||
}
|
||||
#Get all files from the language folder
|
||||
|
||||
sort($files);
|
||||
$count = 1;
|
||||
|
||||
foreach ($files as $filename) {
|
||||
include $filename;
|
||||
|
||||
$shortname = substr($filename, 9);
|
||||
$shortname = substr($shortname, 0, -4);
|
||||
/*
|
||||
if ($count%2 == 1)
|
||||
{
|
||||
echo "<div class='row'>";
|
||||
}
|
||||
*/
|
||||
echo '
|
||||
<div class="col s12">
|
||||
<div class="blurry">
|
||||
<div class="card '.$color.' '.$tcolor.'-text">
|
||||
<div class="card-content">
|
||||
<span class="card-title" id="'.$shortname.'">'.$name.'</span>
|
||||
<p>'.$description.'</p>
|
||||
</div>
|
||||
|
||||
<ul class="collapsible black-text white">
|
||||
<li class="active">
|
||||
<div class="collapsible-header"><i class="material-icons">help_outline</i>How to Play</div>
|
||||
<div class="collapsible-body"><pre>'.$howtoplay.'</pre></div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header"><i class="material-icons">check</i>Plays best with</div>
|
||||
<div class="collapsible-body"><span>'.$playsbestwith.'</span></div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header"><i class="material-icons">code</i>Convars</div>
|
||||
<div class="collapsible-body"><pre>'.$convars.'</pre></div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header"><i class="material-icons">whatshot</i>Credits</div>
|
||||
<div class="collapsible-body"><span>Main Creator: <a href="'.$authorurl.'">'.$author.'</a><br><pre>'.$ctext.'</pre></span></div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header"><i class="material-icons">link</i>Links</div>
|
||||
<div class="center collapsible-body">
|
||||
<span>
|
||||
<a href="'.$steam.' ">Steam Workshop</a>
|
||||
<br>
|
||||
<a href="'.$source.'">Github Source</a></div>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
|
||||
/*
|
||||
if ($count%2 == 0)
|
||||
{
|
||||
echo "</div>";
|
||||
}
|
||||
$count++;
|
||||
*/
|
||||
}
|
||||
// if ($count%2 != 1) echo "</div>";
|
||||
?>
|
||||
</div>
|
||||
<footer class="page-footer indigo">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col l6 s12">
|
||||
<h5 class="white-text">Thanks for using this list</h5>
|
||||
<p class="grey-text text-lighten-4">You might not think of it, but the fact that you are reading this is allready confirmation enough, that this project was worth the weight</p> <!-- Also bonus points for reading the source ;) -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-copyright indigo darken-1">
|
||||
<div class="container">
|
||||
© <?php echo date("Y"); ?> Jesse James Isler
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- Start Tab init -->
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$('.collapsible').collapsible();
|
||||
// $('.tabs').tabs();
|
||||
$('.sidenav').sidenav();
|
||||
$('.tap-target').tapTarget();
|
||||
$('.tap-target').tapTarget('open');
|
||||
});
|
||||
</script>
|
||||
<!-- End Tab init -->
|
||||
|
||||
|
||||
|
||||
|
||||
<!--JavaScript at end of body for optimized loading-->
|
||||
<script type="text/javascript" src="js/materialize.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>TTT2 Role Overview</title>
|
||||
<meta name="description" content="All TTT2 Roles halfheartedly documented">
|
||||
<meta name="author" content="James">
|
||||
<meta property="og:title" content="TTT2 Role Overview">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://ttt.james-things.com">
|
||||
<meta property="og:description" content="All TTT2 Roles documented halfheartedly">
|
||||
<meta property="og:image" content="https://e7.pngegg.com/pngimages/710/403/png-clipart-the-embodiment-of-scarlet-devil-team-shanghai-alice-video-game-banjo-tooie-mario-luigi-partners-in-time-marisa-logo-computer-wallpaper.png">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||
|
||||
|
||||
|
||||
<!--MATERIALIZE-->
|
||||
<!--Import jQuery-->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<!--Import Google Icon Font-->
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<!--Import materialize.css-->
|
||||
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection"/>
|
||||
|
||||
<!--My Custom Stylesheet-->
|
||||
<link rel="stylesheet" href="css/styles.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
<ul id="slide-out" class="sidenav">
|
||||
|
||||
<li>
|
||||
<div class="user-view">
|
||||
<div class="background">
|
||||
<img src="https://external-preview.redd.it/7j49A5chcbjitz5C6QHYbZ80EW4QMKPO7dEZwJDu2PM.jpg?auto=webp&s=3d2518085b02a5e80dcb34c31479499d2e9a14d1">
|
||||
</div>
|
||||
<div class="blurry">
|
||||
<a href="https://steamcommunity.com/workshop/filedetails/?id=1737053146"><span class="center white-text name">TTT2 Role Overview</span></a>
|
||||
<a href="https://steamcommunity.com/id/truebaka/"><span class="center white-text email">Made by James</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li><a href="https://discord.gg/Npcbb4W">Official TTT2 Discord</a></li>
|
||||
<li><div class="divider"></div></li>
|
||||
<li><a class="subheader">Roles</a></li>
|
||||
|
||||
<?php
|
||||
$defaultlanguage = "en";
|
||||
|
||||
# Get language from URL
|
||||
if(isset($_GET["lang"])) {
|
||||
$language = $_GET["lang"];
|
||||
} else {
|
||||
$language = $defaultlanguage;
|
||||
}
|
||||
|
||||
#Check if Language folder exists
|
||||
if(file_exists("roles/".$language."/")) {
|
||||
$files = glob("roles/".$language."/*.php");
|
||||
} else {
|
||||
$language = $defaultlanguage;
|
||||
$files = glob("roles/".$language."/*.php");
|
||||
}
|
||||
#Get all files from the language folder
|
||||
sort($files);
|
||||
|
||||
foreach ($files as $filename) {
|
||||
include $filename;
|
||||
|
||||
$shortname = substr($filename, 9);
|
||||
$shortname = substr($shortname, 0, -4);
|
||||
|
||||
echo '
|
||||
<div class="col s12">
|
||||
|
||||
<div class="card-panel '.$color.' '.$tcolor.'-text">
|
||||
<li>
|
||||
<a class="sidenav-close waves-effect '.$tcolor.'-text" href="#'.$shortname.'">
|
||||
<span class="card-title">'.$name.'</span>
|
||||
</a>
|
||||
</li>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
};
|
||||
?>
|
||||
|
||||
</ul>
|
||||
<div class="fixed-action-btn">
|
||||
<a id="menu" href="#" data-target="slide-out" class="sidenav-trigger btn-floating btn-large waves-effect waves-dark brown"><i class="material-icons">menu</i></a>
|
||||
</div>
|
||||
|
||||
<!-- Tap Target Structure -->
|
||||
<div class="tap-target indigo white-text" data-target="menu">
|
||||
<div class="tap-target-content">
|
||||
<h5 class="center">Menu</h5>
|
||||
<p>You can find an overview to all the Roles over here!</p>
|
||||
<p>Also is it just me or might this be a bit overkill? You know, this huge bubble which informs you about a Menu you probably have found yourself</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<?php
|
||||
$defaultlanguage = "en";
|
||||
|
||||
# Get language from URL
|
||||
if(isset($_GET["lang"])) {
|
||||
$language = $_GET["lang"];
|
||||
} else {
|
||||
$language = $defaultlanguage;
|
||||
}
|
||||
|
||||
#Check if Language folder exists
|
||||
if(file_exists("roles/".$language."/")) {
|
||||
$files = glob("roles/".$language."/*.php");
|
||||
} else {
|
||||
$language = $defaultlanguage;
|
||||
$files = glob("roles/".$language."/*.php");
|
||||
}
|
||||
#Get all files from the language folder
|
||||
|
||||
sort($files);
|
||||
$count = 1;
|
||||
|
||||
foreach ($files as $filename) {
|
||||
include $filename;
|
||||
|
||||
$shortname = substr($filename, 9);
|
||||
$shortname = substr($shortname, 0, -4);
|
||||
/*
|
||||
if ($count%2 == 1)
|
||||
{
|
||||
echo "<div class='row'>";
|
||||
}
|
||||
*/
|
||||
echo '
|
||||
<div class="col s12">
|
||||
<div class="blurry">
|
||||
<div class="card '.$color.' '.$tcolor.'-text">
|
||||
<div class="card-content">
|
||||
<span class="card-title" id="'.$shortname.'">'.$name.'</span>
|
||||
<p>'.$description.'</p>
|
||||
</div>
|
||||
|
||||
<ul class="collapsible black-text white">
|
||||
<li class="active">
|
||||
<div class="collapsible-header"><i class="material-icons">help_outline</i>How to Play</div>
|
||||
<div class="collapsible-body"><pre>'.$howtoplay.'</pre></div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header"><i class="material-icons">check</i>Plays best with</div>
|
||||
<div class="collapsible-body"><span>'.$playsbestwith.'</span></div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header"><i class="material-icons">code</i>Convars</div>
|
||||
<div class="collapsible-body"><pre>'.$convars.'</pre></div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header"><i class="material-icons">whatshot</i>Credits</div>
|
||||
<div class="collapsible-body"><span>Main Creator: <a href="'.$authorurl.'">'.$author.'</a><br><pre>'.$ctext.'</pre></span></div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header"><i class="material-icons">link</i>Links</div>
|
||||
<div class="center collapsible-body">
|
||||
<span>
|
||||
<a href="'.$steam.' ">Steam Workshop</a>
|
||||
<br>
|
||||
<a href="'.$source.'">Github Source</a></div>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
|
||||
/*
|
||||
if ($count%2 == 0)
|
||||
{
|
||||
echo "</div>";
|
||||
}
|
||||
$count++;
|
||||
*/
|
||||
}
|
||||
// if ($count%2 != 1) echo "</div>";
|
||||
?>
|
||||
</div>
|
||||
<footer class="page-footer indigo">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col l6 s12">
|
||||
<h5 class="white-text">Thanks for using this list</h5>
|
||||
<p class="grey-text text-lighten-4">You might not think of it, but the fact that you are reading this is allready confirmation enough, that this project was worth the weight</p> <!-- Also bonus points for reading the source ;) -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-copyright indigo darken-1">
|
||||
<div class="container">
|
||||
© <?php echo date("Y"); ?> Jesse James Isler
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- Start Tab init -->
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$('.collapsible').collapsible();
|
||||
// $('.tabs').tabs();
|
||||
$('.sidenav').sidenav();
|
||||
$('.tap-target').tapTarget();
|
||||
$('.tap-target').tapTarget('open');
|
||||
});
|
||||
</script>
|
||||
<!-- End Tab init -->
|
||||
|
||||
|
||||
|
||||
|
||||
<!--JavaScript at end of body for optimized loading-->
|
||||
<script type="text/javascript" src="js/materialize.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,92 +1,92 @@
|
||||
<?php
|
||||
#
|
||||
# COLORS
|
||||
#
|
||||
|
||||
# Text Color
|
||||
$tcolor = 'white';
|
||||
# This is the color defined by https://materializecss.com/color.html
|
||||
$color = 'grey darken-4';
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# BASEINFO
|
||||
#
|
||||
|
||||
#The Name of the Role
|
||||
$name = 'Hidden';
|
||||
#The Description of the Role, HTML conform :)
|
||||
$description = 'A terrifying threat stalks the shadows';
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# TABS
|
||||
#
|
||||
|
||||
#How To play
|
||||
$howtoplay = "The Hidden is a neutral killer role. The Hidden must activate their powers to start killing, they do this by pressing reload (default 'R').
|
||||
|
||||
After activating their powers, they become invisible, lose the ability to use guns, gain the Climber item, gain bonus HP, and gain a speed boost. Their vision changes and they gain wall hacks when standing still. Finally, it is announced to everyone that they are the Hidden.
|
||||
|
||||
Their knife works like the Traitor weapon, dealing melee damage and is capable of being thrown. If the Hidden doesn't pick up their knife, it returns to them after a short delay.
|
||||
|
||||
Their stun grenade causes those in its Area of Effect to have an intense motion blur effect for a short duration. It will restock after a delay.
|
||||
|
||||
After the Hidden takes enough damage, they become partially visible, return to complete invisibility after a delay.
|
||||
|
||||
If the Hidden is killed, their death is announced to everyone.";
|
||||
#With what roles does this role play best?
|
||||
$playsbestwith = '
|
||||
<ul>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<ul>
|
||||
';
|
||||
#Convars
|
||||
$convars = "Normal Role Convars (also found in ULX):
|
||||
<code># enable or disable this role
|
||||
ttt_hidden_enabled [0/1] (default: 1)
|
||||
# the percentage of players that are spawned as this role
|
||||
ttt_hidden_pct [0.0..1.0] (default 0.15)
|
||||
# the limit of players that spawn as this role each round, this overwrites the percentage
|
||||
ttt_hidden_max [0.0..n] (default: 1)
|
||||
# the probility each round of this role being spawned at all
|
||||
ttt_hidden_random [0..100] (default: 33)
|
||||
# the amount of players needed for this role to spawn
|
||||
ttt_hidden_min_players: [0..n] (default: 6)</code>
|
||||
|
||||
Rolespecific Convars:
|
||||
<code># the delay before the hidden's knife returns after being thrown
|
||||
ttt2_hdn_knife_delay (default: 15)
|
||||
# the delay before the hidden's grenade restocks
|
||||
ttt2_hdn_nade_delay (default: 30)
|
||||
# the duration of the hidden's stun grenade's effect
|
||||
ttt2_hdn_stun_duration (default: 5)</code>";
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Credits
|
||||
#
|
||||
|
||||
#The Steam URL to your addon
|
||||
$steam = '';
|
||||
#The Source URL to your addon
|
||||
$source = '';
|
||||
|
||||
#Creator of the Addon
|
||||
$author = 'Wasted';
|
||||
#Creatorlink
|
||||
$authorurl = 'https://steamcommunity.com/id/Zzzaaaccc13';
|
||||
|
||||
# Credittext (can use the above variables)
|
||||
$ctext = "Wasted: creator of this role addon
|
||||
The Hidden Source[www.hidden-source.com]: Inspiration for role
|
||||
fortune: creator of the port of The Hidden gamemode for Garry's Mod whose vision effect I used for this role.";
|
||||
|
||||
?>
|
||||
<?php
|
||||
#
|
||||
# COLORS
|
||||
#
|
||||
|
||||
# Text Color
|
||||
$tcolor = 'white';
|
||||
# This is the color defined by https://materializecss.com/color.html
|
||||
$color = 'grey darken-4';
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# BASEINFO
|
||||
#
|
||||
|
||||
#The Name of the Role
|
||||
$name = 'Hidden';
|
||||
#The Description of the Role, HTML conform :)
|
||||
$description = 'A terrifying threat stalks the shadows';
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# TABS
|
||||
#
|
||||
|
||||
#How To play
|
||||
$howtoplay = "The Hidden is a neutral killer role. The Hidden must activate their powers to start killing, they do this by pressing reload (default 'R').
|
||||
|
||||
After activating their powers, they become invisible, lose the ability to use guns, gain the Climber item, gain bonus HP, and gain a speed boost. Their vision changes and they gain wall hacks when standing still. Finally, it is announced to everyone that they are the Hidden.
|
||||
|
||||
Their knife works like the Traitor weapon, dealing melee damage and is capable of being thrown. If the Hidden doesn't pick up their knife, it returns to them after a short delay.
|
||||
|
||||
Their stun grenade causes those in its Area of Effect to have an intense motion blur effect for a short duration. It will restock after a delay.
|
||||
|
||||
After the Hidden takes enough damage, they become partially visible, return to complete invisibility after a delay.
|
||||
|
||||
If the Hidden is killed, their death is announced to everyone.";
|
||||
#With what roles does this role play best?
|
||||
$playsbestwith = '
|
||||
<ul>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<ul>
|
||||
';
|
||||
#Convars
|
||||
$convars = "Normal Role Convars (also found in ULX):
|
||||
<code># enable or disable this role
|
||||
ttt_hidden_enabled [0/1] (default: 1)
|
||||
# the percentage of players that are spawned as this role
|
||||
ttt_hidden_pct [0.0..1.0] (default 0.15)
|
||||
# the limit of players that spawn as this role each round, this overwrites the percentage
|
||||
ttt_hidden_max [0.0..n] (default: 1)
|
||||
# the probility each round of this role being spawned at all
|
||||
ttt_hidden_random [0..100] (default: 33)
|
||||
# the amount of players needed for this role to spawn
|
||||
ttt_hidden_min_players: [0..n] (default: 6)</code>
|
||||
|
||||
Rolespecific Convars:
|
||||
<code># the delay before the hidden's knife returns after being thrown
|
||||
ttt2_hdn_knife_delay (default: 15)
|
||||
# the delay before the hidden's grenade restocks
|
||||
ttt2_hdn_nade_delay (default: 30)
|
||||
# the duration of the hidden's stun grenade's effect
|
||||
ttt2_hdn_stun_duration (default: 5)</code>";
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Credits
|
||||
#
|
||||
|
||||
#The Steam URL to your addon
|
||||
$steam = '';
|
||||
#The Source URL to your addon
|
||||
$source = '';
|
||||
|
||||
#Creator of the Addon
|
||||
$author = 'Wasted';
|
||||
#Creatorlink
|
||||
$authorurl = 'https://steamcommunity.com/id/Zzzaaaccc13';
|
||||
|
||||
# Credittext (can use the above variables)
|
||||
$ctext = "Wasted: creator of this role addon
|
||||
The Hidden Source[www.hidden-source.com]: Inspiration for role
|
||||
fortune: creator of the port of The Hidden gamemode for Garry's Mod whose vision effect I used for this role.";
|
||||
|
||||
?>
|
||||
|
Loading…
Reference in New Issue