X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fbriskin5%2FObj%2Fbriskin5.phh;h=211678a3448d3e69b8e4585434515b374e50514a;hb=2dcf630ae35dd407e93cd7faa86bfadbd8a49230;hp=525f4d8bac54933f1142562d62e3efb5480287e3;hpb=c33375c2aaad1aefb69e269be1a95d3f737027d6;p=brisk.git diff --git a/web/briskin5/Obj/briskin5.phh b/web/briskin5/Obj/briskin5.phh index 525f4d8..211678a 100644 --- a/web/briskin5/Obj/briskin5.phh +++ b/web/briskin5/Obj/briskin5.phh @@ -30,9 +30,10 @@ define('BIN5_SHM_MAX', (BIN5_SHM_MIN + 1048576)); define('BIN5_SHM_DLT', 32768); define('BIN5_PROXY_PATH', PROXY_PATH."/bin5"); -define('BIN5_RULES_FINISH', 0); -define('BIN5_RULES_ABANDON', 1); -define('BIN5_RULES_ALLPASS', 2); +define('BIN5_RULES_OLDSCHEMA', -1); +define('BIN5_RULES_FINISH', 0); +define('BIN5_RULES_ABANDON', 1); +define('BIN5_RULES_ALLPASS', 2); $mlang_bin5_bin5 = array( // br, hr, b, /b, win, fri @@ -56,10 +57,10 @@ $mlang_bin5_bin5 = array( 'en' => 'lost'), // br, hr, b, /b, win_name - 'info_alon' => array( 'it' => 'Nell\'ultima partita %3$s%5$s%4$s si è chiamato in mano,%1$s', + 'info_alon' => array( 'it' => 'Nell\'ultima partita %3$s%5$s%4$s si è chiamato in mano,%1$s', 'en' => 'In the last hand %3$s%5$s%4$s play alone against each other,%1$s'), // br, hr, b, /b, old_asta_pnt, old_pnt, winornot - 'info_aleaa' => array( 'it' => 'doveva fare %3$salmeno %5$d%4$s punti e ne ha fatti %3$s%6$d%4$s: ha %6$s.%1$s', + 'info_aleaa' => array( 'it' => 'doveva fare %3$salmeno %5$d%4$s punti e ne ha fatti %3$s%6$d%4$s: ha %3$s%7$s%4$s.%1$s', 'en' => 'he/she had to do %3$sat least %5$d%4$s points and they had made %3$s%6$d%4$s: he/she had %3$s%7$s%4$s.%1$s'), // br, hr, b, /b, old_pnt, winornot 'info_morea' => array( 'it' => 'doveva fare %3$spiù di 60%4$s punti e ne ha fatti %3$s%5$d%4$s: ha %3$s%6$s%4$s.%1$s', @@ -90,6 +91,8 @@ $mlang_bin5_bin5 = array( 'en' => ' The game worth %s.' ), 'info_yshuf'=> array( 'it' => 'Fai tu il mazzo, ', 'en' => 'It\'s your shuffled the cards, '), + 'info_match'=> array( 'it' => 'Il codice della partita è %d.', + 'en' => 'Match code is %d.'), 'btn_bkgame'=> array( 'it' => 'torna alla partita', 'en' => 'back to the game'), 'call_wptn' => array( 'it' => '
con %d punti', @@ -179,6 +182,8 @@ class Bin5_table extends Table { var $briscola; var $friend; // the callee idx position at table + var $match_id; // the id of the match on the database (-1 == just not saved) + var $old_act; // last action that trigs the end of the game var $old_mazzo; var $old_reason; @@ -216,6 +221,8 @@ class Bin5_table extends Table { $thiz->friend = -1; $thiz->turn = 0; + $thiz->match_id = -1; + $thiz->old_act = -1; $thiz->old_mazzo = -1; $thiz->old_reason = ""; @@ -256,6 +263,8 @@ class Bin5_table extends Table { $thiz->briscola = $from->briscola; $thiz->friend = $from->friend; + $thiz->match_id = $from->match_id; + $thiz->old_act = $from->old_act; $thiz->old_mazzo = $from->old_mazzo; $thiz->old_reason = $from->old_reason; @@ -288,6 +297,9 @@ class Bin5_table extends Table { $thiz->mazzo = rand(0,PLAYERS_N-1); $thiz->points_n = 0; $thiz->mult = 0; + + $thiz->match_id = -1; + $thiz->old_asta_win = -1; $thiz->old_reason = ""; @@ -395,6 +407,7 @@ class Bin5_table extends Table { for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) { $this->total[$i] = 0; $user_cur = $userarr[$this->player[$i]]; + $user_cur->stat_set('table'); $user_cur->exitislock = TRUE; } @@ -485,7 +498,7 @@ class Bin5_table extends Table { return ($ct); } - function rules_engine($bri, $curtime, $action, $user) + function rules_engine(&$bri, $curtime, $action, $user) { GLOBAL $G_all_points, $G_dbasetype; @@ -552,7 +565,7 @@ class Bin5_table extends Table { // return($pts); break; } - + if ($pro >= $this->asta_pnt) $sig = 1; else @@ -642,7 +655,8 @@ class Bin5_table extends Table { define('BIN5_USER_FLAG_RING_ENDAUCT', 0x01); - +define('BIN5_USER_CONTINUE_INIT', -1); +define('BIN5_USER_CONTINUE_ALREADY', -2); class Bin5_user extends User { var $asta_card; // var $asta_pnt; // @@ -650,6 +664,8 @@ class Bin5_user extends User { var $exitislock; // Player can exit from the table ? var $privflags; // Flags for briskin5 only + var $continue; // Id of the match that the user would continue + const BASE = "../"; function User() { @@ -665,6 +681,7 @@ class Bin5_user extends User { $thiz->handpt = -1; $thiz->exitislock = TRUE; $thiz->privflags = 0; + $thiz->continue = BIN5_USER_CONTINUE_INIT; return ($thiz); } @@ -684,6 +701,7 @@ class Bin5_user extends User { $this->handpt = $from->handpt; $this->exitislock = $from->exitislock; $this->privflags = $from->privflags; + $this->continue = $from->continue; } /* CLONE NOT USED @@ -712,11 +730,13 @@ class Bin5_user extends User { /* NOTE: at this moment idx and table_pos fields have the same value but diffentent functions, we keep them separated for a while */ $thiz->room = $bri; - $thiz->idx = $table_pos; + $thiz->idx = $table_pos; // it is the position in the mini-room, + // not related to table pos (see below) $thiz->asta_card = -2; $thiz->asta_pnt = -1; $thiz->handpt = -1; $thiz->exitislock = TRUE; + $thiz->continue = BIN5_USER_CONTINUE_INIT; log_wr("Bin5 constructor"); @@ -933,6 +953,12 @@ class Bin5_user extends User { } for ($i = $cur_step ; $i < $this->step ; $i++) { $ii = $i % COMM_N; + if ($this->comm[$ii] == "") { + if ($i == $cur_step) + continue; + else + break; + } log_rd2("ADDED TO THE STREAM: ".$this->comm[$ii]); $ret .= $this->comm[$ii]; } @@ -969,17 +995,20 @@ class Bin5_user extends User { return ($ret); - } // function maincheck (... - - - + } // function maincheck (... + function continue_set($match_code) + { + $this->continue = $match_code; + } + function continue_get() { + return ($this->continue); + } } // end class Bin5_user - class Bin5 { static $delta_t = array(); @@ -1794,6 +1823,10 @@ function show_table_info(&$bri, &$table, $table_pos) $noty .= sprintf($mlang_bin5_bin5['info_mult'][$G_lang], multoval($multer) ); } $noty .= "

"; + if ($table->match_id != -1) { + $noty .= sprintf($mlang_bin5_bin5['info_match'][$G_lang], $table->match_id); + $noty .= "

"; + } $ret .= show_notify($noty, 3000, $mlang_bin5_bin5['btn_bkgame'][$G_lang], 500, 400); /* NOTE: show_notify($noty, 3000, "torna alla partita", 500, * 130 + ($table->points_n > 0 ? 50 : 0) + @@ -1900,7 +1933,10 @@ function game_description($act, $form, $old_mult, $win = -1, $win_name = "?1?", $tg_bc = ""; } - if ($act == BIN5_RULES_ALLPASS) { + if ($act == BIN5_RULES_OLDSCHEMA) { + return (""); + } + else if ($act == BIN5_RULES_ALLPASS) { return (sprintf($mlang_bin5_bin5['info_alpa'][$G_lang], $tg_br, $tg_hr, $tg_bo, $tg_bc)); } @@ -1911,13 +1947,12 @@ function game_description($act, $form, $old_mult, $win = -1, $win_name = "?1?", } else { $wol = game_result($old_asta_pnt, $old_pnt); - + $noty = ""; - + if ($win != $fri) { // not alone case - /* MLANG: "
Nell'ultima mano ha chiamato %s, il socio era %s,
", "hanno fatto cappotto EBBRAVI!.
", "dovevano fare %s punti e ne hanno fatti %d: hanno %s.
", "
Nell'ultima mano %s si è chiamato in mano,
", "ha fatto cappotto EBBRAVO!.
", "doveva fare %s punti e ne ha fatti %d: ha %s.
", ($table->old_asta_pnt > 61 ? "almeno ".$table->old_asta_pnt : 'più di 60'), $table->old_pnt, ($wol == 1 ? "vinto" : ($wol == 0 ? "pareggiato" : "perso" */ - + $noty .= sprintf($mlang_bin5_bin5['info_part'][$G_lang], $tg_br, $tg_hr, $tg_bo, $tg_bc, $win_name,