Added PHP
This commit is contained in:
parent
62f982a2b0
commit
0c43dc4efd
|
|
@ -0,0 +1,95 @@
|
|||
body {
|
||||
background-image: url("../images/wool.jpg");
|
||||
}
|
||||
|
||||
#login {
|
||||
position: fixed;
|
||||
width: 520;
|
||||
background-color: floralwhite;
|
||||
font-family: 'Electrolize', sans-serif;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
border-color: #35170B;
|
||||
border-width: 5;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
#register {
|
||||
position: fixed;
|
||||
width: 520;
|
||||
background-color: floralwhite;
|
||||
font-family: 'Electrolize', sans-serif;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
border-color: #35170B;
|
||||
border-width: 5;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
#login_button {
|
||||
font-family: 'Electrolize', sans-serif;
|
||||
background-color: #35170B;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#register_button {
|
||||
font-family: 'Electrolize', sans-serif;
|
||||
background-color: #35170B;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
p {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 1.5em;
|
||||
color: #35170B;
|
||||
}
|
||||
|
||||
.change {
|
||||
margin-top: 5px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 1em;
|
||||
color: #35170B;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.change:hover {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 1em;
|
||||
color: #FF6E35;
|
||||
}
|
||||
|
||||
.form {
|
||||
width: 400;
|
||||
margin-left: 60;
|
||||
font-size: 1.5em;
|
||||
text-align: center;
|
||||
border-color: #35170B;
|
||||
border-width: 1;
|
||||
border-style: solid;
|
||||
color: #35170B;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 500;
|
||||
margin-left: 10;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-touch-callout: none;
|
||||
/* iOS Safari */
|
||||
-webkit-user-select: none;
|
||||
/* Safari */
|
||||
-khtml-user-select: none;
|
||||
/* Konqueror HTML */
|
||||
-moz-user-select: none;
|
||||
/* Firefox */
|
||||
-ms-user-select: none;
|
||||
/* Internet Explorer/Edge */
|
||||
user-select: none;
|
||||
/* Non-prefixed version, currently supported by Chrome and Opera */
|
||||
}
|
||||
|
|
@ -39,6 +39,14 @@ body {
|
|||
padding: 4;
|
||||
}
|
||||
|
||||
#playerinfo {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
top: 0;
|
||||
color: floralwhite;
|
||||
}
|
||||
|
||||
#selectItem {
|
||||
position: fixed;
|
||||
border: 1px, solid, black;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
<title>Factory</title>
|
||||
<title>Factory Master</title>
|
||||
<!-- Google Font -->
|
||||
<link href="https://fonts.googleapis.com/css?family=Electrolize" rel="stylesheet">
|
||||
<link rel="stylesheet" type="text/css" href="css/cssreset.css">
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
??? Dollar
|
||||
</span>
|
||||
<span style="position: fixed;color: white" id="speed"></span>
|
||||
<div style="margin-left: 250px"><textarea id="textarea"></textarea><button id="save">save</button><button id="load">load</button></div>
|
||||
<div id="playerinfo"><span id="lastsave">Last Save 10Min ago</span><br><button id="forcesave">Force Save</button><button id="logout">Logout</button></div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,93 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
<title>Factory Master</title>
|
||||
<!-- Google Font -->
|
||||
<link href="https://fonts.googleapis.com/css?family=Electrolize" rel="stylesheet">
|
||||
<link rel="stylesheet" type="text/css" href="css/cssreset.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/login.css">
|
||||
<link rel="stylesheet" href="jquery-ui/jquery-ui.min.css">
|
||||
<!-- Libs -->
|
||||
<script src="js/libs/jquery.js"></script>
|
||||
<script src="js/libs/copyCSS.js"></script>
|
||||
<script src="js/libs/js.cookie.js"></script>
|
||||
<script src="jquery-ui/jquery-ui.min.js"></script>
|
||||
<!-- Own scripts-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="login">
|
||||
<img class="logo" draggable="false" src="images/logo.svg"><br><br>
|
||||
<p>Username:</p><input class="form" id="login_username"></input><br><br>
|
||||
<p>Password:</p><input class="form" id="login_password" type="password"></input><br><br>
|
||||
<button class="form" id="login_button">Login</button>
|
||||
<p class="change">Register?</p>
|
||||
</div>
|
||||
<div id="register">
|
||||
<img class="logo" draggable="false" src="images/logo.svg"><br><br>
|
||||
<p>Username:</p><input class="form" id="register_username"></input><br><br>
|
||||
<p>Password:</p><input class="form" id="register_password1" type="password"></input><br><br>
|
||||
<p>Repeat Password:</p><input class="form" id="register_password2" type="password"></input><br><br>
|
||||
<button class="form" id="register_button">Register</button>
|
||||
<p class="change">Login?</p>
|
||||
</div>
|
||||
<script>
|
||||
$(window).resize(function() {
|
||||
style();
|
||||
})
|
||||
$(document).ready(function() {
|
||||
style();
|
||||
$("#register").hide()
|
||||
})
|
||||
|
||||
function style() {
|
||||
var loginMarginTop = (window.innerHeight - $('#login').outerHeight()) / 2
|
||||
var loginMarginLeft = (window.innerWidth - $('#login').outerWidth()) / 2
|
||||
$('#login').css('margin-top', loginMarginTop)
|
||||
$('#login').css('margin-left', loginMarginLeft)
|
||||
var registerMarginTop = (window.innerHeight - $('#register').outerHeight()) / 2
|
||||
var registerMarginLeft = (window.innerWidth - $('#register').outerWidth()) / 2
|
||||
$('#register').css('margin-top', registerMarginTop)
|
||||
$('#register').css('margin-left', registerMarginLeft)
|
||||
}
|
||||
|
||||
$("#login_button").click(function() {
|
||||
$.get("php/login.php?username=" + $("#login_username").val() + "&password=" + $("#login_password").val(), function(data) {
|
||||
if (JSON.parse(data).status == "error") {
|
||||
$("#login").css("background-color", "red")
|
||||
} else {
|
||||
$("#login").css("background-color", "green")
|
||||
window.location.replace("game.html")
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
$("#register_button").click(function() {
|
||||
$("#register_username").css("background-color", "white")
|
||||
$("#register_password1").css("background-color", "white")
|
||||
$("#register_password2").css("background-color", "white")
|
||||
$.get("php/register.php?username=" + $("#register_username").val() + "&password1=" + $("#register_password1").val() + "&password2=" + $("#register_password2").val(), function(data) {
|
||||
if (JSON.parse(data).status == "error") {
|
||||
$("#register").css("background-color", "red")
|
||||
} else if (JSON.parse(data).status == "succes") {
|
||||
$("#login").css("background-color", "green")
|
||||
window.location.replace("game.html")
|
||||
} else {
|
||||
$("#register_" + JSON.parse(data).status).css("background-color", "red")
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
$(".change").click(function() {
|
||||
$("#login").toggle()
|
||||
$("#register").toggle()
|
||||
})
|
||||
$(document).keypress(function(e){
|
||||
if(e.which == 13){
|
||||
$("button:visible").click()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
90
js/game.js
90
js/game.js
|
|
@ -5,6 +5,7 @@ var money = 100
|
|||
var items = []
|
||||
|
||||
var time = 0
|
||||
var gametime = 0
|
||||
var timestep = 1000 / 48
|
||||
var delta = 0
|
||||
var lastFrameTimeMs = 0
|
||||
|
|
@ -22,14 +23,21 @@ var mode = "none"
|
|||
|
||||
var renderItems = true
|
||||
|
||||
var playername = "Player"
|
||||
var lastsave = 0
|
||||
|
||||
$(document).ready(function() {
|
||||
$("#save").click(function() {
|
||||
$("#forcesave").click(function() {
|
||||
save()
|
||||
$("#textarea").val(JSON.stringify(game))
|
||||
})
|
||||
$("#load").click(function() {
|
||||
game = JSON.parse($("#textarea").val())
|
||||
loadGameData()
|
||||
$("#logout").click(function() {
|
||||
$.get("php/logout.php", function(data) {
|
||||
window.location.replace("index.html")
|
||||
})
|
||||
})
|
||||
$.get("php/playerdata.php", function(data) {
|
||||
if (JSON.parse(data).status == "nologin")
|
||||
window.location.replace("index.html")
|
||||
})
|
||||
loadGameData()
|
||||
loadItems()
|
||||
|
|
@ -47,6 +55,7 @@ $(window).on("beforeunload", function() {
|
|||
function save() {
|
||||
game = {}
|
||||
game.money = money
|
||||
game.gametime = gametime
|
||||
game.inventory = []
|
||||
for (var i = 0; i < inventory.items.length; i++) {
|
||||
game.inventory.push(inventory.items[i].id)
|
||||
|
|
@ -81,40 +90,64 @@ function save() {
|
|||
}
|
||||
}
|
||||
Cookies.set("game", JSON.stringify(game))
|
||||
$.ajax({
|
||||
url: 'php/savegame.php',
|
||||
type: 'POST',
|
||||
data: {
|
||||
gamedata: JSON.stringify(game),
|
||||
"gametime": gametime
|
||||
},
|
||||
success: function(result) {
|
||||
console.log(result)
|
||||
if (JSON.parse(result).status == "succes") {
|
||||
lastsave = new Date().getTime()
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadGameData() {
|
||||
lastsave = new Date().getTime()
|
||||
//Keine Save Vorhanden
|
||||
factorys.push(new Factory())
|
||||
inventory = new Inventory()
|
||||
//game = Cookies.get("game")
|
||||
if (game != 0) {
|
||||
//game = JSON.parse(game)
|
||||
money = game.money
|
||||
inventory = new Inventory()
|
||||
factorys = []
|
||||
for (var i = 0; i < game.inventory.length; i++) {
|
||||
inventory.addItem(new Item(game.inventory[i]))
|
||||
$.get("php/playerdata.php", function(data) {
|
||||
if (JSON.parse(data).gametime != undefined) {
|
||||
game = JSON.parse(data)
|
||||
} else {
|
||||
game = 0
|
||||
}
|
||||
for (var i = 0; i < game.factorys.length; i++) {
|
||||
factorys.push(new Factory)
|
||||
for (var x = 0; x < 25; x++) {
|
||||
for (var y = 0; y < 12; y++) {
|
||||
if (game.factorys[i].tiles[x][y] != 0) {
|
||||
var keys = Object.keys(game.factorys[i].tiles[x][y])
|
||||
factorys[i].tiles[x][y] = new tileClasses[game.factorys[i].tiles[x][y].i](game.factorys[i].tiles[x][y].x, game.factorys[i].tiles[x][y].y)
|
||||
factorys[i].tiles[x][y].factory = factorys[i]
|
||||
for (var key = 0; key < keys.length; key++) {
|
||||
if (keys[key] == "d")
|
||||
factorys[i].tiles[x][y].direction = d[game.factorys[i].tiles[x][y]["d"]]
|
||||
else
|
||||
factorys[i].tiles[x][y][keys[key]] = game.factorys[i].tiles[x][y][keys[key]]
|
||||
if (game != 0) {
|
||||
//game = JSON.parse(game)
|
||||
console.log("Loading Game")
|
||||
money = game.money
|
||||
gametime = game.gametime
|
||||
inventory = new Inventory()
|
||||
factorys = []
|
||||
for (var i = 0; i < game.inventory.length; i++) {
|
||||
inventory.addItem(new Item(game.inventory[i]))
|
||||
}
|
||||
for (var i = 0; i < game.factorys.length; i++) {
|
||||
factorys.push(new Factory)
|
||||
for (var x = 0; x < 25; x++) {
|
||||
for (var y = 0; y < 12; y++) {
|
||||
if (game.factorys[i].tiles[x][y] != 0) {
|
||||
var keys = Object.keys(game.factorys[i].tiles[x][y])
|
||||
factorys[i].tiles[x][y] = new tileClasses[game.factorys[i].tiles[x][y].i](game.factorys[i].tiles[x][y].x, game.factorys[i].tiles[x][y].y)
|
||||
factorys[i].tiles[x][y].factory = factorys[i]
|
||||
for (var key = 0; key < keys.length; key++) {
|
||||
if (keys[key] == "d")
|
||||
factorys[i].tiles[x][y].direction = d[game.factorys[i].tiles[x][y]["d"]]
|
||||
else
|
||||
factorys[i].tiles[x][y][keys[key]] = game.factorys[i].tiles[x][y][keys[key]]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadItems() {
|
||||
|
|
@ -177,6 +210,7 @@ var tick = []
|
|||
function gametick(timestep) {
|
||||
//time gibt an in den Wievielten von 40 Ticks man sich befindet
|
||||
time++
|
||||
gametime++
|
||||
time = time % 48
|
||||
//Wird 40 mal in einer Sekunde aufgerufen
|
||||
for (var i = 0; i < factorys.length; i++) {
|
||||
|
|
@ -189,6 +223,9 @@ function gametick(timestep) {
|
|||
tick = tick.splice(1)
|
||||
$("#speed").text("Game Speed: " + ((tick[47] - tick[0] + 30) / 10) + "%")
|
||||
}
|
||||
if (Math.round((new Date().getTime() - lastsave) / 60000) > 5 && lastsave != 0) {
|
||||
save()
|
||||
}
|
||||
}
|
||||
|
||||
function render() {
|
||||
|
|
@ -293,6 +330,7 @@ function render() {
|
|||
if (mode == "showmore") {
|
||||
drawBigInventory(inventory)
|
||||
}
|
||||
$('#lastsave').text("last save " + Math.round((new Date().getTime() - lastsave) / 60000) + "min ago")
|
||||
}
|
||||
|
||||
function getItemFormId(id) {
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ class Quarry extends Tile {
|
|||
this.hasNoInventory = true
|
||||
this.cost = [{
|
||||
"id": 0,
|
||||
"count": 10000
|
||||
"count": 5000
|
||||
}, {
|
||||
"id": 2,
|
||||
"count": 50
|
||||
|
|
|
|||
|
|
@ -12,7 +12,11 @@ $(document).ready(function() {
|
|||
})
|
||||
|
||||
function style() {
|
||||
var screenMarginTop = window.innerHeight - 912
|
||||
var top = 0
|
||||
if (window.innerHeight < 910) {
|
||||
top = 43
|
||||
}
|
||||
var screenMarginTop = window.innerHeight - 912 + top
|
||||
var screenMarginLeft = (window.innerWidth - 1200) / 2
|
||||
var itemCountMarginTop = screenMarginTop + 624
|
||||
var infoMarginLeft = screenMarginLeft + 768
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ function infoDrawRotatedImage(image, x, y, angle) {
|
|||
}
|
||||
|
||||
function formatCount(c) {
|
||||
if (c == 0)
|
||||
return 0
|
||||
for (var pow = 0; pow < lang.numbers.length; pow++) {
|
||||
if (c / Math.pow(10, pow * 3) >= 1 && c / Math.pow(10, pow * 3) < 1000) {
|
||||
return round(c / Math.pow(10, pow * 3), 3) + lang.numbers[pow]
|
||||
|
|
|
|||
|
|
@ -1,7 +1,36 @@
|
|||
<?php
|
||||
error_reporting(E_ERROR | E_WARNING | E_PARSE);
|
||||
include "mysqldata.php"
|
||||
?>
|
||||
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
$username = $_GET['username'];
|
||||
$passwort = $_GET['password'];
|
||||
if( isset($_GET['username']) && isset($_GET['password']) ){
|
||||
$conn = new mysqli($GLOBALS["sqlservername"], $GLOBALS["sqlusername"], $GLOBALS["sqlpassword"], $GLOBALS["sqldatabase"]);
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
$sql = "SELECT password FROM users WHERE username='".$_GET['username']."'";
|
||||
$result = $conn->query($sql);
|
||||
if ($result->num_rows > 0) {
|
||||
// output data of each row
|
||||
while($row = $result->fetch_assoc()) {
|
||||
if(password_verify($_GET['password'],$row["password"])){
|
||||
$_SESSION["login"] = "true";
|
||||
$_SESSION["username"] = $_GET['username'];
|
||||
echo '{"status": "succes"}';
|
||||
}else{
|
||||
//Wrong PW
|
||||
echo '{"status": "error"}';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//Wrong Username
|
||||
echo '{"status": "error"}';
|
||||
}
|
||||
} else {
|
||||
echo '{"status": "error"}';
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
session_start();
|
||||
session_unset();
|
||||
session_destroy();
|
||||
?>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
//error_reporting(E_ERROR | E_WARNING | E_PARSE);
|
||||
session_start();
|
||||
include "mysqldata.php";
|
||||
if(isset($_SESSION["login"])){
|
||||
if($_SESSION["login"]=="true"){
|
||||
$conn = new mysqli($GLOBALS["sqlservername"], $GLOBALS["sqlusername"], $GLOBALS["sqlpassword"], $GLOBALS["sqldatabase"]);
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
$sql = "SELECT gamedata FROM users WHERE username='".$_SESSION["username"]."'";
|
||||
$result = $conn->query($sql);
|
||||
if ($result->num_rows > 0) {
|
||||
// output data of each row
|
||||
while($row = $result->fetch_assoc()) {
|
||||
echo $row["gamedata"];
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
echo '{"status": "nologin"}';
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
session_start();
|
||||
error_reporting(E_ERROR | E_WARNING | E_PARSE);
|
||||
include "mysqldata.php";
|
||||
|
||||
$pdo = new PDO('mysql:host=' . $GLOBALS["sqlservername"] . ';dbname=' . $GLOBALS["sqldatabase"], $GLOBALS["sqlusername"], $GLOBALS["sqlpassword"]);
|
||||
$error = false;
|
||||
$username = $_GET['username'];
|
||||
$passwort = $_GET['password1'];
|
||||
$passwort2 = $_GET['password2'];
|
||||
|
||||
if(strlen($username) == 0 || strlen($username) > 15) {
|
||||
echo '{"status":"username"}';
|
||||
$error = true;
|
||||
}
|
||||
if(strlen($passwort) == 0 && !$error) {
|
||||
echo '{"status":"password1"}';
|
||||
$error = true;
|
||||
}
|
||||
if($passwort != $passwort2 && !$error) {
|
||||
echo '{"status":"password2"}';
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if(!$error) {
|
||||
$statement = $pdo->prepare("SELECT * FROM users WHERE username = :username");
|
||||
$result = $statement->execute(array('username' => $username));
|
||||
$user = $statement->fetch();
|
||||
if($user !== false) {
|
||||
echo '{"status":"username"}';
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
if(!$error) {
|
||||
$passwort_hash = password_hash($passwort, PASSWORD_DEFAULT);
|
||||
|
||||
$statement = $pdo->prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
|
||||
$result = $statement->execute(array('username' => $username, 'password' => $passwort_hash));
|
||||
|
||||
if($result) {
|
||||
$_SESSION["login"] = "true";
|
||||
$_SESSION["username"] = $_GET['username'];
|
||||
echo '{"status":"succes"}';
|
||||
} else {
|
||||
echo '{"status":"error"}';
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
error_reporting(E_ERROR | E_WARNING | E_PARSE);
|
||||
session_start();
|
||||
include "mysqldata.php";
|
||||
$gamedata = $_POST["gamedata"];
|
||||
$gametime = $_POST["gametime"];
|
||||
if(isset($_SESSION["login"])){
|
||||
if($_SESSION["login"]=="true"){
|
||||
$conn = new mysqli($GLOBALS["sqlservername"], $GLOBALS["sqlusername"], $GLOBALS["sqlpassword"], $GLOBALS["sqldatabase"]);
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
$sql = "SELECT gametime FROM users WHERE username='".$_SESSION["username"]."'";
|
||||
$result = $conn->query($sql);
|
||||
if ($result->num_rows > 0) {
|
||||
// output data of each row
|
||||
while($row = $result->fetch_assoc()) {
|
||||
if( intval($row["gametime"]) < intval($gametime) ){
|
||||
$sql = "UPDATE users SET gamedata = '". $gamedata ."' WHERE username = '".$_SESSION["username"]."'";
|
||||
$result = $conn->query($sql);
|
||||
$sql = "UPDATE users SET gametime = '". $gametime ."' WHERE username = '".$_SESSION["username"]."'";
|
||||
$result = $conn->query($sql);
|
||||
echo '{"status": "succes"}';
|
||||
die();
|
||||
} else {
|
||||
echo '{"status": "old"}';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//Wrong Username
|
||||
echo '{"status": "error"}';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
Loading…
Reference in New Issue