X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2FObj%2Fbrisk.phh;h=db58be349635e3776559da343b0959b06596622e;hb=6ecbac42f49695a00c5c641c39d03e873e9de227;hp=35b8ddcaf3eb0118b0d144cd586fc166e3e80fc5;hpb=28d6c18063a40898e84cead2070dc8cfb30f7875;p=brisk.git
diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh
index 35b8ddc..db58be3 100644
--- a/web/Obj/brisk.phh
+++ b/web/Obj/brisk.phh
@@ -19,10 +19,12 @@
*
*/
+
+define(BRISK_CONF, "brisk.conf.pho");
define(FTOK_PATH, "/var/lib/brisk");
define(LEGAL_PATH, "/tmp/legal_brisk");
define(PROXY_PATH, "/var/lib/brisk_proxy");
-define(TABLES_N, 20);
+define(TABLES_N, 24);
define(PLAYERS_N, 3);
define(MAX_POINTS, 5);
define(MAX_PLAYERS, (20 + (PLAYERS_N * TABLES_N)));
@@ -32,6 +34,10 @@ define(SHM_DIMS_DLT, 65536);
define(COMM_N, 18);
define(COMM_GEN_N, 50);
+
+define(CHAT_N, 3);
+define(CHAT_ILL_TIME, 6);
+
define(SESS_LEN, 13);
define(STREAM_TIMEOUT, 20);
define(EXPIRE_TIME_RD, 180);
@@ -59,12 +65,15 @@ define(BRISK_SINGLE_DEBUG,0);
define(BRISK_SINGLE_SESS, "");
// define(DEBUGGING, "local");
+require_once("$DOCUMENT_ROOT/Etc/".BRISK_CONF);
+
+
$G_false = FALSE;
$G_all_points = array( 11,10,4,3,2, 0,0,0,0,0 );
-$G_brisk_version = "spawn-0.10.3";
+$G_brisk_version = "spawn-0.11.0";
-$root_wellarr = Array ( 'Benvenuto in brisk (Ver. '.$G_brisk_version.'), NOVITA\': dimensionamento dinamico dell\'area dati e ottimizzazione della stessa, versione beta.',
+$root_wellarr = Array ( 'Benvenuto in brisk (Ver. '.$G_brisk_version.'), NOVITA\': white-list per proxy verificati - versione beta2.',
'Se vuoi iscriverti alla Mailing List, cliccala!' );
$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.');
@@ -492,6 +501,11 @@ class User {
var $table_token;// token that identify a game on a table
var $the_end; // Flag to change the end of the session
+ var $chat_lst; // Last chat line
+ var $chattime; // Array of chat times
+ var $chat_cur; // Current chat line number
+ var $chat_ban; // Time for ban chat
+ var $chat_dlt; // Delta t for ban
function User() {
}
@@ -517,6 +531,12 @@ class User {
$thiz->handpt = -1;
$thiz->exitislock = TRUE;
+ $thiz->chattime = array_fill(0, CHAT_N, 0);
+ $thiz->chat_cur = 0;
+ $thiz->chat_lst = "";
+ $thiz->chat_ban = 0;
+ $thiz->chat_dlt = 0;
+
$thiz->table = $table;
$thiz->table_pos = -1;
$thiz->table_token = "";
@@ -552,6 +572,15 @@ class User {
$thiz->asta_pnt = $from->asta_pnt;
$thiz->handpt = $from->handpt;
$thiz->exitislock = $from->exitislock;
+
+ $thiz->chattime = array();
+ for ($i = 0 ; $i < CHAT_N ; $i++)
+ $thiz->chattime[$i] = $from->chattime[$i];
+ $thiz->chat_cur = $from->chat_cur;
+ $thiz->chat_lst = $from->chat_lst;
+ $thiz->chat_ban = $from->chat_ban;
+ $thiz->chat_dlt = $from->chat_dlt;
+
$thiz->table = $from->table;
$thiz->table_pos = $from->table_pos;
$thiz->table_token = $from->table_token;
@@ -593,6 +622,12 @@ class User {
$thiz->exitislock = $from->exitislock;
$thiz->the_end = $from->the_end;
+ $thiz->chattime = array_fill(0, CHAT_N, 0);
+ $thiz->chat_cur = 0;
+ $thiz->chat_lst = "";
+ $thiz->chat_ban = 0;
+ $thiz->chat_dlt = 0;
+
$thiz->table = $table;
$thiz->table_pos = $table_pos;
$thiz->table_token = $from->table_token;
@@ -643,6 +678,16 @@ class User {
return (FALSE);
}
+
+ function reset() {
+ $tmp_sess = $this->sess;
+ $this->sess = "";
+ step_unproxy($tmp_sess);
+ $this->name = "";
+ while (array_pop($this->comm) != NULL);
+ $this->step = 0;
+ $this->the_end = FALSE;
+ }
} // end class User
@@ -818,12 +863,16 @@ class Room {
if ($user_cur->stat == 'table' || $user_cur->stat == 'room') {
log_auth($user_cur->sess, "Autologout session.");
+ $user_cur->reset();
+ /* factorized with ->reset()
$tmp_sess = $user_cur->sess;
$user_cur->sess = "";
step_unproxy($tmp_sess);
$user_cur->name = "";
+ while (array_pop($user_cur->comm) != NULL);
$user_cur->step = 0;
$user_cur->the_end = FALSE;
+ */
log_rd2("AUTO LOGOUT.");
if ($user_cur->subst == 'sitdown' || $user_cur->stat == 'table')
@@ -1104,6 +1153,8 @@ class Room {
function chatt_send(&$user, $mesg)
{
+ $only_you = FALSE;
+
if ($user->stat == 'table') {
$table = &$this->table[$user->table];
}
@@ -1184,6 +1235,24 @@ class Room {
}
}
else {
+ if ($timecur < ($user->chat_ban + $user->chat_dlt)) {
+ $only_you = TRUE;
+ $user->chat_dlt = $user->chat_dlt * 2;
+ if ($user->chat_dlt > 120)
+ $user->chat_dlt = 120;
+ }
+ else if ($user->chat_lst == $user_mesg)
+ $only_you = TRUE;
+ else if ($timecur - $user->chattime[($user->chat_cur + 1) % CHAT_N] < CHAT_ILL_TIME) {
+ $user->chat_ban = $timecur;
+ $user->chat_dlt = 5;
+ $only_you = TRUE;
+ }
+ else {
+ $user->chat_ban = 0;
+ $user->chat_dlt = 0;
+ }
+
for ($i = 0 ; $i < ($user->stat == 'room' ? MAX_PLAYERS : PLAYERS_N) ; $i++) {
if ($user->stat == 'room') {
$user_cur = &$this->user[$i];
@@ -1193,6 +1262,13 @@ class Room {
else {
$user_cur = &$this->user[$table->player[$i]];
}
+
+ if ($only_you) {
+ if ($user_cur != $user)
+ continue;
+ else
+ $user_mesg = "== chat ban ==";
+ }
$user_cur->comm[$user_cur->step % COMM_N] = "gst.st = ".($user_cur->step+1)."; ";
$user_cur->comm[$user_cur->step % COMM_N] .= sprintf('chatt_sub("%s","%s");',
@@ -1201,6 +1277,10 @@ class Room {
}
log_legal($timecur, $user->sess, $user->name,
($user->stat == 'room' ? 'room' : 'table '.$user->table),$user_mesg);
+
+ $user->chat_lst = "$user_mesg";
+ $user->chattime[$user->chat_cur % CHAT_N] = $timecur;
+ $user->chat_cur++;
}
}