Upload of the files

Added the already existing files to the repository
This commit is contained in:
foin137
2020-03-27 19:57:00 +01:00
parent 2f6b16e4f0
commit de1a653a5c
7 changed files with 4613 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
includes.php

4101
Werwolf.php Normal file

File diff suppressed because it is too large Load Diff

39
constants.php Normal file
View File

@@ -0,0 +1,39 @@
<?php
//Phasen
define("_LISTMAXRELOADTIME",3000);
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);
?>

16
gamelogreload.php Normal file
View File

@@ -0,0 +1,16 @@
<?php
include "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 = $_GET['game'];
if ($Result = $mysqli->query("SELECT * FROM ".$spielID."_game"))
{
$temp = $Result->fetch_assoc();
echo $temp['log'];
}
?>

21
includes.example.php Normal file
View File

@@ -0,0 +1,21 @@
<?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;
}
?>

419
listreload.php Normal file
View File

@@ -0,0 +1,419 @@
<?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'];
$trennzeichen = "$"; //Das Zeichen, auf das im Skript responded wird
//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();
if (isset($_GET['reload']))
{
if ($ichLebeQ['reload'] == 1 && $_GET['reload'] == 1)
{
echo "1";
die;
}
else
{
echo "0";
}
}
if ($ichLebeQ['lebt'] == 1)
$ichLebe = true;
$spielRes = $mysqli->Query("SELECT * FROM $spielID"."_game");
$spielAss = $spielRes->fetch_assoc();
$phase = $spielAss['spielphase'];
$text = "";
if ($ichLebe || $phase <= PHASESPIELSETUP || $phase >= PHASESIEGEREHRUNG)
{
//Schaue nach, ob Antwort bereits gespeichert ist!
if (array_key_exists("list_lebe",$spielAss)) //Für Backward compatibility!
{
if ($phase != PHASENACHT3 && $spielAss['list_lebe_aktualisiert'] > (microtime(true)*1000 - _LISTMAXRELOADTIME)) //Bei Werwölfen nicht die Liste schicken!
{
//Sende vorgefertigte Antwort!
echo $spielAss['list_lebe'];
die;
}
}
if ($phase == PHASESETUP)
{
//spielersuchen-Phase
//Gib jeden Spieler als String zurück, farbe alle schwarz = 0
//Bei Spieler 0 schreibe (Spielleiter) dazu
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
while ($temp = $spielerRes->fetch_assoc())
{
if ($temp['spielleiter']==1)
{
$text.= $trennzeichen.$temp['name']." (Spielleiter)$trennzeichen"."0";
}
else
{
$text.= $trennzeichen.$temp['name'].$trennzeichen."0";
}
}
}
elseif ($phase == PHASESPIELSETUP)
{
//Alle werden in einer Liste angezeigt, die bereit sind grün
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
while ($temp = $spielerRes->fetch_assoc())
{
if ($temp['spielleiter']==1)
{
$text.= $trennzeichen.$temp['name']." (Spielleiter)$trennzeichen"."1";
}
else
{
if ($temp['bereit']==1)
$text.= $trennzeichen.$temp['name'].$trennzeichen."1";
else
$text.= $trennzeichen.$temp['name'].$trennzeichen."0";
}
}
}
elseif ($phase == PHASENACHT3) //Nur für Werwölfe, daher nicht in Liste schreiben!
{
//Schaue nach, ob ich Werwolf bin
$myRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = $id");
$myAssoc = $myRes->fetch_assoc();
if ($myAssoc['nachtIdentitaet'] == CHARWERWOLF)
{
//Ich bin Werwolf --> Liste der (lebenden) Werwölfe
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
while ($temp = $spielerRes->fetch_assoc())
{
if ($temp['nachtIdentitaet']==CHARWERWOLF && $temp['lebt']==1)
{
if ($temp['wahlAuf']==-1)
echo $trennzeichen.$temp['name']." (wach)".$trennzeichen."0";
else
{
//Finde Namen heraus von wahlAuf
$nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
$nameAssoc = $nameRes->fetch_assoc();
echo $trennzeichen.$temp['name']." (wach): ".$nameAssoc['name'].$trennzeichen."1";
}
}
}
}
die;
}
elseif ($phase == PHASEBUERGERMEISTERWAHL)
{
//Bürgermeisterwahl
//ähnlich wie bei den Werwölfen
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler");
while ($temp = $spielerRes->fetch_assoc())
{
if ($temp['lebt']==1)
{
if ($temp['wahlAuf']==-1)
$text.= $trennzeichen.$temp['name']." (noch nicht Abgestimmt)".$trennzeichen."0";
else
{
//Finde Namen heraus von wahlAuf
$nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
$nameAssoc = $nameRes->fetch_assoc();
$text.= $trennzeichen.$temp['name'].": ".$nameAssoc['name'].$trennzeichen."1";
}
}
}
}
elseif ($phase == PHASEANKLAGEN)
{
//Anklagen
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE angeklagtVon > -1 AND lebt = 1");
while ($temp = $spielerRes->fetch_assoc())
{
//Finde Namen heraus von angeklagtVon
$nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['angeklagtVon']);
$nameAssoc = $nameRes->fetch_assoc();
$text.= $trennzeichen.$temp['name']." (angeklagt von ".$nameAssoc['name'].")".$trennzeichen."1";
}
}
elseif ($phase == PHASEABSTIMMUNG)
{
//Abstimmung
//Zeige zuerst die Angeklagten an
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND angeklagtVon > -1");
while ($temp = $spielerRes->fetch_assoc())
{
//Finde heraus, wieviele Stimmen
$stimmenRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND wahlAuf = ".$temp['id']);
//Finde heraus, ob Bürgermeister auf ihn gestimmt hat
$buergermeisterRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND wahlAuf = ".$temp['id']." AND buergermeister = 1");
$buergermeisterText = ""; //Zeige nichts an, wenn der Bürgermeister ihn nicht ausgewählt hat
if ($buergermeisterRes->num_rows > 0)
$buergermeisterText = " + Stimme des Bürgermeisters";
$text.= $trennzeichen.$temp['name'].", normale Stimmen: ".$stimmenRes->num_rows.$buergermeisterText.$trennzeichen."2";
}
//Dann zeige an, wer für wen gestimmt hat
$spielerRes2 = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
while ($temp = $spielerRes2->fetch_assoc())
{
if ($temp['wahlAuf']==-1)
$text.= $trennzeichen.$temp['name']." (noch nicht Abgestimmt)".$trennzeichen."0";
else
{
//Finde Namen heraus von wahlAuf
$nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
$nameAssoc = $nameRes->fetch_assoc();
$text.= $trennzeichen.$temp['name'].": ".$nameAssoc['name'].$trennzeichen."1";
}
}
}
elseif ($phase == PHASESTICHWAHL)
{
//Stichwahl = im Prinzip dasselbe wie in Phase 11
//Zeige zuerst die Angeklagten an
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND angeklagtVon > -1");
while ($temp = $spielerRes->fetch_assoc())
{
//Finde heraus, wieviele Stimmen
$stimmenRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND wahlAuf = ".$temp['id']);
//Finde heraus, ob Bürgermeister auf ihn gestimmt hat
$buergermeisterRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1 AND wahlAuf = ".$temp['id']." AND buergermeister = 1");
$buergermeisterText = ""; //Zeige nichts an, wenn der Bürgermeister ihn nicht ausgewählt hat
if ($buergermeisterRes->num_rows > 0)
$buergermeisterText = " + Stimme des Bürgermeisters";
$text.= $trennzeichen.$temp['name'].", normale Stimmen: ".$stimmenRes->num_rows.$buergermeisterText.$trennzeichen."2";
}
//Dann zeige an, wer für wen gestimmt hat
$spielerRes2 = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
while ($temp = $spielerRes2->fetch_assoc())
{
if ($temp['wahlAuf']==-1)
$text.= $trennzeichen.$temp['name']." (noch nicht Abgestimmt)".$trennzeichen."0";
else
{
//Finde Namen heraus von wahlAuf
$nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
$nameAssoc = $nameRes->fetch_assoc();
$text.= $trennzeichen.$temp['name'].": ".$nameAssoc['name'].$trennzeichen."1";
}
}
}
$mysqli->Query("UPDATE $spielID"."_game SET `list_lebe` = '$text', `list_lebe_aktualisiert` = ". (int)(microtime(true)*1000));
echo $text;
}
else
{
if (array_key_exists("list_tot",$spielAss)) //Für Backward compatibility!
{
if ($spielAss['list_tot_aktualisiert'] > (microtime(true)*1000 - _LISTMAXRELOADTIME)) //Bei Werwölfen nicht die Liste schicken!
{
//Sende vorgefertigte Antwort!
echo $spielAss['list_tot'];
die;
}
}
$rueckgabe = "";
//Zuerst "verkünden", welche Phase wir haben
$text = "";
switch ($phase)
{
case PHASENACHT3:
$text = "Nacht (Teil 1)";
break;
case PHASENACHT4:
$text = "Nacht (Teil 2)";
break;
case PHASENACHT5:
$text = "Nacht (Teil 3)";
break;
case PHASETOTEBEKANNTGEBEN:
$text = "Morgen";
break;
case PHASEBUERGERMEISTERWAHL:
$text = "Bürgermeisterwahl";
break;
case PHASEDISKUSSION:
$text = "Diskussion";
break;
case PHASEANKLAGEN:
$text = "Anklagen";
break;
case PHASEABSTIMMUNG:
$text = "Abstimmung";
break;
case PHASESTICHWAHL:
$text = "Stichwahl";
break;
}
$rueckgabe.= $trennzeichen.$text.$trennzeichen."3";
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 1");
while ($temp = $spielerRes->fetch_assoc())
{
$identitaet = "";
switch ($temp['nachtIdentitaet'])
{
case CHARDORFBEWOHNER:
$identitaet = "Dorfbewohner";
break;
case CHARWERWOLF:
$identitaet = "Werwolf";
break;
case CHARSEHER:
$identitaet = "Seher/in";
break;
case CHARHEXE:
$identitaet = "Hexe/r";
break;
case CHARJAEGER:
$identitaet = "Jäger/in";
break;
case CHARAMOR:
$identitaet = "Amor";
break;
case CHARBESCHUETZER:
$identitaet = "Beschützer/in";
break;
case CHARPARERM:
$identitaet = "Paranormale(r) Ermittler/in";
break;
case CHARLYKANTROPH:
$identitaet = "Lykantroph/in";
break;
case CHARSPION:
$identitaet = "Spion/in";
break;
case CHARMORDLUSTIGER:
$identitaet = "Mordlustige(r)";
break;
case CHARPAZIFIST:
$identitaet = "Pazifist/in";
break;
case CHARALTERMANN:
$identitaet = "Alte(r)";
break;
}
//Eine Liste aller aktiver Spieler anzeigen
//zuerst alle Lebenden anzeigen
if (($phase == PHASENACHT3 && $temp['nachtIdentitaet'] == CHARWERWOLF) || $phase == PHASEBUERGERMEISTERWAHL || $phase == PHASEDISKUSSION || $phase == PHASEANKLAGEN || $phase == PHASEABSTIMMUNG) //In diesen Phasen können die Werwölfe abstimmen
{
if ($temp['wahlAuf']==-1)
$rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, wach)".$trennzeichen."0";
else
{
//Finde Namen heraus von wahlAuf
$nameRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE id = ".$temp['wahlAuf']);
$nameAssoc = $nameRes->fetch_assoc();
$rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, wach): ".$nameAssoc['name'].$trennzeichen."1";
}
}
elseif ($phase >= PHASENACHTENDE || ($phase == PHASENACHT1 && $temp['nachtIdentitaet']==CHARAMOR)||($phase == PHASENACHT3 && ($temp['nachtIdentitaet']==CHARSEHER || $temp['nachtIdentitaet']==CHARBESCHUETZER || $temp['nachtIdentitaet']==CHARPARERM || $temp['nachtIdentitaet']==CHARSPION)) || ($phase == PHASENACHT4 && $temp['nachtIdentitaet']==CHARHEXE))
{
//ist wach
if ($temp['nachtIdentitaet']==CHARHEXE)
{
//Zeige Tränke
$heiltrank = $temp['hexeHeiltraenke'];
$todestrank = $temp['hexeTodestraenke'];
$rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, wach, Heiltränke: $heiltrank, Todestränke: $todestrank)".$trennzeichen."0";
}
else
{
$rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, wach)".$trennzeichen."0";
}
}
else
{
//nicht wach
if ($temp['nachtIdentitaet']==CHARHEXE)
{
//Zeige Tränke
$heiltrank = $temp['hexeHeiltraenke'];
$todestrank = $temp['hexeTodestraenke'];
$rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, Heiltränke: $heiltrank, Todestränke: $todestrank)".$trennzeichen."0";
}
else
{
$rueckgabe.= $trennzeichen.$temp['name']." ($identitaet)".$trennzeichen."0";
}
}
}
//Dann alle Toten anzeigen
$spielerRes = $mysqli->Query("SELECT * FROM $spielID"."_spieler WHERE lebt = 0");
while ($temp = $spielerRes->fetch_assoc())
{
$identitaet = "";
switch ($temp['nachtIdentitaet'])
{
case CHARDORFBEWOHNER:
$identitaet = "Dorfbewohner";
break;
case CHARWERWOLF:
$identitaet = "Werwolf";
break;
case CHARSEHER:
$identitaet = "Seher/in";
break;
case CHARHEXE:
$identitaet = "Hexe/r";
break;
case CHARJAEGER:
$identitaet = "Jäger/in";
break;
case CHARAMOR:
$identitaet = "Amor";
break;
case CHARBESCHUETZER:
$identitaet = "Beschützer/in";
break;
case CHARPARERM:
$identitaet = "Paranormale(r) Ermittler/in";
break;
case CHARLYKANTROPH:
$identitaet = "Lykantroph/in";
break;
case CHARSPION:
$identitaet = "Spion/in";
break;
case CHARMORDLUSTIGER:
$identitaet = "Mordlustige(r)";
break;
case CHARPAZIFIST:
$identitaet = "Pazifist/in";
break;
case CHARALTERMANN:
$identitaet = "Alte(r)";
break;
}
//Eine Liste aller aktiver Spieler anzeigen
//zuerst alle Lebenden anzeigen
$rueckgabe.= $trennzeichen.$temp['name']." ($identitaet, tot)".$trennzeichen."4";
}
$mysqli->Query("UPDATE $spielID"."_game SET `list_tot` = '$rueckgabe', `list_tot_aktualisiert` = ". (int)(microtime(true)*1000));
echo $rueckgabe;
}
//0: schwarz
//1: grün
//2: rot
//3: schwarz groß
//4: grau
?>

15
reload.php Normal file
View File

@@ -0,0 +1,15 @@
<?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"))
{
$temp = $Result->fetch_assoc();
echo $temp['reload'];
}
?>