mirror of
https://github.com/foin137/werwolfonline.eu.git
synced 2025-12-12 11:21:22 +00:00
2218 lines
110 KiB
PHP
2218 lines
110 KiB
PHP
<?php
|
|
/*
|
|
|
|
werwolfonline, a php web game
|
|
Copyright (C) 2023
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
?>
|
|
|
|
|
|
<!DOCTYPE html>
|
|
<HTML>
|
|
<head>
|
|
<title>Werwölfe</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta http-equiv="Pragma" content="no-cache">
|
|
<meta http-equiv="Cache-Control" content="no-cache">
|
|
<meta http-equiv="Expires" content="Sat, 01 Dec 2001 00:00:00 GMT">
|
|
<link rel="stylesheet" type="text/css" href="style.css">
|
|
<?php
|
|
require_once('includes/functions.php');
|
|
|
|
//Für die Farben ...
|
|
if (isset($_POST['settings_color']))
|
|
{
|
|
save_local_settings();
|
|
die("Reload please");
|
|
}
|
|
if (isset($_COOKIE['developer']))
|
|
{
|
|
if ($_COOKIE['developer']==1)
|
|
{
|
|
print_r($_COOKIE);
|
|
print_r($_POST);
|
|
}
|
|
}
|
|
if (isset($_COOKIE['back_color_n_r']) && isset ($_COOKIE['back_color_n_g']) && isset ($_COOKIE['back_color_n_b']) && isset ($_COOKIE['back_color_d_r']) && isset ($_COOKIE['back_color_d_g']) && isset ($_COOKIE['back_color_d_b']) && isset ($_COOKIE['color_p_r']) && isset ($_COOKIE['color_p_g']) && isset ($_COOKIE['color_p_b']) && isset ($_COOKIE['color_n_r']) && isset ($_COOKIE['color_n_g']) && isset ($_COOKIE['color_n_b']))
|
|
{
|
|
try{
|
|
|
|
$c_back_n_r = $_COOKIE['back_color_n_r'];
|
|
$c_back_n_g = $_COOKIE['back_color_n_g'];
|
|
$c_back_n_b = $_COOKIE['back_color_n_b'];
|
|
$c_back_d_r = $_COOKIE['back_color_d_r'];
|
|
$c_back_d_g = $_COOKIE['back_color_d_g'];
|
|
$c_back_d_b = $_COOKIE['back_color_d_b'];
|
|
$c_p_r = $_COOKIE['color_p_r'];
|
|
$c_p_g = $_COOKIE['color_p_g'];
|
|
$c_p_b = $_COOKIE['color_p_b'];
|
|
$c_n_r = $_COOKIE['color_n_r'];
|
|
$c_n_g = $_COOKIE['color_n_g'];
|
|
$c_n_b = $_COOKIE['color_n_b'];
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
$c_p_r = 181;//= "#00AA00";
|
|
$c_p_g = 33;
|
|
$c_p_b = 76;
|
|
$c_back_n_r = 60;// = "#404050";
|
|
$c_back_n_g = 60;
|
|
$c_back_n_b = 60;
|
|
$c_back_d_r = 199;//= "#BBAA80";
|
|
$c_back_d_g = 194;
|
|
$c_back_d_b = 149;
|
|
$c_n_r = 86; //= "#3162dd";
|
|
$c_n_g = 132;
|
|
$c_n_b = 247;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$c_p_r = 181;//= "#00AA00";
|
|
$c_p_g = 33;
|
|
$c_p_b = 76;
|
|
$c_back_n_r = 60;// = "#404050";
|
|
$c_back_n_g = 60;
|
|
$c_back_n_b = 60;
|
|
$c_back_d_r =199;//= "#BBAA80";
|
|
$c_back_d_g = 194;
|
|
$c_back_d_b = 149;
|
|
$c_n_r = 86; //= "#3162dd";
|
|
$c_n_g = 132;
|
|
$c_n_b = 247;
|
|
}
|
|
|
|
?>
|
|
<style type="text/css">
|
|
#gameboard {background-color:<?php echo "rgb($c_back_n_r,$c_back_n_g,$c_back_n_b)"; ?>}
|
|
|
|
h3 {
|
|
color:<?php echo "rgb($c_p_r,$c_p_g,$c_p_b)"; ?>;
|
|
font-size:150%;
|
|
}
|
|
p {
|
|
color:<?php echo "rgb($c_n_r,$c_n_g,$c_n_b)"; ?>;
|
|
font-size:100%;
|
|
}
|
|
p.error {
|
|
color:red;
|
|
font-size:100%;
|
|
}
|
|
p#liste {
|
|
color:black;
|
|
font-size:100%;
|
|
line-height:1.2;
|
|
margin:0;
|
|
}
|
|
|
|
</style>
|
|
<link rel="SHORTCUT ICON" href="images/icon.ico" type="image/x-icon">
|
|
</head>
|
|
<body onload="jsstart();">
|
|
<section id="header">
|
|
<h1>Werwolfonline.eu</h1>
|
|
</section>
|
|
<section id="gameboard">
|
|
<?php
|
|
include "includes/includes.php"; //Datenbank
|
|
include "includes/constants.php"; //Hier werden Konstanten für Phasen und Charaktere definiert
|
|
$pageReload = false;
|
|
$listReload = false;
|
|
$aktBeiTime = false; //Bei True aktualisiert der Browser bei Ablauf des Timers
|
|
$displayTag = false; //bei true ändert sich der Hintergrund
|
|
$displayFade = false; //bei true ist die Änderung des Hintergrunds ein Übergang
|
|
$timerZahl = 0; // Gibt die Sekundenanzahl an, von denen Javascript herunterzählen soll.
|
|
$timerAb = 0; //Ab wann Timer und Text angezeigt werdne (Sekunden bis zu dem Zeitpunkt)
|
|
$timerText = ""; //Welcher Text vor dem Timer angezeigt werden soll
|
|
$logButtonAnzeigen = true;
|
|
|
|
|
|
//Schauen, ob wir uns bereits in einem Spiel befinden!
|
|
if (isset($_COOKIE['SpielID']) && isset($_COOKIE['eigeneID']))
|
|
{
|
|
$spielID = (int)$_COOKIE['SpielID'];
|
|
$eigeneID = (int)$_COOKIE['eigeneID'];
|
|
if (isset($_POST['spielLoeschen']))
|
|
{
|
|
//Will der Spieler das Spiel löschen?
|
|
if ($_POST['spielLoeschen'] == 1)
|
|
{
|
|
//Sicherheitshalber auch den Spieler entfernen
|
|
aus_spiel_entfernen((int)$eigeneID,$mysqli);
|
|
toGameLog($mysqli, getName($mysqli,$eigeneID). " hat das Spiel verlassen.");
|
|
//Cookies löschen
|
|
setcookie ("SpielID", 0, time()-172800);
|
|
setcookie ("eigeneID",0, time()-172800);
|
|
start();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Schauen, ob es auch einen Eintrag zu diesem Spiel in der Datenbank gibt...
|
|
$spiel_existiert = True;
|
|
try{
|
|
$alleres = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
|
|
}
|
|
catch (Exception $e) {
|
|
$spiel_existiert = False;
|
|
}
|
|
if($spiel_existiert && isset($alleres->num_rows))
|
|
{
|
|
//Schauen, ob es auch mich als Spieler gibt und meine verifizierungsnr stimmt
|
|
$spielerResult = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID AND verifizierungsnr = ".(int)$_COOKIE['verifizierungsnr']);
|
|
if ($spielerResult->num_rows >= 1)
|
|
{
|
|
|
|
//Zuallererst einmal den letzten Zugriff loggen:
|
|
$mysqli->Query("UPDATE $spielID"."_game SET letzterAufruf = ".time());
|
|
//Wir befinden uns bereits in einem Spiel
|
|
|
|
//Dass wir aber nicht ohne Grund reloaden, setzen wir für uns selbst reload auf false:
|
|
setReloadZero($eigeneID,$mysqli);
|
|
//echo "<p algin='center' class='normal'>Du befindest dich bereits in einem Spiel, Name: ".getName($mysqli,$eigeneID)."</p>";
|
|
$myname = getName($mysqli,$eigeneID);
|
|
echo "<div id='playername'><p class='normal' >Name: ". $myname ."</p></div>";
|
|
|
|
//Nachschauen, ob ich Bürgermeister bin ... Dann nämlich anschreiben ...
|
|
$buergermRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE buergermeister = 1");
|
|
if ($buergermRes->num_rows > 0)
|
|
{
|
|
$buergermAss = $buergermRes->fetch_assoc();
|
|
if ($buergermAss['id']==$eigeneID)
|
|
{
|
|
//Ich bin Bürgermeister
|
|
echo "<p class='normal'>Sie sind Bürgermeister</p>";
|
|
}
|
|
}
|
|
|
|
//Vielleicht will der Spielleiter jemanden entfernen?
|
|
if (isset($_POST['spieler_entfernen']) && isset($_POST['entfernenID']))
|
|
{
|
|
$res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID AND spielleiter = 1");
|
|
if ($res->num_rows > 0)
|
|
{
|
|
aus_spiel_entfernen((int)$_POST['entfernenID'],$mysqli);
|
|
$text = $myname."(Spielleiter) hat ".getName($mysqli,(int)($_POST['entfernenID'])). " aus dem Spiel entfernt.";
|
|
toGameLog($mysqli, $text);
|
|
toAllPlayerLog($mysqli, $text);
|
|
}
|
|
}
|
|
|
|
//Bevor wir noch auf die Phase schauen, schauen wir, ob irgendetwas unabhängig von der Phase ist
|
|
//wie zum Beispiel der Tod des Jägers
|
|
$jaegerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE jaegerDarfSchiessen = 1");
|
|
if ($jaegerRes->num_rows > 0)
|
|
{
|
|
$jaegerA = $jaegerRes->fetch_assoc();
|
|
if ($jaegerA['id']==$eigeneID)
|
|
{
|
|
//Falls wir selbst der Jäger sind, dürfen wir schießen
|
|
if (isset($_POST['jaegerHatAusgewaehlt']))
|
|
{
|
|
toeteSpieler($mysqli, $_POST['jaegerID']);
|
|
//Dann setze jaegerDarfSchiessen wieder auf 0
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET jaegerDarfSchiessen = 0, reload = 1 WHERE id = $eigeneID");
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1");
|
|
$pageReload = true;
|
|
}
|
|
jaegerInitialisiere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
echo "<p >Der Jäger wurde getötet</p>";
|
|
echo "<p class='normal' >Warten auf Jäger</p>";
|
|
$pageReload = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Weiters schauen wir noch, ob der Bürgermeister sein Amt weitergeben muss...
|
|
$buergermeisterRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE buergermeisterDarfWeitergeben = 1");
|
|
$gameAssoc = gameAssoc($mysqli); //Nur Bürgermeister weitergeben, wenn das Spiel noch nicht aus ist
|
|
if ($buergermeisterRes->num_rows > 0 && $gameAssoc['spielphase'] != PHASESIEGEREHRUNG && $gameAssoc['spielphase'] != PHASESPIELSETUP && $gameAssoc['spielphase'] != PHASESETUP)
|
|
{
|
|
//Der Bürgermeister wurde getötet und darf sein Amt weitergeben ...
|
|
$buergermA = $buergermeisterRes->fetch_assoc();
|
|
if ($buergermA['id']==$eigeneID)
|
|
{
|
|
//Falls wir selbst der Jäger sind, dürfen wir schießen
|
|
if (isset($_POST['buergermeisterNachfolger']))
|
|
{
|
|
//Dann setze buergermeisterDarfWeitergeben wieder auf 0
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET buergermeisterDarfWeitergeben = 0, reload = 1 WHERE id = $eigeneID");
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1");
|
|
$neuerBuergermeister = (int)$_POST['buergermeisterID'];
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET buergermeister = 1 WHERE id = $neuerBuergermeister");
|
|
toGameLog($mysqli,getName($mysqli,$neuerBuergermeister)." wurde als Nachfolger des Bürgermeisters eingesetzt.");
|
|
toAllPlayerLog($mysqli,getName($mysqli,$neuerBuergermeister)." wurde als Nachfolger des Bürgermeisters eingesetzt.");
|
|
$pageReload = true;
|
|
}
|
|
buergermeisterInitialisiere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
echo "<p >Der Bürgermeister wurde getötet</p>";
|
|
echo "<p class='normal' >Er darf sein Amt weitergeben</p>";
|
|
$pageReload = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Die weitere Vorgehensweise kommt auf die Phase des Spiels an:
|
|
$gameResult = $mysqli->Query("SELECT * FROM $spielID"."_game");
|
|
//echo $mysqli->error;
|
|
$gameResAssoc = $gameResult->fetch_assoc();
|
|
$phase = $gameResAssoc['spielphase'];
|
|
|
|
if ($phase == PHASENACHTBEGINN)
|
|
{
|
|
$displayTag = false; //bei true ändert sich der Hintergrund
|
|
$displayFade = true;
|
|
}
|
|
elseif ($phase > PHASENACHTBEGINN && $phase < PHASENACHTENDE)
|
|
{
|
|
$displayTag = false;
|
|
$displayFade = false;
|
|
}
|
|
elseif ($phase == PHASENACHTENDE)
|
|
{
|
|
$displayTag = true;
|
|
$displayFade = true;
|
|
}
|
|
else
|
|
{
|
|
$displayTag = true;
|
|
$displayFade = false;
|
|
}
|
|
|
|
//Nachschauen, ob ich noch lebe ;)
|
|
$ass = eigeneAssoc($mysqli);
|
|
if ($phase >= PHASENACHTBEGINN && $phase <= PHASENACHABSTIMMUNG && $ass['lebt'] == 0)
|
|
{
|
|
//Falls ich tot bin, zeige
|
|
binTot($mysqli);
|
|
$listReload = true;
|
|
}
|
|
else
|
|
{
|
|
if ($phase == PHASESETUP)
|
|
{
|
|
//In Phase 0 hat der Spielleiter die Möglichkeit, die Regeln zu bearbeiten.
|
|
if (isset($_POST['spielEditieren']))
|
|
{
|
|
spielRegeln($mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Grundsätzlich sollte in dieser Phase jeder responden:
|
|
$pageReload = true;
|
|
|
|
//Zuerst die Regeln aktualisieren, falls sie bearbeitet wurden
|
|
if ($eigeneID == 0 && isset($_POST['editierenAuswahl']))
|
|
spielRegelnAnwenden($mysqli);
|
|
|
|
//Phase 0 = Setup und Spielersuchen -> Zeige daher eine Liste der Spieler an
|
|
echo "<BR><h2>$spielID</h2><BR><p class='normal' >Mit dieser Zahl können andere Ihrem Spiel beitreten!</p>";
|
|
|
|
//Der Spielleiter bekommt zusätzlich einen Button angezeigt, mit dem er die Einstellungen bearbeiten kann.
|
|
$eigRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID");
|
|
$eigAss = $eigRes->fetch_assoc();
|
|
if ($eigAss['spielleiter'] == 1)
|
|
{
|
|
echo '<form action="Werwolf.php" method="post">
|
|
<input type="hidden" name="spielEditieren" value=1 />
|
|
<p class="normal" align="center">Sie als Spielleiter erhalten die Möglichkeit, die Regeln des Spiels zu bearbeiten:
|
|
<input type="submit" value = "Regeln bearbeiten"/></p>
|
|
</form>
|
|
<form action="Werwolf.php" method="post">
|
|
<input type="hidden" name="spielStarten" value=1 />
|
|
<p class="normal" align="center">
|
|
<input type="submit" value = "Spiel starten ;)"/></p>
|
|
</form>';
|
|
}
|
|
|
|
//Zeige alle Spieler in einer Liste an--> Alt, wird jz via javascript gelöst
|
|
echo "<BR><h3>Spieler in diesem Spiel:</h3>";
|
|
$spieleranzahlQuery = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
|
|
$spielerzahl = $spieleranzahlQuery->num_rows; //und zähle mit
|
|
//Die Liste wird mit Javascript erstellt
|
|
echo "<form name='list'><div id='listdiv'></div></form>";
|
|
$listReload = true; //Dass unsere Liste refresht wird ;)
|
|
echo "<h3 >Spieleranzahl: $spielerzahl</h3>";
|
|
|
|
//Falls der Spielleiter das Spiel beginnenlassen will:
|
|
if (isset($_POST['spielStarten']))
|
|
{
|
|
spielInitialisieren($mysqli,$spielerzahl);
|
|
}
|
|
}
|
|
}
|
|
elseif ($phase == PHASESPIELSETUP)
|
|
{
|
|
//Jedem einen Button anzeigen, dass er bereit ist.
|
|
//Wenn er noch nicht zugestimmt hat.
|
|
$pageReload = true;
|
|
$spielerAssoc = $spielerResult->fetch_assoc();
|
|
if ($spielerAssoc['bereit']== 0 && !isset($_POST['bereit']))
|
|
{
|
|
//Zeige Formular zum Klicken auf bereit
|
|
echo '<form action="Werwolf.php" method="post">
|
|
<input type="hidden" name="bereit" value=1 />
|
|
<p class="normal" align = "center">Drücke "bereit", um zu starten!</p>
|
|
<p class="normal" align="center">
|
|
<input type="submit" value = "bereit"/></p>
|
|
</form>';
|
|
}
|
|
else
|
|
{
|
|
if (isset($_POST['bereit']))
|
|
{
|
|
//Der Spieler hat auf den Button gedrückt!
|
|
//markiere das in der Datenbank
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1 WHERE id = $eigeneID");
|
|
//überprüfe, ob alle bereit sind ...
|
|
$bereitRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE bereit = 0");
|
|
if ($bereitRes->num_rows < 1)
|
|
{
|
|
//Alle sind bereit, starte Spiel
|
|
spielStarten($mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Spiel wird noch nicht gestartet, aber die anderen updaten:
|
|
//alleReloadAusser($eigeneID,$mysqli); Ausgeschaltet, weil die Liste über javascript aktualisiert wird
|
|
}
|
|
}
|
|
elseif (isset($_POST['spielBeginnenOhneRuecksicht']))
|
|
{
|
|
spielStarten($mysqli);
|
|
}
|
|
|
|
//Diese Liste wird mit javascript erstellt
|
|
echo "<form name='list'><div id='listdiv'></div></form>";
|
|
$listReload = true; //Dass unsere Liste refresht wird
|
|
echo ("<p >Warte auf andere Spieler ...</p>");
|
|
|
|
//Als Spielleiter sollte man das Spiel "ohne Rücksicht auf Verluste" beginnen können
|
|
if ($eigeneID == 0)
|
|
{
|
|
?><form action="Werwolf.php" method="post">
|
|
<input type="hidden" name="spielBeginnenOhneRuecksicht" value=1 />
|
|
<p class="normal" align="center">
|
|
<input type="submit" value = "Spiel beginnen ohne zu warten" onClick="if (confirm('Wollen Sie das Spiel wirklich starten, ohne auf alle zu warten. Wer noch nicht bereit ist, wird aus dem Spiel gelöscht')==false){return false;}"/></p>
|
|
</form>
|
|
<?php
|
|
}
|
|
}
|
|
}
|
|
elseif ($phase == PHASENACHTBEGINN)
|
|
{
|
|
echo "<p >Die Nacht bricht herein ...</p>";
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['countdownBis']>time())
|
|
{
|
|
//Zeige noch Countdown an ...
|
|
$timerZahl = $eigeneAssoc['countdownBis']-time()+1;
|
|
$timerAb = 0;
|
|
$timerText = "";
|
|
$aktBeiTime = true;
|
|
echo "<div id='timerdiv'></div>";
|
|
}
|
|
else
|
|
{
|
|
$mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASENACHT3);
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
|
|
phaseInitialisieren(PHASENACHT3,$mysqli);
|
|
$pageReload = true;
|
|
}
|
|
}
|
|
elseif ($phase == PHASENACHT1)
|
|
{
|
|
//Amor wählt verliebte aus ...
|
|
characterButton($mysqli);
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['bereit']==1)
|
|
{
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
}
|
|
else
|
|
{
|
|
if ($eigeneAssoc['nachtIdentitaet'] == CHARAMOR)
|
|
{
|
|
//Amor
|
|
if (isset($_POST['amorHatAusgewaehlt']))
|
|
{
|
|
if (amorGueltig($mysqli,$_POST['amorID1'],$_POST['amorID2'])==false)
|
|
{
|
|
amorInitialisiere($mysqli); //Irgendetwas ist schiefgegangen --> wähle nochmals aus
|
|
}
|
|
else
|
|
{
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
setBereit($mysqli,$eigeneID,1);
|
|
phaseBeendenWennAlleBereit(PHASENACHT1,$mysqli);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
amorInitialisiere($mysqli);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Ganz normaler Dorfbewohner
|
|
if (isset($_POST['weiterschlafen']))
|
|
{
|
|
//der Button wurde bereits geklickt
|
|
setBereit($mysqli,$eigeneID,1);
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT1,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//zeige den Button an
|
|
dorfbewohnerWeiterschlafen();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
elseif ($phase == PHASENACHT2)
|
|
{
|
|
//Die Verliebten erwachen ...
|
|
characterButton($mysqli);
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['bereit']==1)
|
|
{
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
}
|
|
else
|
|
{
|
|
if ($eigeneAssoc['verliebtMit'] > -1)
|
|
{
|
|
if (isset($_POST['verliebteWeiter']))
|
|
{
|
|
setBereit($mysqli,$eigeneID,1);
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT2,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Zeige an, mit wem ich verliebt bin
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo "<p class='normal' >Der Pfeil des Amor, der nie sein Ziel verfehlt, trifft Sie und Sie verlieben sich unsterblich ...</p>";
|
|
echo "<p >Sie sind verliebt mit ".getName($mysqli,$eigeneAssoc['verliebtMit'])."</p>";
|
|
echo "<p class='normal' >Sie spielen nun gemeinsam mit Ihrem Geliebten, gehören Sie unterschiedlichen Gruppierungen an,
|
|
gewinnen Sie nur, wenn Sie alle anderen Spieler töten. Ansonsten gewinnen Sie wie gewohnt mit Ihrer Gruppierung (Dorfbewohner, Werwölfe)</p>";
|
|
//Auch den Charakter anzeigen
|
|
$verliebtRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".(int)$eigeneAssoc['verliebtMit']);
|
|
$verliebtAss = $verliebtRes->fetch_assoc();
|
|
echo "<p >Identität: ".nachtidentitaetAlsString($verliebtAss['nachtIdentitaet'])."</p>";
|
|
toPlayerLog($mysqli,getName($mysqli,$eigeneAssoc['verliebtMit'])." ist ".nachtidentitaetAlsString($verliebtAss['nachtIdentitaet']) .".",$eigeneID);
|
|
echo '<input type="hidden" name="verliebteWeiter" value=1 />';
|
|
echo '<p id = "normal" align = "center"><input type="submit" value = "Weiter"/></p></form>';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Ganz normaler Dorfbewohner
|
|
if (isset($_POST['weiterschlafen']))
|
|
{
|
|
//der Button wurde bereits geklickt
|
|
setBereit($mysqli,$eigeneID,1);
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT2,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//zeige den Button an
|
|
dorfbewohnerWeiterschlafen();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
elseif ($phase == PHASENACHT3)
|
|
{
|
|
//Hier erwachen die Werwölfe, die Seherin und können ihre Nachtaktivität ausführen
|
|
//Die anderen Spieler müssen auf einen Button drücken, um als ready zu gelten.
|
|
|
|
characterButton($mysqli); //Zuerst jedem Spieler seinen Charakter zeigen
|
|
|
|
//Schaue nach, welcher Charakter ich bin...
|
|
$spielerResult = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID");
|
|
$spielerAssoc = $spielerResult->fetch_assoc();
|
|
//Falls der Spieler bereit ist, brauche ich nur noch warten auf andere anzeigen
|
|
if ($spielerAssoc['bereit']==1)
|
|
{
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
}
|
|
else
|
|
{
|
|
$identitaet = $spielerAssoc['nachtIdentitaet'];
|
|
if ($identitaet == CHARSEHER)
|
|
{
|
|
//SEHER
|
|
if (isset($_POST['seherHatAusgewaehlt']))
|
|
{
|
|
if (seherSehe($mysqli,$_POST['seherID'])==false)
|
|
{
|
|
//Der Seher hat einen ungültigen Zug gemacht
|
|
//nochmals von vorne
|
|
seherInitialisiere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Der Seher hat erfolgreich ausgewählt --> Schaue, ob wir die Phase schon beenden können
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Der Seher hat noch nicht ausgewählt -> Initialisiere
|
|
seherInitialisiere($mysqli);
|
|
}
|
|
}
|
|
elseif ($identitaet == CHARSPION)
|
|
{
|
|
//Spion
|
|
if (isset($_POST['spionHatAusgewaehlt']) && isset($_POST['spionID']) && isset ($_POST['spionIdentitaet']))
|
|
{
|
|
if (spionSehe($mysqli,$_POST['spionID'],$_POST['spionIdentitaet'])==false)
|
|
{
|
|
//Ungültiger Zug, nochmals von vorne
|
|
spionInitialisiere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Gültiger Zug!
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
spionInitialisiere($mysqli);
|
|
}
|
|
}
|
|
elseif ($identitaet == CHARBESCHUETZER)
|
|
{
|
|
//Beschützer, früher Leibwächter
|
|
if (isset($_POST['beschuetzerHatAusgewaehlt']))
|
|
{
|
|
if (beschuetzerAuswahl($mysqli,$_POST['beschuetzerID'])==false)
|
|
{
|
|
//Ungültig -> nochmal
|
|
beschuetzerInitialisiere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Der Beschützer hat erfolgreich ausgewählt
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
beschuetzerInitialisiere($mysqli);
|
|
}
|
|
}
|
|
elseif ($identitaet == CHARPARERM)
|
|
{
|
|
//Paranormaler Ermittler
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['parErmEingesetzt']==0)
|
|
{
|
|
if (isset($_POST['parErmHatAusgewaehlt']))
|
|
{
|
|
if (parErmAusgewaehlt($mysqli,$_POST['parErmID'])==false)
|
|
{
|
|
//Ungültig
|
|
parErmInitialisiere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Erfolgreich
|
|
setBereit($mysqli,$eigeneID,1);
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli);
|
|
}
|
|
}
|
|
elseif (isset ($_POST['parErmNichtAuswaehlen']))
|
|
{
|
|
//Diese Runde nicht auswählen
|
|
setBereit($mysqli,$eigeneID,1);
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Fragen, ob er einsetzen will
|
|
parErmInitialisiere($mysqli);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Ganz normaler Dorfbewohner
|
|
if (isset($_POST['weiterschlafen']))
|
|
{
|
|
//der Button wurde bereits geklickt
|
|
setBereit($mysqli,$eigeneID,1);
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//zeige den Button an
|
|
dorfbewohnerWeiterschlafen();
|
|
}
|
|
}
|
|
}
|
|
elseif ($identitaet == CHARWERWOLF || $identitaet == CHARURWOLF)
|
|
{
|
|
//WERWÖLFE
|
|
$zeitAbgelaufen = false;
|
|
//Zuerst kontrollieren, ob die Zeit schon ausgelaufen ist
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['countdownBis']<= time())
|
|
{
|
|
//Timer abgelaufen, nachschauen, ob es sich bloß um den Einstimmigkeits-Timer handelt ...
|
|
$gameAssoc = gameAssoc($mysqli);
|
|
if ($gameAssoc['werwolfeinstimmig']==1)
|
|
{
|
|
//Es handelt sich um die Einstimmigkeits-Abstimmung, mal sehen ob wir mehr als 2
|
|
//Werwölfe haben, dann starte einen neuen Timer [Anm.: müssen wir haben, da sonst werwolfeinstimmig gleich auf 0 gesetzt wird]
|
|
//Starte einen neuen Timer, bei dem die Abstimmung nicht mehr einstimmig sein muss ...
|
|
$werwolfQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ".CHARURWOLF.") AND lebt = 1");
|
|
$werwolfzahl = $werwolfQ->num_rows;
|
|
$countdownBis = time()+$gameAssoc['werwolftimer2']+$gameAssoc['werwolfzusatz2']*$werwolfzahl;
|
|
if ($countdownBis >= time()+15)
|
|
$countdownAb = time()+5;
|
|
else
|
|
$countdownAb = time();
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET countdownBis = $countdownBis, countdownAb = $countdownAb WHERE (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ".CHARURWOLF.") AND lebt = 1");
|
|
$mysqli->Query("UPDATE $spielID"."_game SET werwolfeinstimmig = 0");
|
|
|
|
//Timer initialiseren
|
|
$timerZahl = $countdownBis - time()+1;
|
|
$timerAb = $countdownAb - time()+1;
|
|
$aktBeiTime = true;
|
|
$timerText = "Zeit, bis die Abstimmung der Werwölfe zu keinem Ergebnis führen kann: ";
|
|
|
|
//Überprüfe, ob es nicht jetzt schon eine Einstimmigkeit gibt...
|
|
//Die Wahl muss nicht einstimmig sein ...
|
|
$werwolfQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ".CHARURWOLF.") AND lebt = 1");
|
|
$werwolfzahl = $werwolfQ->num_rows;
|
|
$alleSpielerQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
while ($temp = $alleSpielerQ->fetch_assoc())
|
|
{
|
|
$query = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ". CHARURWOLF .") AND wahlAuf = ".$temp['id']);
|
|
if ($query->num_rows > $werwolfzahl/2)
|
|
{
|
|
//Mit Mehrheit beschlossen...
|
|
$opfer = $temp['id'];
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1, reload = 1 WHERE (nachtIdentitaet = ".CHARWERWOLF." OR nachtIdentitaet = ".CHARWERWOLF.")");
|
|
$mysqli->Query("UPDATE $spielID"."_game SET werwolfopfer = $opfer");
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); //Schauen, ob wir die Phase schon beenden können
|
|
toGameLog($mysqli,"Die Wahl der Werwölfe fiel mehrheitlich auf: ".$temp['name']);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Fehlschlag
|
|
$zeitAbgelaufen = true;
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1, reload = 1 WHERE (nachtIdentitaet = ".CHARWERWOLF." OR nachtIdentitaet = ".CHARURWOLF.")");
|
|
$mysqli->Query("UPDATE $spielID"."_game SET werwolfopfer = -1");
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); //Schauen, ob wir die Phase schon beenden können
|
|
toGameLog($mysqli,"Die Werwölfe konnten sich nicht auf ein Opfer einigen ...");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Timer initialiseren
|
|
$timerZahl = $eigeneAssoc['countdownBis'] - time()+1;
|
|
$timerAb = $eigeneAssoc['countdownAb'] - time()+1;
|
|
$aktBeiTime = true;
|
|
$gameAssoc = gameAssoc($mysqli);
|
|
if ($gameAssoc['werwolfeinstimmig']==1)
|
|
$timerText = "Zeit, bis die Abstimmung der Werwölfe nicht mehr einstimmig sein muss: ";
|
|
else
|
|
$timerText = "Zeit, bis die Abstimmung der Werwölfe zu keinem Ergebnis führen kann: ";
|
|
}
|
|
if (isset($_POST['werwolfAuswahl']) && !$zeitAbgelaufen)
|
|
{
|
|
//einmal die Wahl eintragen
|
|
$wahlID = (int)$_POST['werwolfID'];
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = $wahlID WHERE id = $eigeneID");
|
|
|
|
//Schauen, ob wir einstimmig sein müssen
|
|
$gameAssoc = gameAssoc($mysqli);
|
|
if ($gameAssoc['werwolfeinstimmig']==1)
|
|
{
|
|
//Dann schauen, ob schon alle abgestimmt haben
|
|
$einstimmig = 1;
|
|
$opfer = $wahlID;
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
if ($temp['nachtIdentitaet']==CHARWERWOLF || $temp['nachtIdentitaet'] == CHARURWOLF)
|
|
{
|
|
if ($temp['wahlAuf'] != $opfer)
|
|
$einstimmig = 0;
|
|
}
|
|
}
|
|
//Falls einstimmig--> Alle Werwölfe auf bereit setzen und weiter gehts ;)
|
|
if ($einstimmig == 1)
|
|
{
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1, reload = 1 WHERE (nachtIdentitaet = ".CHARWERWOLF. " OR nachtIdentitaet = ". CHARURWOLF.")");
|
|
$mysqli->Query("UPDATE $spielID"."_game SET werwolfopfer = $opfer");
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); //Schauen, ob wir die Phase schon beenden können
|
|
toGameLog($mysqli,"Die Wahl der Werwölfe fiel einstimmig auf: ". getName($mysqli,$opfer));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Die Wahl muss nicht einstimmig sein ...
|
|
$werwolfQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ". CHARURWOLF.") AND lebt = 1");
|
|
$werwolfzahl = $werwolfQ->num_rows;
|
|
$alleSpielerQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
while ($temp = $alleSpielerQ->fetch_assoc())
|
|
{
|
|
$query = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ".CHARURWOLF.") AND wahlAuf = ".$temp['id']);
|
|
if ($query->num_rows > $werwolfzahl/2)
|
|
{
|
|
//Mit Mehrheit beschlossen...
|
|
$opfer = $temp['id'];
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1, reload = 1 WHERE nachtIdentitaet = ".CHARWERWOLF." OR nachtIdentitaet = ".CHARURWOLF);
|
|
$mysqli->Query("UPDATE $spielID"."_game SET werwolfopfer = $opfer");
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); //Schauen, ob wir die Phase schon beenden können
|
|
toGameLog($mysqli,"Die Wahl der Werwölfe fiel mehrheitlich auf: ".$temp['name']);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
echo "<div id = 'timerdiv' ></div><br>";
|
|
echo "<form name='list'><div id='listdiv'></div></form>"; //Die Liste, was die anderen gewählt haben
|
|
$listReload=true;
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo '<input type="hidden" name="werwolfAuswahl" value=1 />';
|
|
echo "<p class='normal' >Für den Tod welches Spielers wollen Sie stimmen?</p>";
|
|
echo "<p ><select name = 'werwolfID' size = 1>";
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
echo "<option value = '".$temp['id']."'>".$temp['name']."</option>";
|
|
}
|
|
echo '</select></p><p id = "normal" align = "center"><input type="submit" value = "Für diesen Spieler stimmen"/></p></form>';
|
|
$gameAssoc = gameAssoc($mysqli);
|
|
if ($gameAssoc['werwolfeinstimmig']==1)
|
|
echo "<p class='normal'>Zur Info: Die Wahl muss einstimmig sein, wählen Sie solange, bis die Wahl einstimmig ist</p>";
|
|
else
|
|
echo "<p class='normal'>Zur Info: Die Mehrheit der Werwölfe bestimmt das Opfer (Einstimmigkeit bei mehr als 2 Spielern ist nicht erforderlich)</p>";
|
|
$pageReload = true; //Falls alle abgestimmt haben
|
|
}
|
|
else
|
|
{
|
|
//Ganz normaler Dorfbewohner
|
|
if (isset($_POST['weiterschlafen']))
|
|
{
|
|
//der Button wurde bereits geklickt
|
|
setBereit($mysqli,$eigeneID,1);
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//zeige den Button an
|
|
dorfbewohnerWeiterschlafen();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
elseif ($phase == PHASENACHT4)
|
|
{
|
|
characterButton($mysqli); //Zuerst jedem Spieler seinen Charakter zeigen
|
|
|
|
//Schaue nach, welcher Charakter ich bin...
|
|
$spielerResult = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID");
|
|
$spielerAssoc = $spielerResult->fetch_assoc();
|
|
//Falls der Spieler bereit ist, brauche ich nur noch warten auf andere anzeigen
|
|
if ($spielerAssoc['bereit']==1)
|
|
{
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
}
|
|
else
|
|
{
|
|
$identitaet = $spielerAssoc['nachtIdentitaet'];
|
|
if ($identitaet == CHARHEXE)
|
|
{
|
|
//Hexe
|
|
if (isset($_POST['hexeAuswahl']))
|
|
{
|
|
if (isset($_POST['hexeHeilen']))
|
|
{
|
|
if ($_POST['hexeHeilen']==1)
|
|
{
|
|
//Die Hexe will das Opfer heilen...
|
|
$eigeneAssoc=eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['hexeHeiltraenke']>0)
|
|
{
|
|
$heilTraenkeNeu = (int)$eigeneAssoc['hexeHeiltraenke']-1;
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET hexeHeiltraenke = $heilTraenkeNeu, hexeHeilt = 1 WHERE id = $eigeneID");
|
|
toPlayerLog($mysqli,"1 Heiltrank verwendet.",$eigeneID);
|
|
toGameLog($mysqli,"Die Hexe heilt das Opfer der Werwölfe.");
|
|
}
|
|
else
|
|
{
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET hexeHeilt = 0 WHERE id = $eigeneID");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET hexeHeilt = 0 WHERE id = $eigeneID");
|
|
}
|
|
}
|
|
//Und jetzt noch schauen wegen Töten ...
|
|
if (isset($_POST['toeten']))
|
|
{
|
|
if ($_POST['toeten'] > -1)
|
|
{
|
|
//Ein Opfer wurde ausgewählt ... schauen, ob wir überhaupt noch Todestrank haben...
|
|
$eigeneAssoc=eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['hexeTodestraenke']>0)
|
|
{
|
|
$todestraenkeNeu = (int)$eigeneAssoc['hexeTodestraenke']-1;
|
|
$hexenOpfer = (int)$_POST['toeten'];
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET hexeTodestraenke = $todestraenkeNeu, hexenOpfer = $hexenOpfer WHERE id = $eigeneID");
|
|
toPlayerLog($mysqli,"1 Todestrank verwendet für Spieler ".getName($mysqli,$hexenOpfer),$eigeneID).".";
|
|
toGameLog($mysqli,"Die Hexe verwendet einen Todestrank, um ".getName($mysqli,$hexenOpfer)." zu töten.");
|
|
}
|
|
else
|
|
{
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET hexenOpfer = -1 WHERE id = $eigeneID");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET hexenOpfer = -1 WHERE id = $eigeneID");
|
|
}
|
|
}
|
|
//Jetzt müssen wir die Hexe noch auf bereit setzen
|
|
setBereit($mysqli,$eigeneID,1);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT4,$mysqli);//Schauen, ob wir schon zur nächsten Phase übergehen können.
|
|
}
|
|
else
|
|
{
|
|
hexeInitialisieren($mysqli);
|
|
}
|
|
}
|
|
elseif ($identitaet == CHARURWOLF)
|
|
{
|
|
if (isset($_POST['urwolfHatAusgewaehlt']) && isset($_POST['urwolfID']))
|
|
{
|
|
if (urwolfHandle($mysqli,$_POST['urwolfID'])==false)
|
|
{
|
|
//Ungültiger Zug, nochmals von vorne
|
|
urwolfInitialisiere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Gültiger Zug!
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT4,$mysqli);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID");
|
|
$a = $res->fetch_assoc();
|
|
if ($a['urwolf_anzahl_faehigkeiten'] > 0)
|
|
{
|
|
urwolfInitialisiere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
if (isset($_POST['weiterschlafen']))
|
|
{
|
|
//der Button wurde bereits geklickt
|
|
setBereit($mysqli,$eigeneID,1);
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT4,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//zeige den Button an
|
|
dorfbewohnerWeiterschlafen();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//keine Besondere Identitaet diese Nacht
|
|
if (isset($_POST['weiterschlafen']))
|
|
{
|
|
//der Button wurde bereits geklickt
|
|
setBereit($mysqli,$eigeneID,1);
|
|
warteAufAndere($mysqli);
|
|
$pageReload = true;
|
|
phaseBeendenWennAlleBereit(PHASENACHT4,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//zeige den Button an
|
|
dorfbewohnerWeiterschlafen();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
elseif ($phase == PHASENACHTENDE)
|
|
{
|
|
echo "<h3 >Es wird Morgen ...</h3>";
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['countdownBis']>time())
|
|
{
|
|
//Zeige noch Countdown an ...
|
|
$timerZahl = $eigeneAssoc['countdownBis']-time()+1;
|
|
$timerAb = 0;
|
|
$timerText = "";
|
|
$aktBeiTime = true;
|
|
echo "<div id='timerdiv'></div>";
|
|
}
|
|
else
|
|
{
|
|
$mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASETOTEBEKANNTGEBEN);
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
|
|
phaseInitialisieren(PHASETOTEBEKANNTGEBEN,$mysqli);
|
|
$pageReload = true;
|
|
}
|
|
}
|
|
elseif ($phase == PHASETOTEBEKANNTGEBEN)
|
|
{
|
|
characterButton($mysqli);
|
|
//Zeige den Tagestext an
|
|
$gameAssoc = gameAssoc($mysqli);
|
|
$tagestext = $gameAssoc['tagestext'];
|
|
echo "<h3 >Der Tag beginnt</h3>";
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
echo "<p >$tagestext</p>";
|
|
if ($eigeneAssoc['popup_text'] != "")
|
|
{
|
|
echo "<br><p >".$eigeneAssoc['popup_text']."</p>";
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET popup_text = '' WHERE id = $eigeneID");
|
|
}
|
|
//Nachsehen, ob es einen Bürgermeister gibt
|
|
$bres = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE buergermeister = 1");
|
|
if ($bres->num_rows > 0)
|
|
{
|
|
//Es gibt einen Bürgermeister --> Dieser kann zur nächsten Phase übergehen
|
|
//Setze mich selbst auf bereit
|
|
//Wenn ich selbst der Bürgermeister bin, kann ich zur nächsten Phase übergehen
|
|
$bass = $bres->fetch_assoc();
|
|
if ($bass['id']==$eigeneID)
|
|
{
|
|
if (isset($_POST['buergermeisterWeiter']))
|
|
{
|
|
$pageReload = true;
|
|
setBereit($mysqli,$eigeneID,1);
|
|
phaseBeendenWennAlleBereit(PHASETOTEBEKANNTGEBEN,$mysqli);
|
|
warteAufAndere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
//$eigeneAssoc = eigeneAssoc($mysqli); schon gemacht
|
|
if ($eigeneAssoc['bereit']==0)
|
|
{
|
|
//Zeige einen Button an, mit dem der Bürgermeister das Spiel fortführen kann
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo '<input type="hidden" name="buergermeisterWeiter" value=1 />';
|
|
echo '<p id = "normal" align = "center"><input type="submit" value = "Weiter"/></p>';
|
|
echo "</form>";
|
|
}
|
|
else
|
|
{
|
|
warteAufAndere($mysqli);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Ich bin nicht Bürgermeister --> Warte, bis es weitergeht
|
|
$pageReload = true;
|
|
setBereit($mysqli,$eigeneID,1);
|
|
phaseBeendenWennAlleBereit(PHASETOTEBEKANNTGEBEN,$mysqli);
|
|
warteAufAndere($mysqli);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Es gibt keinen Bürgermeister --> Jeder muss auf weiter drücken
|
|
if (isset($_POST['dorfbewohnerWeiter']))
|
|
{
|
|
$pageReload = true;
|
|
setBereit($mysqli,$eigeneID,1);
|
|
phaseBeendenWennAlleBereit(PHASETOTEBEKANNTGEBEN,$mysqli);
|
|
warteAufAndere($mysqli);
|
|
}
|
|
else
|
|
{
|
|
//$eigeneAssoc = eigeneAssoc($mysqli); schon gemacht
|
|
if ($eigeneAssoc['bereit']==0)
|
|
{
|
|
//Zeige einen Button an, mit dem der Bürgermeister das Spiel fortführen kann
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo '<input type="hidden" name="dorfbewohnerWeiter" value=1 />';
|
|
echo '<p id = "normal" align = "center"><input type="submit" value = "Weiter"/></p>';
|
|
echo "</form>";
|
|
}
|
|
else
|
|
{
|
|
warteAufAndere($mysqli);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
elseif ($phase == PHASEBUERGERMEISTERWAHL)
|
|
{
|
|
characterButton($mysqli);
|
|
echo "<h3 >Wahl des Bürgermeisters</h3>";
|
|
echo "<p class='normal' >Da es momentan keinen Bürgermeister im Dorf gibt, beschließt das Dorf, einen zu wählen ...</p>";
|
|
echo "<p class='normal' >Fragen Sie in die Runde, wer sich als Bürgermeister aufstellen lassen will und diskutieren Sie jede Bewerbung ...</p>";
|
|
//Bürgermeisterwahl, ähnlich der Werwolfabstimmung
|
|
if (isset($_POST['buergermeisterWahlAuswahl']))
|
|
{
|
|
//einmal die Wahl eintragen
|
|
$wahlID = (int)$_POST['buergermeisterID'];
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = $wahlID WHERE id = $eigeneID");
|
|
//Dann schauen, ob wir schon eine Mehrheit haben
|
|
|
|
//Generiere eine Text zum Anzeigen, wer für wen gestimmt hat
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
$text = "";
|
|
$anzahlSpieler = $alleSpielerRes->num_rows;
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
$w = $temp['wahlAuf'];
|
|
if (!isset($wahlAufSpieler[$w]))
|
|
$wahlAufSpieler[$w] = 0;
|
|
$wahlAufSpieler[$w]++;
|
|
if ($w > -1)
|
|
{
|
|
$text .= $temp['name']." -> ". getName($mysqli,$w). ", ";
|
|
}
|
|
}
|
|
//Schauen, ob jemand mehr als 50% der Stimmen hat
|
|
foreach ($wahlAufSpieler as $id => $stimmen)
|
|
{
|
|
if ($stimmen > $anzahlSpieler/2 && $id > -1)
|
|
{
|
|
//Dieser Spieler hat die Mehrheit
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1");
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET buergermeister = 1 WHERE id = $id");
|
|
toGameLog($mysqli,getName($mysqli,$id)." wurde zum Bürgermeister gewählt, abgestimmt haben: $text");
|
|
toAllPlayerLog($mysqli,getName($mysqli,$id)." wurde zum Bürgermeister gewählt, abgestimmt haben: $text");
|
|
phaseBeendenWennAlleBereit(PHASEBUERGERMEISTERWAHL,$mysqli);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
echo "<form name='list'><div id='listdiv'></div></form>"; //Die Liste, was die anderen gewählt haben
|
|
$listReload=true;
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo '<input type="hidden" name="buergermeisterWahlAuswahl" value=1 />';
|
|
echo "<p class='normal' >Für welchen Spieler als Bürgermeister möchten Sie stimmen?</p>";
|
|
echo "<p ><select name = 'buergermeisterID' size = 1>";
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
echo "<option value = '".$temp['id']."'>".$temp['name']."</option>";
|
|
}
|
|
echo '</select></p><p id = "normal" align = "center"><input type="submit" value = "Für diesen Spieler stimmen"/></p></form>';
|
|
echo "<p class='normal'>Der Bürgermeister beginnt Abstimmungen und erhält bei der Abstimmung des Dorfes jeden Tag eine zusätzliche halbe Stimme.
|
|
Über 50% der Spieler müssen für den Bürgermeister stimmen, damit er gewählt wird</p>";
|
|
echo "</form>";
|
|
$pageReload = true; //Falls alle abgestimmt haben
|
|
}
|
|
elseif ($phase == PHASEDISKUSSION)
|
|
{
|
|
characterButton($mysqli);
|
|
//Diskussion
|
|
//Schauen, ob ich Bürgermeister bin...
|
|
$bres = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE buergermeister = 1");
|
|
$bras = $bres->fetch_assoc();
|
|
if ($bras['id']==$eigeneID)
|
|
{
|
|
//Ich bin Bürgermeister, ich kann zur nächsten Phase übergehen...
|
|
if (isset($_POST['buergermeisterWeiter']))
|
|
{
|
|
$pageReload = true;
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1");
|
|
phaseBeendenWennAlleBereit(PHASEDISKUSSION,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Zeige einen Button an, mit dem der Bürgermeister das Spiel fortführen kann
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo '<input type="hidden" name="buergermeisterWeiter" value=1 />';
|
|
echo '<p id = "normal" align = "center">Sie als Bürgermeister dürfen entscheiden,
|
|
wann es Zeit ist, die Diskussion zu beenden und zu den
|
|
Anklagen überzugehen.<input type="submit" value = "Zu den Anklagen übergehen"/></p>';
|
|
echo "</form>";
|
|
}
|
|
}
|
|
//Alle sehen diesen Text
|
|
echo "<h3 >Diskussion</h3>";
|
|
echo "<p class='normal' >Diskutieren Sie mit, versuchen Sie die Werwölfe zu entlarven, die anderen aber von Ihrer Unschuld zu überzeugen</p>";
|
|
$pageReload = true;
|
|
}
|
|
elseif ($phase == PHASEANKLAGEN)
|
|
{
|
|
characterButton($mysqli);
|
|
//Anklagen
|
|
echo "<form name='list'><div id='listdiv'></div></form>"; //Die Liste der Angeklagten
|
|
$listReload=true;
|
|
$pageReload=true;
|
|
//Jeder, der noch niemanden angeklagt hat, kann jemanden anklagen
|
|
$angeklagtRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE angeklagtVon = $eigeneID");
|
|
if ($angeklagtRes->num_rows > 0)
|
|
{
|
|
//habe bereits jemanden angeklagt
|
|
}
|
|
else
|
|
{
|
|
if (isset($_POST['angeklagterID']))
|
|
{
|
|
//Ich klage gerade jemanden an
|
|
if ($_POST['angeklagterID']!=-1)
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET angeklagtVon = $eigeneID WHERE id = ".(int)$_POST['angeklagterID']);
|
|
}
|
|
else
|
|
{
|
|
//Wen möchte ich anklagen?
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo "<p class='normal' >Wollen Sie einen Spieler anklagen?</p>";
|
|
echo "<p ><select name = 'angeklagterID' size = 1>";
|
|
echo "<option value = '-1'>Niemand</option>";
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
echo "<option value = '".$temp['id']."'>".$temp['name']."</option>";
|
|
}
|
|
echo '</select></p><p id = "normal" align = "center"><input type="submit" value = "Diesen Spieler anklagen"/></p></form>';
|
|
echo "</form>";
|
|
}
|
|
}
|
|
|
|
//Als Bürgermeister habe ich zusätzlich noch die Möglichkeit, zur nächsten Phase zu springen
|
|
$bres = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE buergermeister = 1");
|
|
$bras = $bres->fetch_assoc();
|
|
if ($bras['id']==$eigeneID)
|
|
{
|
|
//Ich bin Bürgermeister, ich kann zur nächsten Phase übergehen...
|
|
if (isset($_POST['buergermeisterWeiter']))
|
|
{
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1");
|
|
phaseBeendenWennAlleBereit(PHASEANKLAGEN,$mysqli);
|
|
}
|
|
else
|
|
{
|
|
//Zeige einen Button an, mit dem der Bürgermeister das Spiel fortführen kann
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo '<input type="hidden" name="buergermeisterWeiter" value=1 />';
|
|
echo '<p id = "normal" align = "center"><input type="submit" value = "Zur Abstimmung übergehen"/></p>';
|
|
echo "<p id = 'normal' align= 'center'>Achten Sie als Bürgermeister darauf, dass alle Angeklagten Zeit haben, sich zu verteidigen.</p>";
|
|
echo "</form>";
|
|
}
|
|
}
|
|
}
|
|
elseif ($phase == PHASEABSTIMMUNG)
|
|
{
|
|
characterButton($mysqli);
|
|
//Abstimmung, bei Mehrheit wird Opfer getötet, sonst Stichwahl
|
|
//Wieder ähnlich wie Abstimmung für Bürgermeister
|
|
echo "<div id='timerdiv'></div><br>";
|
|
echo "<form name='list'><div id='listdiv'></div></form>"; //Die Liste, was die anderen gewählt haben
|
|
$listReload=true;
|
|
$pageReload=true;
|
|
|
|
//Schaue zuerst, ob der timer noch nicht abgelaufen ist
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['countdownBis']<= time())
|
|
{
|
|
//Zeit abgelaufen
|
|
endeDerAbstimmungEinfacheMehrheit(-1,$mysqli);
|
|
toGameLog($mysqli,"Die Versammlung des Dorfes konnte sich nicht auf einen Spieler einigen, den sie töten will.");
|
|
toAllPlayerLog($mysqli,"Die Versammlung des Dorfes konnte sich nicht auf einen Spieler einigen, den sie töten will.");
|
|
}
|
|
else
|
|
{
|
|
$timerText = "Zeit, bis das Dorf zu keinem Ergebnis kommt: ";
|
|
$timerZahl = $eigeneAssoc['countdownBis'] - time()+1;
|
|
$timerAb = $eigeneAssoc['countdownAb']- time()+1;
|
|
$aktBeiTime = true;
|
|
if (isset($_POST['dorfWahlID']))
|
|
{
|
|
//einmal die Wahl eintragen
|
|
$wahlID = (int)$_POST['dorfWahlID'];
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = $wahlID WHERE id = $eigeneID");
|
|
//Dann schauen, ob wir schon eine Mehrheit haben
|
|
$text = "";
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
$anzahlSpieler = $alleSpielerRes->num_rows;
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
$w = $temp['wahlAuf'];
|
|
if (!isset($wahlAufSpieler[$w]))
|
|
$wahlAufSpieler[$w] = 0;
|
|
$wahlAufSpieler[$w]+=1;
|
|
//Falls es der Bürgermeister ist, zusätzliche 1/2 Stimme
|
|
if ($temp['buergermeister']==1)
|
|
$wahlAufSpieler[$w]+=0.5;
|
|
if ($w > -1)
|
|
{
|
|
$text .= $temp['name']." -> ". getName($mysqli,$w). ", ";
|
|
}
|
|
}
|
|
$wahlErfolgreich = 0;
|
|
//Schauen, ob jemand mehr als 50% der Stimmen hat
|
|
foreach ($wahlAufSpieler as $id => $stimmen)
|
|
{
|
|
if ($stimmen > (($anzahlSpieler+0.5)/2) && $id > -1)
|
|
{
|
|
//Dieser Spieler hat die Mehrheit
|
|
toGameLog($mysqli,getName($mysqli,$id)." wurde bei der Abstimmung zum Tode verurteilt, mit den Stimmen: $text");
|
|
toAllPlayerLog($mysqli,getName($mysqli,$id)." wurde vom Dorf zum Tode verurteilt, mit den Stimmen: $text");
|
|
endeDerAbstimmungEinfacheMehrheit($id,$mysqli);
|
|
$wahlErfolgreich = 1;
|
|
break;
|
|
}
|
|
}
|
|
if ($wahlErfolgreich == 0)
|
|
{
|
|
//Es gibt keinen Spieler mit absoluter Mehrheit
|
|
//Nachschauen, ob alle Spieler abgestimmt haben und es genau zwei Spieler mit den meisten Stimmen gibt.
|
|
$abgestimmtRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND wahlAuf = -1");
|
|
if ($abgestimmtRes->num_rows > 0)
|
|
{
|
|
//Es haben noch nicht alle abgestimmt
|
|
}
|
|
else
|
|
{
|
|
//Alle haben abgestimmt, nachschauen, wer die meisten Stimmen hat.
|
|
$maxStimmen = 0;
|
|
$maxStimmenSpieler = -1;
|
|
foreach ($wahlAufSpieler as $id => $stimmen)
|
|
{
|
|
if ($stimmen > $maxStimmen && $id > -1)
|
|
{
|
|
$maxStimmen = $stimmen;
|
|
$maxStimmenSpieler = $id;
|
|
}
|
|
}
|
|
//Jetzt ermittle den zweiten Spieler
|
|
$zweitMaxStimmen = 0;
|
|
$zweitMaxStimmenSpieler = -1;
|
|
foreach ($wahlAufSpieler as $id => $stimmen)
|
|
{
|
|
if ($stimmen > $zweitMaxStimmen && $id != $maxStimmenSpieler && $id > -1)
|
|
{
|
|
$zweitMaxStimmen = $stimmen;
|
|
$zweitMaxStimmenSpieler = $id;
|
|
}
|
|
}
|
|
//Schaue, ob jemand gleich viele Stimmen wie zweitMaxStimmenSpieler hat
|
|
//Wenn dies der Fall ist, gibt es 3 Kandidaten für eine Stichwahl => Nicht möglich ...
|
|
$exequo = false;
|
|
foreach ($wahlAufSpieler as $id => $stimmen)
|
|
{
|
|
if ($stimmen >= $zweitMaxStimmen && $id != $maxStimmenSpieler && $id != $zweitMaxStimmenSpieler && $id > -1)
|
|
{
|
|
$exequo = true;
|
|
}
|
|
}
|
|
if (!$exequo)
|
|
{
|
|
//Starte eine Stichwahl
|
|
endeDerAbstimmungStichwahl($maxStimmenSpieler,$zweitMaxStimmenSpieler,$mysqli);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo "<p class='normal' >Für welchen der angeklagten Spieler möchten Sie stimmen?</p>";
|
|
echo "<p ><select name = 'dorfWahlID' size = 1>";
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND angeklagtVon > -1");
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
echo "<option value = '".$temp['id']."'>".$temp['name']."</option>";
|
|
}
|
|
echo '</select></p><p id = "normal" align = "center"><input type="submit" value = "Für diesen Spieler stimmen"/></p></form>';
|
|
echo "</form>";
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo "<p class='normal' >Sie möchten für einen anderen Spieler stimmen?</p>";
|
|
echo "<p ><select name = 'dorfWahlID' size = 1>";
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
echo "<option value = '".$temp['id']."'>".$temp['name']."</option>";
|
|
}
|
|
echo '</select></p><p id = "normal" align = "center"><input type="submit" value = "Für diesen Spieler stimmen"/></p></form>';
|
|
echo "</form>";
|
|
}
|
|
}
|
|
elseif ($phase == PHASESTICHWAHL)
|
|
{
|
|
characterButton($mysqli);
|
|
//Es kommt zu einer Stichwahl
|
|
echo "<p >Stichwahl</p>";
|
|
echo "<div id='timerdiv'></div><br>";
|
|
echo "<form name='list'><div id='listdiv'></div></form>"; //Die Liste, was die anderen gewählt haben
|
|
$listReload=true;
|
|
$pageReload=true;
|
|
//Schaue zuerst, ob der timer noch nicht abgelaufen ist
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['countdownBis']<= time())
|
|
{
|
|
//Zeit abgelaufen
|
|
endeDerStichwahl(-1,$mysqli);
|
|
toGameLog($mysqli,"Das Dorf konnte sich in der Stichwahl nicht auf einen Spieler einigen, den es töten will.");
|
|
toAllPlayerLog($mysqli,"Das Dorf konnte sich auch in der Stichwahl nicht auf einen Spieler einigen, den es töten will.");
|
|
}
|
|
else
|
|
{
|
|
$timerText = "Zeit, bis die Stichwahl erfolglos ist: ";
|
|
$timerZahl = $eigeneAssoc['countdownBis'] - time()+1;
|
|
$timerAb = $eigeneAssoc['countdownAb']- time()+1;
|
|
$aktBeiTime = true;
|
|
if (isset($_POST['dorfWahlID']))
|
|
{
|
|
//einmal die Wahl eintragen
|
|
$wahlID = (int)$_POST['dorfWahlID'];
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = $wahlID WHERE id = $eigeneID");
|
|
//Dann schauen, ob wir schon eine Mehrheit haben
|
|
$text = "";
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
$anzahlSpieler = $alleSpielerRes->num_rows;
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
$w = $temp['wahlAuf'];
|
|
if (!isset($wahlAufSpieler[$w]))
|
|
$wahlAufSpieler[$w] = 0;
|
|
$wahlAufSpieler[$w]+=1;
|
|
//Falls es der Bürgermeister ist, zusätzliche 1/2 Stimme
|
|
if ($temp['buergermeister']==1)
|
|
$wahlAufSpieler[$w]+=0.5;
|
|
if ($w > -1)
|
|
{
|
|
$text .= $temp['name']." -> ". getName($mysqli,$w). ", ";
|
|
}
|
|
|
|
}
|
|
//Schauen, ob jemand mehr als 50% der Stimmen hat
|
|
foreach ($wahlAufSpieler as $id => $stimmen)
|
|
{
|
|
if ($stimmen > (($anzahlSpieler+0.5)/2) && $id > -1)
|
|
{
|
|
//Dieser Spieler hat die Mehrheit
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1");
|
|
toGameLog($mysqli,getName($mysqli,$id)." wurde bei der Abstimmung zum Tode verurteilt, mit den Stimmen: $text");
|
|
toAllPlayerLog($mysqli,getName($mysqli,$id)." wurde vom Dorf zum Tode verurteilt, mit den Stimmen: $text");
|
|
endeDerStichwahl($id,$mysqli);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo "<p class='normal' >Für welchen der angeklagten Spieler möchten Sie bei der Stichwahl stimmen?</p>";
|
|
echo "<p ><select name = 'dorfWahlID' size = 1>";
|
|
$alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND angeklagtVon > -1");
|
|
while ($temp = $alleSpielerRes->fetch_assoc())
|
|
{
|
|
echo "<option value = '".$temp['id']."'>".$temp['name']."</option>";
|
|
}
|
|
echo '</select></p><p id = "normal" align = "center"><input type="submit" value = "Für diesen Spieler stimmen"/></p></form>';
|
|
echo "</form>";
|
|
}
|
|
}
|
|
elseif ($phase == PHASESIEGEREHRUNG)
|
|
{
|
|
$pageReload=true;
|
|
echo "<h3 >Wir haben einen Sieger!</h3>";
|
|
$gameAssoc = gameAssoc($mysqli);
|
|
$tagestext = $gameAssoc['tagestext'];
|
|
echo "<p >$tagestext</p>";
|
|
//Der Spielleiter sollte ein neues Spiel starten können
|
|
$eigeneAssoc = eigeneAssoc($mysqli);
|
|
if ($eigeneAssoc['spielleiter']==1)
|
|
{
|
|
if (isset($_POST['neuesSpiel']))
|
|
{
|
|
//Starten wir ein neues Spiel
|
|
if (_NOGAMECREATIONERRORMESSAGE == "")
|
|
{
|
|
$mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASESETUP);
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1");
|
|
}
|
|
else
|
|
{
|
|
//Spiel darf nicht erstellt werden, da _NOGAMECREATIONERRORMESSAGE existiert
|
|
echo "<p class='error' >Spiel darf nicht erstellt werden: ". _NOGAMECREATIONERRORMESSAGE ."</p>";
|
|
}
|
|
}
|
|
echo "<form action='Werwolf.php' method='post'>
|
|
<input type='hidden' name='neuesSpiel' value=1 />
|
|
<p class='normal' ><input type='submit' value='Neues Spiel'/></p>
|
|
</form>";
|
|
}
|
|
echo "<form name='gameLogForm' id='gameLogForm' style='display:none'><div id='gamelogdiv'></div></form>";
|
|
echo "<input type='submit' value='spiellog anzeigen' onClick='showGameLog($spielID, $eigeneId);'";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Das Spiel gibt es, aber nicht den Spieler
|
|
echo "<p class='error' >Sie sind momentan nicht mit diesem Spiel verknüpft </p>";
|
|
diesesSpielLoeschenButton();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
echo "<p class='error' >Es sieht so aus, als gäbe es das Spiel nicht mehr ...</p>";
|
|
diesesSpielLoeschenButton();
|
|
$logButtonAnzeigen = false;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Wir befinden uns in keinem Spiel ->
|
|
//Nachschauen, ob wir bereits ein Spiel erstellen wollen?
|
|
if (isset ($_POST['neuesSpiel']))
|
|
{
|
|
if ($_POST['neuesSpiel'] == 1)
|
|
{
|
|
//nachschauen, ob ein Benutzername angegeben wurde ...
|
|
$verboteneNamen = array("niemanden","niemand","keinen","keiner","dorfbewohner","werwolf","seher","seherin","hexe","hexer","jäger","amor","beschützer","paranormaler ermittler","lykantroph","lykantrophin","spion","spionin","mordlustiger","mordlustige","pazifist","pazifistin","alter mann","alter","alte","alte frau","die alten","alten");
|
|
if (!in_array(strtolower($_POST['ihrName']),$verboteneNamen) && $_POST['ihrName'] != "" && strpos($_POST['ihrName'],"$")===false && strpos($_POST['ihrName'],";")===false && strpos($_POST['ihrName'],'"')===false && strpos($_POST['ihrName'],"'")===false && strpos($_POST['ihrName'],"=")===false)
|
|
{
|
|
//Ab und zu alte Spiele löschen
|
|
if (rand(1,100)==50)
|
|
loescheAlteSpiele($mysqli);
|
|
//Wir erstellen ein neues Spiel
|
|
|
|
if (_NOGAMECREATIONERRORMESSAGE == "") //Wir dürfen nur ein neues Spiel erstellen, falls diese message auf "" steht
|
|
{
|
|
//Eine Schleife, die solange rennt, bis eine neue Zahl gefunden wurde
|
|
for ($i = 1; $i <= 100000; $i++)
|
|
{
|
|
if ($i == 1000)
|
|
{
|
|
//Vielleicht gibt es alte Spiele, die Platz verbrauchen
|
|
loescheAlteSpiele($mysqli);
|
|
}
|
|
$spielID = rand(10000,99999);
|
|
//nachschauen, ob ein Spiel mit dieser Nummer bereits existiert
|
|
$existiert = False;
|
|
try {
|
|
$res = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
|
|
}
|
|
catch (mysqli_sql_exception $e){
|
|
$existiert = True;
|
|
}
|
|
if(!$existiert && isset($res->num_rows)){
|
|
|
|
//Tabelle existiert
|
|
}else{
|
|
//Tabelle existiert noch nicht
|
|
//erstellen wir eine neue Tabelle
|
|
//BEIM HINZUFÜGEN: Auch die SetSpielerDefaultFunction ändern
|
|
$sql = "
|
|
CREATE TABLE `$spielID"."_spieler" ."` (
|
|
`id` INT( 10 ) NULL,
|
|
`name` VARCHAR( 150 ) NOT NULL ,
|
|
`spielleiter` INT( 5 ) NULL ,
|
|
`lebt` INT (2) NULL,
|
|
`wahlAuf` INT ( 5 ) DEFAULT -1 ,
|
|
`angeklagtVon` INT ( 5 ) DEFAULT -1 ,
|
|
`nachtIdentitaet` INT( 10 ) NULL,
|
|
`buergermeister` INT ( 2 ) DEFAULT 0,
|
|
`hexeHeiltraenke` INT( 10 ) NULL,
|
|
`hexeTodestraenke` INT( 5 ) NULL ,
|
|
`hexenOpfer` INT ( 5 ) DEFAULT -1 ,
|
|
`hexeHeilt` INT (2) DEFAULT 0,
|
|
`beschuetzerLetzteRundeBeschuetzt` INT( 5 ) DEFAULT -1 ,
|
|
`parErmEingesetzt` INT (2) DEFAULT 0 ,
|
|
`verliebtMit` INT ( 5 ) DEFAULT -1 ,
|
|
`jaegerDarfSchiessen` INT (2) DEFAULT 0 ,
|
|
`buergermeisterDarfWeitergeben` INT (2) DEFAULT 0 ,
|
|
`urwolf_anzahl_faehigkeiten` INT ( 5 ) DEFAULT 0,
|
|
`dieseNachtGestorben` INT (2) DEFAULT 0 ,
|
|
`countdownBis` INT (10) DEFAULT 0 ,
|
|
`countdownAb` INT (10) DEFAULT 0 ,
|
|
`playerlog` LONGTEXT ,
|
|
`popup_text` TEXT ,
|
|
`bereit` INT (2) NULL ,
|
|
`reload` INT (2) NULL ,
|
|
`verifizierungsnr` INT ( 5 ) DEFAULT 0
|
|
) ;
|
|
";
|
|
$mysqli->Query($sql);
|
|
//Wähle ein Verifizierungs-Passwort aus:
|
|
//Dieses dient dazu, um festzustellen, ob es tatsächlich der richtige Spieler ist, der eine Seite lädt
|
|
$verifizierungsnr = rand(2,100000);
|
|
$stmt = $mysqli->prepare("INSERT INTO $spielID"."_spieler"." (id, name , spielleiter, lebt, reload, verifizierungsnr) VALUES ( 0 , ?, 1 , 0 , 1, ?)");
|
|
$stmt->bind_param('si',$_POST['ihrName'],$verifizierungsnr);
|
|
$stmt->execute();
|
|
$stmt->close();
|
|
$sql2 = "
|
|
CREATE TABLE `$spielID"."_game` (
|
|
`spielphase` INT( 5 ) DEFAULT 0,
|
|
`charaktereAufdecken` INT ( 2 ) DEFAULT 0,
|
|
`buergermeisterWeitergeben` INT ( 2 ) DEFAULT 0,
|
|
`seherSiehtIdentitaet` INT ( 2 ) DEFAULT 1,
|
|
`werwolfzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`hexenzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`seherzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`jaegerzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`amorzahl` INT ( 2 ) DEFAULT 0 ,
|
|
`beschuetzerzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`parErmZahl` INT (5) DEFAULT 0 ,
|
|
`lykantrophenzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`spionezahl` INT ( 5 ) DEFAULT 0 ,
|
|
`idiotenzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`pazifistenzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`altenzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`urwolfzahl` INT ( 5 ) DEFAULT 0 ,
|
|
`zufaelligeAuswahl` INT ( 2 ) DEFAULT 0 ,
|
|
`zufaelligeAuswahlBonus` INT ( 5 ) DEFAULT 0 ,
|
|
`werwolfeinstimmig` INT ( 2 ) DEFAULT 1 ,
|
|
`werwolfopfer` INT ( 5 ) DEFAULT -1 ,
|
|
`werwolftimer1` INT ( 10 ) DEFAULT 60 ,
|
|
`werwolfzusatz1` INT ( 10 ) DEFAULT 4 ,
|
|
`werwolftimer2` INT ( 10 ) DEFAULT 50 ,
|
|
`werwolfzusatz2` INT ( 10 ) DEFAULT 3 ,
|
|
`dorftimer` INT ( 10 ) DEFAULT 550 ,
|
|
`dorfzusatz` INT ( 10 ) DEFAULT 10 ,
|
|
`dorfstichwahltimer` INT ( 10 ) DEFAULT 200 ,
|
|
`dorfstichwahlzusatz` INT ( 10 ) DEFAULT 5 ,
|
|
`inaktivzeit` INT ( 10 ) DEFAULT 40 ,
|
|
`inaktivzeitzusatz` INT ( 10 ) DEFAULT 0 ,
|
|
`tagestext` TEXT ,
|
|
`nacht` INT ( 5 ) DEFAULT 1 ,
|
|
`log` LONGTEXT ,
|
|
`list_lebe` LONGTEXT,
|
|
`list_lebe_aktualisiert` BIGINT DEFAULT 0,
|
|
`list_tot` LONGTEXT,
|
|
`list_tot_aktualisiert` BIGINT DEFAULT 0,
|
|
`waiting_for_others_time` BIGINT,
|
|
`letzterAufruf` BIGINT
|
|
) ;";
|
|
$mysqli->Query($sql2);
|
|
$mysqli->Query("INSERT INTO $spielID"."_game (spielphase, letzterAufruf) VALUES (0 , ".time().")");
|
|
|
|
//Die SpielID groß mitteilen
|
|
echo "<BR><h1 align = 'center'>$spielID</h1><BR>Mit dieser Zahl können andere deinem Spiel beitreten!";
|
|
|
|
//Die eigene SpielID setzen
|
|
setcookie ("SpielID", $spielID, time()+172800); //Dauer 2 Tage, länger sollte ein Spiel nicht dauern ;)
|
|
setcookie ("eigeneID",0, time()+172800);
|
|
setcookie ("verifizierungsnr",$verifizierungsnr, time()+172800, secure: true, httponly: true);
|
|
$_COOKIE["SpielID"]=$spielID;
|
|
$_COOKIE["eigeneID"] = 0;
|
|
$_COOKIE["verifizierungsnr"] = $verifizierungsnr;
|
|
writeGameToLogSpielErstellen($mysqli,$spielID,$_POST['ihrName']);
|
|
break; //die Schleife beenden
|
|
}
|
|
}
|
|
$pageReload = true;
|
|
}
|
|
else
|
|
{
|
|
//Spiel darf nicht erstellt werden, da _NOGAMECREATIONERRORMESSAGE existiert
|
|
echo "<p class='error' >Spiel darf nicht erstellt werden: ". _NOGAMECREATIONERRORMESSAGE ."</p>";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//kein Name eingegeben! erneut
|
|
echo "<p class='error' >Sie müssen einen gültigen Namen eingeben</p>";
|
|
start();
|
|
}
|
|
}
|
|
elseif ($_POST['neuesSpiel'] == 2)
|
|
{
|
|
//Der Spieler versucht einem bestehenden Spiel beizutreten
|
|
$spielID = $_POST['bestehendeSpielnummer'];
|
|
if ($_POST['ihrName'] != "" && strpos($_POST['ihrName'],"$")===false && strpos($_POST['ihrName'],";")===false && strpos($_POST['ihrName'],'"')===false && strpos($_POST['ihrName'],"'")===false && strpos($_POST['ihrName'],"=")===false)
|
|
{
|
|
//Name wurde eingegeben. Existiert auch ein Spiel dieser Nummer?
|
|
$existiert = False;
|
|
try{
|
|
$res = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
|
|
}
|
|
catch(mysqli_sql_exception $e){
|
|
$existiert = True;
|
|
}
|
|
if(!$existiert && isset($res->num_rows))
|
|
{
|
|
//Ein Spiel dieser Nummer existiert!
|
|
$verboteneNamen = array("niemanden","niemand","keinen","keiner","dorfbewohner","werwolf","seher","seherin","hexe","hexer","jäger","amor","beschützer","paranormaler ermittler","lykantroph","lykantrophin","spion","spionin","mordlustiger","mordlustige","pazifist","pazifistin","alter mann","alter","alte","alte frau","die alten","alten");
|
|
//Nachschauen, ob mein Name noch nicht vorkommt...
|
|
$stmt = $mysqli->prepare("SELECT * FROM $spielID"."_spieler WHERE name = ?");
|
|
$stmt->bind_param('s',$_POST['ihrName']);
|
|
$stmt->execute();
|
|
$nameRes = $stmt->get_result();
|
|
$stmt->close();
|
|
if ($nameRes->num_rows <= 0 && !in_array(strtolower($_POST['ihrName']),$verboteneNamen))
|
|
{
|
|
//Name gültig
|
|
//Finde eine freie ID
|
|
for ($i = 1; $i <= _MAXPLAYERS; $i++)
|
|
{
|
|
$res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $i");
|
|
//echo "SELECT * FROM $spielID"."_spieler WHERE id = $i";
|
|
if(isset($res->num_rows))
|
|
{
|
|
if ($res->num_rows > 0)
|
|
{
|
|
//Es existiert bereits ein Spieler mit dieser ID --> weiter
|
|
//echo "existiert<BR>";
|
|
}
|
|
else
|
|
{
|
|
//Es existiert kein Spieler mit dieser ID --> lege an
|
|
//Wähle ein Verifizierungs-Passwort aus:
|
|
//Dieses dient dazu, um festzustellen, ob es tatsächlich der richtige Spieler ist, der eine Seite lädt
|
|
$verifizierungsnr = rand(2,100000); // 0 als Standard darf nicht vorkommen
|
|
$stmt = $mysqli->prepare("INSERT INTO $spielID"."_spieler"." (id, name , spielleiter, reload, verifizierungsnr) VALUES ( ? , ?, 0 , 1, ?)");
|
|
$stmt->bind_param('isi', $i, $_POST['ihrName'], $verifizierungsnr);
|
|
$stmt->execute();
|
|
$stmt->close();
|
|
echo "<p >Sie sind dem Spiel erfolgreich beigetreten!</p>";
|
|
setcookie ("SpielID", $spielID, time()+172800);
|
|
setcookie ("eigeneID",$i, time()+172800);
|
|
setcookie ("verifizierungsnr",$verifizierungsnr, time()+172800);
|
|
$_COOKIE["SpielID"]=$spielID;
|
|
$_COOKIE["eigeneID"] = $i;
|
|
$_COOKIE["verifizierungsnr"] = $verifizierungsnr;
|
|
$eigeneID = $i;
|
|
break; //die Schleife beenden
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Dieser Punkt sollte eigentlich nicht erreicht werden, da num_rows definiert sein müsste
|
|
echo "<BR>ERROR 0001: num_rows ist aus irgendeinem Grund nicht definiert <BR>";
|
|
}
|
|
}
|
|
$pageReload = true;
|
|
//Ein neuer Spieler ist dem Spiel beigetreten, wenn wir uns also in der Spielphase 0 = Spielersuchen
|
|
//befinden, aktualisiere mich --> Die anderen zu aktualisieren ist nicht notwendig, da sie sowieso über javascript die Liste aktualisieren
|
|
$mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1 WHERE id = $eigeneID");
|
|
}
|
|
else
|
|
{
|
|
echo "<p class='error' >Der angegebene Name ist bereits vorhanden oder ungültig</p>";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Es existiert kein Spiel mit dieser Nummer --> Neustart
|
|
echo "<p class='error' >Es existiert kein Spiel mit dieser Nummer! </p>";
|
|
start();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//kein Name eingegeben --> neustart
|
|
echo "<p class='error' >Sie müssen einen gültigen Namen eingeben</p>";
|
|
start();
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
start();
|
|
}
|
|
}
|
|
//Schauen, ob wir uns bereits in einem Spiel befinden!
|
|
if (isset($_COOKIE['SpielID']) && isset($_COOKIE['eigeneID']) && $logButtonAnzeigen)
|
|
{
|
|
//Wenn ja, zeige Logbutton an
|
|
playerLogButton($mysqli);
|
|
//Der Spielleiter sollte die Möglichkeit bekommen, einen Spieler aus dem Spiel zu werfen (weil z.B. inaktiv)
|
|
if (isset($eigeneID) && isset($spielID))
|
|
{
|
|
$res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID AND spielleiter = 1");
|
|
if ($res->num_rows > 0)
|
|
{
|
|
echo "<p ><input type='submit' value='Spieler entfernen' onClick='showRemovePlayerForm()'></p>";
|
|
echo "<div id='sl_entfernen' style='display: none;'><hr>";
|
|
$res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
|
|
while ($a = $res->fetch_assoc())
|
|
{
|
|
echo "<form action='Werwolf.php' method='post'>";
|
|
echo "<input type='hidden' name='entfernenID' value = ".$a['id'].">";
|
|
echo "<input type='hidden' name='spieler_entfernen' value = 1>";
|
|
echo "<p class='normal' >".$a['name'];
|
|
echo"<input type='submit' value='entfernen' onClick='if (confirm(\"Wirklich diesen Spieler entfernen? Sie sollten das nur tun, wenn er inaktiv ist!\")==false){return false;}'></p>";
|
|
echo "</form>";
|
|
}
|
|
echo "<hr></div>";
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|
|
</section>
|
|
<section id="client-settings">
|
|
<form action="Werwolf.php" method="post">
|
|
<p>Löst oft viele Probleme: <input type="submit" value = "Reload" /></p>
|
|
</form>
|
|
<?php
|
|
local_settings();
|
|
if (isset($_COOKIE['SpielID']))
|
|
{
|
|
diesesSpielLoeschenButton();
|
|
}
|
|
?>
|
|
</section>
|
|
<footer id="info">
|
|
<?php echo "". _VERSION ?>, Erstellt von Florian Lindenbauer<br>
|
|
<a href="https://www.werwolfonline.eu/" target="_blank">Was ist Werwolf</a><br>
|
|
<a href="https://www.werwolfonline.eu/anleitung" target="_blank">Anleitung</a><br>
|
|
</footer>
|
|
|
|
<script charset="ISO-8859-1" type="text/javascript">
|
|
|
|
var xmlhttp;
|
|
var xmlhttp2;
|
|
var xmlhttp3;
|
|
var refreshGameLog = 0;
|
|
var sekBisTime;
|
|
var sekBisTimerBeginn;
|
|
|
|
if (window.XMLHttpRequest)
|
|
{// code for IE7+, Firefox, Chrome, Opera, Safari
|
|
xmlhttp=new XMLHttpRequest();
|
|
xmlhttp2=new XMLHttpRequest();
|
|
xmlhttp3=new XMLHttpRequest();
|
|
}
|
|
else
|
|
{// code for IE6, IE5
|
|
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
|
|
xmlhttp2=new ActiveXObject ("Microsoft.XMLHTTP");
|
|
xmlhttp3=new ActiveXObject ("Microsoft.XMLHTTP");
|
|
}
|
|
|
|
|
|
|
|
function reloadmaintain(game, id){
|
|
xmlhttp.onreadystatechange=function()
|
|
{
|
|
if (xmlhttp.readyState==4)
|
|
{
|
|
if (xmlhttp.status == 200)
|
|
{
|
|
if (xmlhttp.responseText == "1")
|
|
{
|
|
setTimeout(self.location.href="Werwolf.php",1);
|
|
}
|
|
else
|
|
{
|
|
setTimeout(reloadmaintain,3500,game,id);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Error
|
|
setTimeout(reloadmaintain,2*3500,game,id);
|
|
}
|
|
}
|
|
}
|
|
xmlhttp.open("GET","reload.php?game="+ game +"&id="+ id,true);
|
|
xmlhttp.send();
|
|
}
|
|
|
|
function listRefresh(game, id, reload=0)
|
|
{
|
|
xmlhttp2.open("GET","listreload.php?game="+ game +"&id="+ id +"&reload="+reload,true);
|
|
xmlhttp2.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=ISO-8859-1");
|
|
xmlhttp2.setRequestHeader('Cache-Control', 'no-cache');
|
|
xmlhttp2.mscaching = "disabled";
|
|
xmlhttp2.onreadystatechange=function()
|
|
{
|
|
if (xmlhttp2.readyState==4)
|
|
{
|
|
if (xmlhttp2.status==200)
|
|
{
|
|
var arr = xmlhttp2.responseText.split("$");
|
|
if (arr.length > 0)
|
|
{
|
|
if (reload == 1 && arr[0] == 1)
|
|
{
|
|
setTimeout(self.location.href="Werwolf.php",1);
|
|
return;
|
|
}
|
|
var count = (arr.length-1)/2;
|
|
var para = document.getElementById("listdiv");
|
|
while (para.firstChild) {
|
|
para.removeChild(para.firstChild);
|
|
}
|
|
|
|
|
|
for (var i = 0; i < count; i++)
|
|
{
|
|
var temp = document.createElement("p");
|
|
temp.id = "liste";
|
|
temp.appendChild(document.createTextNode(arr[2*i+1]));
|
|
if (arr[2*i+2]==0)
|
|
temp.style.color = "black";
|
|
else if (arr[2*i+2]==1)
|
|
temp.style.color = "green";
|
|
else if (arr[2*i+2]==2)
|
|
temp.style.color = "red";
|
|
else if (arr[2*i+2]==3)
|
|
{
|
|
temp.style.fontSize="200%";
|
|
temp.style.lineHeight="3";
|
|
temp.style.color = "black";
|
|
}
|
|
else if (arr[2*i+2]==4)
|
|
temp.style.color = "grey";
|
|
temp.align="center";
|
|
para.appendChild(temp);
|
|
}
|
|
}
|
|
setTimeout(listRefresh,3000,game,id, reload);
|
|
}
|
|
else
|
|
{
|
|
//Error
|
|
setTimeout(listRefresh,2*3000,game,id, reload);
|
|
}
|
|
}
|
|
}
|
|
xmlhttp2.send(null);
|
|
}
|
|
|
|
function gameLogRefresh(game, id)
|
|
{
|
|
xmlhttp3.onreadystatechange=function()
|
|
{
|
|
if (xmlhttp3.readyState==4)
|
|
{
|
|
if (xmlhttp3.status==200)
|
|
{
|
|
var text = xmlhttp3.responseText;
|
|
var para = document.getElementById("gamelogdiv");
|
|
while (para.firstChild) {
|
|
para.removeChild(para.firstChild);
|
|
}
|
|
var temp = document.createElement("p");
|
|
temp.id = "normal";
|
|
var withBreaks = text.split("<br>");
|
|
for(var i = 0; i < withBreaks.length; i++) {
|
|
temp.appendChild(document.createTextNode(withBreaks[i]));
|
|
temp.appendChild(document.createElement("br"));
|
|
}
|
|
temp.align="center";
|
|
para.appendChild(temp);
|
|
if (refreshGameLog == 1)
|
|
{
|
|
setTimeout(gameLogRefresh, 8000, game, id);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//Error
|
|
setTimeout(gameLogRefresh, 2*8000, game, id);
|
|
}
|
|
}
|
|
}
|
|
xmlhttp3.open("GET","gamelogreload.php?game=" + game + "&id=" + $id, true);
|
|
xmlhttp3.send();
|
|
}
|
|
|
|
function timerAkt(akt,text)
|
|
{
|
|
if (sekBisTime < 0)
|
|
return;
|
|
if (sekBisTimerBeginn <= 0)
|
|
{
|
|
var timerDiv = document.getElementById("timerdiv");
|
|
while (timerDiv.firstChild) {
|
|
timerDiv.removeChild(timerDiv.firstChild);
|
|
}
|
|
timerDiv.appendChild(document.createTextNode(text + String(sekBisTime)));
|
|
}
|
|
if (sekBisTime <= 0 && akt)
|
|
setTimeout(self.location.href="Werwolf.php",1);
|
|
sekBisTime -= 1;
|
|
sekBisTimerBeginn -= 1;
|
|
}
|
|
function timerInit(sek,akt,timerAb,timerText)
|
|
{
|
|
sekBisTimerBeginn = timerAb;
|
|
sekBisTime = sek;
|
|
timerAkt(akt,timerText);
|
|
setInterval(function(){timerAkt(akt,timerText);},1000);
|
|
}
|
|
|
|
function setUpReload(game, id)
|
|
{
|
|
setTimeout(reloadmaintain,3500,game,id);
|
|
}
|
|
|
|
function setUpListReload(game, id)
|
|
{
|
|
setTimeout(listRefresh,3000,game,id);
|
|
}
|
|
|
|
function showGameLog(game, id)
|
|
{
|
|
var form = document.getElementById("gameLogForm");
|
|
if (form.style.display == "block")
|
|
{
|
|
form.style.display = "none";
|
|
refreshGameLog = 0;
|
|
}
|
|
else
|
|
{
|
|
form.style.display = "block";
|
|
gameLogRefresh(game, id);
|
|
refreshGameLog = 1;
|
|
}
|
|
}
|
|
function showRemovePlayerForm()
|
|
{
|
|
var form = document.getElementById("sl_entfernen");
|
|
if (form.style.display == "block")
|
|
{
|
|
form.style.display = "none";
|
|
}
|
|
else
|
|
{
|
|
form.style.display = "block";
|
|
}
|
|
}
|
|
|
|
function jsstart()
|
|
{
|
|
<?php if ($pageReload && !$listReload)
|
|
{
|
|
echo 'reloadmaintain('.(int)$_COOKIE['SpielID'].','.(int)$_COOKIE['eigeneID'].');';
|
|
}
|
|
elseif ($listReload && !$pageReload)
|
|
{
|
|
echo 'listRefresh('.(int)$_COOKIE['SpielID'].','.(int)$_COOKIE['eigeneID'].');';
|
|
}
|
|
elseif ($listReload && $pageReload)
|
|
{
|
|
echo 'listRefresh('.(int)$_COOKIE['SpielID'].','.(int)$_COOKIE['eigeneID'].',1);';
|
|
}
|
|
|
|
if ($timerZahl > 0)
|
|
{
|
|
echo 'timerInit('.$timerZahl.','.$aktBeiTime.','.$timerAb.',"'.$timerText.'");';
|
|
}
|
|
if ($displayFade == true)
|
|
{
|
|
if ($displayTag == true)
|
|
echo 'displayFade(true,1);';
|
|
else
|
|
echo 'displayFade(false,1);';
|
|
}
|
|
elseif($displayTag == true)
|
|
{
|
|
echo "displayTag();";
|
|
}
|
|
?>
|
|
}
|
|
|
|
function showHideCharacter()
|
|
{
|
|
var form = document.getElementById("CharacterInfo");
|
|
if (form.style.display == "block")
|
|
{
|
|
form.style.display = "none";
|
|
}
|
|
else
|
|
{
|
|
form.style.display = "block";
|
|
}
|
|
}
|
|
|
|
function show_settings()
|
|
{
|
|
var form = document.getElementById("player_settings");
|
|
if (form.style.display == "block")
|
|
{
|
|
form.style.display = "none";
|
|
}
|
|
else
|
|
{
|
|
form.style.display = "block";
|
|
}
|
|
}
|
|
|
|
function showHidePlayerLog()
|
|
{
|
|
var form = document.getElementById("PlayerLog");
|
|
if (form.style.display == "block")
|
|
{
|
|
form.style.display = "none";
|
|
}
|
|
else
|
|
{
|
|
form.style.display = "block";
|
|
}
|
|
}
|
|
function displayFade(tag,anzahl)
|
|
{
|
|
var d_r = <?php echo $c_back_d_r; ?>;
|
|
var d_g = <?php echo $c_back_d_g; ?>;
|
|
var d_b = <?php echo $c_back_d_b; ?>;
|
|
var n_r = <?php echo $c_back_n_r; ?>;
|
|
var n_g = <?php echo $c_back_n_g; ?>;
|
|
var n_b = <?php echo $c_back_n_b; ?>;
|
|
|
|
var rp = 1;
|
|
var gp = 1;
|
|
var bp = 1;
|
|
if (d_r < n_r)
|
|
rp = -1;
|
|
if (d_g < n_g)
|
|
gp = -1;
|
|
if (d_b < n_b)
|
|
bp = -1;
|
|
if (tag == true)
|
|
{
|
|
<?php //Von 404050 nach bbaa80
|
|
?>
|
|
var r = n_r+anzahl*rp;
|
|
if ((r > d_r && rp == 1) || (r < d_r && rp == -1))
|
|
r=d_r;
|
|
var g = n_g+anzahl*gp;
|
|
if ((g > d_g && gp == 1) || (g < d_g && gp == -1))
|
|
g=d_g;
|
|
var b = n_b+anzahl*bp;
|
|
if ((b > d_b && bp == 1) || (b < d_b && bp == -1))
|
|
b=d_b;
|
|
var RR = r.toString(16);
|
|
if (RR.length < 2)
|
|
{ RR = "0"+RR;}
|
|
var GG = g.toString(16);
|
|
if (GG.length < 2)
|
|
{ GG = "0"+GG;}
|
|
var BB = b.toString(16);
|
|
if (BB.length < 2)
|
|
{ BB = "0"+BB;}
|
|
if (r == d_r && b == d_b && g == d_g)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
setTimeout(function(){ displayFade(tag,anzahl+1); }, 50);
|
|
}
|
|
var color = "#"+ RR + GG + BB;
|
|
document.getElementById("gameboard").style.backgroundColor = color;
|
|
}
|
|
else
|
|
{
|
|
var r = d_r-anzahl*rp;
|
|
if ((r < n_r && rp == 1) || (r > n_r && rp == -1))
|
|
r=n_r;
|
|
var g = d_g-anzahl*gp;
|
|
if ((g < n_g && gp == 1) || (g > n_g && gp == -1))
|
|
g=n_g;
|
|
var b = d_b-anzahl*bp;
|
|
if ((b < n_b && bp == 1) || (b > n_b && bp == -1))
|
|
b=n_b;
|
|
|
|
var RR = r.toString(16);
|
|
if (RR.length < 2)
|
|
{ RR = "0"+RR;}
|
|
var GG = g.toString(16);
|
|
if (GG.length < 2)
|
|
{ GG = "0"+GG;}
|
|
var BB = b.toString(16);
|
|
if (BB.length < 2)
|
|
{ BB = "0"+BB;}
|
|
if (r == d_r && b == d_b && g == d_g)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
setTimeout(function(){ displayFade(tag,anzahl+1); }, 50);
|
|
}
|
|
var color = "#"+ RR + GG + BB;
|
|
document.getElementById("gameboard").style.backgroundColor = color;
|
|
}
|
|
}
|
|
function displayTag()
|
|
{
|
|
var d_r = <?php echo $c_back_d_r; ?>;
|
|
var d_g = <?php echo $c_back_d_g; ?>;
|
|
var d_b = <?php echo $c_back_d_b; ?>;
|
|
var RR = d_r.toString(16);
|
|
var GG = d_g.toString(16);
|
|
var BB = d_b.toString(16);
|
|
|
|
if (RR.length < 2)
|
|
{ RR = "0"+RR;}
|
|
|
|
if (GG.length < 2)
|
|
{ GG = "0"+GG;}
|
|
|
|
if (BB.length < 2)
|
|
{ BB = "0"+BB;}
|
|
var color = "#"+ RR + GG + BB;
|
|
document.getElementById("gameboard").style.backgroundColor = color;
|
|
}
|
|
|
|
</script>
|
|
</body>
|
|
</HTML>
|