#!/usr/bin/perl #移動 # 99/1/31 update(v4.5) by 普通 #==================================================================== #ご協力を頂いた方 #oidon$chatname";} else {$chatname_disp = $chatname;} &actmemcheck(); $goroomname = $in{'goroomname'}; if ($goroomname =~ /(.*)\((.*)\).*/) { $goroomname = $1; $goroomno = $2;} $color = $in{'color'}; ####################オリジナルスクリプト################## # if ($icon eq 'y') { # $roomdisp = ""; # $roomdisp2 = ""; # $roomdisp3 = ""; #################Chat室表示フラッシュバージョン############## if ($ficon eq 'y') { $roomdisp = ""; $roomdisp2 = ""; $roomdisp3 = ""; ####################変更はここまで##################### }else{ $roomdisp = $roomname; $roomdisp2 = $roomname; $roomdisp3 = $goroomname; } } sub main { print<<"__EOF__"; $title2
発言 __EOF__ #参加メンバー登録 &memberin(); #ささやき相手メンバー表示 &seqmember (); print "
\n"; if ($in{'java'} eq 'yes') { print<<"__EOF__"; __EOF__ } ######退室する######################################################## print<<"__EOF__";

__EOF__ #入室メッセージ登録 &WriteComment ($goroomno,"「$chatname_disp」さんが$roomdisp2から移動!で入室。\[$date$rhost\]
\n"); #投稿内容の表示 &prcom2(); print<<"__EOF__";



ここは、$title - $roomdispです。

うこそ、いらっしゃいませ!「$chatname」さん。じゃん、じゃんんでってくださいね!

__EOF__ exit(0); } #フレーム初期表示(フレーム対応) sub main2 { #参加メンバー登録 &memberin(); #入室メッセージ登録 &WriteComment ($goroomno,"「$chatname_disp」さんが$roomdisp2から移動!で入室。\[$date$rhost\]
\n"); $w_color = $color; $w_chatname = $chatname; $e_color = &encode($w_color); $e_chatname = &encode($w_chatname); print "$title2\n"; if ($in{'java'} eq 'yes') { print<<"__EOF__"; __EOF__ } print<<"__EOF__"; <BODY BGCOLOR="$hf_bgcolor" TEXT="$hf_txcolor"> <TABLE><TR> <TD VALIGN=bottom><FORM METHOD="POST" ACTION="${sbase}chat_end.cgi"> <INPUT TYPE=hidden NAME="roomno" VALUE="$goroomno"> <INPUT TYPE=hidden NAME="profno" VALUE="$profno"> <INPUT TYPE=hidden NAME="chatname" VALUE="$chatname"> <INPUT TYPE=hidden NAME="color" VALUE="$color"> <INPUT TYPE=submit VALUE="退室する"></FORM> </TR></TABLE><HR SIZE=2> <FONT FACE=\"MS Pゴシック\"> <H2><STRONG>ここは、$title - $roomdispです。</STRONG></H2> 現在、この部屋はフレーム表示モードにて動作しています。一旦退室し、非フレームにて入室願います<BR> </FONT><HR NOSHADE> __EOF__ } #ささやき受けメンバー表示 sub seqmember { print "
ささやき!→\n"; } #参加メンバー登録 sub memberin { $memcnt = 0; &LockReadMember($goroomno); $memcnt = @mf_list + 1; #追加を前提に行数を算出 foreach (@mf_list) { ($mf_roomno,$mf_roomname,$mf_chatname,$mf_intime,$mf_seq,$mf_ipaddr,$mf_bgcolor,$mf_txcolor,$mf_line,$mf_ccolor) = split(/||\n/); if ($chatname eq $mf_chatname) { $_ = ''; #既登録済みの場合、古いエントリを削除 $memcnt--; #追加でなかった時行数を調整 } } unshift (@mf_list,"$goroomno|$goroomname|$chatname|$time|$seq|$ipaddr|$hf_bgcolor|$hf_txcolor|$hf_line|$color\n"); &UnlockWriteMember ($goroomno); #Chat室表紙情報更新 &LockReadHeader ($goroomno); ($f_rname,$f_intime,$f_outtime,$f_memcnt,$hf_bgcolor,$hf_txcolor,$hf_line,$hf_roomenv,$hf_roompass,$hf_ccolor,$dmy) = split(/||\n/,$hf_list); $hf_list = "$f_rname|$date|$f_outtime|$memcnt|$hf_bgcolor|$hf_txcolor|$hf_line|$hf_roomenv|$hf_roompass|$hf_ccolor|\n"; &UnlockWriteHeader ($goroomno); } #投稿内容の表示 sub prcom2 { $lcnt = 0; &ReadComment ($goroomno); $myid = "$chatname:$ipaddr"; foreach (@cf_list) { if (s///g) { next if ($1 ne $myid && $2 ne $myid); $_ = "$_"; } print $mf_line, $_; last if (++$lcnt > $dmax); } } sub delete { #部屋別参加メンバー名称削除 $memcnt = 0; &LockReadMember ($roomno); foreach (@mf_list) { ($mf_roomno,$mf_roomname,$mf_chatname,$mf_intime,$mf_seq,$mf_ipaddr,$mf_bgcolor,$mf_txcolor,$mf_line,$mf_ccolor) = split(/||\n/); if ($chatname eq $mf_chatname) {$_ = '';} else {$memcnt++;} } &UnlockWriteMember ($roomno); #移動(退出)メッセージ表示 &WriteComment ($roomno,"「$chatname_disp」さんが$roomdisp3移動!\[$date$rhost\]
\n"); #Chat室表紙情報更新(削除) &LockReadHeader ($roomno); ($f_rname,$f_intime,$f_outtime,$f_memcnt,$hf_bgcolor,$hf_txcolor,$hf_line,$hf_roomenv,$hf_roompass,$hf_ccolor,$dmy) = split(/||\n/,$hf_list); $hf_list = "$f_rname|$f_intime|$date|$memcnt|$hf_bgcolor|$hf_txcolor|$hf_line|$hf_roomenv|$hf_roompass|$hf_ccolor|\n"; &UnlockWriteHeader ($roomno); } #部屋属性取得 sub roomset { &ReadHeader ($goroomno); ($hf_roomname,$f_intime,$f_outtime,$f_memcnt,$hf_bgcolor,$hf_txcolor,$hf_line,$hf_roomenv,$hf_roompass,$hf_ccolor,$dmy) = split(/||\n/,$hf_list); } #アクティブメンバーチェック sub actmemcheck { &ReadMember ($roomno); foreach (@mf_list) { ($mf_roomno,$roomname,$mf_chatname,$mf_intime,$mf_seq,$mf_ipaddr,$mf_bgcolor,$mf_txcolor,$mf_line,$mf_ccolor) = split(/||\n/); if ($chatname eq $mf_chatname) {return;} } &actmemerr(); } #エンコード処理 sub encode { $_[0] =~ s/([^0-9A-Za-z_ ])/'%'.unpack('H2',$1)/ge; $_[0] =~ s/\s/+/g; $_[0]; } #エラー表示 sub error { print<<"__EOF__"; $title2 $hp_bcolor
ここに入る為の情報に誤りがあります。
__EOF__ exit(0); } #エラー表示 sub error2 { print<<"__EOF__"; $title2 $hp_bcolor
この操作(部屋間移動)する為の情報が不足しています。
__EOF__ exit(0); } #エラー表示 sub actmemerr { print<<"__EOF__"; $title2 $hp_bcolor
ここに発言する為の情報が不足しています。
__EOF__ exit(0); }