. */ ?>
Du befindest dich bereits in einem Spiel, Name: ".getName($mysqli,$eigeneID)."
"; $myname = getName($mysqli,$eigeneID); echo "Name: ". $myname ."
Sie sind Bürgermeister
"; } } //Vielleicht will der Spielleiter jemanden entfernen? if (isset($_POST['spieler_entfernen']) && isset($_POST['entfernenID'])) { $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID AND spielleiter = 1"); if ($res->num_rows > 0) { aus_spiel_entfernen((int)$_POST['entfernenID'],$mysqli); $text = $myname."(Spielleiter) hat ".getName($mysqli,(int)($_POST['entfernenID'])). " aus dem Spiel entfernt."; toGameLog($mysqli, $text); toAllPlayerLog($mysqli, $text); } } //Bevor wir noch auf die Phase schauen, schauen wir, ob irgendetwas unabhängig von der Phase ist //wie zum Beispiel der Tod des Jägers $jaegerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE jaegerDarfSchiessen = 1"); if ($jaegerRes->num_rows > 0) { $jaegerA = $jaegerRes->fetch_assoc(); if ($jaegerA['id']==$eigeneID) { //Falls wir selbst der Jäger sind, dürfen wir schießen if (isset($_POST['jaegerHatAusgewaehlt'])) { toeteSpieler($mysqli, $_POST['jaegerID']); //Dann setze jaegerDarfSchiessen wieder auf 0 $mysqli->Query("UPDATE $spielID"."_spieler SET jaegerDarfSchiessen = 0, reload = 1 WHERE id = $eigeneID"); $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1"); $pageReload = true; } jaegerInitialisiere($mysqli); } else { echo "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 && $gameAssoc['spielphase'] != PHASESPIELSETUP && $gameAssoc['spielphase'] != PHASESETUP) { //Der Bürgermeister wurde getötet und darf sein Amt weitergeben ... $buergermA = $buergermeisterRes->fetch_assoc(); if ($buergermA['id']==$eigeneID) { //Falls wir selbst der Jäger sind, dürfen wir schießen if (isset($_POST['buergermeisterNachfolger'])) { //Dann setze buergermeisterDarfWeitergeben wieder auf 0 $mysqli->Query("UPDATE $spielID"."_spieler SET buergermeisterDarfWeitergeben = 0, reload = 1 WHERE id = $eigeneID"); $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1"); $neuerBuergermeister = (int)$_POST['buergermeisterID']; $mysqli->Query("UPDATE $spielID"."_spieler SET buergermeister = 1 WHERE id = $neuerBuergermeister"); toGameLog($mysqli,getName($mysqli,$neuerBuergermeister)." wurde als Nachfolger des Bürgermeisters eingesetzt."); toAllPlayerLog($mysqli,getName($mysqli,$neuerBuergermeister)." wurde als Nachfolger des Bürgermeisters eingesetzt."); $pageReload = true; } buergermeisterInitialisiere($mysqli); } else { echo "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 "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 "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($mysqli); $pageReload = true; } else { if ($eigeneAssoc['nachtIdentitaet'] == CHARAMOR) { //Amor if (isset($_POST['amorHatAusgewaehlt'])) { if (amorGueltig($mysqli,$_POST['amorID1'],$_POST['amorID2'])==false) { amorInitialisiere($mysqli); //Irgendetwas ist schiefgegangen --> wähle nochmals aus } else { warteAufAndere($mysqli); $pageReload = true; setBereit($mysqli,$eigeneID,1); phaseBeendenWennAlleBereit(PHASENACHT1,$mysqli); } } else { amorInitialisiere($mysqli); } } else { //Ganz normaler Dorfbewohner if (isset($_POST['weiterschlafen'])) { //der Button wurde bereits geklickt setBereit($mysqli,$eigeneID,1); warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT1,$mysqli); } else { //zeige den Button an dorfbewohnerWeiterschlafen(); } } } } elseif ($phase == PHASENACHT2) { //Die Verliebten erwachen ... characterButton($mysqli); $eigeneAssoc = eigeneAssoc($mysqli); if ($eigeneAssoc['bereit']==1) { warteAufAndere($mysqli); $pageReload = true; } else { if ($eigeneAssoc['verliebtMit'] > -1) { if (isset($_POST['verliebteWeiter'])) { setBereit($mysqli,$eigeneID,1); warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT2,$mysqli); } else { //Zeige an, mit wem ich verliebt bin echo "'; } } else { //Ganz normaler Dorfbewohner if (isset($_POST['weiterschlafen'])) { //der Button wurde bereits geklickt setBereit($mysqli,$eigeneID,1); warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT2,$mysqli); } else { //zeige den Button an dorfbewohnerWeiterschlafen(); } } } } elseif ($phase == PHASENACHT3) { //Hier erwachen die Werwölfe, die Seherin und können ihre Nachtaktivität ausführen //Die anderen Spieler müssen auf einen Button drücken, um als ready zu gelten. characterButton($mysqli); //Zuerst jedem Spieler seinen Charakter zeigen //Schaue nach, welcher Charakter ich bin... $spielerResult = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID"); $spielerAssoc = $spielerResult->fetch_assoc(); //Falls der Spieler bereit ist, brauche ich nur noch warten auf andere anzeigen if ($spielerAssoc['bereit']==1) { warteAufAndere($mysqli); $pageReload = true; } else { $identitaet = $spielerAssoc['nachtIdentitaet']; if ($identitaet == CHARSEHER) { //SEHER if (isset($_POST['seherHatAusgewaehlt'])) { if (seherSehe($mysqli,$_POST['seherID'])==false) { //Der Seher hat einen ungültigen Zug gemacht //nochmals von vorne seherInitialisiere($mysqli); } else { //Der Seher hat erfolgreich ausgewählt --> Schaue, ob wir die Phase schon beenden können warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); } } else { //Der Seher hat noch nicht ausgewählt -> Initialisiere seherInitialisiere($mysqli); } } elseif ($identitaet == CHARSPION) { //Spion if (isset($_POST['spionHatAusgewaehlt']) && isset($_POST['spionID']) && isset ($_POST['spionIdentitaet'])) { if (spionSehe($mysqli,$_POST['spionID'],$_POST['spionIdentitaet'])==false) { //Ungültiger Zug, nochmals von vorne spionInitialisiere($mysqli); } else { //Gültiger Zug! warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); } } else { spionInitialisiere($mysqli); } } elseif ($identitaet == CHARBESCHUETZER) { //Beschützer, früher Leibwächter if (isset($_POST['beschuetzerHatAusgewaehlt'])) { if (beschuetzerAuswahl($mysqli,$_POST['beschuetzerID'])==false) { //Ungültig -> nochmal beschuetzerInitialisiere($mysqli); } else { //Der Beschützer hat erfolgreich ausgewählt warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); } } else { beschuetzerInitialisiere($mysqli); } } elseif ($identitaet == CHARPARERM) { //Paranormaler Ermittler $eigeneAssoc = eigeneAssoc($mysqli); if ($eigeneAssoc['parErmEingesetzt']==0) { if (isset($_POST['parErmHatAusgewaehlt'])) { if (parErmAusgewaehlt($mysqli,$_POST['parErmID'])==false) { //Ungültig parErmInitialisiere($mysqli); } else { //Erfolgreich setBereit($mysqli,$eigeneID,1); warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); } } elseif (isset ($_POST['parErmNichtAuswaehlen'])) { //Diese Runde nicht auswählen setBereit($mysqli,$eigeneID,1); warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); } else { //Fragen, ob er einsetzen will parErmInitialisiere($mysqli); } } else { //Ganz normaler Dorfbewohner if (isset($_POST['weiterschlafen'])) { //der Button wurde bereits geklickt setBereit($mysqli,$eigeneID,1); warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); } else { //zeige den Button an dorfbewohnerWeiterschlafen(); } } } elseif ($identitaet == CHARWERWOLF || $identitaet == CHARURWOLF) { //WERWÖLFE $zeitAbgelaufen = false; //Zuerst kontrollieren, ob die Zeit schon ausgelaufen ist $eigeneAssoc = eigeneAssoc($mysqli); if ($eigeneAssoc['countdownBis']<= time()) { //Timer abgelaufen, nachschauen, ob es sich bloß um den Einstimmigkeits-Timer handelt ... $gameAssoc = gameAssoc($mysqli); if ($gameAssoc['werwolfeinstimmig']==1) { //Es handelt sich um die Einstimmigkeits-Abstimmung, mal sehen ob wir mehr als 2 //Werwölfe haben, dann starte einen neuen Timer [Anm.: müssen wir haben, da sonst werwolfeinstimmig gleich auf 0 gesetzt wird] //Starte einen neuen Timer, bei dem die Abstimmung nicht mehr einstimmig sein muss ... $werwolfQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ".CHARURWOLF.") AND lebt = 1"); $werwolfzahl = $werwolfQ->num_rows; $countdownBis = time()+$gameAssoc['werwolftimer2']+$gameAssoc['werwolfzusatz2']*$werwolfzahl; if ($countdownBis >= time()+15) $countdownAb = time()+5; else $countdownAb = time(); $mysqli->Query("UPDATE $spielID"."_spieler SET countdownBis = $countdownBis, countdownAb = $countdownAb WHERE (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ".CHARURWOLF.") AND lebt = 1"); $mysqli->Query("UPDATE $spielID"."_game SET werwolfeinstimmig = 0"); //Timer initialiseren $timerZahl = $countdownBis - time()+1; $timerAb = $countdownAb - time()+1; $aktBeiTime = true; $timerText = "Zeit, bis die Abstimmung der Werwölfe zu keinem Ergebnis führen kann: "; //Überprüfe, ob es nicht jetzt schon eine Einstimmigkeit gibt... //Die Wahl muss nicht einstimmig sein ... $werwolfQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ".CHARURWOLF.") AND lebt = 1"); $werwolfzahl = $werwolfQ->num_rows; $alleSpielerQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1"); while ($temp = $alleSpielerQ->fetch_assoc()) { $query = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ". CHARURWOLF .") AND wahlAuf = ".$temp['id']); if ($query->num_rows > $werwolfzahl/2) { //Mit Mehrheit beschlossen... $opfer = $temp['id']; $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1, reload = 1 WHERE (nachtIdentitaet = ".CHARWERWOLF." OR nachtIdentitaet = ".CHARWERWOLF.")"); $mysqli->Query("UPDATE $spielID"."_game SET werwolfopfer = $opfer"); phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); //Schauen, ob wir die Phase schon beenden können toGameLog($mysqli,"Die Wahl der Werwölfe fiel mehrheitlich auf: ".$temp['name']); break; } } } else { //Fehlschlag $zeitAbgelaufen = true; $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1, reload = 1 WHERE (nachtIdentitaet = ".CHARWERWOLF." OR nachtIdentitaet = ".CHARURWOLF.")"); $mysqli->Query("UPDATE $spielID"."_game SET werwolfopfer = -1"); phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); //Schauen, ob wir die Phase schon beenden können toGameLog($mysqli,"Die Werwölfe konnten sich nicht auf ein Opfer einigen ..."); } } else { //Timer initialiseren $timerZahl = $eigeneAssoc['countdownBis'] - time()+1; $timerAb = $eigeneAssoc['countdownAb'] - time()+1; $aktBeiTime = true; $gameAssoc = gameAssoc($mysqli); if ($gameAssoc['werwolfeinstimmig']==1) $timerText = "Zeit, bis die Abstimmung der Werwölfe nicht mehr einstimmig sein muss: "; else $timerText = "Zeit, bis die Abstimmung der Werwölfe zu keinem Ergebnis führen kann: "; } if (isset($_POST['werwolfAuswahl']) && !$zeitAbgelaufen) { //einmal die Wahl eintragen $wahlID = (int)$_POST['werwolfID']; $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = $wahlID WHERE id = $eigeneID"); //Schauen, ob wir einstimmig sein müssen $gameAssoc = gameAssoc($mysqli); if ($gameAssoc['werwolfeinstimmig']==1) { //Dann schauen, ob schon alle abgestimmt haben $einstimmig = 1; $opfer = $wahlID; $alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1"); while ($temp = $alleSpielerRes->fetch_assoc()) { if ($temp['nachtIdentitaet']==CHARWERWOLF || $temp['nachtIdentitaet'] == CHARURWOLF) { if ($temp['wahlAuf'] != $opfer) $einstimmig = 0; } } //Falls einstimmig--> Alle Werwölfe auf bereit setzen und weiter gehts ;) if ($einstimmig == 1) { $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1, reload = 1 WHERE (nachtIdentitaet = ".CHARWERWOLF. " OR nachtIdentitaet = ". CHARURWOLF.")"); $mysqli->Query("UPDATE $spielID"."_game SET werwolfopfer = $opfer"); phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); //Schauen, ob wir die Phase schon beenden können toGameLog($mysqli,"Die Wahl der Werwölfe fiel einstimmig auf: ". getName($mysqli,$opfer)); } } else { //Die Wahl muss nicht einstimmig sein ... $werwolfQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ". CHARURWOLF.") AND lebt = 1"); $werwolfzahl = $werwolfQ->num_rows; $alleSpielerQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1"); while ($temp = $alleSpielerQ->fetch_assoc()) { $query = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND (nachtIdentitaet = ". CHARWERWOLF ." OR nachtIdentitaet = ".CHARURWOLF.") AND wahlAuf = ".$temp['id']); if ($query->num_rows > $werwolfzahl/2) { //Mit Mehrheit beschlossen... $opfer = $temp['id']; $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1, reload = 1 WHERE nachtIdentitaet = ".CHARWERWOLF." OR nachtIdentitaet = ".CHARURWOLF); $mysqli->Query("UPDATE $spielID"."_game SET werwolfopfer = $opfer"); phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); //Schauen, ob wir die Phase schon beenden können toGameLog($mysqli,"Die Wahl der Werwölfe fiel mehrheitlich auf: ".$temp['name']); break; } } } } echo "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($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT3,$mysqli); } else { //zeige den Button an dorfbewohnerWeiterschlafen(); } } } } elseif ($phase == PHASENACHT4) { characterButton($mysqli); //Zuerst jedem Spieler seinen Charakter zeigen //Schaue nach, welcher Charakter ich bin... $spielerResult = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID"); $spielerAssoc = $spielerResult->fetch_assoc(); //Falls der Spieler bereit ist, brauche ich nur noch warten auf andere anzeigen if ($spielerAssoc['bereit']==1) { warteAufAndere($mysqli); $pageReload = true; } else { $identitaet = $spielerAssoc['nachtIdentitaet']; if ($identitaet == CHARHEXE) { //Hexe if (isset($_POST['hexeAuswahl'])) { if (isset($_POST['hexeHeilen'])) { if ($_POST['hexeHeilen']==1) { //Die Hexe will das Opfer heilen... $eigeneAssoc=eigeneAssoc($mysqli); if ($eigeneAssoc['hexeHeiltraenke']>0) { $heilTraenkeNeu = (int)$eigeneAssoc['hexeHeiltraenke']-1; $mysqli->Query("UPDATE $spielID"."_spieler SET hexeHeiltraenke = $heilTraenkeNeu, hexeHeilt = 1 WHERE id = $eigeneID"); toPlayerLog($mysqli,"1 Heiltrank verwendet.",$eigeneID); toGameLog($mysqli,"Die Hexe heilt das Opfer der Werwölfe."); } else { $mysqli->Query("UPDATE $spielID"."_spieler SET hexeHeilt = 0 WHERE id = $eigeneID"); } } else { $mysqli->Query("UPDATE $spielID"."_spieler SET hexeHeilt = 0 WHERE id = $eigeneID"); } } //Und jetzt noch schauen wegen Töten ... if (isset($_POST['toeten'])) { if ($_POST['toeten'] > -1) { //Ein Opfer wurde ausgewählt ... schauen, ob wir überhaupt noch Todestrank haben... $eigeneAssoc=eigeneAssoc($mysqli); if ($eigeneAssoc['hexeTodestraenke']>0) { $todestraenkeNeu = (int)$eigeneAssoc['hexeTodestraenke']-1; $hexenOpfer = (int)$_POST['toeten']; $mysqli->Query("UPDATE $spielID"."_spieler SET hexeTodestraenke = $todestraenkeNeu, hexenOpfer = $hexenOpfer WHERE id = $eigeneID"); toPlayerLog($mysqli,"1 Todestrank verwendet für Spieler ".getName($mysqli,$hexenOpfer),$eigeneID)."."; toGameLog($mysqli,"Die Hexe verwendet einen Todestrank, um ".getName($mysqli,$hexenOpfer)." zu töten."); } else { $mysqli->Query("UPDATE $spielID"."_spieler SET hexenOpfer = -1 WHERE id = $eigeneID"); } } else { $mysqli->Query("UPDATE $spielID"."_spieler SET hexenOpfer = -1 WHERE id = $eigeneID"); } } //Jetzt müssen wir die Hexe noch auf bereit setzen setBereit($mysqli,$eigeneID,1); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT4,$mysqli);//Schauen, ob wir schon zur nächsten Phase übergehen können. } else { hexeInitialisieren($mysqli); } } elseif ($identitaet == CHARURWOLF) { if (isset($_POST['urwolfHatAusgewaehlt']) && isset($_POST['urwolfID'])) { if (urwolfHandle($mysqli,$_POST['urwolfID'])==false) { //Ungültiger Zug, nochmals von vorne urwolfInitialisiere($mysqli); } else { //Gültiger Zug! warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT4,$mysqli); } } else { $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID"); $a = $res->fetch_assoc(); if ($a['urwolf_anzahl_faehigkeiten'] > 0) { urwolfInitialisiere($mysqli); } else { if (isset($_POST['weiterschlafen'])) { //der Button wurde bereits geklickt setBereit($mysqli,$eigeneID,1); warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT4,$mysqli); } else { //zeige den Button an dorfbewohnerWeiterschlafen(); } } } } else { //keine Besondere Identitaet diese Nacht if (isset($_POST['weiterschlafen'])) { //der Button wurde bereits geklickt setBereit($mysqli,$eigeneID,1); warteAufAndere($mysqli); $pageReload = true; phaseBeendenWennAlleBereit(PHASENACHT4,$mysqli); } else { //zeige den Button an dorfbewohnerWeiterschlafen(); } } } } elseif ($phase == PHASENACHTENDE) { echo "$tagestext
"; if ($eigeneAssoc['popup_text'] != "") { echo "".$eigeneAssoc['popup_text']."
"; $mysqli->Query("UPDATE $spielID"."_spieler SET popup_text = '' WHERE id = $eigeneID"); } //Nachsehen, ob es einen Bürgermeister gibt $bres = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE buergermeister = 1"); if ($bres->num_rows > 0) { //Es gibt einen Bürgermeister --> Dieser kann zur nächsten Phase übergehen //Setze mich selbst auf bereit //Wenn ich selbst der Bürgermeister bin, kann ich zur nächsten Phase übergehen $bass = $bres->fetch_assoc(); if ($bass['id']==$eigeneID) { if (isset($_POST['buergermeisterWeiter'])) { $pageReload = true; setBereit($mysqli,$eigeneID,1); phaseBeendenWennAlleBereit(PHASETOTEBEKANNTGEBEN,$mysqli); warteAufAndere($mysqli); } else { //$eigeneAssoc = eigeneAssoc($mysqli); schon gemacht if ($eigeneAssoc['bereit']==0) { //Zeige einen Button an, mit dem der Bürgermeister das Spiel fortführen kann echo ""; } else { warteAufAndere($mysqli); } } } else { //Ich bin nicht Bürgermeister --> Warte, bis es weitergeht $pageReload = true; setBereit($mysqli,$eigeneID,1); phaseBeendenWennAlleBereit(PHASETOTEBEKANNTGEBEN,$mysqli); warteAufAndere($mysqli); } } else { //Es gibt keinen Bürgermeister --> Jeder muss auf weiter drücken if (isset($_POST['dorfbewohnerWeiter'])) { $pageReload = true; setBereit($mysqli,$eigeneID,1); phaseBeendenWennAlleBereit(PHASETOTEBEKANNTGEBEN,$mysqli); warteAufAndere($mysqli); } else { //$eigeneAssoc = eigeneAssoc($mysqli); schon gemacht if ($eigeneAssoc['bereit']==0) { //Zeige einen Button an, mit dem der Bürgermeister das Spiel fortführen kann echo ""; } else { warteAufAndere($mysqli); } } } } elseif ($phase == PHASEBUERGERMEISTERWAHL) { characterButton($mysqli); 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 = (int)$_POST['buergermeisterID']; $mysqli->Query("UPDATE $spielID"."_spieler SET wahlAuf = $wahlID WHERE id = $eigeneID"); //Dann schauen, ob wir schon eine Mehrheit haben //Generiere eine Text zum Anzeigen, wer für wen gestimmt hat $alleSpielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1"); $text = ""; $anzahlSpieler = $alleSpielerRes->num_rows; while ($temp = $alleSpielerRes->fetch_assoc()) { $w = $temp['wahlAuf']; if (!isset($wahlAufSpieler[$w])) $wahlAufSpieler[$w] = 0; $wahlAufSpieler[$w]++; if ($w > -1) { $text .= $temp['name']." -> ". getName($mysqli,$w). ", "; } } //Schauen, ob jemand mehr als 50% der Stimmen hat foreach ($wahlAufSpieler as $id => $stimmen) { if ($stimmen > $anzahlSpieler/2 && $id > -1) { //Dieser Spieler hat die Mehrheit $mysqli->Query("UPDATE $spielID"."_spieler SET bereit = 1"); $mysqli->Query("UPDATE $spielID"."_spieler SET buergermeister = 1 WHERE id = $id"); toGameLog($mysqli,getName($mysqli,$id)." wurde zum Bürgermeister gewählt, abgestimmt haben: $text"); toAllPlayerLog($mysqli,getName($mysqli,$id)." wurde zum Bürgermeister gewählt, abgestimmt haben: $text"); phaseBeendenWennAlleBereit(PHASEBUERGERMEISTERWAHL,$mysqli); break; } } } echo ""; //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 "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 = ".(int)$_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 "Stichwahl
"; echo "$tagestext
"; //Der Spielleiter sollte ein neues Spiel starten können $eigeneAssoc = eigeneAssoc($mysqli); if ($eigeneAssoc['spielleiter']==1) { if (isset($_POST['neuesSpiel'])) { //Starten wir ein neues Spiel if (_NOGAMECREATIONERRORMESSAGE == "") { $mysqli->Query("UPDATE $spielID"."_game SET spielphase = ".PHASESETUP); $mysqli->Query("UPDATE $spielID"."_spieler SET reload = 1"); } else { //Spiel darf nicht erstellt werden, da _NOGAMECREATIONERRORMESSAGE existiert echo "Spiel darf nicht erstellt werden: ". _NOGAMECREATIONERRORMESSAGE ."
"; } } 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 if (_NOGAMECREATIONERRORMESSAGE == "") //Wir dürfen nur ein neues Spiel erstellen, falls diese message auf "" steht { //Eine Schleife, die solange rennt, bis eine neue Zahl gefunden wurde for ($i = 1; $i <= 100000; $i++) { if ($i == 1000) { //Vielleicht gibt es alte Spiele, die Platz verbrauchen loescheAlteSpiele($mysqli); } $spielID = rand(10000,99999); //nachschauen, ob ein Spiel mit dieser Nummer bereits existiert $existiert = False; try { $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler"); } catch (mysqli_sql_exception $e){ $existiert = True; } if(!$existiert && isset($res->num_rows)){ //Tabelle existiert }else{ //Tabelle existiert noch nicht //erstellen wir eine neue Tabelle //BEIM HINZUFÜGEN: Auch die SetSpielerDefaultFunction ändern $sql = " CREATE TABLE `$spielID"."_spieler" ."` ( `id` INT( 10 ) NULL, `name` VARCHAR( 150 ) NOT NULL , `spielleiter` INT( 5 ) NULL , `lebt` INT (2) NULL, `wahlAuf` INT ( 5 ) DEFAULT -1 , `angeklagtVon` INT ( 5 ) DEFAULT -1 , `nachtIdentitaet` INT( 10 ) NULL, `buergermeister` INT ( 2 ) DEFAULT 0, `hexeHeiltraenke` INT( 10 ) NULL, `hexeTodestraenke` INT( 5 ) NULL , `hexenOpfer` INT ( 5 ) DEFAULT -1 , `hexeHeilt` INT (2) DEFAULT 0, `beschuetzerLetzteRundeBeschuetzt` INT( 5 ) DEFAULT -1 , `parErmEingesetzt` INT (2) DEFAULT 0 , `verliebtMit` INT ( 5 ) DEFAULT -1 , `jaegerDarfSchiessen` INT (2) DEFAULT 0 , `buergermeisterDarfWeitergeben` INT (2) DEFAULT 0 , `urwolf_anzahl_faehigkeiten` INT ( 5 ) DEFAULT 0, `dieseNachtGestorben` INT (2) DEFAULT 0 , `countdownBis` INT (10) DEFAULT 0 , `countdownAb` INT (10) DEFAULT 0 , `playerlog` LONGTEXT , `popup_text` TEXT , `bereit` INT (2) NULL , `reload` INT (2) NULL , `verifizierungsnr` INT ( 5 ) DEFAULT 0 ) ; "; $mysqli->Query($sql); //Wähle ein Verifizierungs-Passwort aus: //Dieses dient dazu, um festzustellen, ob es tatsächlich der richtige Spieler ist, der eine Seite lädt $verifizierungsnr = rand(2,100000); $stmt = $mysqli->prepare("INSERT INTO $spielID"."_spieler"." (id, name , spielleiter, lebt, reload, verifizierungsnr) VALUES ( 0 , ?, 1 , 0 , 1, ?)"); $stmt->bind_param('si',$_POST['ihrName'],$verifizierungsnr); $stmt->execute(); $stmt->close(); $sql2 = " CREATE TABLE `$spielID"."_game` ( `spielphase` INT( 5 ) DEFAULT 0, `charaktereAufdecken` INT ( 2 ) DEFAULT 0, `buergermeisterWeitergeben` INT ( 2 ) DEFAULT 0, `seherSiehtIdentitaet` INT ( 2 ) DEFAULT 1, `werwolfzahl` INT ( 5 ) DEFAULT 0 , `hexenzahl` INT ( 5 ) DEFAULT 0 , `seherzahl` INT ( 5 ) DEFAULT 0 , `jaegerzahl` INT ( 5 ) DEFAULT 0 , `amorzahl` INT ( 2 ) DEFAULT 0 , `beschuetzerzahl` INT ( 5 ) DEFAULT 0 , `parErmZahl` INT (5) DEFAULT 0 , `lykantrophenzahl` INT ( 5 ) DEFAULT 0 , `spionezahl` INT ( 5 ) DEFAULT 0 , `idiotenzahl` INT ( 5 ) DEFAULT 0 , `pazifistenzahl` INT ( 5 ) DEFAULT 0 , `altenzahl` INT ( 5 ) DEFAULT 0 , `urwolfzahl` INT ( 5 ) DEFAULT 0 , `zufaelligeAuswahl` INT ( 2 ) DEFAULT 0 , `zufaelligeAuswahlBonus` INT ( 5 ) DEFAULT 0 , `werwolfeinstimmig` INT ( 2 ) DEFAULT 1 , `werwolfopfer` INT ( 5 ) DEFAULT -1 , `werwolftimer1` INT ( 10 ) DEFAULT 60 , `werwolfzusatz1` INT ( 10 ) DEFAULT 4 , `werwolftimer2` INT ( 10 ) DEFAULT 50 , `werwolfzusatz2` INT ( 10 ) DEFAULT 3 , `dorftimer` INT ( 10 ) DEFAULT 550 , `dorfzusatz` INT ( 10 ) DEFAULT 10 , `dorfstichwahltimer` INT ( 10 ) DEFAULT 200 , `dorfstichwahlzusatz` INT ( 10 ) DEFAULT 5 , `inaktivzeit` INT ( 10 ) DEFAULT 40 , `inaktivzeitzusatz` INT ( 10 ) DEFAULT 0 , `tagestext` TEXT , `nacht` INT ( 5 ) DEFAULT 1 , `log` LONGTEXT , `list_lebe` LONGTEXT, `list_lebe_aktualisiert` BIGINT DEFAULT 0, `list_tot` LONGTEXT, `list_tot_aktualisiert` BIGINT DEFAULT 0, `waiting_for_others_time` BIGINT, `letzterAufruf` BIGINT ) ;"; $mysqli->Query($sql2); $mysqli->Query("INSERT INTO $spielID"."_game (spielphase, letzterAufruf) VALUES (0 , ".time().")"); //Die SpielID groß mitteilen echo "Spiel darf nicht erstellt werden: ". _NOGAMECREATIONERRORMESSAGE ."
"; } } 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? $existiert = False; try{ $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler"); } catch(mysqli_sql_exception $e){ $existiert = True; } if(!$existiert && isset($res->num_rows)) { //Ein Spiel dieser Nummer existiert! $verboteneNamen = array("niemanden","niemand","keinen","keiner","dorfbewohner","werwolf","seher","seherin","hexe","hexer","jäger","amor","beschützer","paranormaler ermittler","lykantroph","lykantrophin","spion","spionin","mordlustiger","mordlustige","pazifist","pazifistin","alter mann","alter","alte","alte frau","die alten","alten"); //Nachschauen, ob mein Name noch nicht vorkommt... $stmt = $mysqli->prepare("SELECT * FROM $spielID"."_spieler WHERE name = ?"); $stmt->bind_param('s',$_POST['ihrName']); $stmt->execute(); $nameRes = $stmt->get_result(); $stmt->close(); if ($nameRes->num_rows <= 0 && !in_array(strtolower($_POST['ihrName']),$verboteneNamen)) { //Name gültig //Finde eine freie ID for ($i = 1; $i <= _MAXPLAYERS; $i++) { $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $i"); //echo "SELECT * FROM $spielID"."_spieler WHERE id = $i"; if(isset($res->num_rows)) { if ($res->num_rows > 0) { //Es existiert bereits ein Spieler mit dieser ID --> weiter //echo "existiertSie 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 "Der angegebene Name ist bereits vorhanden oder ungültig
"; } } else { //Es existiert kein Spiel mit dieser Nummer --> Neustart echo "Es existiert kein Spiel mit dieser Nummer!
"; start(); } } else { //kein Name eingegeben --> neustart echo "Sie müssen einen gültigen Namen eingeben
"; start(); } } } else { start(); } } //Schauen, ob wir uns bereits in einem Spiel befinden! if (isset($_COOKIE['SpielID']) && isset($_COOKIE['eigeneID']) && $logButtonAnzeigen) { //Wenn ja, zeige Logbutton an playerLogButton($mysqli); //Der Spielleiter sollte die Möglichkeit bekommen, einen Spieler aus dem Spiel zu werfen (weil z.B. inaktiv) if (isset($eigeneID) && isset($spielID)) { $res = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $eigeneID AND spielleiter = 1"); if ($res->num_rows > 0) { echo ""; echo ""; } } } ?>