X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=index.php;h=cbcc2f2f0d699a5c460ea41650065e0b7db621c3;hp=8b567fd90efd5a5f2395a769740d2509aad5ca7c;hb=0ef11ea847d9891e19605e6c93cb4c7296df0a57;hpb=d57105094a2e224bd7f4f03b11ab96a45383fea2 diff --git a/index.php b/index.php index 8b567fd..cbcc2f2 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 "

Game $gameid

\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