Compare commits

37 Commits

Author SHA1 Message Date
foin137
6ed0d509a2 Update version to 1.2.10 2025-04-27 22:57:47 +02:00
foin137
c2d9877787 bug in gameLogRefresh ($ in javascript) 2025-04-27 22:55:52 +02:00
foin137
b082d721d5 Merge pull request #36 from Suiram1701/master
Improved endpoint security (Fixes #35)
2025-04-27 22:54:38 +02:00
Suiram1701
5e6f420e9e Improved endpoint security (Fixes #35 ) 2025-04-22 18:08:52 +00:00
foin137
0c42f67d77 Update Werwolf.php
Update links to webpage
2024-08-17 18:43:16 +02:00
foin137
d1c4b59a43 Better display settings 2023-11-05 16:23:51 +01:00
foin137
9ee2148d9a Merge pull request #34 from foin137/phpversionupdate
Ready for php 8.1, fix bug [#31]

Handle mysql errors [#33]
Include option to disable new game creation
Include license in every file
2023-11-05 16:14:17 +01:00
foin137
a45bd3c642 Update version 2023-11-05 16:08:17 +01:00
foin137
30fea14c07 Include license statement 2023-11-05 16:07:41 +01:00
foin137
2bf710e215 Possibility to disable new games
Include possibility to disable new games by changing a constant in constants.php
2023-11-05 16:02:36 +01:00
foin137
93b38cfc47 Handle mysqli errors
- Handle mysql errors that are no longer silenced per default for new php versions
- Handled error when log file cannot be created
2023-11-05 15:44:24 +01:00
foin137
77b11c0ac2 Change version to 1.2.7 2021-12-30 16:56:23 +01:00
foin137
9827b85837 Update README.md with includes-folder 2021-12-30 16:53:37 +01:00
florian.lindenbauer
1cb65fe20d Create includes.example.php
Create includes.example.php as an example for includes.php
2021-12-30 16:51:13 +01:00
foin137
e0b3ba6de3 Merge pull request #32 from eYeWoRRy/master
Exclude php functions from main php file
2021-12-30 16:46:58 +01:00
eYeWoRRy
d264869b41 Smaller code changes - especially the switch from includes and constants to the new folder 2021-12-26 17:11:45 +01:00
eYeWoRRy
4263550e70 Moved all php functions into a new Folder "includes" and added a "require_once" at top of the php code. 2021-12-26 17:11:10 +01:00
eYeWoRRy
52fa822608 Created an own file for changes - deleted this part from werwolf.php 2021-12-26 17:05:46 +01:00
foin137
0a49a1a1f4 Update version 2021-01-29 20:14:04 +01:00
foin137
782305f6cb Merge pull request #30 from foin137/bug_26_remove-player
[#26] Fix bug when removing players
2021-01-29 20:08:30 +01:00
foin137
fcda5cb46c [#26] Fix bug when removing players
Makes sure that the game can continue when waiting for and removing a player
2021-01-29 20:07:41 +01:00
foin137
e180050c95 Fix typo
Fix typo in Phase 2
2021-01-29 19:53:09 +01:00
foin137
0319b6861a Merge pull request #29 from foin137/waiting_for_other_players
Let players choose when to show inactive players
2021-01-29 19:44:47 +01:00
foin137
d0e1867bde Let players choose when to show inactive players
Add an option to choose how long until the game shows who we are still waiting for.
2021-01-29 19:43:45 +01:00
foin137
ba28f4d053 Merge pull request #28 from foin137/bug_27_deletegame
[#27] Fix bug when deleting games
2021-01-29 18:36:06 +01:00
foin137
2ffda7185f [#27] Fix bug when deleting games
Makes sure that when we want to exit a game and the game is not there anymore, we can reset our cookies.

Fixes #27, at least partially, there are still error messages, but at least it's playable again
2021-01-29 18:34:37 +01:00
foin137
27b4ee9f02 Merge pull request #23 from foin137/waiting_for_other_players
Waiting for other players
2020-12-20 14:19:59 +01:00
foin137
0298083586 Version update 2020-12-20 14:18:22 +01:00
foin137
28697e7174 Constant for max player number 2020-12-20 14:17:15 +01:00
foin137
66d4663e52 waiting_for_others improvement
Shows what players we are waiting for, but only after a predefined time
2020-12-20 14:13:30 +01:00
foin137
dc26da0a6f Merge pull request #22 from dsmic/master
- Namen der Spieler, auf die gewartet wird, werden den Mitspielern angezeigt
2020-12-20 14:07:56 +01:00
detlef
7829605395 - Namen der Spieler, auf die gewartet wird, werden den Mitspielern angezeigt 2020-12-20 11:24:27 +01:00
foin137
d7aaa08e32 Merge pull request #20 from foin137/tote-remove-duplicates
Tote remove duplicates
2020-09-20 22:37:38 +02:00
foin137
728c36b2cc Delete Werwolf_log_2020_09.log
Delete unnecessary log file
2020-09-20 22:36:03 +02:00
foin137
041d07ff69 Update version
Update version
2020-09-20 22:32:51 +02:00
foin137
b97c8719d7 Typo: Punkte bei log
Punkte bei log-Einträgen hinzugefügt
2020-09-20 22:30:15 +02:00
foin137
678b19ced3 remove duplicates (tote)
remove duplicates from tote-array
2020-09-20 22:17:48 +02:00
11 changed files with 2857 additions and 2591 deletions

137
CHANGELOG Normal file
View File

@@ -0,0 +1,137 @@
/*
Erklärungen:
Zu den Datenbank-Einträgen:
[ID]_Game
Spielphase //ALT, jetzt über Konstanten gelöst
0: Setup -> Spieler suchen (PHASESETUP)
1: Spielsetup -> jeder muss bestätigen, dass er dabei ist (PHASESPIELSETUP)
2: Nacht Teil 1: Amor (PHASENACHT1)
3: Nacht Teil 2: Verliebte (PHASENACHT2)
4: Nacht Teil 3: Alle bis Werwölfe (PHASENACHT3)
5: Nacht Teil 4: Hexe (PHASENACHT4)
6: Nacht Teil 5: Weitergabe des Amuletts (PHASENACHT5)
7: Tag, Tote werden bekanntgegeben (PHASETOTEBEKANNTGEBEN)
8: Tag, Bürgermeisterwahl (PHASEBUERGERMEISTERWAHL)
9: Tag, Diskussion (PHASEDISKUSSION)
10: Tag, Anklagen (PHASEANKLAGEN)
11: Tag, Abstimmung (PHASEABSTIMMUNG)
12: Tag, Stichwahl der Abstimmung (PHASESTICHWAHL)
13: Tag, nach Abstimmung (PHASENACHABSTIMMUNG)
14: Siegerehrung (PHASESIEGEREHRUNG)
charaktereAufdecken
0: Die Charaktere werden nicht aufgedeckt
1: Die Charaktere werden aufgedeckt
buergermeisterWeitergeben
0: Beim Tod des Bürgermeisters wird ein neuer gewählt.
1: Beim Tod des Bürgermeisters entscheidet der Bürgermeister, wer sein Nachfolger wird.
werwolfzahl
Gibt die Anzahl der Werwölfe beim Spielsetup an
hexenzahl
Gibt die Anzahl der Hexen beim Spielsetup an
seherzahl
Gibt die Anzahl der Seher beim Spielsetup an
jaegerzahl
Gibt die Anzahl der Jäger beim Spielsetup an
amorzahl
Gibt die Anzahl der Amor(s) an (max 1)
letzterAufruf
gibt den letzten Aufruf an, kann später einmal verwendet werden, um alte Spiele zu löschen.
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)
2: Werwolf (CHARWERWOLF)
3: Seher (CHARSEHER)
4: Hexe (CHARHEXE)
5: Jäger (CHARJAEGER)
6: Amor (CHARAMOR)
7: Leibwächter/Beschützer (CHARBESCHUETZER)
8: Paranormaler Ermittler (CHARPARERM)
9: Lykantroph (CHARLYKANTROPH)
10: Spion (CHARSPION)
11: Mordlustige(r), intern Idiot (CHARMORDLUSTIGER)
12: Pazifist (CHARPAZIFIST)
13: Alter Mann (CHARALTERMANN)
hexenOpfer
Wen die Hexe töten will
hexeHeilt
0: Hexe heilt das Opfer der Werwölfe nicht
1: Hexe heilt das Opfer der Werwölfe
verliebtMit
mit wem dieser Spieler vom Amor verliebt wurde
jaegerDarfSchiessen
0: Nichts Besonderes
1: Der Jäger wurde getötet und darf jemanden mit in den Tod reißen
buergermeisterDarfWeitergeben
0: Nichts Besonderes
1: Der Bürgermeister wurde getötet und gibt sein Amt weiter...
playerlog
Hier werden Sachen hineingeschrieben, die sich der Spieler wieder anschaun können soll
z.B. als Seher wen er gesehen hat
SESSION-Variablen Übersicht
$_SESSION['SpielID'] gibt die ID des Spiels an
$_SESSION['eigeneID'] gibt die eigene ID an
ToDO:
#1: DONE: Spieler mit gleichem Namen dürfen sich nicht in einem Spiel befinden DONE
#2: DONE: Verschiedene Texte der Dorfbewohner (einschlafen) DONE
#3: DONE: Seher sollte gleich reloaden ... DONE
#4: DONE: Bei Anklagen nicht standardmäßig ein Spieler ausgewählt sein... DONE
#5: DONE: Bei der Abstimmung sollte ersichtlich sein, wieviele Stimmen jeder (Angeklagte) erhalten hat EVTL. DONE
#6: DONE: Wenn Bürgermeister in der Nacht stirbt, kommt es nicht zu einer neuen Abstimmung EVTL. DONE
#7: DONE: In showGameLog fehlen die Zeilenumbrüche ... DONE
#8: DONE: gameLog sollte auch wieder verborgen werden können ... DONE
#9: DONE: In gameLog werden keine Umlaute angezeigt ... DONE [Encoding auf ISO-8859-1 umgestellt]
#10: DONE: Der eigene Name sollte angezeigt werden ... DONE
#11: DONE: Es sollte dem Bürgermeister angezeigt werden, dass er Bürgermeister ist ... DONE
#12: DONE: Beim Starten eines neuen Spieles sollten alte Spiele gelöscht werden ...
#13: Javascript, das beim Spielerstellen anzeigt, wieviele Charaktere ausgewählt wurden ...
#14: Die Spieler, die nicht Spielleiter sind, sollten sehen können, welche Regeln ausgewählt wurden ...
#15: DONE: Bei der Stimmenanzahl soll erkennbar sein, dass der Bürgermeister 2 Stimmen hat [EDIT: bzw. 1,5]
#16: DONE: Paranormalen Ermittler hinzufügen
#17: DONE: Alten Mann hinzufügen
#18: Trunkenbold hinzufügen
#19: Amulett des Schutzes hinzufügen
#20: Wolfsjunges hinzufügen
#21: Einsamen Wolf hinzufügen
#22: DONE: Lykantrophen hinzufügen
#23: DONE: Bürgermeister nur 1/2 Stimme geben, Fixen, dass Abstimmungen nicht zu früh abgebrochen werden.
#24: Abstimmungsergebnis anzeigen
#25: DONE: Bug beim Entfernen von Spielern
#26: Spieler sollten unter dem Spiel das Spiel verlassen können
#27: DONE: Den Verstorbenen eine Liste aller Spieler anzeigen
#28: Kultführer hinzufügen
#29: Strolch hinzufügen
#30: DONE: SQL injection unterbinden
#31: Hintergrundgrafik (verschieden Tag/Nacht)
#31: DONE: Als Option machen, dass niemand erfährt, wie die Charaktere verteilt sind
#32: Wenn jemand während des Spiels aussteigt, sollte das Spiel damit zurechtkommen
#33: DONE: Wenn einer der Verliebten stirbt, sollten beide am Tag auf der Totenliste erscheinen
#34: DONE: Beim Spielbeitritt sollte jeder Spieler ein vom Server zugeteiltes persönliches Passwort bekommen (Cookie), dass sich niemand anders für ihn ausgeben kann.
#35: DONE: Idiot und Pazifist hinzufügen [EDIT: Umbenennung von Idiot in Mordlustiger]
#36: DONE: "Seher" hinzufügen, der eine Identität überprüfen kann --> der "Spion"
#37: DONE: Umbenennen von Leibwächter in Beschützer
#38: DONE: Umbenennen von Idiot in Mordlustige(r)
#39: DONE: Timer einfügen, ab wann die Abstimmung am Tag zu keinem Ergebnis führt
#40: DONE: Timer einfügen, ab wann die Werwölfe nicht mehr einstimmig abstimmen müssen, zweiten Timer, ab wann kein Opfer gewählt wird
#41: Funktion für alle Buttons erstellen, dass die Buttons in Zukunft leicht mit Grafik ausgetauscht werdne können
#42: DONE: Timereinstellungen in den Spieleinstellungen bearbeiten können
#43: Zeige im Log an, wer wen anklagt
#44: DONE: Charaktere und Phasen durch Konstanten ersetzt, die in constants.php definiert werden
#45: DONE: Verbiete, dass sich jemand wie ein Charakter nennt (WERWOLF, HEXE, AMOR)
#46: Bots hinzufügen, die von einem "BotController"="Spieler, der für refreshen zuständig ist" zB ein Laptop
#47: DONE: Umstellen der Farben ermöglichen (v1.0.1, 30.12.2019)
*/

View File

@@ -16,7 +16,7 @@ You can find the corresponding setting "output_buffering" in the php.ini file. S
You also need a database called "werwolf", you do not need to insert any tables, this is done by the script automatically.
Rename 'includes.example.php' to 'includes.php' and insert your id, passwort and host.
Rename 'includes.example.php' in the 'includes'-folder to 'includes.php' and insert your id, passwort and host.
If you want to use a different database name, you can change it in 'includes.php'.
@@ -36,6 +36,6 @@ Die Einstellung findet man in der php.ini Datei unter "output_buffering". Ein We
Die Datenbank muss keine Tabellen enthalten, die werden vom php Skript selbst erstellt.
Benenne 'includes.example.php' in 'includes.php' um und füge id, passwort und host für die Anmeldung in der Datenbank hinzu!
Benenne 'includes.example.php' im 'includes'-Ordner in 'includes.php' um und füge id, passwort und host für die Anmeldung in der Datenbank hinzu!
Es kann natürlich auch ein anderer Name für die Datenbank verwendet werden. Die zugehörige Einstellung kann in 'includes.php' vorgenommen werden.

File diff suppressed because it is too large Load Diff

View File

@@ -1,41 +0,0 @@
<?php
//Constants
define("_VERSION","v1.2.3");
define("_LISTMAXRELOADTIME",3000);
//Phasen
define ("PHASESETUP",0);
define ("PHASESPIELSETUP",1);
define ("PHASENACHTBEGINN",2);
define ("PHASENACHT1",3);
define ("PHASENACHT2",4);
define ("PHASENACHT3",5);
define ("PHASENACHT4",6);
define ("PHASENACHT5",7);
define ("PHASENACHTENDE",8);
define ("PHASETOTEBEKANNTGEBEN",9);
define ("PHASEBUERGERMEISTERWAHL",10);
define ("PHASEDISKUSSION",11);
define ("PHASEANKLAGEN",12);
define ("PHASEABSTIMMUNG",13);
define ("PHASESTICHWAHL",14);
define ("PHASENACHABSTIMMUNG",15);
define ("PHASESIEGEREHRUNG",16);
//Charaktere
define ("CHARKEIN",0);
define ("CHARDORFBEWOHNER",1);
define ("CHARWERWOLF",2);
define ("CHARSEHER",3);
define ("CHARHEXE",4);
define ("CHARJAEGER",5);
define ("CHARAMOR",6);
define ("CHARBESCHUETZER",7);
define ("CHARPARERM",8);
define ("CHARLYKANTROPH",9);
define ("CHARSPION",10);
define ("CHARMORDLUSTIGER",11);
define ("CHARPAZIFIST",12);
define ("CHARALTERMANN",13);
define ("CHARURWOLF",14);
?>

View File

@@ -1,16 +1,46 @@
<?php
include "includes.php";
/*
werwolfonline, a php web game
Copyright (C) 2023
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
include "includes/includes.php";
header("Content-Type: text/html; charset=utf-8");
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Pragma: no-cache');
$spielID = (int)$_GET['game'];
$id = (int)$_GET['id'];
$verifizierungsNr = (int)$_COOKIE['verifizierungsnr'];
// Verifizieren, dass es sich um einen spieler des spiels handelt
$meinSpieler = $mysqli->query("SELECT 1 FROM ".$spielID."_spieler WHERE id = $id AND verifizierungsnr = $verifizierungsNr");
if ($meinSpieler->num_rows != 1)
{
die("<p class='error'>Sie sind momentan nicht mit diesem Spiel verknüpft!</p>");
}
if ($Result = $mysqli->query("SELECT * FROM ".$spielID."_game"))
{
$temp = $Result->fetch_assoc();
echo $temp['log'];
}
?>
?>

View File

@@ -1,21 +0,0 @@
<?php
$id = "id"; // Ihre ID zum MySQL Server
$pw = "pw"; // Passwort zum MySQL Server
$host = "localhost"; // Host ("localhost" oder "IP-Adresse")
$db = "werwolf"; // Name Ihrer Datenbank
$mysqli = new MySQLi(
$host,
$id,
$pw,
$db
);
if (mysqli_connect_errno()) {
/*printf(
"Can't connect to MySQL Server. Errorcode: %s\n",
mysqli_connect_error()
);*/
exit;
}
?>

70
includes/constants.php Normal file
View File

@@ -0,0 +1,70 @@
<?php
/*
werwolfonline, a php web game
Copyright (C) 2023
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
//Settings:
define ("_NOGAMECREATIONERRORMESSAGE", ""); //Falls nicht "": Kein Spiel kann erstellt werden, stattdessen wird der string angezeigt.
//define ("_NOGAMECREATIONERRORMESSAGE", "Wartungsarbeiten bis ..."); //Falls nicht "": Kein Spiel kann erstellt werden, stattdessen wird der string angezeigt.
define("_LISTMAXRELOADTIME",3000);
define("_MAXPLAYERS",50);
///////////////////////////////////
// Constants, do not change!
///////////////////////////////////
define("_VERSION","v1.2.10");
//Phasen
define ("PHASESETUP",0);
define ("PHASESPIELSETUP",1);
define ("PHASENACHTBEGINN",2);
define ("PHASENACHT1",3);
define ("PHASENACHT2",4);
define ("PHASENACHT3",5);
define ("PHASENACHT4",6);
define ("PHASENACHT5",7);
define ("PHASENACHTENDE",8);
define ("PHASETOTEBEKANNTGEBEN",9);
define ("PHASEBUERGERMEISTERWAHL",10);
define ("PHASEDISKUSSION",11);
define ("PHASEANKLAGEN",12);
define ("PHASEABSTIMMUNG",13);
define ("PHASESTICHWAHL",14);
define ("PHASENACHABSTIMMUNG",15);
define ("PHASESIEGEREHRUNG",16);
//Charaktere
define ("CHARKEIN",0);
define ("CHARDORFBEWOHNER",1);
define ("CHARWERWOLF",2);
define ("CHARSEHER",3);
define ("CHARHEXE",4);
define ("CHARJAEGER",5);
define ("CHARAMOR",6);
define ("CHARBESCHUETZER",7);
define ("CHARPARERM",8);
define ("CHARLYKANTROPH",9);
define ("CHARSPION",10);
define ("CHARMORDLUSTIGER",11);
define ("CHARPAZIFIST",12);
define ("CHARALTERMANN",13);
define ("CHARURWOLF",14);
?>

2166
includes/functions.php Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,42 @@
<?php
/*
werwolfonline, a php web game
Copyright (C) 2023
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
$id = "id"; // Ihre ID (username) zum MySQL Server
$pw = "pw"; // Passwort zum MySQL Server
$host = "localhost"; // Host ("localhost" oder "IP-Adresse")
$db = "werwolf"; // Name Ihrer Datenbank
$mysqli = new MySQLi(
$host,
$id,
$pw,
$db
);
if (mysqli_connect_errno()) {
/*printf(
"Can't connect to MySQL Server. Errorcode: %s\n",
mysqli_connect_error()
);*/
exit;
}
?>

View File

@@ -1,22 +1,49 @@
<?php
/*
werwolfonline, a php web game
Copyright (C) 2023
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
include "includes/includes.php";
include "includes/constants.php";
include "includes.php";
include "constants.php";
header("Content-Type: text/html; charset=utf-8");
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Pragma: no-cache');
$spielID = (int)$_GET['game'];
$id = (int)$_GET['id'];
$verifizierungsNr = (int)$_COOKIE['verifizierungsnr'];
$trennzeichen = "$"; //Das Zeichen, auf das im Skript responded wird
$meinSpieler = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $id AND verifizierungsnr = $verifizierungsNr");
if ($meinSpieler->num_rows != 1)
{
die("<p class='error'>Sie sind momentan nicht mit diesem Spiel verknüpft!</p>");
}
//Reloaded eine Liste, erfordert komplexeren Code als reload.php
//Die Liste, die reloaded wird ist unterschiedlich, je nach Spielphase und eigenem Charakter
//Wenn reload gesetzt ist, wird außerdem geschaut, ob ich reloaden muss!
$ichLebe = false;
$ichLebeQ = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $id");
$ichLebeQ = $ichLebeQ->fetch_assoc();
// Reloaded eine Liste, erfordert komplexeren Code als reload.php
// Die Liste, die reloaded wird ist unterschiedlich, je nach Spielphase und eigenem Charakter
// Wenn reload gesetzt ist, wird außerdem geschaut, ob ich reloaden muss!
$ichLebeQ = $meinSpieler->fetch_assoc();
if (isset($_GET['reload']))
{
if ($ichLebeQ['reload'] == 1 && $_GET['reload'] == 1)
@@ -29,14 +56,15 @@
echo "0";
}
}
$ichLebe = false;
if ($ichLebeQ['lebt'] == 1)
$ichLebe = true;
$spielRes = $mysqli->Query("SELECT * FROM $spielID"."_game");
$spielAss = $spielRes->fetch_assoc();
$phase = $spielAss['spielphase'];
$text = "";
if ($ichLebe || $phase <= PHASESPIELSETUP || $phase >= PHASESIEGEREHRUNG)
{
@@ -47,7 +75,7 @@
{
//Sende vorgefertigte Antwort!
echo $spielAss['list_lebe'];
die;
die;
}
}
if ($phase == PHASESETUP)
@@ -92,13 +120,13 @@
//Schaue nach, ob ich Werwolf bin
$myRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $id");
$myAssoc = $myRes->fetch_assoc();
if ($myAssoc['nachtIdentitaet'] == CHARWERWOLF || $myAssoc['nachtIdentitaet'] == CHARURWOLF)
if ($myAssoc['nachtIdentitaet'] == CHARWERWOLF || $myAssoc['nachtIdentitaet'] == CHARURWOLF)
{
//Ich bin Werwolf --> Liste der (lebenden) Werwölfe
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
while ($temp = $spielerRes->fetch_assoc())
{
if (($temp['nachtIdentitaet']==CHARWERWOLF || $temp['nachtIdentitaet']==CHARURWOLF) && $temp['lebt']==1)
{
if ($temp['wahlAuf']==-1)
@@ -111,7 +139,7 @@
echo $trennzeichen.$temp['name']." (wach): ".$nameAssoc['name'].$trennzeichen."1";
}
}
}
}
die;
@@ -165,7 +193,7 @@
$buergermeisterText = " + Stimme des Bürgermeisters";
$text.= $trennzeichen.$temp['name'].", normale Stimmen: ".$stimmenRes->num_rows.$buergermeisterText.$trennzeichen."2";
}
//Dann zeige an, wer für wen gestimmt hat
$spielerRes2 = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
while ($temp = $spielerRes2->fetch_assoc())
@@ -197,7 +225,7 @@
$buergermeisterText = " + Stimme des Bürgermeisters";
$text.= $trennzeichen.$temp['name'].", normale Stimmen: ".$stimmenRes->num_rows.$buergermeisterText.$trennzeichen."2";
}
//Dann zeige an, wer für wen gestimmt hat
$spielerRes2 = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
while ($temp = $spielerRes2->fetch_assoc())
@@ -224,7 +252,7 @@
{
//Sende vorgefertigte Antwort!
echo $spielAss['list_tot'];
die;
die;
}
}
$rueckgabe = "";
@@ -255,13 +283,13 @@
break;
case PHASEABSTIMMUNG:
$text = "Abstimmung";
break;
break;
case PHASESTICHWAHL:
$text = "Stichwahl";
break;
}
$rueckgabe.= $trennzeichen.$text.$trennzeichen."3";
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
while ($temp = $spielerRes->fetch_assoc())
{
@@ -308,8 +336,8 @@
$identitaet = "Alte(r)";
break;
case CHARURWOLF:
$identitaet = "Urwolf/Urwölfin";
break;
$identitaet = "Urwolf/Urwölfin";
break;
}
//Eine Liste aller aktiver Spieler anzeigen
//zuerst alle Lebenden anzeigen
@@ -354,7 +382,7 @@
{
$rueckgabe.= $trennzeichen.$temp['name']." ($identitaet)".$trennzeichen."0";
}
}
}
//Dann alle Toten anzeigen
@@ -404,22 +432,22 @@
$identitaet = "Alte(r)";
break;
case CHARURWOLF:
$identitaet = "Urwolf/Urwölfin";
break;
$identitaet = "Urwolf/Urwölfin";
break;
}
//Eine Liste aller aktiver Spieler anzeigen
//zuerst alle Lebenden anzeigen
$rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, tot)".$trennzeichen."4";
}
$mysqli->Query("UPDATE $spielID"."_game SET `list_tot` = '$rueckgabe', `list_tot_aktualisiert` = ". (int)(microtime(true)*1000));
echo $rueckgabe;
}
//0: schwarz
//1: grün
//2: rot
//3: schwarz groß
//4: grau
//4: grau
?>

View File

@@ -1,15 +1,37 @@
<?php
/*
werwolfonline, a php web game
Copyright (C) 2023
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
include "includes/includes.php";
header("Content-Type: text/html; charset=utf-8");
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Pragma: no-cache');
include "includes.php";
$spielID = (int)$_GET['game'];
$id = (int)$_GET['id'];
if ($Result = $mysqli->query("SELECT * FROM ".$spielID."_spieler WHERE id = $id"))
$verifizierungsNr = (int)$_COOKIE['verifizierungsnr'];
if ($Result = $mysqli->query("SELECT * FROM ".$spielID."_spieler WHERE id = $id AND verifizierungsnr = $verifizierungsNr"))
{
$temp = $Result->fetch_assoc();
echo $temp['reload'];
}
?>
?>