+
+Query("SELECT * FROM $spielID"."_spieler");
+ if(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 = ".$_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 "
Du befindest dich bereits in einem Spiel, Name: ".getName($mysqli,$eigeneID)."
";
+ echo "
Name: ". getName($mysqli,$eigeneID)."
";
+
+ //Nachschauen, ob ich Bürgermeister bin ... Dann nämlich anschreiben ...
+ $buergermRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE buergermeister = 1");
+ $buergermAss = $buergermRes->fetch_assoc();
+ if ($buergermAss['id']==$eigeneID)
+ {
+ //Ich bin Bürgermeister
+ echo "
Sie sind Bürgermeister
";
+ }
+
+ //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 "
Der Jäger wurde getötet
";
+ echo "
Warten auf Jäger
";
+ $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)
+ {
+ //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 = $_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 "
Der Bürgermeister wurde getötet
";
+ echo "
Er darf sein Amt weitergeben
";
+ $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 "
$spielID
Mit dieser Zahl können andere Ihrem Spiel beitreten!
";
+
+ //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 '
+ ';
+ }
+
+ //Zeige alle Spieler in einer Liste an--> Alt, wird jz via javascript gelöst
+ echo "
Spieler in diesem Spiel:
";
+ $spieleranzahlQuery = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ $spielerzahl = $spieleranzahlQuery->num_rows; //und zähle mit
+ //Die Liste wird mit Javascript erstellt
+ echo "";
+ $listReload = true; //Dass unsere Liste refresht wird ;)
+ echo "
Spieleranzahl: $spielerzahl
";
+
+ //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 '';
+ }
+ 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 "";
+ $listReload = true; //Dass unsere Liste refresht wird
+ echo ("
Warte auf andere Spieler ...
");
+
+ //Als Spielleiter sollte man das Spiel "ohne Rücksicht auf Verluste" beginnen können
+ if ($eigeneID == 0)
+ {
+ ?>
+ Die Nacht bricht herein ...
";
+ $eigeneAssoc = eigeneAssoc($mysqli);
+ if ($eigeneAssoc['countdownBis']>time())
+ {
+ //Zeige noch Countdown an ...
+ $timerZahl = $eigeneAssoc['countdownBis']-time()+1;
+ $timerAb = 0;
+ $timerText = "";
+ $aktBeiTime = true;
+ echo "";
+ }
+ 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();
+ $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();
+ $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();
+ $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();
+ $pageReload = true;
+ }
+ else
+ {
+ if ($eigeneAssoc['verliebtMit'] > -1)
+ {
+ if (isset($_POST['verliebteWeiter']))
+ {
+ setBereit($mysqli,$eigeneID,1);
+ warteAufAndere();
+ $pageReload = true;
+ phaseBeendenWennAlleBereit(PHASENACHT2,$mysqli);
+ }
+ else
+ {
+ //Zeige an, mit wem ich verliebt bin
+ echo "';
+ }
+ }
+ else
+ {
+ //Ganz normaler Dorfbewohner
+ if (isset($_POST['weiterschlafen']))
+ {
+ //der Button wurde bereits geklickt
+ setBereit($mysqli,$eigeneID,1);
+ warteAufAndere();
+ $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();
+ $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();
+ $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();
+ $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();
+ $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();
+ $pageReload = true;
+ phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli);
+ }
+ }
+ elseif (isset ($_POST['parErmNichtAuswaehlen']))
+ {
+ //Diese Runde nicht auswählen
+ setBereit($mysqli,$eigeneID,1);
+ warteAufAndere();
+ $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();
+ $pageReload = true;
+ phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli);
+ }
+ else
+ {
+ //zeige den Button an
+ dorfbewohnerWeiterschlafen();
+ }
+ }
+ }
+ elseif ($identitaet == CHARWERWOLF)
+ {
+ //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 ." 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 ." 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 ." 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 ." 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);
+ $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);
+ $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 = $_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)
+ {
+ 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);
+ $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 ." 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 ." 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);
+ $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 " ";
+ echo ""; //Die Liste, was die anderen gewählt haben
+ $listReload=true;
+ echo "';
+ $gameAssoc = gameAssoc($mysqli);
+ if ($gameAssoc['werwolfeinstimmig']==1)
+ echo "
Zur Info: Die Wahl muss einstimmig sein, wählen Sie solange, bis die Wahl einstimmig ist
";
+ else
+ echo "
Zur Info: Die Mehrheit der Werwölfe bestimmt das Opfer (Einstimmigkeit bei mehr als 2 Spielern ist nicht erforderlich)
";
+ $pageReload = true; //Falls alle abgestimmt haben
+ }
+ else
+ {
+ //Ganz normaler Dorfbewohner
+ if (isset($_POST['weiterschlafen']))
+ {
+ //der Button wurde bereits geklickt
+ setBereit($mysqli,$eigeneID,1);
+ warteAufAndere();
+ $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();
+ $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 = $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 = $eigeneAssoc['hexeTodestraenke']-1;
+ $hexenOpfer = $_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);
+ }
+ }
+ else
+ {
+ //keine Besondere Identitaet diese Nacht
+ if (isset($_POST['weiterschlafen']))
+ {
+ //der Button wurde bereits geklickt
+ setBereit($mysqli,$eigeneID,1);
+ warteAufAndere();
+ $pageReload = true;
+ phaseBeendenWennAlleBereit(PHASENACHT4,$mysqli);
+ }
+ else
+ {
+ //zeige den Button an
+ dorfbewohnerWeiterschlafen();
+ }
+ }
+ }
+ }
+ elseif ($phase == PHASENACHTENDE)
+ {
+ echo "
";
+ //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();
+ }
+ 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 "";
+ }
+ else
+ {
+ warteAufAndere();
+ }
+ }
+ }
+ else
+ {
+ //Ich bin nicht Bürgermeister --> Warte, bis es weitergeht
+ $pageReload = true;
+ setBereit($mysqli,$eigeneID,1);
+ phaseBeendenWennAlleBereit(PHASETOTEBEKANNTGEBEN,$mysqli);
+ warteAufAndere();
+ }
+ }
+ 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();
+ }
+ 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 "";
+ }
+ else
+ {
+ warteAufAndere();
+ }
+ }
+
+ }
+ }
+ elseif ($phase == PHASEBUERGERMEISTERWAHL)
+ {
+ characterButton($mysqli);
+ echo "
Wahl des Bürgermeisters
";
+ echo "
Da es momentan keinen Bürgermeister im Dorf gibt, beschließt das Dorf, einen zu wählen ...
";
+ echo "
Fragen Sie in die Runde, wer sich als Bürgermeister aufstellen lassen will und diskutieren Sie jede Bewerbung ...
";
+ //Bürgermeisterwahl, ähnlich der Werwolfabstimmung
+ if (isset($_POST['buergermeisterWahlAuswahl']))
+ {
+ //einmal die Wahl eintragen
+ $wahlID = $_POST['buergermeisterID'];
+ $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = $wahlID WHERE id = $eigeneID");
+ //Dann schauen, ob wir schon eine Mehrheit haben
+ $alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ $anzahlSpieler = $alleSpielerRes->num_rows;
+ while ($temp = $alleSpielerRes->fetch_assoc())
+ {
+ if (!isset($wahlAufSpieler[$temp['wahlAuf']]))
+ $wahlAufSpieler[$temp['wahlAuf']] = 0;
+ $wahlAufSpieler[$temp['wahlAuf']]+=1;
+ }
+ //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");
+ toAllPlayerLog($mysqli,getName($mysqli,$id)." wurde zum Bürgermeister gewählt");
+ phaseBeendenWennAlleBereit(PHASEBUERGERMEISTERWAHL,$mysqli);
+ break;
+ }
+ }
+ }
+ echo ""; //Die Liste, was die anderen gewählt haben
+ $listReload=true;
+ echo "';
+ echo "
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
";
+ echo "";
+ $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 "";
+ }
+ }
+ //Alle sehen diesen Text
+ echo "
Diskussion
";
+ echo "
Diskutieren Sie mit, versuchen Sie die Werwölfe zu entlarven, die anderen aber von Ihrer Unschuld zu überzeugen
";
+ $pageReload = true;
+ }
+ elseif ($phase == PHASEANKLAGEN)
+ {
+ characterButton($mysqli);
+ //Anklagen
+ echo ""; //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 = ".$_POST['angeklagterID']);
+ }
+ else
+ {
+ //Wen möchte ich anklagen?
+ echo "';
+ echo "";
+ }
+ }
+
+ //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 "";
+ }
+ }
+ }
+ elseif ($phase == PHASEABSTIMMUNG)
+ {
+ characterButton($mysqli);
+ //Abstimmung, bei Mehrheit wird Opfer getötet, sonst Stichwahl
+ //Wieder ähnlich wie Abstimmung für Bürgermeister
+ echo " ";
+ echo ""; //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 = $_POST['dorfWahlID'];
+ $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = $wahlID WHERE id = $eigeneID");
+ //Dann schauen, ob wir schon eine Mehrheit haben
+ $alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ $anzahlSpieler = $alleSpielerRes->num_rows;
+ while ($temp = $alleSpielerRes->fetch_assoc())
+ {
+ if (!isset($wahlAufSpieler[$temp['wahlAuf']]))
+ $wahlAufSpieler[$temp['wahlAuf']] = 0;
+ $wahlAufSpieler[$temp['wahlAuf']]+=1;
+ //Falls es der Bürgermeister ist, zusätzliche 1/2 Stimme
+ if ($temp['buergermeister']==1)
+ $wahlAufSpieler[$temp['wahlAuf']]+=0.5;
+ }
+ $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");
+ toAllPlayerLog($mysqli,getName($mysqli,$id)." wurde vom Dorf zum Tode verurteilt");
+ 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 "';
+ echo "";
+ echo "';
+ echo "";
+ }
+ }
+ elseif ($phase == PHASESTICHWAHL)
+ {
+ characterButton($mysqli);
+ //Es kommt zu einer Stichwahl
+ echo "
Stichwahl
";
+ echo " ";
+ echo ""; //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 sie töten wollen");
+ toAllPlayerLog($mysqli,"Das Dorf konnte sich auch in der Stichwahl nicht auf einen Spieler einigen, den sie töten wollen");
+ }
+ 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 = $_POST['dorfWahlID'];
+ $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = $wahlID WHERE id = $eigeneID");
+ //Dann schauen, ob wir schon eine Mehrheit haben
+ $alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ $anzahlSpieler = $alleSpielerRes->num_rows;
+ while ($temp = $alleSpielerRes->fetch_assoc())
+ {
+ if (!isset($wahlAufSpieler[$temp['wahlAuf']]))
+ $wahlAufSpieler[$temp['wahlAuf']] = 0;
+ $wahlAufSpieler[$temp['wahlAuf']]+=1;
+ //Falls es der Bürgermeister ist, zusätzliche 1/2 Stimme
+ if ($temp['buergermeister']==1)
+ $wahlAufSpieler[$temp['wahlAuf']]+=0.5;
+ }
+ //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");
+ toAllPlayerLog($mysqli,getName($mysqli,$id)." wurde vom Dorf zum Tode verurteilt");
+ endeDerStichwahl($id,$mysqli);
+ break;
+ }
+ }
+ }
+ echo "';
+ echo "";
+ }
+ }
+ elseif ($phase == PHASESIEGEREHRUNG)
+ {
+ $pageReload=true;
+ echo "
";
+ //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
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASESETUP);
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1");
+ }
+ echo "";
+ }
+ echo "";
+ echo "Sie sind momentan nicht mit diesem Spiel verknüpft ";
+ diesesSpielLoeschenButton();
+ }
+ }
+ else
+ {
+ echo "
Es sieht so aus, als gäbe es das Spiel nicht mehr ...
";
+ 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
+ //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
+ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ if(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 ,
+ `dieseNachtGestorben` INT (2) DEFAULT 0 ,
+ `countdownBis` INT (10) DEFAULT 0 ,
+ `countdownAb` INT (10) DEFAULT 0 ,
+ `playerlog` LONGTEXT DEFAULT '' ,
+ `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);
+ $mysqli->Query("INSERT INTO $spielID"."_spieler"." (id, name , spielleiter, lebt, reload, verifizierungsnr) VALUES ( 0 , '".$_POST['ihrName']."', 1 , 0 , 1, $verifizierungsnr)");
+ $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 ,
+ `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 ,
+ `tagestext` TEXT DEFAULT NULL ,
+ `nacht` INT ( 5 ) DEFAULT 1 ,
+ `log` LONGTEXT DEFAULT '' ,
+ `list_lebe` LONGTEXT,
+ `list_lebe_aktualisiert` BIGINT DEFAULT 0,
+ `list_tot` LONGTEXT,
+ `list_tot_aktualisiert` BIGINT DEFAULT 0,
+ `letzterAufruf` BIGINT
+ ) ;";
+ $mysqli->Query($sql2);
+ echo $mysqli->error;
+ $mysqli->Query("INSERT INTO $spielID"."_game (spielphase, letzterAufruf) VALUES (0 , ".time().")");
+
+ //Die SpielID groß mitteilen
+ echo "
$spielID
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);
+ $_COOKIE["SpielID"]=$spielID;
+ $_COOKIE["eigeneID"] = 0;
+ $_COOKIE["verifizieren"] = $verifizierungsnr;
+ writeGameToLogSpielErstellen($mysqli,$spielID,$_POST['ihrName']);
+ break; //die Schleife beenden
+ }
+ }
+ $pageReload = true;
+ }
+ else
+ {
+ //kein Name eingegeben! erneut
+ echo "
Sie müssen einen gültigen Namen eingeben
";
+ 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?
+ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ if(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...
+ $nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE name = '".$_POST['ihrName']."'");
+ if ($nameRes->num_rows <= 0 && !in_array(strtolower($_POST['ihrName']),$verboteneNamen))
+ {
+ //Name gültig
+ //Finde eine freie ID
+ for ($i = 1; $i <= 50; $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 ";
+ }
+ 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
+ $mysqli->Query("INSERT INTO $spielID"."_spieler"." (id, name , spielleiter, reload, verifizierungsnr) VALUES ( $i , '".$_POST['ihrName']."', 0 , 1, $verifizierungsnr)");
+ echo "
Sie sind dem Spiel erfolgreich beigetreten!
";
+ 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 " ERROR 0001: num_rows ist aus irgendeinem Grund nicht definiert ";
+ }
+ }
+ $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 "
Der angegebene Name ist bereits vorhanden oder ungültig
";
+ }
+ }
+ else
+ {
+ //Es existiert kein Spiel mit dieser Nummer --> Neustart
+ echo "
";
+ return false;
+ }
+
+ //Schau, ob es zumindest einen "bösen" Charakter gibt...
+ $boeseCharaktere = $werwolfzahl;
+ if ($boeseCharaktere < 1 && $zufaelligeAuswahl == 0)
+ {
+ echo "
Ein Spiel mit dieser Konfiguration ist nicht möglich. Haben Sie mindestens einen Werwolf ausgewählt?
";
+ return false;
+ }
+
+ //Schau, dass es max einen Amor gibt
+ if ($amorzahl < 0 || $amorzahl > 1)
+ {
+ echo "
Ein Spiel mit dieser Anzahl an Amor(s) ist nicht möglich ... Nur 1 oder 0 auswählen
";
+ return false;
+ }
+
+ //Die basic-Tests sind mal bestanden: Setzen wir den Spielmodus auf 1: Spielsetup
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASESPIELSETUP);
+
+ //Jetzt muss jeder bestätigen, dass er dabei ist.
+ //Dazu setzen wir mal alle bereit auf 0, außer den Spielleiter
+ $eigeneID = $_COOKIE['eigeneID'];
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1 WHERE id = $eigeneID");
+}
+
+function setSpielerDefault($mysqli)
+{
+ //Setzt die Werte aus $spielID_spieler auf die Defaultwerte zurück
+ $spielID = $_COOKIE['SpielID'];
+ $mysqli->query("UPDATE $spielID"."_spieler SET
+ lebt = 0,
+ wahlAuf = -1,
+ angeklagtVon = -1,
+ nachtIdentitaet = 0,
+ buergermeister = 0,
+ hexeHeiltraenke = 0,
+ hexeTodestraenke = 0,
+ hexenOpfer = -1,
+ hexeHeilt = 0,
+ beschuetzerLetzteRundeBeschuetzt = -1,
+ verliebtMit = -1,
+ jaegerDarfSchiessen = 0,
+ parErmEingesetzt = 0,
+ buergermeisterDarfWeitergeben = 0;
+ ");
+}
+
+function spielStarten($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+
+ //Alle löschen, die nicht bereit sind
+ $mysqli->Query("DELETE FROM $spielID"."_spieler WHERE bereit = 0");
+
+ setSpielerDefault($mysqli);
+
+ //aktualisiere Spielerzahl
+ $spielerQuery = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ $spielerzahl = $spielerQuery->num_rows;
+
+ //Überprüfe nocheinmal die Bedingungen
+ $gameResult = $mysqli->Query("SELECT * FROM $spielID"."_game");
+ $gameResAssoc = $gameResult->fetch_assoc();
+ $werwolfzahl = $gameResAssoc['werwolfzahl'];
+ $hexenzahl = $gameResAssoc['hexenzahl'];
+ $jaegerzahl = $gameResAssoc['jaegerzahl'];
+ $seherzahl = $gameResAssoc['seherzahl'];
+ $amorzahl = $gameResAssoc['amorzahl'];
+ $beschuetzerzahl = $gameResAssoc['beschuetzerzahl'];
+ $parErmZahl = $gameResAssoc['parErmZahl'];
+ $lykantrophenzahl = $gameResAssoc['lykantrophenzahl'];
+ $spionezahl = $gameResAssoc['spionezahl'];
+ $idiotenzahl = $gameResAssoc['idiotenzahl'];
+ $pazifistenzahl = $gameResAssoc['pazifistenzahl'];
+ $altenzahl = $gameResAssoc['altenzahl'];
+ $zufaelligeAuswahl = $gameResAssoc['zufaelligeAuswahl'];
+ $zufaelligeAuswahlBonus = $gameResAssoc['zufaelligeAuswahlBonus'];
+
+ //Zähle alle Charaktere zusammen und schaue, ob es mehr als die Spieleranzahl sind
+ $besondereCharaktere = $werwolfzahl + $hexenzahl + $jaegerzahl + $seherzahl + $amorzahl + $beschuetzerzahl + $parErmZahl
+ + $lykantrophenzahl + $spionezahl + $idiotenzahl + $pazifistenzahl + $altenzahl;
+ if (($besondereCharaktere > $spielerzahl && $zufaelligeAuswahl == 0)|| $spielerzahl < 2)
+ {
+ echo "
Nicht genug Spieler für Ihre Spielkonfiguration
";
+ //Setze die Spielphase wieder auf 0
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = 0");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1");
+ return false;
+ }
+
+ //Schau, ob es zumindest einen "bösen" Charakter gibt...
+ $boeseCharaktere = $werwolfzahl;
+ if ($boeseCharaktere < 1 && $zufaelligeAuswahl == 0)
+ {
+ echo "
Ein Spiel mit dieser Konfiguration ist nicht möglich. Haben Sie mindestens einen Werwolf ausgewählt?
";
+ //Setze die Spielphase wieder auf 0
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = 0");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1");
+ return false;
+ }
+
+ //Setze alle auf lebend, und gib allen die Identität 0 = keine
+ //Außerdem lösche das Playerlog
+ $mysqli->Query("UPDATE $spielID"."_spieler SET lebt = 1, nachtIdentitaet = ". CHARKEIN .", playerlog = ''");
+
+ //Ändere noch einige Werte im _game
+ //Lösche das Log, und setze die Nachtanzahl auf 1
+ $mysqli->Query("UPDATE $spielID"."_game SET log = '', nacht = 1");
+
+ if ($zufaelligeAuswahl == 1)
+ {
+ $werwolfzahl = 0;
+ if ($zufaelligeAuswahlBonus < -15 || $zufaelligeAuswahlBonus > 15)
+ {
+ echo "
Der Spielbonus ist zu hoch oder zu niedrig
";
+ //Setze die Spielphase wieder auf 0
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = 0");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1");
+ return false;
+ }
+
+ toGameLog($mysqli,"Ein neues Spiel wird gestartet mit $spielerzahl Spielern. Die Charaktere werden zufällig verteilt.");
+ $spielinfo = "Maximal im Spiel: Werwölfe: $spielerzahl, Hexen: $hexenzahl, Seher: $seherzahl, Jäger: $jaegerzahl, Amor: $amorzahl,
+ Beschützer: $beschuetzerzahl, Paranormaler Ermittler: $parErmZahl, Lykantrophen: $lykantrophenzahl,
+ Spione: $spionezahl, Mordlustige: $idiotenzahl, Pazifisten: $pazifistenzahl, Die Alten: $altenzahl";
+ toGameLog($mysqli,$spielinfo);
+ toAllPlayerLog($mysqli,"Ein neues Spiel wird gestartet mit $spielerzahl Spielern. Die Charaktere werden zufällig verteilt.");
+ toAllPlayerLog($mysqli,$spielinfo);
+ //Starte eine zufällige Verteilung der Charaktere
+
+ //Das sind die Gewichtungen, von allen Charakteren werden die Zahlen zusammengezählt, ein positiver Wert
+ // bedeutet einen Vorteil für die Dorfbewohner, negativer Wert Vorteil für die Werwölfe
+ $werwolfbonus = -6;
+ $hexenbonus = +4;
+ $jaegerbonus = +3;
+ $seherbonus = +7;
+ $amorbonus = -3;
+ $beschuetzerbonus =+3;
+ $parErmBonus =+3;
+ $lykantrophenbonus = -1;
+ $spionebonus = +6;
+ $idiotenbonus = +1;
+ $pazifistenbonus = -1;
+ $altenbonus = 0;
+ $dorfbewohnerbonus = +1;
+ for ($i=0;$i<=1000;$i++)
+ {
+ //1000 Versuche
+ $werwolfzahlN = rand(1,$spielerzahl/3);
+ $hexenzahlN = rand(0,$hexenzahl);
+ $jaegerzahlN = rand(0,$jaegerzahl);
+ $seherzahlN = rand(0,$seherzahl);
+ $amorzahlN = rand(0,$amorzahl);
+ $beschuetzerzahlN = rand(0,$beschuetzerzahl);
+ $parErmZahlN = rand(0,$parErmZahl);
+ $lykantrophenzahlN = rand(0,$lykantrophenzahl);
+ $spionezahlN = rand(0,$spionezahl);
+ $idiotenzahlN = rand(0,$idiotenzahl);
+ $pazifistenzahlN = rand(0,$pazifistenzahl);
+ $altenzahlN = rand(0,$altenzahl);
+
+ $dorfbewohnerzahlN = $spielerzahl - $werwolfzahlN - $hexenzahlN - $jaegerzahlN - $seherzahlN
+ - $amorzahlN - $beschuetzerzahlN - $parErmZahlN - $lykantrophenzahlN - $spionezahlN
+ - $idiotenzahlN - $pazifistenzahlN - $altenzahlN;
+ //Jetzt überprüfe, ob die Aufteilung "fair ist"
+ $aktBonus = $werwolfzahlN * $werwolfbonus
+ + $hexenzahlN * $hexenbonus
+ + $jaegerzahlN * $jaegerbonus
+ + $seherzahlN * $seherbonus
+ + $amorzahlN * $amorbonus
+ + $beschuetzerzahlN * $beschuetzerbonus
+ + $parErmZahlN * $parErmBonus
+ + $lykantrophenzahlN * $lykantrophenbonus
+ + $spionezahlN * $spionebonus
+ + $idiotenzahlN * $idiotenbonus
+ + $pazifistenzahlN * $pazifistenbonus
+ + $altenzahlN * $altenbonus
+ + $dorfbewohnerzahlN * $dorfbewohnerbonus;
+ if ($aktBonus + 1 <= $zufaelligeAuswahlBonus + 2 && $aktBonus + 1 >= $zufaelligeAuswahlBonus && $dorfbewohnerzahlN >= 0)
+ {
+ //Bonus ist um max. 1 abweichend --> succes!
+ toGameLog($mysqli,"Zufällige Verteilung der Charaktere vorgenommen mit Bonus ". $aktBonus);
+ $werwolfzahl = $werwolfzahlN;
+ $hexenzahl = $hexenzahlN;
+ $jaegerzahl = $jaegerzahlN;
+ $seherzahl = $seherzahlN;
+ $amorzahl = $amorzahlN;
+ $beschuetzerzahl = $beschuetzerzahlN;
+ $parErmZahl = $parErmZahlN;
+ $lykantrophenzahl = $lykantrophenzahlN;
+ $spionezahl = $spionezahlN;
+ $idiotenzahl = $idiotenzahlN;
+ $pazifistenzahl = $pazifistenzahlN;
+ $altenzahl = $altenzahlN;
+ break;
+ }
+ }
+ if ($werwolfzahl == 0)
+ {
+ //Verteilung fehlgeschlagen!
+ //Notverteilung
+ toGameLog($mysqli,"Zufällige Verteilung der Charaktere fehlgeschlagen. Teile nur Werwölfe aus");
+ $werwolfzahl = round($spielerzahl/6)+1;
+ $hexenzahl = 0;
+ $jaegerzahl = 0;
+ $seherzahl = 0;
+ $amorzahl = 0;
+ $beschuetzerzahl = 0;
+ $parErmZahl = 0;
+ $lykantrophenzahl = 0;
+ $spionezahl = 0;
+ $idiotenzahl = 0;
+ $pazifistenzahl = 0;
+ $altenzahl = 0;
+ }
+ $spielinfo = "Im Spiel befinden sich: Werwölfe: $werwolfzahl, Hexen: $hexenzahl, Seher: $seherzahl, Jäger: $jaegerzahl, Amor: $amorzahl,
+ Beschützer: $beschuetzerzahl, Paranormaler Ermittler: $parErmZahl, Lykantrophen: $lykantrophenzahl,
+ Spione: $spionezahl, Mordlustige: $idiotenzahl, Pazifisten: $pazifistenzahl, Die Alten: $altenzahl";
+ toGameLog($mysqli,$spielinfo);
+ }
+ else
+ {
+ //Logge den Spielstart
+ toGameLog($mysqli,"Ein neues Spiel wird gestartet mit $spielerzahl Spielern.");
+ $spielinfo = "Werwölfe: $werwolfzahl, Hexen: $hexenzahl, Seher: $seherzahl, Jäger: $jaegerzahl, Amor: $amorzahl,
+ Beschützer: $beschuetzerzahl, Paranormaler Ermittler: $parErmZahl, Lykantrophen: $lykantrophenzahl,
+ Spione: $spionezahl, Mordlustige: $idiotenzahl, Pazifisten: $pazifistenzahl, Die Alten: $altenzahl";
+ toGameLog($mysqli,$spielinfo);
+ toAllPlayerLog($mysqli,"Ein neues Spiel wird gestartet mit $spielerzahl Spielern.");
+ toAllPlayerLog($mysqli,$spielinfo);
+ }
+
+ //Teile die Charaktere aus!
+ weiseCharakterZu($werwolfzahl,CHARWERWOLF,$mysqli);
+ weiseCharakterZu($seherzahl,CHARSEHER,$mysqli);
+ weiseCharakterZu($hexenzahl,CHARHEXE,$mysqli);
+ weiseCharakterZu($jaegerzahl,CHARJAEGER,$mysqli);
+ weiseCharakterZu($amorzahl,CHARAMOR,$mysqli);
+ weiseCharakterZu($beschuetzerzahl,CHARBESCHUETZER,$mysqli);
+ weiseCharakterZu($parErmZahl,CHARPARERM,$mysqli);
+ weiseCharakterZu($lykantrophenzahl,CHARLYKANTROPH,$mysqli);
+ weiseCharakterZu($spionezahl,CHARSPION,$mysqli);
+ weiseCharakterZu($idiotenzahl,CHARMORDLUSTIGER,$mysqli);
+ weiseCharakterZu($pazifistenzahl,CHARPAZIFIST,$mysqli);
+ weiseCharakterZu($altenzahl,CHARALTERMANN,$mysqli);
+
+ //setze verschiedene Startwerte:
+ //Bei allen Hexen setze die Heiltränke und Todestränke auf 1
+ //Alle Spieler, die keinen Charakter haben, erhalten Dorfbewohner
+ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ while ($temp = $res->fetch_assoc())
+ {
+ $i = $temp['id'];
+ if ($temp['nachtIdentitaet']==CHARHEXE)
+ {
+ //4 = Hexe
+ $mysqli->Query("UPDATE $spielID"."_spieler SET hexeHeiltraenke = 1, hexeTodestraenke = 1 WHERE id = $i");
+ }
+ elseif ($temp['nachtIdentitaet']==CHARBESCHUETZER)
+ {
+ //Beschützer
+ $mysqli->Query("UPDATE $spielID"."_spieler SET beschuetzerLetzteRundeBeschuetzt = -1 WHERE id = $i");
+ }
+ elseif ($temp['nachtIdentitaet']==CHARPARERM)
+ {
+ $mysqli->Query("UPDATE $spielID"."_spieler SET parErmEingesetzt = 0 WHERE id = $i");
+ }
+ elseif ($temp['nachtIdentitaet']==CHARKEIN)
+ {
+ //Weise dem Spieler Dorfbewohner zu!
+ $mysqli->Query("UPDATE $spielID"."_spieler SET nachtIdentitaet = ". CHARDORFBEWOHNER ." WHERE id = $i");
+ }
+ }
+ $neuePhase = PHASENACHT3;
+ if ($amorzahl >= 1)
+ {
+ $neuePhase = PHASENACHT1;
+ }
+ else
+ {
+ //Wenn es keinen Amor gibt, Spielphase "Nacht3"
+ $neuePhase = PHASENACHT3;
+ }
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = $neuePhase");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren($neuePhase,$mysqli);
+}
+
+function weiseCharakterZu($anzahlSpieler,$identitaet,$mysqli)
+{
+ //anzahlSpieler: Wieviele Spieler diesen Charakter erhalten sollen
+ //Wichtig ist nicht die Spielerzahl, sondern die höchste ID
+ $spielID = $_COOKIE['SpielID'];
+
+ $freieSpieler = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE nachtIdentitaet = ". CHARKEIN ." ORDER BY RAND()");
+ for ($i = 0; $i < $anzahlSpieler; $i++)
+ {
+ $temp = $freieSpieler->fetch_assoc();
+ //Diesem Spieler die Identität zuweisen
+ $id = $temp['id'];
+ //Mache ihn zu dem Charakter
+ $mysqli->Query("UPDATE $spielID"."_spieler SET nachtIdentitaet = $identitaet WHERE id = $id");
+ //echo " Weise $id die Identität $identitaet zu";
+ toGameLog($mysqli,"Weise ".getName($mysqli,$id)." die Nachtidentitaet ".nachtidentitaetAlsString($identitaet)." zu.");
+ }
+
+}
+
+function phaseInitialisieren($phase,$mysqli)
+{
+ //Wird am Beginn jeder Phase aufgerufen und initialisert sie
+ $spielID = $_COOKIE['SpielID'];
+ if ($phase == PHASENACHTBEGINN)
+ {
+ //Bereite timer vor, nachdem die Nacht beginnt ...
+ $countdownBis = time()+5;
+ $countdownAb = time();
+ $mysqli->Query("UPDATE $spielID"."_spieler SET countdownBis = $countdownBis, countdownAb = $countdownAb WHERE lebt = 1");
+ }
+ elseif ($phase == PHASENACHT1)
+ {
+ //Neue verliebte ... Setze alle verliebten auf -1
+ $mysqli->Query("UPDATE $spielID"."_spieler SET verliebtMit = -1");
+ }
+ elseif ($phase == PHASENACHT2)
+ {
+ }
+ elseif ($phase == PHASENACHT3)
+ {
+ //Setze wahlAuf auf -1 bei allen, damit die Werwölfe mit einer neuen Abstimmung starten
+ $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = -1");
+ $gameAssoc = gameAssoc($mysqli);
+ //Bei weniger als 2 Werwölfen kann werwolfeinstimmig gleich auf 0 gesetzt werden.
+ $werwolfQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE nachtIdentitaet = ". CHARWERWOLF ." AND lebt = 1");
+ $werwolfzahl = $werwolfQ->num_rows;
+ if ($werwolfzahl > 2)
+ {
+ $mysqli->Query("UPDATE $spielID"."_game SET werwolfeinstimmig = 1");
+ $countdownBis = time()+$gameAssoc['werwolftimer1']+$gameAssoc['werwolfzusatz1']*$werwolfzahl;
+ if ($countdownBis >= time()+40)
+ $countdownAb = time()+20;
+ else
+ $countdownAb = time();
+ $mysqli->Query("UPDATE $spielID"."_spieler SET countdownBis = $countdownBis, countdownAb = $countdownAb WHERE nachtIdentitaet = ".CHARWERWOLF);
+ }
+ else
+ {
+ $mysqli->Query("UPDATE $spielID"."_game SET werwolfeinstimmig = 0");
+ $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);
+ }
+
+ }
+ elseif ($phase == PHASENACHTENDE)
+ {
+ //Timer, bis die Toten bekanntgegeben werden
+ //Bereite timer vor, nachdem die Toten bekanntgegeben werden ...
+ $countdownBis = time()+5;
+ $countdownAb = time();
+ $mysqli->Query("UPDATE $spielID"."_spieler SET countdownBis = $countdownBis, countdownAb = $countdownAb WHERE lebt = 1");
+ }
+ elseif ($phase == PHASETOTEBEKANNTGEBEN)
+ {
+ //Schau nach, wer diese Nacht gestorben ist und bereite den Tagestext vor
+
+ //Eine Liste an Toten
+ $tote[-1] = -1;
+
+ //Zuerst mal schauen, ob das Opfer der Werwölfe gestorben ist.
+ $gameA = gameAssoc($mysqli);
+ $werwolfopfer = $gameA['werwolfopfer'];
+ if ($werwolfopfer > -1)
+ {
+ //Die Werwölfe haben ein Opfer ausgewählt
+ //Nachschauen, ob die Hexe ihren Heiltrank eingesetzt hat
+ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE nachtIdentitaet = ". CHARHEXE ." AND lebt = 1 AND hexeHeilt = 1");
+ //Falls das zumindest eine Reihe zurückliefert, hat die Hexe geheilt
+ if ($res->num_rows > 0)
+ {
+ //Hexe hat geheilt
+ }
+ else
+ {
+ //Nachschauen, ob nicht vom Beschützer beschützt
+ $leibwRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE nachtIdentitaet = ". CHARBESCHUETZER ." AND lebt = 1 AND beschuetzerLetzteRundeBeschuetzt = $werwolfopfer");
+ if ($leibwRes->num_rows <= 0)
+ {
+ //Wurde nicht vom Leibwächter/Beschützer gerettet
+ $tote[] = $werwolfopfer; //Töte diesen Spieler
+ }
+ }
+ }
+ //Wir müssen auch nachschauen, ob die Hexe einen Todestrank eingesetzt hat
+ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE nachtIdentitaet = ". CHARHEXE ." AND lebt = 1 AND hexenOpfer > -1");
+ if ($res->num_rows > 0)
+ {
+ //Mindestens eine Hexe will jemanden töten
+ while ($temp = $res->fetch_assoc())
+ {
+ //Nachschauen, ob nicht vom Leibwächter/Beschützer beschützt ...
+ $leibwRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE nachtIdentitaet = ". CHARBESCHUETZER ." AND lebt = 1 AND beschuetzerLetzteRundeBeschuetzt = ".$temp['hexenOpfer']);
+ if ($leibwRes->num_rows <= 0)
+ {
+ //nicht beschützt ...
+ //toete diesen Spieler
+ $tote[] = $temp['hexenOpfer'];
+ }
+ }
+ }
+
+ //Nachschauen, ob wir der Alte stirbt
+ $alteRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE nachtIdentitaet = ". CHARALTERMANN ." AND lebt = 1");
+ if ($alteRes->num_rows > 0)
+ {
+ //Nachschauen, wie viele Werwölfe noch leben
+ $werwolfQuery = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE nachtIdentitaet = ". CHARWERWOLF ." AND lebt = 1");
+ $werwolfzahl = $werwolfQuery->num_rows;
+ $nacht = $gameA['nacht'];
+ if ($nacht >= $werwolfzahl +1)
+ {
+ //Töte alle Alten
+ while ($temp = $alteRes->fetch_assoc())
+ {
+ $tote[] = $temp['id'];
+ }
+ }
+ }
+
+ //Nun töte alle Toten und schreib die Namen in einen String zwecks Anzeige
+ $mysqli->query("UPDATE $spielID"."_spieler SET dieseNachtGestorben = 0");
+ $anzeigeString = "Am Morgen findet das Dorf folgende Tote: ";
+ foreach ($tote as $i => $id)
+ {
+ if ($id > -1)
+ {
+ toeteSpieler($mysqli,$id);
+ }
+ }
+
+ $toteQuery = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE dieseNachtGestorben = 1 ORDER BY RAND();");
+ //Fals keiner getötet wurde:
+ if ($toteQuery->num_rows < 1)
+ {
+ //keiner wurde getötet
+ $anzeigeString = "Diese Nacht ist niemand gestorben.";
+ }
+ else
+ {
+ while ($temp = $toteQuery->fetch_assoc())
+ {
+ $anzeigeString = $anzeigeString.getName($mysqli,$temp['id'])." ";
+ if ($gameA['charaktereAufdecken'] == 1)
+ {
+ //Die Charaktere werden aufgedeckt
+ $anzeigeString = $anzeigeString.getName($mysqli,$temp['id'])." war ".nachtidentitaetAlsString($temp['nachtIdentitaet'])." ";
+ }
+ }
+ }
+
+ //Jetzt lösche noch die Zahlen, die in diesem Schritt gebraucht wurden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET hexeHeilt = 0, hexenOpfer = -1");
+ $mysqli->Query("UPDATE $spielID"."_game SET werwolfopfer = -1, tagestext = '$anzeigeString'");
+
+ //Schaue nach, ob wir schon einen Sieger haben
+ checkeSiegbedingungen($mysqli);
+ }
+ elseif ($phase == PHASEBUERGERMEISTERWAHL)
+ {
+ //Bürgermeisterwahl
+ //Setze wahlAuf bei allen auf -1, damit alle neu starten
+ $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = -1");
+ }
+ elseif ($phase == PHASEDISKUSSION)
+ {
+ //gibt nichts zu aktualisieren
+ }
+ elseif ($phase == PHASEANKLAGEN)
+ {
+ //Anklagen
+ $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = -1, angeklagtVon = -1");
+ }
+ elseif ($phase == PHASEABSTIMMUNG)
+ {
+ //Abstimmung
+
+ //Timer, ab der die Abstimmung ungültig ist
+ $gameAssoc = gameAssoc($mysqli);
+ $dorfQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ $dorfbewohnerzahl = $dorfQ->num_rows;
+ $countdownBis = time()+$gameAssoc['dorftimer']+$gameAssoc['dorfzusatz']*$dorfbewohnerzahl;
+ if ($countdownBis >= time()+150)
+ $countdownAb = time()+90;
+ else
+ $countdownAb = time();
+
+ $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = -1, countdownBis = $countdownBis, countdownAb = $countdownAb WHERE lebt = 1");
+ }
+ elseif ($phase == PHASESTICHWAHL)
+ {
+ //Stichwahl
+ $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = -1");
+ $gameAssoc = gameAssoc($mysqli);
+ $dorfQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ $dorfbewohnerzahl = $dorfQ->num_rows;
+ $countdownBis = time()+$gameAssoc['dorfstichwahltimer']+$gameAssoc['dorfstichwahlzusatz']*$dorfbewohnerzahl;
+ if ($countdownBis >= time()+60)
+ $countdownAb = time()+30;
+ else
+ $countdownAb = time();
+ $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = -1, countdownBis = $countdownBis, countdownAb = $countdownAb WHERE lebt = 1");
+ }
+}
+
+function toeteSpieler($mysqli, $spielerID)
+{
+ //Wird aufgerufen, wenn dieser Spieler stirbt
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+
+ //Nachschauen, ob es der Jäger ist ...
+ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $spielerID");
+ $temp = $res->fetch_assoc();
+ if ($temp['nachtIdentitaet'] == CHARJAEGER)
+ {
+ //Der Jäger wurde getötet
+ $mysqli->Query("UPDATE $spielID"."_spieler SET jaegerDarfSchiessen = 1 WHERE id = $spielerID");
+ toGameLog($mysqli,"Der Jäger wurde getötet");
+ }
+
+ //Nachschauen, ob er der Bürgermeister ist ... und wir Bürgermeister weitergeben aktiviert haben....
+ if ($temp['buergermeister'] == 1)
+ {
+ $gameAssoc = gameAssoc($mysqli);
+ if ($gameAssoc['buergermeisterWeitergeben']==1)
+ {
+ //Der alte Bürgermeister wählt den aus, an den er den Bürgermeister weitergeben will
+ toGameLog($mysqli, "Der Bürgermeister wurde getötet. Er darf dieses Amt weitergeben ...");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET buergermeisterDarfWeitergeben = 1 WHERE id = $spielerID");
+ }
+ }
+
+ //Töte den Spieler
+ $mysqli->Query("UPDATE $spielID"."_spieler SET lebt = 0, buergermeister = 0, dieseNachtGestorben = 1 WHERE id = $spielerID");
+
+ //Schreibe noch ins log
+ //Nachschauen, ob Charaktere aufgedeckt werden
+ $gameA = gameAssoc($mysqli);
+ if ($gameA['charaktereAufdecken']==1)
+ {
+ toAllPlayerLog($mysqli,getName($mysqli,$spielerID)."(".nachtidentitaetAlsString($temp['nachtIdentitaet']).") stirbt.");
+ }
+ else
+ {
+ toAllPlayerLog($mysqli,getName($mysqli,$spielerID)." stirbt.");
+ }
+ toGameLog($mysqli,getName($mysqli,$spielerID)."(".nachtidentitaetAlsString($temp['nachtIdentitaet']).") stirbt.");
+
+ //Nachschauen, ob der Spieler verliebt war, denn dann stirbt der andere auch
+ if ($temp['verliebtMit']>-1)
+ {
+ //Ist verliebt, schauen, ob der andere noch lebt...
+ $verliebtRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND id = ".$temp['verliebtMit']);
+ if ($verliebtRes->num_rows > 0)
+ {
+ toGameLog($mysqli,"Der Verliebte stirbt mit dem anderen");
+ //Er lebt noch --> töte ihn
+ toeteSpieler($mysqli,$temp['verliebtMit']);
+ }
+ }
+ checkeSiegbedingungen($mysqli);
+}
+
+function warteAufAndere()
+{
+ //Zeigt das warteAufAnder an, damit es bei jedem gleich aussieht
+ echo "
Warte auf andere Spieler
";
+}
+
+function dorfbewohnerWeiterschlafen()
+{
+ //Zeigt einen kurzen Text an und einen Button, den jeder drücken muss, damit es weitergeht.
+ $text = getDorfbewohnerText();
+ echo '';
+}
+
+function amorInitialisiere($mysqli)
+{
+ //Zeigt ein Formular an, in dem Armor die beiden Verliebten auswählen kann
+ $spielID = $_COOKIE['SpielID'];
+
+ //Im Prinzip besteht das Formular aus zwei Listen aller Lebenden Spieler
+ echo "';
+}
+
+function amorGueltig($mysqli,$wahl1,$wahl2)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+ //Überprüfe, ob die Wahl gültig ist ...
+ if ($wahl1 == $wahl2)
+ {
+ echo "
Zwei verschiedene Spieler auswählen ...
";
+ return false;
+ }
+ if ($wahl1 < 0 || $wahl2 < 0)
+ return false;
+
+ //Die Wahl scheint gültig zu sein--> eintragen
+ $mysqli->Query("UPDATE $spielID"."_spieler SET verliebtMit = $wahl1 WHERE id = $wahl2");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET verliebtMit = $wahl2 WHERE id = $wahl1");
+ toPlayerLog($mysqli,"Sie haben ".getName($mysqli,$wahl1)." mit ".getName($mysqli,$wahl2)." verliebt",$eigeneID);
+ toGameLog($mysqli,"Amor hat ".getName($mysqli,$wahl1)." mit ".getName($mysqli,$wahl2)." verliebt");
+ toPlayerLog($mysqli,"Amor hat Sie mit ".getName($mysqli,$wahl1). " verliebt",$wahl2);
+ toPlayerLog($mysqli,"Amor hat Sie mit ".getName($mysqli,$wahl2). " verliebt",$wahl1);
+ return true;
+}
+
+function spionInitialisiere($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+
+ //Zeige eine Liste aller lebenden Spieler an
+ echo "';
+}
+
+function spionSehe($mysqli, $id, $identitaet)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+ //schauen, ob es ein valider Spieler ist
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $id AND lebt = 1");
+ if ($spielerRes->num_rows < 1)
+ return false;
+ $spielerAssoc=$spielerRes->fetch_assoc();
+ $strIdentitaet = nachtidentitaetAlsString($identitaet);
+ if ($spielerAssoc['nachtIdentitaet']==$identitaet)
+ {
+ $text = $spielerAssoc['name']." ist ". $strIdentitaet;
+ }
+ else
+ {
+ $text = $spielerAssoc['name']." ist nicht ". $strIdentitaet;
+ }
+ echo "
$text
";
+
+ //Schreibe es auch ins playerlog, damit es der Spieler nachlesen kann
+ toPlayerLog($mysqli, $text,$eigeneID);
+ toGameLog($mysqli,"Der Spion/Die Spionin (".getName($mysqli,$eigeneID).") sieht: $text");
+
+ //Setze mich noch auf bereit ;)
+ $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1 WHERE id = $eigeneID");
+ return true;
+}
+
+function seherInitialisiere($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+
+ //Zeige eine Liste aller lebenden Spieler an
+ echo "';
+}
+
+function seherSehe($mysqli, $id)
+{
+ //id = die Id des Spielers, der gesehen wird
+
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+ //schauen, ob es ein valider Spieler ist
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $id AND lebt = 1");
+ if ($spielerRes->num_rows < 1)
+ return false;
+ $spielerAssoc=$spielerRes->fetch_assoc();
+ //nachschauen, ob ich nur die Gesinnung sehen darf ...
+ $gameAssoc = gameAssoc($mysqli);
+ if ($gameAssoc['seherSiehtIdentitaet']==1)
+ {
+ if ($spielerAssoc['nachtIdentitaet']==CHARLYKANTROPH)
+ $identitaet = nachtidentitaetAlsString(CHARWERWOLF);
+ else
+ $identitaet = nachtidentitaetAlsString($spielerAssoc['nachtIdentitaet']);
+ }
+ else
+ {
+ if ($spielerAssoc['nachtIdentitaet']==CHARLYKANTROPH)
+ $identitaet = getGesinnung(CHARWERWOLF)." (Gesinnung)";
+ else
+ $identitaet = getGesinnung($spielerAssoc['nachtIdentitaet'])." (Gesinnung)";
+ }
+ echo "
".$spielerAssoc['name']." = $identitaet
";
+
+ //Schreibe es auch ins playerlog, damit es der Spieler nachlesen kann
+ toPlayerLog($mysqli, $spielerAssoc['name']." = $identitaet",$eigeneID);
+ toGameLog($mysqli,"Der Seher/Die Seherin(".getName($mysqli,$eigeneID).") sieht die Nachtidentitaet von Spieler ".$spielerAssoc['name']." = $identitaet");
+
+ //Setze mich noch auf bereit ;)
+ $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1 WHERE id = $eigeneID");
+ return true;
+}
+
+function beschuetzerInitialisiere($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+
+ //Zeige an, wer letzte Nacht beschützt wurde...
+ $eigeneAssoc = eigeneAssoc($mysqli);
+ if ($eigeneAssoc['beschuetzerLetzteRundeBeschuetzt'] >= 0)
+ echo "
Letzte Nacht beschützten Sie ".getName($mysqli,$eigeneAssoc['beschuetzerLetzteRundeBeschuetzt'])."
";
+
+ //Zeige eine Liste aller lebenden Spieler an
+ echo "';
+}
+
+function beschuetzerAuswahl($mysqli,$id)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+ //schauen, ob es ein valider Spieler ist
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $id AND lebt = 1");
+ if ($spielerRes->num_rows < 1)
+ return false;
+
+ //Nachschauen, ob ich ihn nicht vorige Nacht bereits beschützt habe ...
+ $eigeneAssoc = eigeneAssoc($mysqli);
+ if ($eigeneAssoc['beschuetzerLetzteRundeBeschuetzt']==$id)
+ return false;
+
+ $gameAssoc = gameAssoc($mysqli);
+ //Schreibe es auch ins playerlog, damit es der Spieler nachlesen kann
+ toPlayerLog($mysqli, "In Nacht ".$gameAssoc['nacht']." beschützen Sie ".getName($mysqli,$id),$eigeneID);
+ toGameLog($mysqli,"Der Beschützer/Die Beschützerin(".getName($mysqli,$eigeneID).") beschützt in Nacht ".$gameAssoc['nacht']." ".getName($mysqli,$id));
+
+ //Setze mich noch auf bereit ;)
+ setBereit($mysqli,$eigeneID,1);
+ $mysqli->Query("UPDATE $spielID"."_spieler SET beschuetzerLetzteRundeBeschuetzt = $id WHERE id = $eigeneID");
+ return true;
+}
+
+function parErmInitialisiere($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+
+ echo "
Möchten Sie Ihre Fähigkeit als Paranormaler Ermittler einsetzen?
";
+ //Zeige eine Liste aller lebenden Spieler an
+ echo "';
+
+ echo "";
+}
+
+function parErmAusgewaehlt($mysqli, $id)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+ //schauen, ob es ein valider Spieler ist
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $id AND lebt = 1");
+ if ($spielerRes->num_rows < 1)
+ return false;
+ //Überprüfe, ob ich noch einsetzen darf
+ $eigen = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID AND parErmEingesetzt = 0");
+ if ($eigen->num_rows <= 0)
+ return false;
+
+ //Finde die ids der beiden Nachbarn heraus ...
+ $alleRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ $nachbar1 = -1;
+ $nachbar2 = -1;
+ $erster = -1;
+ $letzter = -1;
+ while ($temp = $alleRes->fetch_assoc())
+ {
+ if ($erster == -1)
+ $erster = $temp['id'];
+ if ($temp['id']!=$id && $temp['id'] < $id)
+ $nachbar1 = $temp['id'];
+ if ($temp['id'] > $id && $nachbar2 == -1)
+ $nachbar2 = $temp['id'];
+ $letzter = $temp['id'];
+ }
+ if ($nachbar1 == -1)
+ {
+ //Wir waren der erste
+ $nachbar1 = $letzter;
+ }
+ if ($nachbar2 == -1)
+ {
+ //Wir waren der letzte
+ $nachbar2 = $erster;
+ }
+ $werwoelfe = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ". CHARLYKANTROPH .") AND (ID = $nachbar1 OR ID = $nachbar2 OR ID = $id)");
+ if ($werwoelfe->num_rows > 0)
+ {
+ //Es ist zumindest ein Werwolf darunter
+ toPlayerLog ($mysqli,"Sie beobachteten die Spieler ". getName($mysqli,$nachbar1) .", ". getName($mysqli,$id) ." und ".getName($mysqli,$nachbar2)." Es fällt Ihnen eine bedrohliche Aura auf, unter den dreien ist zumindest ein Werwolf.",$eigeneID);
+ toGameLog($mysqli,"Der Paranormale Ermittler beobachtete die Spieler ". getName($mysqli,$nachbar1) .", ". getName($mysqli,$id) ." und ".getName($mysqli,$nachbar2).". Er sieht, dass sich unter ihnen zumindest ein Werwolf befindet.");
+ echo ("
Sie beobachteten die Spieler ". getName($mysqli,$nachbar1) .", ". getName($mysqli,$id) ." und ".getName($mysqli,$nachbar2)." Es fällt Ihnen eine bedrohliche Aura auf, unter den dreien ist zumindest ein Werwolf.
");
+ }
+ else
+ {
+ toPlayerLog ($mysqli,"Sie beobachteten die Spieler ". getName($mysqli,$nachbar1) .", ". getName($mysqli,$id) ." und ".getName($mysqli,$nachbar2)." Es fällt Ihnen nichts Besonderes auf, unter den dreien befindet sich kein Werwolf",$eigeneID);
+ toGameLog($mysqli,"Der Paranormale Ermittler beobachtete die Spieler ". getName($mysqli,$nachbar1) .", ". getName($mysqli,$id) ." und ".getName($mysqli,$nachbar2).". Er sieht, dass sich unter ihnen kein Werwolf befindet.");
+ echo ("
Sie beobachteten die Spieler ". getName($mysqli,$nachbar1) .", ". getName($mysqli,$id) ." und ".getName($mysqli,$nachbar2)." Es fällt Ihnen nichts Besonderes auf, unter den dreien befindet sich kein Werwolf
");
+ }
+
+ $mysqli->Query("UPDATE $spielID"."_spieler SET parErmEingesetzt = 1 WHERE id = $eigeneID");
+ return true;
+}
+
+function hexeInitialisieren($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+ $eigeneAss = eigeneAssoc($mysqli);
+ $heiltraenke = $eigeneAss['hexeHeiltraenke'];
+ $todestraenke = $eigeneAss['hexeTodestraenke'];
+
+ echo "';
+ echo "";
+}
+
+function jaegerInitialisiere($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+
+ //Zeige eine Liste aller noch lebenden an, die der Jäger töten kann
+ echo "';
+}
+
+function buergermeisterInitialisiere($mysqli)
+{
+ //Der Bürgermeister wurde getötet und darf das Amt an seinen Nachfolger weitergeben...
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+
+ //Zeige eine Liste aller noch Lebenden an, an die der Bürgermeister das Amt weitergeben kann
+ echo "';
+}
+
+function phaseBeendenWennAlleBereit($phase,$mysqli)
+{
+ //Springt zur nächsten Phase, wenn alle bereit sind
+ $spielID = $_COOKIE['SpielID'];
+ //Schauen wir zuerst mal, ob schon alle bereit sind ...
+ $nichtBereitResult = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE bereit = 0 AND lebt = 1");
+ if ($nichtBereitResult->num_rows > 0)
+ {
+ return false;
+ }
+ //Es sind wohl schon alle bereit
+ if ($phase == PHASENACHT1)
+ {
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASENACHT2);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASENACHT2,$mysqli);
+ }
+ elseif ($phase == PHASENACHT2)
+ {
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASENACHT3);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASENACHT3,$mysqli);
+ }
+ elseif ($phase == PHASENACHT3)
+ {
+ //springen wir zu phase 5, wenn es eine Hexe gibt
+ $gameResult = $mysqli->Query("SELECT * FROM $spielID"."_game");
+ $gameResAssoc = $gameResult->fetch_assoc();
+ $hexenzahl = $gameResAssoc['hexenzahl'];
+ //Setze Phase auf 5
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASENACHT4);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASENACHT4,$mysqli);
+ }
+ elseif ($phase == PHASENACHT4)
+ {
+ //Wir überspringen Phase 6 und kommen gleich zu Phase 7
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASENACHTENDE);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASENACHTENDE,$mysqli);
+ }
+ elseif ($phase == PHASETOTEBEKANNTGEBEN)
+ {
+ //Wenn es keinen Bürgermeister gibt, zur Wahl des Bürgermeisters übergehen
+ $bres = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE buergermeister = 1 AND lebt = 1");
+ if ($bres->num_rows > 0)
+ {
+ //Es gibt bereits einen Bürgermeister, wir können zu Phase 9 übergehen
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASEDISKUSSION);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASEDISKUSSION,$mysqli);
+ }
+ else
+ {
+ //Es gibt keinen Bürgermeister --> Bürgermeisterwahl = Phase 8
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASEBUERGERMEISTERWAHL);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASEBUERGERMEISTERWAHL,$mysqli);
+ }
+ }
+ elseif ($phase == PHASEBUERGERMEISTERWAHL)
+ {
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASEDISKUSSION);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASEDISKUSSION,$mysqli);
+ }
+ elseif ($phase == PHASEDISKUSSION)
+ {
+ //Gehe zur Anklage über
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASEANKLAGEN);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASEANKLAGEN,$mysqli);
+ }
+ elseif ($phase == PHASEANKLAGEN)
+ {
+ //Gehe zur Abstimmung über
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASEABSTIMMUNG);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASEABSTIMMUNG,$mysqli);
+ }
+}
+
+function endeDerAbstimmungStichwahl($id1, $id2, $mysqli)
+{
+ //Stichwahl zwischen id1 und id2
+ $spielID = $_COOKIE['SpielID'];
+ //Diesmal gehe ich nicht über phaseBeendenWennAlleBereit...
+ $mysqli->Query("UPDATE $spielID"."_spieler SET angeklagtVon = -1");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET angeklagtVon = 0 WHERE id = $id1");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET angeklagtVon = 0 WHERE id = $id2");
+ //Gehe zur Stichwahl über = Phase 12
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASESTICHWAHL);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ phaseInitialisieren(PHASESTICHWAHL,$mysqli);
+}
+
+function endeDerStichwahl($id, $mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+ //Stichwahl ist beendet
+ if ($id > -1)
+ {
+ toeteSpieler($mysqli,$id);
+ }
+
+ if (!checkeSiegbedingungen($mysqli))
+ {
+ //Gehe wieder zu Beginn der Nacht -> PHASENACHTBEGINN
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASENACHTBEGINN);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+
+ //Zähle einen Tag dazu
+ $gameAssoc = gameAssoc($mysqli);
+ $nacht = $gameAssoc['nacht'];
+ $nacht +=1;
+ $mysqli->Query("UPDATE $spielID"."_game SET nacht = $nacht");
+ phaseInitialisieren(PHASENACHTBEGINN,$mysqli);
+ }
+}
+
+function endeDerAbstimmungEinfacheMehrheit($id, $mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+ //Ein Spieler mit der id $id wurde bei der Abstimmung des Dorfes im ersten Wahlgang für schuldig befunden.
+ if ($id >-1)
+ {
+ toeteSpieler($mysqli,$id);
+ }
+ if (!checkeSiegbedingungen($mysqli))
+ {
+ //Gehe wieder zu Beginn der Nacht
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASENACHTBEGINN);
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+
+ //Zähle einen Tag dazu
+ $gameAssoc = gameAssoc($mysqli);
+ $nacht = $gameAssoc['nacht'];
+ $nacht +=1;
+ $mysqli->Query("UPDATE $spielID"."_game SET nacht = $nacht");
+ phaseInitialisieren(PHASENACHTBEGINN,$mysqli);
+ }
+}
+
+function writeGameToLog($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $fileName = "log/Werwolf_log_".date("Y_m").".log";
+ $myfile = fopen($fileName, "a");
+ fwrite($myfile,"\n--- SPIEL BEENDET --- \n");
+ fwrite($myfile,"SpielID: $spielID \n");
+ fwrite($myfile,"SpielEnde: ".date("d.m.Y, H:i:s")."\n");
+ //Alle Spieler hineinschreiben:
+ fwrite($myfile,"Spieler:\n");
+ $playerQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ while ($temp = $playerQ->fetch_assoc())
+ {
+ fwrite($myfile,$temp['name']."\n");
+ }
+ fwrite($myfile,"Spielverlauf:\n");
+ $gameAssoc = gameAssoc($mysqli);
+ $mitUmbruch = str_replace(" ","\n",$gameAssoc['log']);
+ fwrite($myfile,$mitUmbruch);
+
+ //Schreibe noch die Überlebenden
+ fwrite("/n Die Überlebenden: /n");
+ $lebendQuery = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ while ($temp = $lebendQuery->fetch_assoc())
+ {
+ fwrite($temp['name']."(".nachtidentitaetAlsString($temp['nachtIdentitaet'],$mysqli).")/n");
+ }
+ fwrite("--- ENDE DES SPIELLOGS ---/n");
+ fclose($myfile);
+}
+
+function writeGameToLogSpielErstellen($mysqli, $spielID, $name)
+{
+ $fileName = "log/Werwolf_log_".date("Y_m").".log";
+ $myfile = fopen($fileName, "a");
+ fwrite($myfile,"\n--- NEUES SPIEL ERSTELLT --- \n");
+ fwrite($myfile,"SpielID: $spielID \n");
+ fwrite($myfile,"Zeit: ".date("d.m.Y, H:i:s")."\n");
+ fwrite($myfile,"Name des Erstellers: $name \n");
+ fclose($myfile);
+}
+
+function checkeSiegbedingungen($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+
+ //Zuerst schauen, ob wir nicht bereits gewonnen haben ;)
+ $gameAssoc = gameAssoc($mysqli);
+ if ($gameAssoc['spielphase']==PHASESIEGEREHRUNG)
+ return true;
+
+
+ //Schaue, ob es keine Werwölfe mehr gibt
+ $werwoelfeRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND nachtIdentitaet = ".CHARWERWOLF);
+ if ($werwoelfeRes->num_rows > 0)
+ {
+ //Es gibt noch Werwölfe, schaue, ob sie gewonnen haben
+ $dorfbewohnerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND nachtIdentitaet <> ".CHARWERWOLF);
+ if ($dorfbewohnerRes->num_rows <= 0)
+ {
+ //Die Werwölfe haben gewonnen ...
+ toGameLog($mysqli,"Die Werwölfe haben gewonnen");
+ toAllPlayerLog($mysqli,"Die Werwölfe haben gewonnen");
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ". PHASESIEGEREHRUNG .", tagestext = 'Die Werwölfe haben gewonnen'");
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ writeGameToLog($mysqli);
+ return true;
+ }
+ }
+ else
+ {
+ //Die Dorfbewohner haben gewonnen
+ toGameLog($mysqli,"Die Dorfbewohner haben gewonnen");
+ toAllPlayerLog($mysqli,"Die Dorfbewohner haben gewonnen");
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ". PHASESIEGEREHRUNG .", tagestext = 'Die Dorfbewohner haben gewonnen'");
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ writeGameToLog($mysqli);
+ return true;
+ }
+ //Es hat nicht eine Gruppierung gewonnen ... Wie sieht es mit den Verliebten aus?
+ //Schaue zuerst, ob es keine Verliebten mehr gibt ...
+ $verliebteRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE verliebtMit <> -1 AND lebt = 1");
+ if ($verliebteRes->num_rows > 0)
+ {
+ //Wenn es noch genau zwei Spieler gibt, sind die beiden Spieler die Verliebten und sie haben gewonnen
+ $alleRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ if ($alleRes->num_rows <= 2)
+ {
+ //Die verliebten haben gewonnen!
+ toGameLog($mysqli,"Die Verliebten haben gewonnen");
+ toAllPlayerLog($mysqli,"Die Verliebten haben gewonnen");
+ $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ". PHASESIEGEREHRUNG .", tagestext = 'Die Verliebten haben gewonnen'");
+ //alle müssen reloaden
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1, bereit = 0");
+ writeGameToLog($mysqli);
+ return true;
+ }
+ }
+ return false;
+}
+
+function binTot()
+{
+ //Zeige einen Button an, mit dem die Spiellog datei angezeigt werden kann.
+ $spielID = $_COOKIE['SpielID'];
+ echo "
Sie sind leider bereits gestorben ...
";
+ echo "
Verhalten Sie sich ruhig und stören Sie nicht das Spiel der anderen. Verraten Sie keine Informationen, damit die anderen Spieler ihr Spielerlebnis genießen können.
";
+ echo ""; //Auch als Toter will ich eine Liste haben :)
+ echo "";
+ echo "
+
+ Query("UPDATE $spielID"."_spieler SET reload = 1");
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 0 WHERE id = $spielerID");
+}
+
+function setReloadZero($spielerID, $mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 0 WHERE id = $spielerID");
+}
+
+function setBereit($mysqli,$spielerID,$bereit)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = $bereit WHERE id = $spielerID");
+}
+
+function gameAssoc($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $gameRes = $mysqli->Query("SELECT * FROM $spielID"."_game");
+ $gameA = $gameRes->fetch_assoc();
+ return $gameA;
+}
+
+function eigeneAssoc($mysqli)
+{
+ $spielID = $_COOKIE['SpielID'];
+ $eigeneID = $_COOKIE['eigeneID'];
+ $eigeneRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID");
+ $eigeneA = $eigeneRes->fetch_assoc();
+ return $eigeneA;
+}
+
+function getName($mysqli, $spielerID)
+{
+ //Gibt den Namen des Spielers mit der $spielerID zurück
+ $spielID = $_COOKIE['SpielID'];
+ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $spielerID");
+ $temp = $res->fetch_assoc();
+ return $temp['name'];
+}
+
+function getGesinnung($identitaet)
+{
+ if ($identitaet == CHARWERWOLF)
+ return "Werwölfe";
+ else
+ return "Dorfbewohner";
+}
+
+function nachtidentitaetAlsString($identitaet)
+{
+ switch($identitaet)
+ {
+ case CHARKEIN:
+ return "keine";
+ break;
+ case CHARDORFBEWOHNER:
+ return "Dorfbewohner";
+ break;
+ case CHARWERWOLF:
+ return "Werwolf";
+ break;
+ case CHARSEHER:
+ return "Seher/in";
+ break;
+ case CHARHEXE:
+ return "Hexe/r";
+ break;
+ case CHARJAEGER:
+ return "Jäger/in";
+ break;
+ case CHARAMOR:
+ return "Amor";
+ break;
+ case CHARBESCHUETZER:
+ return "Beschützer/in";
+ break;
+ case CHARPARERM:
+ return "Paranormaler Ermittler";
+ break;
+ case CHARLYKANTROPH:
+ return "Lykantroph/in";
+ break;
+ case CHARSPION:
+ return "Spion/in";
+ break;
+ case CHARMORDLUSTIGER:
+ return "Mordlustige(r)";
+ break;
+ case CHARPAZIFIST:
+ return "Pazifist/in";
+ break;
+ case CHARALTERMANN:
+ return "Die/Der Alte";
+ break;
+ default:
+ return "";
+ break;
+ }
+}
+
+function nachtidentitaetKurzerklaerung($identitaet)
+{
+ switch($identitaet)
+ {
+ case CHARKEIN:
+ return "keine";
+ break;
+ case CHARDORFBEWOHNER:
+ //Dorfbewohner
+ return "Beunruhigt durch das Auftauchen von Werwölfen, versuchen die Dorfbewohner wieder Frieden in das Dorf zu bringen, indem sie alle Werwölfe ausforschen und töten wollen.";
+ break;
+ case CHARWERWOLF:
+ //Werwolf
+ return "Die Werwölfe töten jede Nacht einen Dorfbewohner, verhalten sich aber am Tag, als gehörten sie zu ihnen. Achtung: Die Dorfbewohner wollen den Werwölfen auf die Schliche kommen ...";
+ break;
+ case CHARSEHER:
+ //Seher/in
+ return "Sie können jede Nacht die Nachtidentität eines Spielers sehen. Alternative: Sie sehen, welcher Gruppe derjenige angehört";
+ break;
+ case CHARHEXE:
+ //Hexe
+ return "Sie können ein Mal im Spiel jemanden mit Ihrem Todestrank töten, ein Mal im Spiel das Opfer der Werwölfe retten. Entscheiden Sie weise, viel hängt davon ab ...";
+ break;
+ case CHARJAEGER:
+ //Jäger/in
+ return "Wenn Sie getötet werden, können Sie nach einem letzten Griff zu Ihrer Flinte einen anderen Spieler mit in den Tod reißen";
+ break;
+ case CHARAMOR:
+ //Amor
+ return "Zu Beginn des Spieles dürfen Sie zwei Personen bestimmen, die sich verlieben. Stirbt die eine Person, begeht die andere aus Kummer Selbstmord";
+ break;
+ case CHARBESCHUETZER:
+ //Leibwächter/Beschützer
+ return "Sie können jede Nacht einen Spieler beschützen, der in dieser Nacht nicht sterben kann (Sie können sich auch selbst wählen). Sie dürfen nicht zwei Nächte hintereinander dieselbe Person schützen.";
+ break;
+ case CHARPARERM:
+ return "Sie können einmal im Spiel einen Spieler bestimmen und erfahren, ob sich unter diesem und den beiden Nachbarn zumindest ein Werwolf befindet.";
+ break;
+ case CHARLYKANTROPH:
+ return "Sie sehen aus wie ein Werwolf, sind aber keiner. Sie spielen also für die Dorfbewohner";
+ break;
+ case CHARSPION:
+ //Spion
+ return "Sie können jede Nacht einen Spieler auswählen und eine Identität, die dieser Spieler haben könnte. Sie erfahren, ob dieser
+ Spieler tatsächlich diese Identität besitzt";
+ break;
+ case CHARMORDLUSTIGER:
+ return "Sie wollen Blut sehen und argumentieren daher immer für das Töten eines Spielers";
+ break;
+ case CHARPAZIFIST:
+ return "Sie wollen, dass alle möglichst friedlich zusammenleben und argumentieren daher immer gegen das Töten eines Spielers";
+ break;
+ case CHARALTERMANN:
+ return "Sie sterben in der x. Nacht, wobei x die Anzahl der lebenden Werwölfe + 1 ist. Es kann also sein, dass sie früher sterben als gedacht ...";
+ break;
+ }
+}
+
+function toGameLog($mysqli,$logeintrag)
+{
+ //Fügt dem gamelog den $logeintrag hinzu
+ $spielID = $_COOKIE['SpielID'];
+ $gameAssoc = gameAssoc($mysqli);
+ $aktLog = $gameAssoc['log'];
+ $neuLog = $aktLog.date("H:i:s").": ".$logeintrag." ";
+ $neuLog = str_replace("'",'"',$neuLog); //ersetze alle ' mit "
+ $mysqli->Query("UPDATE $spielID"."_game SET log = '$neuLog'");
+}
+
+function toPlayerLog($mysqli, $logeintrag, $spieler)
+{
+ //Fügt dem Spielerlog des Spielers den logEintrag hinzu
+ $spielID = $_COOKIE['SpielID'];
+ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $spieler");
+ $temp = $res->fetch_assoc();
+ $aktLog = $temp['playerlog'];
+ $neuLog = $aktLog.date("H:i:s").": ".$logeintrag." ";
+ $neuLog = str_replace("'",'"',$neuLog); //ersetze alle ' mit "
+ $mysqli->Query("UPDATE $spielID"."_spieler SET playerlog = '$neuLog' WHERE id = $spieler");
+}
+
+function toAllPlayerLog($mysqli, $logeintrag)
+{
+ //Fügt allen Spielern diesen Logeintrag hinzu
+ $spielID = $_COOKIE['SpielID'];
+ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ while ($temp = $res->fetch_assoc())
+ {
+ toPlayerLog($mysqli,$logeintrag,$temp['id']);
+ }
+}
+
+function playerLogButton($mysqli)
+{
+ //Zeigt einen Button an, auf den der Spieler klicken kann, um sein Playerlog zu sehen
+ $eigeneAss = eigeneAssoc($mysqli);
+ $myLog = $eigeneAss['playerlog'];
+ echo "";
+ echo "";
+}
+
+function characterButton($mysqli)
+{
+ //Zeigt einen Button an, auf den der Spieler klicken kann, dann wird sein Character angezeigt
+ $eigeneAss = eigeneAssoc($mysqli);
+ $charString = nachtidentitaetAlsString($eigeneAss['nachtIdentitaet']);
+ $charErklaerung = nachtidentitaetKurzerklaerung($eigeneAss['nachtIdentitaet']);
+ echo "";
+ echo " ";
+}
+
+function getDorfbewohnerText()
+{
+ //Liefert verschiedene Texte zurück, die angezeigt werden, wenn der Weiterschlafen button aktiv wird
+ $i = rand(0,19);
+ $text = "";
+ switch($i)
+ {
+ case 0:
+ $text = "Du erwachst aus deinem Schlaf, siehst dich um, bemerkst aber nichts Außergewöhnliches.
+ Du legst dich wieder hin und versuchst weiterzuschlafen. Was für ein seltsamer Traum ...";
+ break;
+ case 1:
+ $text = "Schweißgebadet erwachst du ... doch nichts hat sich bewegt, alles ist so, wie es auch
+ am Tag davor war ... oder etwa nicht? Irgendwie hast du ein seltsames Gefühl ...";
+ break;
+ case 2:
+ $text = "Ein Albtraum war es, aus dem du erwachst ... Was hat dies zu bedeuten?
+ Wie soll es mit dem Dorf weitergehen? Fragen über Fragen ...";
+ break;
+ case 3:
+ $text = "Das ungute Gefühl verlässt dich auch im Schlaf nicht ... Bist du vielleicht der Nächste?
+ Wer hat sich gegen dich verschworen? Wer will dich tot sehen? Alles Fragen über Fragen, auf die du keine Antwort kennst ...";
+ break;
+ case 4:
+ $text = "Der Button mit der Aufschrift 'Log anzeigen' ermöglicht dir das Nachlesen von wichtigen Ereignissen,
+ die sich bereits im Spiel ereignet haben. Außerdem sind darin bei verschiedenen Charakteren wichtige Informationen gespeichert,
+ wie beispielsweise, wen der Seher aller gesehen hat ...";
+ break;
+ case 5:
+ $text = "Der Bürgermeister / Die Bürgermeisterin hält eine gewisse Machtposition inne. Er/Sie entscheidet, wann von der Diskussion
+ zur Anklage und dann zur Abstimmung übergegangen werden soll. Entscheidet also weise, wen ihr in diesem Amt sehen wollt.";
+ break;
+ case 6:
+ $text = "Der Seher/Die Seherin kann jede Runde die Identität einer Person sehen ... Das könnte sich für die Dorfbewohenr als nützlich,
+ für die Werwölfe aber als Bedrohung erweisen ...";
+ break;
+ case 7:
+ $text = "Die Hexe kann einmal im Spiel jemanden töten, einmal im Spiel das Opfer der Werwölfe heilen. Sie ist somit ein starker
+ Charakter auf Seiten der Dorfbewohner ... Mit ihrer Hilfe wird es möglich sein, die Werwölfe zu stoppen";
+ break;
+ case 8:
+ $text = "Blutrünstige Werwölfe, die des Nachts über Unschuldige herfallen, haben das Dorf heimgesucht. Nun ist es an den Dorfbewohnern,
+ die Werwölfe zu entlarven und sie ihrer gerechten Strafe zuzuführen ... Bedenkt aber, die Werwölfe verhalten sich am Tag wie
+ Dorfbewohner und versuchen, jeden Verdacht von ihnen abzulenken ... Seid also wachsam...";
+ break;
+ case 9:
+ $text = "Der Jäger / Die Jägerin ist ein Charakter mit erstaunlicher Reaktionszeit ... Wenn er den Tod an seine Tür pochen hört, kann
+ er nach einem letzten Griff zu seiner Flinte einen anderen Spieler mit in den Tod reißen ... Der/Die Jäger(in) sollte jedoch weise
+ entscheiden, wen er mit in den Tod reißt";
+ break;
+ case 10:
+ $text = "Zu Beginn des Spieles kann Amor zwei Personen bestimmen, die sich verlieben. Stirbt eine der beiden, begeht die andere aus Kummer Selbstmor.
+ Ziel der Verliebten ist es, mit ihrer Gruppierung (Dorfbewohner, Werwölfe) zu gewinnen, wenn sie der gleichen angehören.
+ Sollten Sie verschiedenen Gruppierungen angehören, gewinnen sie, wenn sie alle anderen töten ... Also Achtung Dorfbewohner,
+ vielleicht gibt es Verliebte unter euch, die nach eurem Untergang trachten ...";
+ break;
+ case 11:
+ $text = "Die Dorfbewohner sind verzweifelt ... Wer wird der nächste sein? Wen aus ihrer Mitte werden die Werwölfe als nächstes
+ zum Tode verdammen? Es ist ein riskantes Spiel, das sie treiben, und doch scheinen sie davonzukommen ... doch wie lange noch?";
+ break;
+ case 12:
+ $text = "Der Paranormale Ermittler kann einmal im Spiel fühlen, ob sich unter drei benachbarten Personen ein Werwolf befindet.
+ Können die Dorfbewohner mit seiner Hilfe den Werwölfen das Handwerk legen?";
+ break;
+ case 13:
+ $text = "Der Lykantroph / Die Lykantrophin sieht bloß aus wie ein Werwolf, obwohl sie selbst keiner ist ...
+ Eine gefährliche Tatsache ...";
+ break;
+ case 14:
+ $text = "Der Spion / Die Spionin kann jede Nacht die Identität eines Spielers überprüfen. Er / Sie kann so herausfinden,
+ ob der Spieler wirklich der ist, für den er sich ausgibt ...";
+ break;
+ case 15:
+ $text = "Die/Der Mordlustige will Blut sehen und argumentiert daher immer für den Tod eines Spielers.";
+ break;
+ case 16:
+ $text = "Der Pazifist / Die Pazifistin ist zutiefst unzufrieden und will nicht, dass überhaupt jemand getötet wird,
+ daher argumentiert sie / er stets gegen das Töten eines Spielers";
+ break;
+ case 17:
+ $text = "Die/Der Alte stirbt im Laufe des Spiels, und zwar abhängig davon, wie viele Werwölfe noch am Leben sind.";
+ break;
+ default:
+ $text = "Ein dunkler Schatten hat sich über das Dorf gelegt. Beunruhigt und verängstigt versuchen die übrig gebliebenen Dorfbewohner
+ die drohende Gefahr der Werwölfe abzuwehren. Doch sie werden immer weniger. Schon wieder gab es ein Opfer aus ihren Reihen ...
+ Wer ist unschuldig, und wer ein Lügner? Wer sagt die Wahrheit, wer steckt hinter alledem? Es sind düstere Zeiten, in denen
+ das Dorf nun ums Überleben kämpfen muss ...";
+ break;
+ }
+ return $text;
+}
+
+
+/*
+Erklärungen:
+Zu den Datenbank-Einträgen:
+[ID]_Game
+
+Spielphase //ALT, jetzt über Konstanten gelöst
+0: Setup -> Spieler suchen (PHASESETUP)
+1: Spielsetup -> jeder muss bestätigen, dass er dabei ist (PHASESPIELSETUP)
+2: Nacht Teil 1: Amor (PHASENACHT1)
+3: Nacht Teil 2: Verliebte (PHASENACHT2)
+4: Nacht Teil 3: Alle bis Werwölfe (PHASENACHT3)
+5: Nacht Teil 4: Hexe (PHASENACHT4)
+6: Nacht Teil 5: Weitergabe des Amuletts (PHASENACHT5)
+7: Tag, Tote werden bekanntgegeben (PHASETOTEBEKANNTGEBEN)
+8: Tag, Bürgermeisterwahl (PHASEBUERGERMEISTERWAHL)
+9: Tag, Diskussion (PHASEDISKUSSION)
+10: Tag, Anklagen (PHASEANKLAGEN)
+11: Tag, Abstimmung (PHASEABSTIMMUNG)
+12: Tag, Stichwahl der Abstimmung (PHASESTICHWAHL)
+13: Tag, nach Abstimmung (PHASENACHABSTIMMUNG)
+14: Siegerehrung (PHASESIEGEREHRUNG)
+
+charaktereAufdecken
+0: Die Charaktere werden nicht aufgedeckt
+1: Die Charaktere werden aufgedeckt
+
+buergermeisterWeitergeben
+0: Beim Tod des Bürgermeisters wird ein neuer gewählt.
+1: Beim Tod des Bürgermeisters entscheidet der Bürgermeister, wer sein Nachfolger wird.
+
+werwolfzahl
+Gibt die Anzahl der Werwölfe beim Spielsetup an
+
+hexenzahl
+Gibt die Anzahl der Hexen beim Spielsetup an
+
+seherzahl
+Gibt die Anzahl der Seher beim Spielsetup an
+
+jaegerzahl
+Gibt die Anzahl der Jäger beim Spielsetup an
+
+amorzahl
+Gibt die Anzahl der Amor(s) an (max 1)
+
+letzterAufruf
+gibt den letzten Aufruf an, kann später einmal verwendet werden, um alte Spiele zu löschen.
+
+werwolfopfer
+gibt das Opfer der Werwölfe an
+
+log
+Eine Log-Datei des gesamten Spiels
+Diese Datei soll das Spiel nachvollziehbar machen
+
+Nacht
+gibt die Anzahl der Nächte seit Spielbeginn an
+
+tagestext
+Gibt den Text an, der in Phase 7 allen angezeigt wird
+= Diese Nacht wurden getötet:
+SpielerX
+SpielerZ
+
+
+
+[ID]_Spieler
+
+Nachtidentitaet
+0: keine (CHARKEIN)
+1: Dorfbewohner (CHARDORFBEWOHNER)
+2: Werwolf (CHARWERWOLF)
+3: Seher (CHARSEHER)
+4: Hexe (CHARHEXE)
+5: Jäger (CHARJAEGER)
+6: Amor (CHARAMOR)
+7: Leibwächter/Beschützer (CHARBESCHUETZER)
+8: Paranormaler Ermittler (CHARPARERM)
+9: Lykantroph (CHARLYKANTROPH)
+10: Spion (CHARSPION)
+11: Mordlustige(r), intern Idiot (CHARMORDLUSTIGER)
+12: Pazifist (CHARPAZIFIST)
+13: Alter Mann (CHARALTERMANN)
+
+hexenOpfer
+Wen die Hexe töten will
+
+hexeHeilt
+0: Hexe heilt das Opfer der Werwölfe nicht
+1: Hexe heilt das Opfer der Werwölfe
+
+verliebtMit
+mit wem dieser Spieler vom Amor verliebt wurde
+
+jaegerDarfSchiessen
+0: Nichts Besonderes
+1: Der Jäger wurde getötet und darf jemanden mit in den Tod reißen
+
+buergermeisterDarfWeitergeben
+0: Nichts Besonderes
+1: Der Bürgermeister wurde getötet und gibt sein Amt weiter...
+
+playerlog
+Hier werden Sachen hineingeschrieben, die sich der Spieler wieder anschaun können soll
+z.B. als Seher wen er gesehen hat
+
+SESSION-Variablen Übersicht
+$_SESSION['SpielID'] gibt die ID des Spiels an
+$_SESSION['eigeneID'] gibt die eigene ID an
+
+
+
+ToDO:
+#1: DONE: Spieler mit gleichem Namen dürfen sich nicht in einem Spiel befinden DONE
+#2: DONE: Verschiedene Texte der Dorfbewohner (einschlafen) DONE
+#3: DONE: Seher sollte gleich reloaden ... DONE
+#4: DONE: Bei Anklagen nicht standardmäßig ein Spieler ausgewählt sein... DONE
+#5: DONE: Bei der Abstimmung sollte ersichtlich sein, wieviele Stimmen jeder (Angeklagte) erhalten hat EVTL. DONE
+#6: DONE: Wenn Bürgermeister in der Nacht stirbt, kommt es nicht zu einer neuen Abstimmung EVTL. DONE
+#7: DONE: In showGameLog fehlen die Zeilenumbrüche ... DONE
+#8: DONE: gameLog sollte auch wieder verborgen werden können ... DONE
+#9: DONE: In gameLog werden keine Umlaute angezeigt ... DONE [Encoding auf ISO-8859-1 umgestellt]
+#10: DONE: Der eigene Name sollte angezeigt werden ... DONE
+#11: DONE: Es sollte dem Bürgermeister angezeigt werden, dass er Bürgermeister ist ... DONE
+#12: DONE: Beim Starten eines neuen Spieles sollten alte Spiele gelöscht werden ...
+#13: Javascript, das beim Spielerstellen anzeigt, wieviele Charaktere ausgewählt wurden ...
+#14: Die Spieler, die nicht Spielleiter sind, sollten sehen können, welche Regeln ausgewählt wurden ...
+#15: DONE: Bei der Stimmenanzahl soll erkennbar sein, dass der Bürgermeister 2 Stimmen hat [EDIT: bzw. 1,5]
+#16: DONE: Paranormalen Ermittler hinzufügen
+#17: DONE: Alten Mann hinzufügen
+#18: Trunkenbold hinzufügen
+#19: Amulett des Schutzes hinzufügen
+#20: Wolfsjunges hinzufügen
+#21: Einsamen Wolf hinzufügen
+#22: DONE: Lykantrophen hinzufügen
+#23: DONE: Bürgermeister nur 1/2 Stimme geben, Fixen, dass Abstimmungen nicht zu früh abgebrochen werden.
+#24: Abstimmungsergebnis anzeigen
+#25: DONE: Bug beim Entfernen von Spielern
+#26: Spieler sollten unter dem Spiel das Spiel verlassen können
+#27: DONE: Den Verstorbenen eine Liste aller Spieler anzeigen
+#28: Kultführer hinzufügen
+#29: Strolch hinzufügen
+#30: DONE: SQL injection unterbinden
+#31: Hintergrundgrafik (verschieden Tag/Nacht)
+#31: DONE: Als Option machen, dass niemand erfährt, wie die Charaktere verteilt sind
+#32: Wenn jemand während des Spiels aussteigt, sollte das Spiel damit zurechtkommen
+#33: DONE: Wenn einer der Verliebten stirbt, sollten beide am Tag auf der Totenliste erscheinen
+#34: DONE: Beim Spielbeitritt sollte jeder Spieler ein vom Server zugeteiltes persönliches Passwort bekommen (Cookie), dass sich niemand anders für ihn ausgeben kann.
+#35: DONE: Idiot und Pazifist hinzufügen [EDIT: Umbenennung von Idiot in Mordlustiger]
+#36: DONE: "Seher" hinzufügen, der eine Identität überprüfen kann --> der "Spion"
+#37: DONE: Umbenennen von Leibwächter in Beschützer
+#38: DONE: Umbenennen von Idiot in Mordlustige(r)
+#39: DONE: Timer einfügen, ab wann die Abstimmung am Tag zu keinem Ergebnis führt
+#40: DONE: Timer einfügen, ab wann die Werwölfe nicht mehr einstimmig abstimmen müssen, zweiten Timer, ab wann kein Opfer gewählt wird
+#41: Funktion für alle Buttons erstellen, dass die Buttons in Zukunft leicht mit Grafik ausgetauscht werdne können
+#42: DONE: Timereinstellungen in den Spieleinstellungen bearbeiten können
+#43: Zeige im Log an, wer wen anklagt
+#44: DONE: Charaktere und Phasen durch Konstanten ersetzt, die in constants.php definiert werden
+#45: DONE: Verbiete, dass sich jemand wie ein Charakter nennt (WERWOLF, HEXE, AMOR)
+#46: Bots hinzufügen, die von einem "BotController"="Spieler, der für refreshen zuständig ist" zB ein Laptop
+#47: DONE: Umstellen der Farben ermöglichen (v1.0.1, 30.12.2019)
+
+*/
+?>
\ No newline at end of file
diff --git a/constants.php b/constants.php
new file mode 100644
index 0000000..ef98f68
--- /dev/null
+++ b/constants.php
@@ -0,0 +1,39 @@
+
\ No newline at end of file
diff --git a/gamelogreload.php b/gamelogreload.php
new file mode 100644
index 0000000..863e525
--- /dev/null
+++ b/gamelogreload.php
@@ -0,0 +1,16 @@
+query("SELECT * FROM ".$spielID."_game"))
+ {
+ $temp = $Result->fetch_assoc();
+ echo $temp['log'];
+ }
+
+?>
\ No newline at end of file
diff --git a/includes.example.php b/includes.example.php
new file mode 100644
index 0000000..2ddd6a3
--- /dev/null
+++ b/includes.example.php
@@ -0,0 +1,21 @@
+
\ No newline at end of file
diff --git a/listreload.php b/listreload.php
new file mode 100644
index 0000000..db1a28b
--- /dev/null
+++ b/listreload.php
@@ -0,0 +1,419 @@
+Query("SELECT * FROM $spielID"."_spieler WHERE id = $id");
+ $ichLebeQ = $ichLebeQ->fetch_assoc();
+ if (isset($_GET['reload']))
+ {
+ if ($ichLebeQ['reload'] == 1 && $_GET['reload'] == 1)
+ {
+ echo "1";
+ die;
+ }
+ else
+ {
+ echo "0";
+ }
+ }
+ if ($ichLebeQ['lebt'] == 1)
+ $ichLebe = true;
+
+
+ $spielRes = $mysqli->Query("SELECT * FROM $spielID"."_game");
+ $spielAss = $spielRes->fetch_assoc();
+ $phase = $spielAss['spielphase'];
+
+ $text = "";
+ if ($ichLebe || $phase <= PHASESPIELSETUP || $phase >= PHASESIEGEREHRUNG)
+ {
+ //Schaue nach, ob Antwort bereits gespeichert ist!
+ if (array_key_exists("list_lebe",$spielAss)) //Für Backward compatibility!
+ {
+ if ($phase != PHASENACHT3 && $spielAss['list_lebe_aktualisiert'] > (microtime(true)*1000 - _LISTMAXRELOADTIME)) //Bei Werwölfen nicht die Liste schicken!
+ {
+ //Sende vorgefertigte Antwort!
+ echo $spielAss['list_lebe'];
+ die;
+ }
+ }
+ if ($phase == PHASESETUP)
+ {
+ //spielersuchen-Phase
+ //Gib jeden Spieler als String zurück, farbe alle schwarz = 0
+ //Bei Spieler 0 schreibe (Spielleiter) dazu
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ while ($temp = $spielerRes->fetch_assoc())
+ {
+ if ($temp['spielleiter']==1)
+ {
+ $text.= $trennzeichen.$temp['name']." (Spielleiter)$trennzeichen"."0";
+ }
+ else
+ {
+ $text.= $trennzeichen.$temp['name'].$trennzeichen."0";
+ }
+ }
+ }
+ elseif ($phase == PHASESPIELSETUP)
+ {
+ //Alle werden in einer Liste angezeigt, die bereit sind grün
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ while ($temp = $spielerRes->fetch_assoc())
+ {
+ if ($temp['spielleiter']==1)
+ {
+ $text.= $trennzeichen.$temp['name']." (Spielleiter)$trennzeichen"."1";
+ }
+ else
+ {
+ if ($temp['bereit']==1)
+ $text.= $trennzeichen.$temp['name'].$trennzeichen."1";
+ else
+ $text.= $trennzeichen.$temp['name'].$trennzeichen."0";
+ }
+ }
+ }
+ elseif ($phase == PHASENACHT3) //Nur für Werwölfe, daher nicht in Liste schreiben!
+ {
+ //Schaue nach, ob ich Werwolf bin
+ $myRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $id");
+ $myAssoc = $myRes->fetch_assoc();
+ if ($myAssoc['nachtIdentitaet'] == CHARWERWOLF)
+ {
+ //Ich bin Werwolf --> Liste der (lebenden) Werwölfe
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ while ($temp = $spielerRes->fetch_assoc())
+ {
+
+ if ($temp['nachtIdentitaet']==CHARWERWOLF && $temp['lebt']==1)
+ {
+ if ($temp['wahlAuf']==-1)
+ echo $trennzeichen.$temp['name']." (wach)".$trennzeichen."0";
+ else
+ {
+ //Finde Namen heraus von wahlAuf
+ $nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
+ $nameAssoc = $nameRes->fetch_assoc();
+ echo $trennzeichen.$temp['name']." (wach): ".$nameAssoc['name'].$trennzeichen."1";
+ }
+ }
+
+ }
+ }
+ die;
+ }
+ elseif ($phase == PHASEBUERGERMEISTERWAHL)
+ {
+ //Bürgermeisterwahl
+ //ähnlich wie bei den Werwölfen
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
+ while ($temp = $spielerRes->fetch_assoc())
+ {
+ if ($temp['lebt']==1)
+ {
+ if ($temp['wahlAuf']==-1)
+ $text.= $trennzeichen.$temp['name']." (noch nicht Abgestimmt)".$trennzeichen."0";
+ else
+ {
+ //Finde Namen heraus von wahlAuf
+ $nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
+ $nameAssoc = $nameRes->fetch_assoc();
+ $text.= $trennzeichen.$temp['name'].": ".$nameAssoc['name'].$trennzeichen."1";
+ }
+ }
+ }
+ }
+ elseif ($phase == PHASEANKLAGEN)
+ {
+ //Anklagen
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE angeklagtVon > -1 AND lebt = 1");
+ while ($temp = $spielerRes->fetch_assoc())
+ {
+ //Finde Namen heraus von angeklagtVon
+ $nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['angeklagtVon']);
+ $nameAssoc = $nameRes->fetch_assoc();
+ $text.= $trennzeichen.$temp['name']." (angeklagt von ".$nameAssoc['name'].")".$trennzeichen."1";
+ }
+ }
+ elseif ($phase == PHASEABSTIMMUNG)
+ {
+ //Abstimmung
+ //Zeige zuerst die Angeklagten an
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND angeklagtVon > -1");
+ while ($temp = $spielerRes->fetch_assoc())
+ {
+ //Finde heraus, wieviele Stimmen
+ $stimmenRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND wahlAuf = ".$temp['id']);
+ //Finde heraus, ob Bürgermeister auf ihn gestimmt hat
+ $buergermeisterRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND wahlAuf = ".$temp['id']." AND buergermeister = 1");
+ $buergermeisterText = ""; //Zeige nichts an, wenn der Bürgermeister ihn nicht ausgewählt hat
+ if ($buergermeisterRes->num_rows > 0)
+ $buergermeisterText = " + Stimme des Bürgermeisters";
+ $text.= $trennzeichen.$temp['name'].", normale Stimmen: ".$stimmenRes->num_rows.$buergermeisterText.$trennzeichen."2";
+ }
+
+ //Dann zeige an, wer für wen gestimmt hat
+ $spielerRes2 = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ while ($temp = $spielerRes2->fetch_assoc())
+ {
+ if ($temp['wahlAuf']==-1)
+ $text.= $trennzeichen.$temp['name']." (noch nicht Abgestimmt)".$trennzeichen."0";
+ else
+ {
+ //Finde Namen heraus von wahlAuf
+ $nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
+ $nameAssoc = $nameRes->fetch_assoc();
+ $text.= $trennzeichen.$temp['name'].": ".$nameAssoc['name'].$trennzeichen."1";
+ }
+ }
+ }
+ elseif ($phase == PHASESTICHWAHL)
+ {
+ //Stichwahl = im Prinzip dasselbe wie in Phase 11
+ //Zeige zuerst die Angeklagten an
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND angeklagtVon > -1");
+ while ($temp = $spielerRes->fetch_assoc())
+ {
+ //Finde heraus, wieviele Stimmen
+ $stimmenRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND wahlAuf = ".$temp['id']);
+ //Finde heraus, ob Bürgermeister auf ihn gestimmt hat
+ $buergermeisterRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND wahlAuf = ".$temp['id']." AND buergermeister = 1");
+ $buergermeisterText = ""; //Zeige nichts an, wenn der Bürgermeister ihn nicht ausgewählt hat
+ if ($buergermeisterRes->num_rows > 0)
+ $buergermeisterText = " + Stimme des Bürgermeisters";
+ $text.= $trennzeichen.$temp['name'].", normale Stimmen: ".$stimmenRes->num_rows.$buergermeisterText.$trennzeichen."2";
+ }
+
+ //Dann zeige an, wer für wen gestimmt hat
+ $spielerRes2 = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ while ($temp = $spielerRes2->fetch_assoc())
+ {
+ if ($temp['wahlAuf']==-1)
+ $text.= $trennzeichen.$temp['name']." (noch nicht Abgestimmt)".$trennzeichen."0";
+ else
+ {
+ //Finde Namen heraus von wahlAuf
+ $nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
+ $nameAssoc = $nameRes->fetch_assoc();
+ $text.= $trennzeichen.$temp['name'].": ".$nameAssoc['name'].$trennzeichen."1";
+ }
+ }
+ }
+ $mysqli->Query("UPDATE $spielID"."_game SET `list_lebe` = '$text', `list_lebe_aktualisiert` = ". (int)(microtime(true)*1000));
+ echo $text;
+ }
+ else
+ {
+ if (array_key_exists("list_tot",$spielAss)) //Für Backward compatibility!
+ {
+ if ($spielAss['list_tot_aktualisiert'] > (microtime(true)*1000 - _LISTMAXRELOADTIME)) //Bei Werwölfen nicht die Liste schicken!
+ {
+ //Sende vorgefertigte Antwort!
+ echo $spielAss['list_tot'];
+ die;
+ }
+ }
+ $rueckgabe = "";
+ //Zuerst "verkünden", welche Phase wir haben
+ $text = "";
+ switch ($phase)
+ {
+ case PHASENACHT3:
+ $text = "Nacht (Teil 1)";
+ break;
+ case PHASENACHT4:
+ $text = "Nacht (Teil 2)";
+ break;
+ case PHASENACHT5:
+ $text = "Nacht (Teil 3)";
+ break;
+ case PHASETOTEBEKANNTGEBEN:
+ $text = "Morgen";
+ break;
+ case PHASEBUERGERMEISTERWAHL:
+ $text = "Bürgermeisterwahl";
+ break;
+ case PHASEDISKUSSION:
+ $text = "Diskussion";
+ break;
+ case PHASEANKLAGEN:
+ $text = "Anklagen";
+ break;
+ case PHASEABSTIMMUNG:
+ $text = "Abstimmung";
+ break;
+ case PHASESTICHWAHL:
+ $text = "Stichwahl";
+ break;
+ }
+ $rueckgabe.= $trennzeichen.$text.$trennzeichen."3";
+
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
+ while ($temp = $spielerRes->fetch_assoc())
+ {
+ $identitaet = "";
+ switch ($temp['nachtIdentitaet'])
+ {
+ case CHARDORFBEWOHNER:
+ $identitaet = "Dorfbewohner";
+ break;
+ case CHARWERWOLF:
+ $identitaet = "Werwolf";
+ break;
+ case CHARSEHER:
+ $identitaet = "Seher/in";
+ break;
+ case CHARHEXE:
+ $identitaet = "Hexe/r";
+ break;
+ case CHARJAEGER:
+ $identitaet = "Jäger/in";
+ break;
+ case CHARAMOR:
+ $identitaet = "Amor";
+ break;
+ case CHARBESCHUETZER:
+ $identitaet = "Beschützer/in";
+ break;
+ case CHARPARERM:
+ $identitaet = "Paranormale(r) Ermittler/in";
+ break;
+ case CHARLYKANTROPH:
+ $identitaet = "Lykantroph/in";
+ break;
+ case CHARSPION:
+ $identitaet = "Spion/in";
+ break;
+ case CHARMORDLUSTIGER:
+ $identitaet = "Mordlustige(r)";
+ break;
+ case CHARPAZIFIST:
+ $identitaet = "Pazifist/in";
+ break;
+ case CHARALTERMANN:
+ $identitaet = "Alte(r)";
+ break;
+ }
+ //Eine Liste aller aktiver Spieler anzeigen
+ //zuerst alle Lebenden anzeigen
+ if (($phase == PHASENACHT3 && $temp['nachtIdentitaet'] == CHARWERWOLF) || $phase == PHASEBUERGERMEISTERWAHL || $phase == PHASEDISKUSSION || $phase == PHASEANKLAGEN || $phase == PHASEABSTIMMUNG) //In diesen Phasen können die Werwölfe abstimmen
+ {
+ if ($temp['wahlAuf']==-1)
+ $rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, wach)".$trennzeichen."0";
+ else
+ {
+ //Finde Namen heraus von wahlAuf
+ $nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
+ $nameAssoc = $nameRes->fetch_assoc();
+ $rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, wach): ".$nameAssoc['name'].$trennzeichen."1";
+ }
+ }
+ elseif ($phase >= PHASENACHTENDE || ($phase == PHASENACHT1 && $temp['nachtIdentitaet']==CHARAMOR)||($phase == PHASENACHT3 && ($temp['nachtIdentitaet']==CHARSEHER || $temp['nachtIdentitaet']==CHARBESCHUETZER || $temp['nachtIdentitaet']==CHARPARERM || $temp['nachtIdentitaet']==CHARSPION)) || ($phase == PHASENACHT4 && $temp['nachtIdentitaet']==CHARHEXE))
+ {
+ //ist wach
+ if ($temp['nachtIdentitaet']==CHARHEXE)
+ {
+ //Zeige Tränke
+ $heiltrank = $temp['hexeHeiltraenke'];
+ $todestrank = $temp['hexeTodestraenke'];
+ $rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, wach, Heiltränke: $heiltrank, Todestränke: $todestrank)".$trennzeichen."0";
+ }
+ else
+ {
+ $rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, wach)".$trennzeichen."0";
+ }
+ }
+ else
+ {
+ //nicht wach
+ if ($temp['nachtIdentitaet']==CHARHEXE)
+ {
+ //Zeige Tränke
+ $heiltrank = $temp['hexeHeiltraenke'];
+ $todestrank = $temp['hexeTodestraenke'];
+ $rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, Heiltränke: $heiltrank, Todestränke: $todestrank)".$trennzeichen."0";
+ }
+ else
+ {
+ $rueckgabe.= $trennzeichen.$temp['name']." ($identitaet)".$trennzeichen."0";
+ }
+
+ }
+ }
+ //Dann alle Toten anzeigen
+ $spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 0");
+ while ($temp = $spielerRes->fetch_assoc())
+ {
+ $identitaet = "";
+ switch ($temp['nachtIdentitaet'])
+ {
+ case CHARDORFBEWOHNER:
+ $identitaet = "Dorfbewohner";
+ break;
+ case CHARWERWOLF:
+ $identitaet = "Werwolf";
+ break;
+ case CHARSEHER:
+ $identitaet = "Seher/in";
+ break;
+ case CHARHEXE:
+ $identitaet = "Hexe/r";
+ break;
+ case CHARJAEGER:
+ $identitaet = "Jäger/in";
+ break;
+ case CHARAMOR:
+ $identitaet = "Amor";
+ break;
+ case CHARBESCHUETZER:
+ $identitaet = "Beschützer/in";
+ break;
+ case CHARPARERM:
+ $identitaet = "Paranormale(r) Ermittler/in";
+ break;
+ case CHARLYKANTROPH:
+ $identitaet = "Lykantroph/in";
+ break;
+ case CHARSPION:
+ $identitaet = "Spion/in";
+ break;
+ case CHARMORDLUSTIGER:
+ $identitaet = "Mordlustige(r)";
+ break;
+ case CHARPAZIFIST:
+ $identitaet = "Pazifist/in";
+ break;
+ case CHARALTERMANN:
+ $identitaet = "Alte(r)";
+ break;
+ }
+ //Eine Liste aller aktiver Spieler anzeigen
+ //zuerst alle Lebenden anzeigen
+
+ $rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, tot)".$trennzeichen."4";
+
+ }
+ $mysqli->Query("UPDATE $spielID"."_game SET `list_tot` = '$rueckgabe', `list_tot_aktualisiert` = ". (int)(microtime(true)*1000));
+ echo $rueckgabe;
+ }
+
+ //0: schwarz
+ //1: grün
+ //2: rot
+ //3: schwarz groß
+ //4: grau
+?>
diff --git a/reload.php b/reload.php
new file mode 100644
index 0000000..787b884
--- /dev/null
+++ b/reload.php
@@ -0,0 +1,15 @@
+query("SELECT * FROM ".$spielID."_spieler WHERE id = $id"))
+ {
+ $temp = $Result->fetch_assoc();
+ echo $temp['reload'];
+ }
+
+?>
\ No newline at end of file