COMCHAT
皆さんご存知であろう、KENT-WEBのKENTさんのCOMCHATの改造方法です。
 このテキストに対応してるバージョンはCOMCHAT 4.4です。

以下はCOMCHAT v4.4の改造方法です。一部COMCHATのスクリプトから引用しています。
COMCHATの著作権はKENTさんにあります。  KENT WEB フリーソフト利用規定
んでもって、この改造部分の著作権は紅堂幹人にある事を忘れないでください。
 既に改造済みのCOMCHAT v4.4を『ElDorado Chat』として再配布しています。無改造の方は是非。

CGI改造に成功しましたら、著作権・フッター部分ででもリンクしてくれると嬉しいです。
  改造協力:<a href="http://eldorado1st.cool.ne.jp/GalleBasra/">紅堂幹人</a>
……という感じでしょうか。リンクしなくてもいいから、改造協力:紅堂幹人は必ず。

ここではコピーがしやすいようにと『<textarea>~</textarea>』で表示しています。
 スクリプトにそのまま貼り付ける時にインデント(字下げ)が崩れないようにという配慮でもあります。
 ……そのせいでここで見辛いのはご愛嬌、ね?(汗)。

参加者一覧だけに反映する『ステータス』機能 Ref.2005/02/19 部分修正
えー……この改造はElDorado Chatの売りであり、『欲しい』と思う機能です。
入室時に「あ、ROMするねー」と言って『退室⇒「○○(ROM)」』という名前にする人がいます。
ログは消費されるわ、見苦しいわ…そう思いませんか?
そういう対策に『参加者一覧にだけ』反映されるステータス機能を付けてみましょう。

# 顔文字
@faces = (~);
の次の行辺りに下記を追加します。

次に。『設定完了』と書かれているところに『if ($mode eq 'bye') { &byebye; }』という処理がありますよね?
その次の行を以下のようにします。つまりは『if ($mode eq 'status') { &status; }』を追加するだけです。


『sub form2(フォーム2 : 発言フォーム)』の『<input type=reset value="クリア">』から『発言欄』を下記で上書きします。

『sub log_view(記事表示)』の最初の方…
local($ename) = &url_enc($in{'name'});
print "<META HTTP-EQUIV=\"refresh\"~(省略)>";
と書いてある行を以下のようにします。

ここからが微妙に説明し辛いのですが、『sub member(在室者処理)』を書き換えます。
# ホスト名が同一であれば時間と名前を更新
$_ = "$times<>$in{'name'}<>$host<>\n";
  『$in{'status'}』を追加する↓
# ホスト名が同一であれば時間と名前を更新
$_ = "$times<>$in{'name'}$in{'status'}<>$host<>\n";
こういう感じです。$in{'name'}と$name2の次に$in{'status'}を追加するだけ、と。
変更箇所を上記含め下記にあげておきます。

これで入室後にステータスを選択できるようになります。

あとは、『ステータス一覧の説明』を書くだけです。『__END__』の前に以下を追加します。


以上でステータス機能を付ける事ができます。長いですが、あると便利な機能、ってことで。