X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=index.php;h=e33b49b48624a4572cbf7f4b111f446f0360acf6;hp=8b567fd90efd5a5f2395a769740d2509aad5ca7c;hb=63908b2063ccdeb9690b9c685cf1a1eb41ef2e59;hpb=d57105094a2e224bd7f4f03b11ab96a45383fea2
diff --git a/index.php b/index.php
index 8b567fd..e33b49b 100644
--- a/index.php
+++ b/index.php
@@ -1,11 +1,18 @@
\n";
+ echo "perhaps the game has been cancled, check by login in here.";
+ exit();
+ }
+
+ DB_update_user_timestamp($myid);
+
+ /* get some information from the DB */
+ $gameid = DB_get_gameid_by_hash($me);
+ $myname = DB_get_name_by_hash($me);
+ $mystatus = DB_get_status_by_hash($me);
+ $mypos = DB_get_pos_by_hash($me);
+
+ /* check if game really is old enough */
+ $result = mysql_query("SELECT mod_date from Game WHERE id='$gameid' " );
+ $r = mysql_fetch_array($result,MYSQL_NUM);
+ if(time()-strtotime($r[0]) > 60*60*24*30)
+ {
+ $message = "Hello, \n\n".
+ "Game $gameid has been cancled since nothing happend for a while and $myname requested it.\n";
+
+ $userids = DB_get_all_userid_by_gameid($gameid);
+ foreach($userids as $user)
+ {
+ $To = DB_get_email_by_userid($user);
+ mymail($To,$EmailName."game cancled (timed out)",$message);
+ }
+
+ /* delete everything from the dB */
+ DB_cancel_game($me);
+
+ echo "
Game $gameid has been cancled.
";
+ }
+ else
+ echo "You need to wait longer before you can cancle a game...
\n";
+}
else if(myisset("me"))
- {
- /* handle request from one specific player,
- * the hash is set on a per game base
- */
-
- $me = $_REQUEST["me"];
-
- /* test for valid ID */
- $myid = DB_get_userid_by_hash($me);
- if(!$myid)
- {
- echo "Can't find you in the database, please check the url.
\n";
- echo "perhaps the game has been cancled, check by login in here.";
- exit();
- }
-
- DB_update_user_timestamp($myid);
-
- /* get some information from the DB */
- $gameid = DB_get_gameid_by_hash($me);
- $myname = DB_get_name_by_hash($me);
- $mystatus = DB_get_status_by_hash($me);
- $mypos = DB_get_pos_by_hash($me);
-
+{
+ /* handle request from one specific player,
+` * the hash is set on a per game base
+ */
+
+ $me = $_REQUEST["me"];
+
+ /* test for valid ID */
+ $myid = DB_get_userid_by_hash($me);
+ if(!$myid)
+ {
+ echo "Can't find you in the database, please check the url.
\n";
+ echo "perhaps the game has been cancled, check by login in here.";
+ exit();
+ }
+
+ DB_update_user_timestamp($myid);
+
+ /* get some information from the DB */
+ $gameid = DB_get_gameid_by_hash($me);
+ $myname = DB_get_name_by_hash($me);
+ $mystatus = DB_get_status_by_hash($me);
+ $mypos = DB_get_pos_by_hash($me);
+
+ echo "\n";
+
switch($mystatus)
{
case 'start':
@@ -152,15 +206,16 @@ else if(myisset("me"))
{
if($_REQUEST["in"] == "no")
{
- echo "TODO: email everyone that the game has been canceled.
";
- /*something like need to modify for DB backend
- for($i=0;$i<4;$i++)
- {
- $message = "Hello ".$player[$hash[$i]]["name"].",\n\n".
- "the game has been canceled due to the request of one of the players.\n";
- mymail($player[$hash[$i]]["email"],"[DoKo-Debug] the game has been canceled",$message);
- }
- */
+ $message = "Hello, \n\n".
+ "the game has been canceled due to the request of one of the players.\n";
+
+ $userids = DB_get_all_userid_by_gameid($gameid);
+ foreach($userids as $user)
+ {
+ $To = DB_get_email_by_userid($user);
+ mymail($To,$EmailName."game cancled",$message);
+ }
+
/* delete everything from the dB */
DB_cancel_game($me);
}
@@ -185,8 +240,10 @@ else if(myisset("me"))
break;
case 'check':
- echo "checking for solo...
if you have a wedding or poverty you need to play a normal game,sorry...
".
- " At the moment you need to reload this page to finish the setup.
";
+ echo "checking if you selected solo or nines...
".
+ " if you have a wedding, please send an email to the other players.
".
+ " if you have poverty you need to play a normal game,sorry...
".
+ " Please click here to finish the setup.
";
if(!myisset("solo","wedding","poverty","nines") )
{
/* all these variables have a pre-selected default,
@@ -204,12 +261,13 @@ else if(myisset("me"))
{
DB_set_solo_by_hash($me,$_REQUEST["solo"]);
DB_set_sickness_by_hash($me,"solo");
- echo "Seems like you want to play a ".$_REQUEST["solo"]." solo. Got it.\n";
+ echo "
Seems like you want to play a ".$_REQUEST["solo"]." solo. Got it.
\n";
if($gametype == "solo" && $startplayer<$mypos)
{}/* do nothing */
else
{
+ /* this solo comes first */
DB_set_gametype_by_gameid($gameid,"solo");
DB_set_startplayer_by_gameid($gameid,$mypos);
DB_set_solo_by_gameid($gameid,$_REQUEST["solo"]);
@@ -244,7 +302,8 @@ else if(myisset("me"))
* set that one in the Game table, delete other ones form Hand table
* tell people about it.
*/
- echo "
poverty not handeled at the moment... you need to play a normal game
";
+ echo "
checking if someone else selected solo or nines... wedding and poverty not handled at the moment
".
+ " Please click here to finish the setup.
";
/* only set this after all poverty, etc. are handeled*/
DB_set_hand_status_by_hash($me,'play');
@@ -258,8 +317,71 @@ else if(myisset("me"))
if($ok)
{
- /* TODO: check what kind of game we are playing */
DB_set_game_status_by_gameid($gameid,'play');
+
+ /* check what kind of game we are playing */
+ $gametype = DB_get_gametype_by_gameid($gameid);
+ $startplayer = DB_get_startplayer_by_gameid($gameid);
+
+ /* nines? */
+ $nines = 0;
+ /* check for nines */
+ foreach($userids as $user)
+ {
+ if(DB_get_sickness_by_userid_and_gameid($user,$gameid) == 'nines')
+ $nines = 1;
+ }
+
+ /* gamestatus == normal, => cancel game */
+ if($nines && $gamestatus == "normal")
+ {
+ /* TODO: set game type to nines to be able to keep statistics */
+
+ $message = "Hello, \n\n".
+ "the game has been cancled becausee someone has five or more nines.\n";
+
+ $userids = DB_get_all_userid_by_gameid($gameid);
+ foreach($userids as $user)
+ {
+ $To = DB_get_email_by_userid($user);
+ mymail($To,$EmailName."game cancled",$message);
+ }
+
+ /* delete everything from the dB */
+ DB_cancel_game($me);
+
+ }
+
+ /* poverty? */
+ $poverty = 0;
+
+ /* check players for poverty */
+ foreach($userids as $user)
+ {
+ if(DB_get_sickness_by_userid_and_gameid($user,$gameid) == 'poverty')
+ {
+ $poverty++;
+ $name = DB_get_name_by_userid($user);
+ echo "$name has a Vorbehalt.
";
+ }
+ }
+ /* if gamestatus == normal, set poverty or dpovert (in case two people have poverty) */
+
+ /* wedding? */
+ $wedding = 0;
+ /* check players for wedding */
+ foreach($userids as $user)
+ {
+ if(DB_get_sickness_by_userid_and_gameid($user,$gameid) == 'wedding')
+ {
+ $wedding++;
+ $name = DB_get_name_by_userid($user);
+ echo "$name has a Vorbehalt.
" ;
+ }
+ }
+
+ /* if gamestatus == normal, set wedding */
+
}
break;
@@ -286,7 +408,9 @@ else if(myisset("me"))
set_gametype($gametype);
-
+ /* get some infos about the game */
+ $gamestatus = DB_get_game_status_by_gameid($gameid);
+
/* display useful things in divs */
/* display local time */
@@ -304,7 +428,8 @@ else if(myisset("me"))
};
echo "\n\n";
- display_status($GT);
+ if($gamestatus != 'pre')
+ display_status($GT);
/* display links to the users status page */
$result = mysql_query("SELECT email,password from User WHERE id='$myid'" );
@@ -316,7 +441,6 @@ else if(myisset("me"))
/* end display useful things*/
/* has the game started? No, then just wait here...*/
- $gamestatus = DB_get_game_status_by_gameid($gameid);
if($gamestatus == 'pre')
{
echo "you need to wait for the others...
";
@@ -356,15 +480,13 @@ else if(myisset("me"))
"LEFT JOIN Comment ON Play.id=Comment.play_id ".
"WHERE Trick.game_id='".$gameid."' ".
"ORDER BY Trick.id,sequence ASC");
-
-
$trickNR = 1;
$lasttrick = DB_get_max_trickid($gameid);
$play = array(); /* needed to calculate winner later */
$seq = 1;
- $pos = 0;
+ $pos = DB_get_startplayer_by_gameid($gameid)-1;
$firstcard = ""; /* first card in a trick */
echo "\n