. */ function start() { //Diese Funktion zeigt das Startformular an, bei dem der Nutzer aufgefordert wird, ein Spiel zu erstellen, oder eine ID einzugeben ?>

Willkommen

Sie befinden sich momentan in keinem Spiel: Sie können entweder einem bereits erstellten Spiel beitreten oder ein neues Spiel erstellen!

Einem Spiel beitreten

Ein neues Spiel erstellen

Query("SELECT * FROM $i"."_game"); } catch (mysqli_sql_exception $e){ $existiert = False; } if($existiert && isset($alleres->num_rows)) { $temp = $alleres->fetch_assoc(); if ($temp['letzterAufruf'] < $zeitpunkt) { //löschen $mysqli->query("DROP TABLE `$i"."_game`"); $mysqli->query("DROP TABLE `$i"."_spieler`"); //echo $mysqli->error; } } } } function local_settings() { //Lässt lokale Einstellungen (in Cookies gespeichert) wie Farbe zu. ?>

Query("SELECT * FROM $spielID"."_game"); $gameResAssoc = $gameResult->fetch_assoc(); $buergermeisterWeitergeben = $gameResAssoc['buergermeisterWeitergeben']; $charaktereAufdecken = $gameResAssoc['charaktereAufdecken']; $seherSiehtIdentitaet = $gameResAssoc['seherSiehtIdentitaet']; $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']; $urwolfzahl = $gameResAssoc['urwolfzahl']; $werwolftimer1 = $gameResAssoc['werwolftimer1']; $werwolfzusatz1 = $gameResAssoc['werwolfzusatz1']; $werwolftimer2 = $gameResAssoc['werwolftimer2']; $werwolfzusatz2 = $gameResAssoc['werwolfzusatz2']; $dorftimer = $gameResAssoc['dorftimer']; $dorfzusatz = $gameResAssoc['dorfzusatz']; $dorfstichwahltimer = $gameResAssoc['dorfstichwahltimer']; $dorfstichwahlzusatz = $gameResAssoc['dorfstichwahlzusatz']; $zufaelligauswaehlen = $gameResAssoc['zufaelligeAuswahl']; $zufaelligeAuswahlBonus = $gameResAssoc['zufaelligeAuswahlBonus']; $inaktivzeit = $gameResAssoc['inaktivzeit']; $inaktivzeitzusatz = $gameResAssoc['inaktivzeitzusatz']; echo "

Allgemein

"; if ($buergermeisterWeitergeben == 0) echo ""; else echo ""; echo ""; if ($charaktereAufdecken == 0) echo ""; else echo ""; echo ""; if ($seherSiehtIdentitaet == 0) echo ""; else echo ""; echo "

Charaktere

"; if ($zufaelligauswaehlen == 0) { echo " "; } else { echo " "; } echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo "

Geben Sie dazu eine maximale Anzahl von Charakteren ein, die vorkommen sollen, bei Werwölfen müssen sie nichts eingeben
Zusätzlich können Sie noch einen Wert eingeben, der die Verteilung bestimmt. Ein positiver Wert erleichtert das Spiel für die Dorfbewohner, ein negativer für die Werwölfe (nur bei der zufälligen Charakterverteilung)

"; echo ""; echo "
"; echo "

Countdown-Einstellungen

"; echo ""; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; } function spielRegelnAnwenden($mysqli) { $spielID = $_COOKIE['SpielID']; if (isset($_POST['buergermeister'])) { //Zuerst überprüfen, ob die Variablen überhaupt existieren $buergermeisterWeitergeben = (int)$_POST['buergermeister']; $charaktereAufdecken = (int)$_POST['aufdecken']; $seherSiehtIdentitaet = (int)$_POST['seherSieht']; $hexenzahl = (int)$_POST['hexe']; $jaegerzahl = (int)$_POST['jaeger']; $seherzahl = (int)$_POST['seher']; $amorzahl = (int)$_POST['amor']; $beschuetzerzahl = (int)$_POST['beschuetzer']; $parErmZahl = (int)$_POST['parErm']; $lykantrophenzahl = (int)$_POST['lykantrophen']; $spionezahl = (int)$_POST['spione']; $idiotenzahl = (int)$_POST['idioten']; $pazifistenzahl = (int)$_POST['pazifisten']; $altenzahl = (int)$_POST['alten']; $urwolfzahl = (int)$_POST['urwolf']; $werwolftimer1 = (int)$_POST['werwolftimer1']; $werwolfzusatz1 = (int)$_POST['werwolfzusatz1']; $werwolftimer2 = (int)$_POST['werwolftimer2']; $werwolfzusatz2 = (int)$_POST['werwolfzusatz2']; $dorftimer = (int)$_POST['dorftimer']; $dorfzusatz = (int)$_POST['dorfzusatz']; $dorfstichwahltimer = (int)$_POST['dorfstichwahltimer']; $dorfstichwahlzusatz = (int)$_POST['dorfstichwahlzusatz']; $inaktivzeit = (int)$_POST['inaktivzeit']; $inaktivzeitzusatz = (int)$_POST['inaktivzeitzusatz']; $zufaelligeAuswahlBonus = (int)$_POST['zufaelligeAuswahlBonus']; $zufaelligauswaehlen = 0; if (isset($_POST['zufaelligauswaehlen'])) { $zufaelligauswaehlen = 1; $werwolfzahl = 0; } else { $werwolfzahl = $_POST['werwoelfe']; } try { if ($werwolftimer1 < 15 || $werwolfzusatz1 < 0 || $werwolftimer2 < 15 || $werwolfzusatz2 < 0 || $dorftimer < 60 || $dorfzusatz < 0 || $dorfstichwahltimer < 30 || $dorfstichwahlzusatz < 0) { //Alles auf Standardwerte zurücksetzen throw new Exception("Eingabe ungültig"); } } catch (Exception $e) { echo "

Eine oder mehrere Countdown-Einstellungen sind ungültig

"; $werwolftimer1 = 60; $werwolfzusatz1 = 4; $werwolftimer2 = 50; $werwolfzusatz2 = 3; $dorftimer = 550; $dorfzusatz = 10; $dorfstichwahltimer = 200; $dorfstichwahlzusatz = 5; } $mysqli->Query("UPDATE $spielID"."_game SET buergermeisterWeitergeben = $buergermeisterWeitergeben, charaktereAufdecken = $charaktereAufdecken, seherSiehtIdentitaet = $seherSiehtIdentitaet, werwolfzahl = $werwolfzahl, hexenzahl = $hexenzahl, jaegerzahl = $jaegerzahl, seherzahl = $seherzahl, amorzahl = $amorzahl, beschuetzerzahl = $beschuetzerzahl, parErmZahl = $parErmZahl, lykantrophenzahl = $lykantrophenzahl, spionezahl = $spionezahl, idiotenzahl = $idiotenzahl, pazifistenzahl = $pazifistenzahl, altenzahl = $altenzahl, urwolfzahl = $urwolfzahl, zufaelligeAuswahl = $zufaelligauswaehlen, zufaelligeAuswahlBonus = $zufaelligeAuswahlBonus, werwolftimer1 = $werwolftimer1, werwolfzusatz1 = $werwolfzusatz1, werwolftimer2 = $werwolftimer2, werwolfzusatz2 = $werwolfzusatz2, dorftimer = $dorftimer, dorfzusatz = $dorfzusatz, dorfstichwahltimer = $dorfstichwahltimer, dorfstichwahlzusatz = $dorfstichwahlzusatz, inaktivzeit = $inaktivzeit, inaktivzeitzusatz = $inaktivzeitzusatz"); //Fertig upgedated ;) } } function spielInitialisieren($mysqli,$spielerzahl) { $spielID = $_COOKIE['SpielID']; //Zuerst überprüfen, ob mindestens 2 Spieler mitspielen if ($spielerzahl < 2) { echo "

Zu wenig Spieler, um ein Spiel zu starten!

"; return false; } $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']; $urwolfzahl = $gameResAssoc['urwolfzahl']; $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 + $urwolfzahl; if ($besondereCharaktere > $spielerzahl && $zufaelligeAuswahl == 0) { echo "

Nicht genug Spieler für Ihre Spielkonfiguration

"; return false; } //Schau, ob es zumindest einen "bösen" Charakter gibt... $boeseCharaktere = $werwolfzahl + $urwolfzahl; 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']; $urwolfzahl = $gameResAssoc['urwolfzahl']; $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 + $urwolfzahl; 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 + $urwolfzahl; 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, Urwölfe: $urwolfzahl"; 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; $urwolfbonus = -8; $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); $urwolfzahlN = rand(0, $urwolfzahl); $dorfbewohnerzahlN = $spielerzahl - $werwolfzahlN - $hexenzahlN - $jaegerzahlN - $seherzahlN - $amorzahlN - $beschuetzerzahlN - $parErmZahlN - $lykantrophenzahlN - $spionezahlN - $idiotenzahlN - $pazifistenzahlN - $altenzahlN - $urwolfzahlN; //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 + $urwolfzahlN * $urwolfbonus + $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; $urwolfzahl = $urwolfzahlN; 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; $urwolfzahl = 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, Urwölfe: $urwolfzahl"; 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, Urwölfe: $urwolfzahl"; 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); weiseCharakterZu($urwolfzahl, CHARURWOLF, $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 = (int)$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"); } elseif ($temp['nachtIdentitaet'] == CHARURWOLF) { $mysqli->Query("UPDATE $spielID"."_spieler SET urwolf_anzahl_faehigkeiten = 1 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 = (int)$temp['id']; //Mache ihn zu dem Charakter $identitaet = (int)$identitaet; $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"); $waiting_for_others_time = time() + get_waiting_for_others_time($mysqli); $mysqli->Query("UPDATE $spielID"."_game SET `waiting_for_others_time` = $waiting_for_others_time"); } elseif ($phase == PHASENACHT2) { $waiting_for_others_time = time() + get_waiting_for_others_time($mysqli); $mysqli->Query("UPDATE $spielID"."_game SET `waiting_for_others_time` = $waiting_for_others_time"); } 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 ." OR nachtIdentitaet = ".CHARURWOLF.") 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." OR nachtIdentitaet = ".CHARURWOLF.")"); } 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." OR nachtIdentitaet = ".CHARURWOLF.")"); } $waiting_for_others_time = time() + get_waiting_for_others_time($mysqli); $mysqli->Query("UPDATE $spielID"."_game SET `waiting_for_others_time` = $waiting_for_others_time"); } elseif ($phase == PHASENACHT4) { $waiting_for_others_time = time() + get_waiting_for_others_time($mysqli); $mysqli->Query("UPDATE $spielID"."_game SET `waiting_for_others_time` = $waiting_for_others_time"); } 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 = (int)$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']; } } } //entferne doppelte Einträge: $tote = array_unique($tote, SORT_NUMERIC); //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"); $stmt = $mysqli->prepare("UPDATE $spielID"."_game SET werwolfopfer = -1, tagestext = ?"); $stmt->bind_param('s',$anzeigeString); $stmt->execute(); $stmt->close(); //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 get_waiting_for_others_time($mysqli) { //Gibt die Anzahl der Sekunden zurück, wie lange wir warten wollen, bis wir anzeigen, auf wen wir noch warten. $spielID = (int)$_COOKIE['SpielID']; if ($result = $mysqli->query("SELECT * FROM $spielID"."_spieler")) { $spielerzahl = $result->num_rows; if ($g = gameAssoc($mysqli)) { return $g['inaktivzeit'] + $g['inaktivzeitzusatz'] * $spielerzahl; } } return 0; } function toeteSpieler($mysqli, $spielerID) { //Wird aufgerufen, wenn dieser Spieler stirbt $spielID = $_COOKIE['SpielID']; $eigeneID = $_COOKIE['eigeneID']; $spielerID = (int)$spielerID; //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($mysqli) { //Zeigt das warteAufAnder an, damit es bei jedem gleich aussieht echo "

Warte auf andere Spieler

"; //Output the players we are waiting for (if enough time has passed) $gameAssoc = gameAssoc($mysqli); if ($gameAssoc['waiting_for_others_time'] < time()) { $spielID = (int)$_COOKIE['SpielID']; $nichtBereitResult = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE bereit = 0 AND lebt = 1"); if (!is_bool($nichtBereitResult)) { echo("Warte noch auf: "); while($row = $nichtBereitResult->fetch_row()){ if (count($row) > 1) { error_log($row[1]); echo("$row[1]\t"); } } } } } function dorfbewohnerWeiterschlafen() { //Zeigt einen kurzen Text an und einen Button, den jeder drücken muss, damit es weitergeht. $text = getDorfbewohnerText(); echo '

'.$text.'

'; } 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 "
"; echo ''; echo "

Welche beiden Spieler möchten Sie verlieben?

"; echo "

'; echo "

'; 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 "
"; echo ''; echo "

Sie als Spion(in) dürfen die Identität eines Spielers überprüfen. Welchen Spieler möchten Sie näher betrachten?

"; echo "

Welche Identität glauben Sie, besitzt dieser Spieler?

'; echo "

'; } function spionSehe($mysqli, $id, $identitaet) { $spielID = $_COOKIE['SpielID']; $eigeneID = $_COOKIE['eigeneID']; $id = (int)$id; //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 urwolfInitialisiere($mysqli) { $spielID = $_COOKIE['SpielID']; //Zeige eine Liste aller lebenden Spieler an echo "
"; echo ''; echo "

Sie als Urwolf/Urwölfin können einmal im Spiel einen anderen Spieler zum Werwolf machen. Wen wollen Sie wählen?
Wenn Sie niemanden zum Werwolf machen wollen, wählen sie 'Niemand' aus

"; echo "

'; } function urwolfHandle($mysqli, $id) { $spielID = $_COOKIE['SpielID']; $eigeneID = $_COOKIE['eigeneID']; if ($id == -1) { $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1 WHERE id = $eigeneID"); return true; //NIEMAND } if ($mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID")->fetch_assoc()['urwolf_anzahl_faehigkeiten'] > 0) { //schauen, ob es ein valider Spieler ist $stmt = $mysqli->prepare("SELECT * FROM $spielID"."_spieler WHERE id = ? AND lebt = 1"); $stmt->bind_param('i',$id); $stmt->execute(); $spielerRes = $stmt->get_result(); if ($spielerRes->num_rows < 1) return false; $spielerAssoc=$spielerRes->fetch_assoc(); $identitaet = $spielerAssoc['nachtIdentitaet']; $strIdentitaet = nachtidentitaetAlsString($identitaet); $text = $spielerAssoc['name']." ist jetzt ein Werwolf!"; $stmt->close(); echo "

$text

"; //Schreibe es auch ins playerlog, damit es der Spieler nachlesen kann toPlayerLog($mysqli, $text, $eigeneID); toPlayerLog($mysqli, "Sie wurden vom Urwolf/von der Urwölfin zu einem Werwolf gemacht. Sie verlieren alle bisherigen Fähigkeiten und spielen nun für die Werwölfe! Viel Erfolg!", $id); toGameLog($mysqli,getName($mysqli,$eigeneID)."(Urwolf/Urwölfin) macht ".$spielerAssoc['name']."($strIdentitaet) zum Werwolf."); $stmt = $mysqli->prepare("UPDATE $spielID"."_spieler SET nachtIdentitaet = ". CHARWERWOLF .", popup_text = 'Du wurdest vom Urwolf / von der Urwölfin zu einem Werwolf gemacht und spielst jetzt für die Werwölfe!' WHERE id = ?"); $stmt->bind_param('i',$id); $stmt->execute(); $stmt->close(); //Setze mich noch auf bereit ;) $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1, urwolf_anzahl_faehigkeiten = 0 WHERE id = $eigeneID"); return true; } else { return false; } } function seherInitialisiere($mysqli) { $spielID = $_COOKIE['SpielID']; //Zeige eine Liste aller lebenden Spieler an echo "
"; echo ''; echo "

Sie als Seher(in) dürfen die Identität eines Spielers erfahren. Welchen Spieler möchten Sie näher betrachten?

"; echo "

'; } function seherSehe($mysqli, $id) { //id = die Id des Spielers, der gesehen wird $id = (int)$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; $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 "
"; echo ''; echo "

Sie als Beschützer(in) dürfen einen Spieler diese Nacht beschützen (Auch Sie selbst)

"; echo "

'; } function beschuetzerAuswahl($mysqli,$id) { $spielID = $_COOKIE['SpielID']; $eigeneID = $_COOKIE['eigeneID']; $id = (int)$id; //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 ''; echo "

Welchen Spieler + (lebende) Nachbarn wollen Sie näher beobachten?

"; echo "

'; echo "

"; } function parErmAusgewaehlt($mysqli, $id) { $spielID = $_COOKIE['SpielID']; $eigeneID = $_COOKIE['eigeneID']; $id = (int)$id; //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 ." OR nachtIdentitaet = ". CHARURWOLF .") 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 ''; //Der Hexe das Opfer der Werwölfe bekanntgeben $gameAss = gameAssoc($mysqli); if ($gameAss['werwolfopfer']!=-1) { echo "

