X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fbrisk.phh;h=db58be349635e3776559da343b0959b06596622e;hb=6ecbac42f49695a00c5c641c39d03e873e9de227;hp=e3dd54b9fe9c90be0ead0a28b99fa3728cc30fbc;hpb=6a6c26cd9a2ba2f3782116c69c017dd3c50c864e;p=brisk.git diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh index e3dd54b..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.4"; +$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 beta2.', +$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; @@ -1118,6 +1153,8 @@ class Room { function chatt_send(&$user, $mesg) { + $only_you = FALSE; + if ($user->stat == 'table') { $table = &$this->table[$user->table]; } @@ -1198,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]; @@ -1207,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");', @@ -1215,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++; } }