diff --git a/Werwolf.php b/Werwolf.php
index fb3ffc2..9bfe19e 100644
--- a/Werwolf.php
+++ b/Werwolf.php
@@ -1595,6 +1595,7 @@ p#liste {
`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);
@@ -2885,9 +2886,13 @@ function phaseInitialisieren($phase,$mysqli)
{
//Neue verliebte ... Setze alle verliebten auf -1
$mysqli->Query("UPDATE $spielID"."_spieler SET verliebtMit = -1");
+ $waiting_for_others_time = time() + _WAITINGFOROTHERSTIME;
+ $mysqli->Query("UPDATE $spielID"."_game SET `waiting_for_others_time` = $waiting_for_others_time");
}
elseif ($phase == PHASENACHT2)
{
+ $waiting_for_others_time = time() + _WAITINGFOROTHERSTIME;
+ $mysqli->Query("UPDATE $spielID"."_game SET `waiting_for_others_time` = $waiting_for_others_time");
}
elseif ($phase == PHASENACHT3)
{
@@ -2917,7 +2922,13 @@ function phaseInitialisieren($phase,$mysqli)
$countdownAb = time();
$mysqli->Query("UPDATE $spielID"."_spieler SET countdownBis = $countdownBis, countdownAb = $countdownAb WHERE (nachtIdentitaet = ".CHARWERWOLF." OR nachtIdentitaet = ".CHARURWOLF.")");
}
-
+ $waiting_for_others_time = time() + _WAITINGFOROTHERSTIME;
+ $mysqli->Query("UPDATE $spielID"."_game SET `waiting_for_others_time` = $waiting_for_others_time");
+ }
+ elseif ($phase == PHASENACHT4)
+ {
+ $waiting_for_others_time = time() + _WAITINGFOROTHERSTIME;
+ $mysqli->Query("UPDATE $spielID"."_game SET `waiting_for_others_time` = $waiting_for_others_time");
}
elseif ($phase == PHASENACHTENDE)
{
@@ -3148,14 +3159,19 @@ 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
- $spielID = $_COOKIE['SpielID'];
- $nichtBereitResult = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE bereit = 0 AND lebt = 1");
- if (!is_bool($nichtBereitResult)) {
- while($row = $nichtBereitResult->fetch_row()){
- if (count($row) > 1) {
- error_log($row[1]);
- echo("$row[1]\t");
+ //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");
+ }
}
}
}
@@ -4236,7 +4252,6 @@ function getDorfbewohnerText()
Erklärungen:
Zu den Datenbank-Einträgen:
[ID]_Game
-
Spielphase //ALT, jetzt über Konstanten gelöst
0: Setup -> Spieler suchen (PHASESETUP)
1: Spielsetup -> jeder muss bestätigen, dass er dabei ist (PHASESPIELSETUP)
@@ -4253,53 +4268,39 @@ Spielphase //ALT, jetzt über Konstanten gelöst
12: Tag, Stichwahl der Abstimmung (PHASESTICHWAHL)
13: Tag, nach Abstimmung (PHASENACHABSTIMMUNG)
14: Siegerehrung (PHASESIEGEREHRUNG)
-
charaktereAufdecken
0: Die Charaktere werden nicht aufgedeckt
1: Die Charaktere werden aufgedeckt
-
buergermeisterWeitergeben
0: Beim Tod des Bürgermeisters wird ein neuer gewählt.
1: Beim Tod des Bürgermeisters entscheidet der Bürgermeister, wer sein Nachfolger wird.
-
werwolfzahl
Gibt die Anzahl der Werwölfe beim Spielsetup an
-
hexenzahl
Gibt die Anzahl der Hexen beim Spielsetup an
-
seherzahl
Gibt die Anzahl der Seher beim Spielsetup an
-
jaegerzahl
Gibt die Anzahl der Jäger beim Spielsetup an
-
amorzahl
Gibt die Anzahl der Amor(s) an (max 1)
-
letzterAufruf
gibt den letzten Aufruf an, kann später einmal verwendet werden, um alte Spiele zu löschen.
-
+waiting_for_others_time
+Gibt an, ab wann angezeigt wird, auf wen wir noch warten
werwolfopfer
gibt das Opfer der Werwölfe an
-
log
Eine Log-Datei des gesamten Spiels
Diese Datei soll das Spiel nachvollziehbar machen
-
Nacht
gibt die Anzahl der Nächte seit Spielbeginn an
-
tagestext
Gibt den Text an, der in Phase 7 allen angezeigt wird
= Diese Nacht wurden getötet:
SpielerX
SpielerZ
-
-
-
[ID]_Spieler
-
Nachtidentitaet
0: keine (CHARKEIN)
1: Dorfbewohner (CHARDORFBEWOHNER)
@@ -4315,35 +4316,25 @@ Nachtidentitaet
11: Mordlustige(r), intern Idiot (CHARMORDLUSTIGER)
12: Pazifist (CHARPAZIFIST)
13: Alter Mann (CHARALTERMANN)
-
hexenOpfer
Wen die Hexe töten will
-
hexeHeilt
0: Hexe heilt das Opfer der Werwölfe nicht
1: Hexe heilt das Opfer der Werwölfe
-
verliebtMit
mit wem dieser Spieler vom Amor verliebt wurde
-
jaegerDarfSchiessen
0: Nichts Besonderes
1: Der Jäger wurde getötet und darf jemanden mit in den Tod reißen
-
buergermeisterDarfWeitergeben
0: Nichts Besonderes
1: Der Bürgermeister wurde getötet und gibt sein Amt weiter...
-
playerlog
Hier werden Sachen hineingeschrieben, die sich der Spieler wieder anschaun können soll
z.B. als Seher wen er gesehen hat
-
SESSION-Variablen Übersicht
$_SESSION['SpielID'] gibt die ID des Spiels an
$_SESSION['eigeneID'] gibt die eigene ID an
-
-
-
ToDO:
#1: DONE: Spieler mit gleichem Namen dürfen sich nicht in einem Spiel befinden DONE
#2: DONE: Verschiedene Texte der Dorfbewohner (einschlafen) DONE
@@ -4393,6 +4384,5 @@ ToDO:
#45: DONE: Verbiete, dass sich jemand wie ein Charakter nennt (WERWOLF, HEXE, AMOR)
#46: Bots hinzufügen, die von einem "BotController"="Spieler, der für refreshen zuständig ist" zB ein Laptop
#47: DONE: Umstellen der Farben ermöglichen (v1.0.1, 30.12.2019)
-
*/
?>
diff --git a/constants.php b/constants.php
index 5744844..44d1155 100644
--- a/constants.php
+++ b/constants.php
@@ -2,6 +2,7 @@
//Constants
define("_VERSION","v1.2.4");
define("_LISTMAXRELOADTIME",3000);
+define("_WAITINGFOROTHERSTIME",30); //Innerhalb dieser Sekunden bleibt verborgen, auf wen noch gewartet wird.
//Phasen
define ("PHASESETUP",0);