Cześć!
Mam zamiar zrobić w prostej gierce przeglądarkowej misje, w której po kliknięciu odpowiedniej misji, włączy się licznik, a po jego zakończeniu wyskoczy wiadomość z rezultatem.
Rozkminiłem to tak:
Kliknięcie w przycisk zadania -> wpisanie do rekordu koniec zadania -> jeśli obecna data jest większa lub równa dacie z rekordu dodaje nam monety i ustawia domyślny rekord końca misji.
Dodałem skrypt, który odświeża diva z monetami co 500ms, zastanawiam się, czy to może spowodować jakieś serwerowe lagi?
Czy do każdego buttona potrzebuje kolejnej funkcji?
Proszę również o jakieś uwagi co do kodu, w celu ulepszenia :)
Z góry dzięki!
$(document).ready(function() {
$("#FormSubmit").click(function (e) {
e.preventDefault();
$("#FormSubmit").hide();
var myData = 'content_txt='+ $("#contentText").val(); //build a post data structure
jQuery.ajax({
type: "POST",
url: "re2.php",
dataType:"text",
data:myData,
success:function(response){
$("#responds").append(response);
$("#FormSubmit").show();
},
error:function (xhr, ajaxOptions, thrownError){
$("#FormSubmit").show();
alert(thrownError);
}
});
});
});
function refresh_div() {
jQuery.ajax({
url:'re3.php',
type:'POST',
success:function(results) {
jQuery(".result").html(results);
}
});
}
t = setInterval(refresh_div,500);
re2.php
<?php
$username = "root"; //mysql username
$password = ""; //mysql password
$hostname = "localhost"; //hostname
$databasename = 'gra'; //databasename
//connect to database
$mysqli = new mysqli($hostname, $username, $password, $databasename);
$zero = "0000-00-00 00:00:00";
$time = date('Y-m-d H:i:s', strtotime('+10 second'));
$data = date('Y-m-d H:i:s');
$check = $mysqli->query("SELECT koniec FROM gracze WHERE nick = 'domin' ");
while($row = $check->fetch_assoc())
{
$kuniec = $row["koniec"];
}
if($kuniec!=$zero){
echo "Aktualnie robisz zadanie";
} else{
$tez = $mysqli->query("UPDATE gracze SET koniec = '$time' WHERE nick = 'domin'");
}
?>
re3.php
<?php
$username = "root"; //mysql username
$password = ""; //mysql password
$hostname = "localhost"; //hostname
$databasename = 'gra'; //databasename
//connect to database
$mysqli = new mysqli($hostname, $username, $password, $databasename);
$check = $mysqli->query("SELECT koniec FROM gracze WHERE nick = 'domin' ");
while($row = $check->fetch_assoc())
{
$time = $row["koniec"];
}
$zero = "0000-00-00 00:00:00";
$data = date('Y-m-d H:i:s');
$datetime1 = date_create($time);
$datetime2 = date_create($data);
$left = date_diff($datetime1,$datetime2);
$dodaj = $mysqli->query("SELECT monety FROM gracze WHERE nick = 'domin' ");
while($row = $dodaj->fetch_assoc())
{
echo $row["monety"];
if($time != $zero){
echo 'Do końca misji pozostało: '.$left->format("%s");
}
}
if($time<=$data && $time != $zero){
$tez = $mysqli->query("UPDATE gracze SET koniec = '$zero' WHERE nick = 'domin'");
$dodaj = $mysqli->query("UPDATE gracze SET monety = monety + 1 WHERE nick = 'domin'");
}
?>