define(STREAM_TIMEOUT, 20);
define(EXPIRE_TIME_RD, 180);
define(EXPIRE_TIME_SMAMMA, 360);
+// BAN_TIME da allineare anche in commons.js
+define(BAN_TIME, 900);
define(GARBAGE_TIMEOUT, 10);
define(NICKSERV, "<i>SERVER</i>");
define(BRISK_DEBUG, FALSE);
// define(DEBUGGING, "local");
$G_all_points = array( 11,10,4,3,2, 0,0,0,0,0 );
-$G_brisk_version = "0.4.6";
+$G_brisk_version = "0.5.0";
$root_wellarr = Array ( 'Benvenuto in brisk (Ver. '.$G_brisk_version.').',
'Se vuoi iscriverti alla <a target="_blank" href="http://www.milug.org/cgi-bin/mailman/listinfo/ml-briscola">Mailing List</a>, cliccala!' );
-$table_wellarr = Array ( 'Benvenuto al tavolo.');
+$table_wellarr = Array ( 'Benvenuto al tavolo. Se almeno tre giocatori non sbloccano l\'uscita cliccando il lucchetto, chi esce non può risedersi a un qualunque tavolo per '.floor(BAN_TIME/60).' minuti.');
$G_room_help= '
var $sess; // session of the user
var $lacc; // last access (for the cleanup)
var $laccwr; // last access (for the cleanup)
+ var $bantime; // timeout to temporary ban
var $stat; // status (outdoor, room, table, game, ...)
var $subst; // substatus for each status
var $step; // step of the current status
$this->sess = $sess;
$this->lacc = time();
$this->laccwr = time();
+ $this->bantime = 0;
$this->stat = $stat;
$this->subst = $subst;
$this->step = 1;
log_rd2($user_cur->sess, "AUTO LOGOUT.");
if ($user_cur->subst == 'sitdown' || $user_cur->stat == 'table')
- $this->room_wakeu
-p(&$user_cur);
+ $this->room_wakeup(&$user_cur);
else if ($user_cur->subst == 'standup')
$this->room_outstandup(&$user_cur);
else
$from_table = ($user->stat == "table");
if ($from_table) {
log_main("WAKEUP", "from table [".$user->table."] nplayers_n: ".$this->table[$user->table]->player_n);
- $lockcalc = $table->exitlock_calc(&$this->user, $table_pos);
- if ($lockcalc < 3) {
- // BAN TEMP!
-asdasdasdas
- }
for ($i = 0 ; $i < $table->player_n ; $i++) {
$user_cur = &$this->user[$table->player[$i]];
return (sprintf('playsound("flasou", "%s");', $filename));
}
+function secstoword($secs)
+{
+ $mins = floor($secs / 60);
+ $secs = $secs % 60;
+ if ($mins > 0)
+ $ret = sprintf("%d minut%s%s", $mins, ($mins > 1 ? "i" : "o"), ($secs > 0 ? " e " : ""));
+
+ if ($secs > 0)
+ $ret .= sprintf("%d second%s", $secs, ($secs > 1 ? "i" : "o"));
+
+ return ($ret);
+}
+
?>
exit;
}
+ if ($user->bantime > $user->laccwr) {
+ $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
+ $user->comm[$user->step % COMM_N] .= show_notify("<br>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++;
+ save_data($bri);
+ unlock_data($sem);
+ exit;
+ }
+
// Take parameters
$table_idx = $argz[1];
$table = &$bri->table[$table_idx];
-
+
if ($table->player_n == PLAYERS_N) {
log_wr($sess, "Warning ! unreachable, table full.");
unlock_data($sem);
$bri->chatt_send(&$user,$mesg);
}
else if ($argz[0] == 'logout') {
- $bri->room_wakeup(&$user);
+ $remcalc = $argz[1];
+
+ if ($user->exitislock == TRUE) {
+ $remcalc++;
+ $user->exitislock = FALSE;
+ }
+
+ $logout_cont = TRUE;
+ if ($remcalc >= 3) {
+ $lockcalc = $table->exitlock_calc(&$bri->user, $user->table_pos);
+ if ($lockcalc < 3) {
+ $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
+ $user->comm[$user->step % COMM_N] .= $table->exitlock_show();
+ $user->comm[$user->step % COMM_N] .= show_notify("<br>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($sess, $user->comm[$user->step % COMM_N]);
+ $user->step++;
+ $logout_cont = FALSE;
+ }
+ }
+ else
+ $user->bantime = $user->laccwr + BAN_TIME;
+
+ if ($logout_cont == TRUE) {
+ $bri->room_wakeup(&$user);
+ }
}
else if ($argz[0] == 'exitlock') {
$user->exitislock = ($user->exitislock == TRUE ? FALSE : TRUE);