X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fbriskin5%2Findex_wr.php;h=17d001da5a924f88643574c8d3bb8f3cda6db4a9;hb=4a7eb48142359ee330ba378d05b0fb20b9ab0689;hp=3836a565a3ea6113229dc1c98b538d23318f9c2e;hpb=8a7ff74c63a4d6836d82c0f583fdc7e519849221;p=brisk.git diff --git a/web/briskin5/index_wr.php b/web/briskin5/index_wr.php index 3836a56..17d001d 100644 --- a/web/briskin5/index_wr.php +++ b/web/briskin5/index_wr.php @@ -40,7 +40,14 @@ if ($table_idx < 0 || $table_idx >= TABLE_N) exit; $sem = Briskin5::lock_data($table_idx); -$bri = &Briskin5::load_data($table_idx,$table_token); + +if (($bri = &Briskin5::load_data($table_idx,$table_token)) == FALSE) { + echo "Bin5 Load data error"; + log_wr("Bin5 Load data error"); + Briskin5::unlock_data($sem); + exit; +} + if (($user = &$bri->get_user($sess, &$idx)) == FALSE) { echo "Get User Error"; log_wr("Get User Error"); @@ -52,179 +59,17 @@ $argz = explode('|', $mesg); log_wr('POSTSPLIT: '.$argz[0]); if ($argz[0] == 'shutdown') { - log_auth($user_cur->sess, "Shutdown session."); - $tmp_sess = $user->sess; - $user->sess = ""; - step_unproxy($tmp_sess); - $user->name = ""; - $user->the_end = FALSE; + log_auth($user_cur->sess, "Shutdown session. delegate to room gc the autologout"); - log_rd2("AUTO LOGOUT."); - if ($user->subst == 'sitdown' || $user->stat == 'table') + log_rd2("bin5/index_wr.php: AUTO LOGOUT."); + if ($user->stat == 'table') { $bri->table_wakeup(&$user); - else if ($user->subst == 'standup') - $bri->room_outstandup(&$user); + // to force the logout + $user->lacc = 0; + } else log_rd2("SHUTDOWN FROM WHAT ???"); } -/****************** - * * - * STAT: room * - * * - ******************/ -else if ($user->stat == 'room') { - $user->laccwr = time(); - - if ($argz[0] == 'help') { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_help), 0, "torna ai tavoli", 600, 500); - - log_wr($user->comm[$user->step % COMM_N]); - $user->step_inc(); - - } - else if ($argz[0] == 'about') { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_about), 0, "torna ai tavoli", 400, 200); - - log_wr($user->comm[$user->step % COMM_N]); - $user->step_inc(); - - } - else if ($argz[0] == 'chatt') { - $bri->chatt_send(&$user,$mesg); - } - /********************** - * * - * SUBST: standup * - * * - **********************/ - else if ($user->subst == 'standup') { - - if ($argz[0] == 'sitdown') { - log_wr("SITDOWN command"); - - if ($user->the_end == TRUE) { - log_wr("INFO:SKIP:argz == sitdown && the_end == TRUE => ignore request."); - Briskin5::unlock_data($sem); - exit; - } - /* TODO: refact to a function */ - if ($user->bantime > $user->laccwr) { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= show_notify("
Ti sei alzato da un tavolo senza il consenso degli altri giocatori. Dovrai aspettare ancora ".secstoword($user->bantime - $user->laccwr)." prima di poterti sedere nuovamente.", 2000, "Torna in piedi.", 400, 100); - - $user->step_inc(); - Briskin5::save_data($bri); - Briskin5::unlock_data($sem); - exit; - } - - // Take parameters - $table_idx = $argz[1]; - $table = &$bri->table[$table_idx]; - - if ($table->player_n == PLAYERS_N) { - log_wr("WARN:FSM: Sitdown unreachable, table full."); - Briskin5::unlock_data($sem); - exit; - } - - // set new status - $user->subst = "sitdown"; - $user->table = $table_idx; - $user->table_pos = $table->user_add($idx); - - log_wr("MOP before"); - - if ($table->player_n == PLAYERS_N) { - log_wr("MOP inall"); - - // Start game for this table. - log_wr("Start game!"); - - // - // START THE SPAWN HERE!!!! - // - - if (TRUE) { // WITH SPAWN - $curtime = time(); - // Create new spawned table - $us = array(); - for ($i = 0 ; $i < BRISCOLAIN5_PLAYERS_N ; $i++) - $us[$i] = &$bri->user[$table->player[$i]]; - if (($bri =& new Briskin5(&$us, &$table, $table_idx)) == FALSE) - log_wr("bri create: FALSE"); - else - log_wr("bri create: ".serialize($bri)); - - - // Set root table and users - } - else { // BEFORE SPAWN - // init table - $table->init(&$bri->user); - $table->game_init(&$bri->user); - $curtime = time(); - - // init users - for ($i = 0 ; $i < $table->player_n ; $i++) { - $user_cur = &$bri->user[$table->player[$i]]; - log_wr("Pre if!"); - - $ret = ""; - $ret .= sprintf('gst.st_loc++; gst.st=%d; the_end=true; window.onunload = null ; document.location.assign("table.php");|', $user_cur->step+1); - - $user_cur->comm[$user_cur->step % COMM_N] = $ret; - $user_cur->trans_step = $user_cur->step + 1; - log_wr("TRANS ATTIVATO"); - - - $user_cur->stat_set('table'); - $user_cur->subst = 'asta'; - $user_cur->laccwr = $curtime; - $user_cur->step_inc(); - - $user_cur->comm[$user_cur->step % COMM_N] = show_table(&$bri,&$user_cur,$user_cur->step+1,TRUE, FALSE); - $user_cur->step_inc(); - } - } // end else { BEFORE SPAWN - - log_wr("MOP after"); - - } - // change room - $bri->room_sitdown(&$user, $table_idx); - - log_wr("MOP finish"); - - - } - else if ($argz[0] == 'logout') { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= sprintf('postact_logout();'); - $user->the_end = TRUE; - $user->step_inc(); - } - } - /********************** - * * - * SUBST: sitdown * - * * - **********************/ - else if ($user->subst == 'sitdown') { - if ($argz[0] == 'wakeup') { - $bri->table_wakeup(&$user); - } - else if ($argz[0] == 'logout') { - $bri->table_wakeup(&$user); - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= sprintf('postact_logout();'); - $user->the_end = TRUE; - $user->step_inc(); - } - } -} /********************* * * * STAT: table * @@ -258,7 +103,7 @@ else if ($user->stat == 'table') { if ($lockcalc < 3) { $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; $user->comm[$user->step % COMM_N] .= $table->exitlock_show(&$bri->user, $user->table_pos); - $user->comm[$user->step % COMM_N] .= show_notify("
I dati presenti sul server non erano allineati con quelli inviati dal tuo browser, adesso lo sono. Riprova ora.", 2000, "Torna alla partita.", 400, 100); + $user->comm[$user->step % COMM_N] .= show_notify("
I dati presenti sul server non erano allineati con quelli inviati dal tuo browser, adesso lo sono. Riprova ora.", 2000, "torna alla partita.", 400, 100); log_wr($user->comm[$user->step % COMM_N]); $user->step_inc(); @@ -274,12 +119,12 @@ else if ($user->stat == 'table') { } else if ($argz[0] == 'exitlock') { $user->exitislock = ($user->exitislock == TRUE ? FALSE : TRUE); - for ($ct = 0, $i = 0 ; $i < PLAYERS_N ; $i++) { + for ($ct = 0, $i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur[$i] = &$bri->user[$table->player[$i]]; if ($user_cur[$i]->exitislock == FALSE) $ct++; } - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $ret = sprintf('gst.st = %d;', $user_cur[$i]->step+1); $ret .= sprintf('exitlock_show(%d, %s);', $ct, ($user_cur[$i]->exitislock ? 'true' : 'false')); @@ -290,7 +135,7 @@ else if ($user->stat == 'table') { } else if ($user->subst == 'asta') { if ($argz[0] == 'lascio' && $user->handpt <= 2) { - $index_cur = $table->gstart % PLAYERS_N; + $index_cur = $table->gstart % BRISKIN5_PLAYERS_N; log_wr(sprintf("GIOCO FINITO !!!")); @@ -300,7 +145,7 @@ else if ($user->stat == 'table') { $table->game_next(); $table->game_init(&$bri->user); - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; $ret = sprintf('gst.st = %d;', $user_cur->step+1); @@ -312,7 +157,7 @@ else if ($user->stat == 'table') { else if ($argz[0] == 'asta') { $again = TRUE; - $index_cur = $table->gstart % PLAYERS_N; + $index_cur = $table->gstart % BRISKIN5_PLAYERS_N; if ($user->table_pos == $index_cur && $table->asta_pla[$index_cur]) { $a_card = $argz[1]; @@ -359,17 +204,17 @@ else if ($user->stat == 'table') { else { /* next step */ $showst = "show_astat("; - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; $showst .= sprintf("%s%d", ($i == 0 ? "" : ", "), ($user_cur->asta_card < 9 ? $user_cur->asta_card : $user_cur->asta_pnt)); } - if (PLAYERS_N == 3) + if (BRISKIN5_PLAYERS_N == 3) $showst .= ",-2,-2"; $showst .= ");"; $maxcard = -2; - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; if ($maxcard < $user_cur->asta_card) $maxcard = $user_cur->asta_card; @@ -378,8 +223,8 @@ else if ($user->stat == 'table') { if (($table->asta_pla_n > ($maxcard > -1 ? 1 : 0)) && !($table->asta_card == 9 && $table->asta_pnt == 120)) { log_wr("ALLOPPA QUI"); - for ($i = 1 ; $i < PLAYERS_N ; $i++) { - $index_next = ($table->gstart + $i) % PLAYERS_N; + for ($i = 1 ; $i < BRISKIN5_PLAYERS_N ; $i++) { + $index_next = ($table->gstart + $i) % BRISKIN5_PLAYERS_N; if ($table->asta_pla[$index_next]) { log_wr("GSTART 1"); $table->gstart += $i; @@ -388,10 +233,10 @@ else if ($user->stat == 'table') { } - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; $ret = sprintf('gst.st = %d; %s', $user_cur->step+1, $showst); - if ($user_cur->table_pos == ($table->gstart % PLAYERS_N)) + if ($user_cur->table_pos == ($table->gstart % BRISKIN5_PLAYERS_N)) $ret .= sprintf('dispose_asta(%d,%d, %s); remark_on();', $table->asta_card + 1, $table->asta_pnt+1, ($user_cur->handpt <= 2 ? "true" : "false")); else @@ -412,7 +257,7 @@ else if ($user->stat == 'table') { $table->game_next(); $table->game_init(&$bri->user); - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; $ret = sprintf('gst.st = %d;', $user_cur->step+1); @@ -426,7 +271,7 @@ else if ($user->stat == 'table') { // if a_pnt == 120 supergame ! else abbandono if ($a_pnt == 120 || $user->asta_card != -1) { $chooser = $index_cur; - for ($i = 1 ; $i < PLAYERS_N ; $i++) + for ($i = 1 ; $i < BRISKIN5_PLAYERS_N ; $i++) if ($i != $chooser) $table->asta_pla[$i] = FALSE; } @@ -434,8 +279,8 @@ else if ($user->stat == 'table') { //"gst.st = ".($user->step+1)."; dispose_asta(".($table->asta_card + 1).",".-($table->asta_pnt).", true); remark_off();"; $user->comm[$user->step % COMM_N] = sprintf( "gst.st = %d; dispose_asta(%d, %d, false); remark_off();", $user->step+1, $table->asta_card + 1,-($table->asta_pnt)); $user->step_inc(); - for ($i = 1 ; $i < PLAYERS_N ; $i++) { - $chooser = ($table->gstart + $i) % PLAYERS_N; + for ($i = 1 ; $i < BRISKIN5_PLAYERS_N ; $i++) { + $chooser = ($table->gstart + $i) % BRISKIN5_PLAYERS_N; if ($table->asta_pla[$chooser]) { break; } @@ -443,7 +288,7 @@ else if ($user->stat == 'table') { } $table->asta_win = $chooser; - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; $ret = sprintf('gst.st = %d; %s', $user_cur->step+1, $showst); @@ -473,12 +318,12 @@ else if ($user->stat == 'table') { $table->briscola = $a_brisco; $table->friend = $table->card[$a_brisco]->owner; log_wr("GSTART 2"); - $table->gstart = ($table->mazzo+1) % PLAYERS_N; + $table->gstart = ($table->mazzo+1) % BRISKIN5_PLAYERS_N; log_wr("Setta la briscola a ".$a_brisco); $chooser = $table->asta_win; $user_chooser = &$bri->user[$table->player[$chooser]]; - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; $user_cur->subst = 'game'; $ret = sprintf('gst.st = %d; subst = "game";', $user_cur->step+1); @@ -488,7 +333,7 @@ else if ($user->stat == 'table') { $ret .= briscola_show($bri, $table, $user_cur); /* first gamer */ - if ($i == ($table->gstart % PLAYERS_N)) + if ($i == ($table->gstart % BRISKIN5_PLAYERS_N)) $ret .= "is_my_time = true; remark_on();"; else $ret .= "is_my_time = false; remark_off();"; @@ -519,14 +364,14 @@ else if ($user->stat == 'table') { $a_y = substr($a_y,0,-2); $loggo = sprintf("A_play %s, table_pos %d == %d, mazzo %d, gstart %d, card_stat %d, card_own %d", - $a_play, $user->table_pos, ($table->gstart % PLAYERS_N), + $a_play, $user->table_pos, ($table->gstart % BRISKIN5_PLAYERS_N), $table->mazzo, $table->gstart, $table->card[$a_play]->stat, $table->card[$a_play]->owner); log_wr("CIC".$loggo); /* se era il suo turno e la carta era sua ed era in mano */ if ($a_play >=0 && $a_play < 40 && - ($user->table_pos == (($table->gstart + $table->turn) % PLAYERS_N)) && + ($user->table_pos == (($table->gstart + $table->turn) % BRISKIN5_PLAYERS_N)) && $table->card[$a_play]->stat == 'hand' && $table->card[$a_play]->owner == $user->table_pos) { log_wr(sprintf("User: %s Play: %d",$user->name, $a_play)); @@ -537,23 +382,23 @@ else if ($user->stat == 'table') { /* * !!!! TURN INCREMENTED BEFORE !!!! */ - $turn_cur = ($table->gstart + $table->turn) % PLAYERS_N; + $turn_cur = ($table->gstart + $table->turn) % BRISKIN5_PLAYERS_N; $table->turn++; $card_play = sprintf("card_play(%d,%d,%d,%d);|", $user->table_pos, $a_play, $a_x, $a_y); - if (($table->turn % PLAYERS_N) != 0) { /* manche not finished */ - $turn_nex = ($table->gstart + $table->turn) % PLAYERS_N; + if (($table->turn % BRISKIN5_PLAYERS_N) != 0) { /* manche not finished */ + $turn_nex = ($table->gstart + $table->turn) % BRISKIN5_PLAYERS_N; $player_cur = "remark_off();"; $player_nex = $card_play . "is_my_time = true; remark_on();"; $player_oth = $card_play; } - else if ($table->turn <= (PLAYERS_N * 8)) { /* manche finished */ + else if ($table->turn <= (BRISKIN5_PLAYERS_N * 8)) { /* manche finished */ $winner = calculate_winner($table); log_wr("GSTART 3"); $table->gstart = $winner; - $turn_nex = ($table->gstart + $table->turn) % PLAYERS_N; + $turn_nex = ($table->gstart + $table->turn) % BRISKIN5_PLAYERS_N; log_wr(sprintf("The winner is: [%d] [%s]", $winner, $bri->user[$table->player[$winner]]->name)); $card_take = sprintf("sleep(gst,2000);|cards_take(%d);|cards_hidetake($d);", @@ -563,13 +408,13 @@ else if ($user->stat == 'table') { $player_nex = $card_play . $card_take . "|"; else $player_nex = ""; - if ($table->turn < (PLAYERS_N * 8)) /* game NOT finished */ + if ($table->turn < (BRISKIN5_PLAYERS_N * 8)) /* game NOT finished */ $player_nex .= "is_my_time = true; remark_on();"; $player_oth = $card_play . $card_take; } log_wr(sprintf("Turn Cur %d Turn Nex %d",$turn_cur, $turn_nex)); - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; $ret = sprintf('gst.st = %d; ', $user_cur->step+1); @@ -591,7 +436,7 @@ else if ($user->stat == 'table') { - if ($table->turn == (PLAYERS_N * 8)) { /* game finished */ + if ($table->turn == (BRISKIN5_PLAYERS_N * 8)) { /* game finished */ log_wr(sprintf("GIOCO FINITO !!!")); /* ************************************************ */ @@ -602,14 +447,14 @@ else if ($user->stat == 'table') { $table->game_next(); $table->game_init(&$bri->user); - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; $retar[$i] .= show_table(&$bri,&$user_cur,$user_cur->step+1,TRUE, TRUE); } } - for ($i = 0 ; $i < PLAYERS_N ; $i++) { + for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$table->player[$i]]; $user_cur->comm[$user_cur->step % COMM_N] = $retar[$i];