Opfer der Werwölfe: "; echo getName($mysqli,$gameAss['werwolfopfer']); echo "

"; //Schreibe es auch in das Hexe log $nacht = $gameAss['nacht']; $name = getName($mysqli,$gameAss['werwolfopfer']); toPlayerLog($mysqli,"In Nacht $nacht wählten die Werwölfe $name als Opfer.",$eigeneID); if ($heiltraenke > 0) { //Die Hexe fragen, ob sie das Opfer heilen will echo "

"; } } //Die Hexe fragen, ob sie jemanden töten will, wenn sie denn noch einen Trank hat ... if ($todestraenke > 0) { echo "

Sie dürfen Ihren Todestrank verwenden und jemanden töten. Wen wollen Sie töten?

"; echo "

'; } 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 "
"; echo ''; echo "

Sie als Jäger(in) dürfen einen Spieler mit in den Tod reißen:

"; 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 "
"; echo ''; echo "

Sie als Bürgermeister(in) dürfen einen Spieler als Ihren Nachfolger bestimmen:

"; 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']; $id1 = (int)$id1; $id2 = (int)$id2; //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"); if ($myfile){ 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($myfile,"Die Überlebenden:\n"); $lebendQuery = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1"); while ($temp = $lebendQuery->fetch_assoc()) { fwrite($myfile,$temp['name']."(".nachtidentitaetAlsString($temp['nachtIdentitaet'],$mysqli).")\n"); } fwrite($myfile,"--- ENDE DES SPIELLOGS ---\n"); fclose($myfile); } } function writeGameToLogSpielErstellen($mysqli, $spielID, $name) { $fileName = "log/Werwolf_log_".date("Y_m").".log"; $myfile = fopen($fileName, "a"); if ($myfile){ 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. " OR nachtIdentitaet = ".CHARURWOLF.")"); 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. " AND nachtIdentitaet <> ".CHARURWOLF); 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 lebt = 0 WHERE id = $spielerID"); //Überprüfe, ob sonst schon alle bereit sind if ($g = gameAssoc($mysqli)) { phaseBeendenWennAlleBereit($g['spielphase'],$mysqli); } } function alleReloadAusser($spielerID,$mysqli) { $spielID = $_COOKIE['SpielID']; $spielerID = (int)$spielerID; $mysqli->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']; $spielerID = (int)$spielerID; $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 0 WHERE id = $spielerID"); } function setBereit($mysqli,$spielerID,$bereit) { $spielID = $_COOKIE['SpielID']; $spielerID = (int)$spielerID; $bereit = (int)$bereit; $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = $bereit WHERE id = $spielerID"); } function gameAssoc($mysqli) { $spielID = $_COOKIE['SpielID']; try{ if ($gameRes = $mysqli->Query("SELECT * FROM $spielID"."_game")) { $gameA = $gameRes->fetch_assoc(); return $gameA; } }catch(mysqli_sql_exception $e) {} return false; } 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']; $spielerID = (int)$spielerID; try{ if ($res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $spielerID")) { $temp = $res->fetch_assoc(); return $temp['name']; } } catch(mysqli_sql_exception $e) {} return "Unknown"; } function getGesinnung($identitaet) { if ($identitaet == CHARWERWOLF || $identitaet == CHARURWOLF) 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; case CHARURWOLF: return "Urwolf/Urwölfin"; 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 (oder Urwolf) 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; case CHARURWOLF: return "Sie gehören zu den Werwölfen und gewinnen bzw. verlieren mit ihnen. Einmal pro Spiel können Sie einen Spieler zum Werwolf machen, der dann alle bisherigen Fähigkeiten verliert ..."; break; } } function toGameLog($mysqli,$logeintrag) { //Fügt dem gamelog den $logeintrag hinzu $spielID = $_COOKIE['SpielID']; if ($gameAssoc = gameAssoc($mysqli)) { $aktLog = $gameAssoc['log']; $neuLog = $aktLog.date("H:i:s").": ".$logeintrag."
"; $neuLog = str_replace("'",'"',$neuLog); //ersetze alle ' mit " $stmt = $mysqli->prepare("UPDATE $spielID"."_game SET log = ?"); $stmt->bind_param("s",$neuLog); $stmt->execute(); $stmt->close(); } } function toPlayerLog($mysqli, $logeintrag, $spieler) { //Fügt dem Spielerlog des Spielers den logEintrag hinzu $spielID = $_COOKIE['SpielID']; $spieler = (int)$spieler; $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 " $stmt = $mysqli->prepare("UPDATE $spielID"."_spieler SET playerlog = ? WHERE id = ?"); $stmt->bind_param("si",$neuLog, $spieler); $stmt->execute(); $stmt->close(); } 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,20); $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; case 18: $text = "Der Urwolf / Die Urwölfin spielt gemeinsam mit den Werwölfen, kann aber einmal im Spiel einen Spieler zum Werwolf machen, der daraufhin alle seine bisherigen Fähigkeiten verliert."; 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; } ?>