﻿ゲーム内掲示板に「一言コメント」機能を追加しました。
                                                           2008.07.14 JOJO

//////////
// 対象 //
//////////

 L2J_JP rev 1055 付近

//////////////////
// インストール //
//////////////////

 【重要】事前にバックアップをとるなどしておいてください。

 １．下記のソースコードをワークスペースに上書きコピーしてビルドする。

  ※ CustomComment.java は新規に追加したクラスです。
    それ以外は既存のクラスを上書きします。

  java/net/sf/l2j/gameserver/communitybbs/Manager/
    CustomBBSManager.java

  java/net/sf/l2j/gameserver/communitybbs/BB/
    CustomMsg.java
    CustomComment.java

  java/net/sf/l2j/gameserver/serverpackets/
    ShowBoard.java

  できあがった l2jserver.jar をＬ２Ｊサーバマシンにアップロードしてください。

 ２．データベースのアップデートを行う。
    messagez.sql         - 新規に messagez,commentz テーブルを作成。
    messagez_convert.sql - 既存の messages テーブルを messagez テーブルにコンバート。

  NaviCAT の「バッチファイルを実行する」で、この２つを実行してください。

 〖補足説明〗
   messagez テーブル
    既存の messages テーブルをコンバートしたものが入ります。
    内容は messages にコメント数とコメント日付を追加したもの、です。
    いわゆる「スレッド」に相当するものです。
    ゲーム内メールや個人メモも、ここに収まります。
    既存の messages テーブルはもう使用しません。バックアップとしてそのまま残しています。
   commentz テーブル
    １行コメントを収めるテーブルです。最初はカラッポです。

//////////////////////////
// 新たに追加した掲示板 //
//////////////////////////

 ・お知らせ
 ・Ｑ＆Ａ掲示板
 ・トレード掲示板
 ・イベント掲示板
 ・あいさつ掲示板
 ・血盟員募集掲示板

  ※「お知らせ」はＧＭしか書き込み･コメントできません。
     一般プレイヤーは閲覧のみ可能です。

  他は、どれも同じようなフツーの掲示板です。板名が違うだけです。
  気に入らなければ自由に変更してください。

////////////////////////////////
// 仕様・・というか何と言うか //
////////////////////////////////

 コメントがつけられるようにして、困った事があります。
 リネージュ２ゲームクライアントで表示できる html の文字数制限が厳しいのです。
 ちょっと長ったらしいコメント文が書き込まれると、すぐに制限を越えてしまいます。
 そこで、長文は省略表示するようにしました。長文の末尾に「…」が出たら省略されて
 いるという合図です。「…」をクリックすれば全文を読むことができます。

 また、コメントが多数付いて２ページ以上に渡るときは、２ページめ以後の「元発言」
 も省略表示します。（１つのページはコメント１０個分です）
 省略表示中は、文章中の改行も省略され、繋がって表示されます。
 ちょっと見にはバグっているように見えるかもしれませんが、わざとです！
 せまい画面を有効に使うために、イロイロ苦労したんです！

 「１行入力」では記号が入力できません。
 「文字数の制限を越えているか、不適切な文字が使用されています。やり直してください。」
 と怒られてしまいます。何か設定があるのか、現在のところ不明です。

------------------------------------------------------------------------------
////////////////////////////
// ユニコード文字について //
////////////////////////////

 ユニコード文字を入力すると文字化けすると思います。
 （☑ とか ☞ とか）
 これは、データベースが「シフトJIS」で作成されているからです。
 古いバージョンのＭｙＳＱＬサーバは、まだユニコード対応していなかったので
 しかたありません。

 でも、現在の最新のＭｙＳＱＬサーバはユニコード対応しています。
 ユニコード対応のＭｙＳＱＬのバージョンは 4.1.1 以降です。
 もちろん、バージョン５でもＯＫです。
 （て言うか、それより古いのを探す方が難しい･･･）

     Ｌ２Ｊ関連のソフトは全部ユニコードに対応している！
       リネージュ２ゲームクライアント（Win32）
       Ｌ２Ｊサーバ（java）
       ＭｙＳＱＬサーバ（UNIX系UTF8アプリ）

 そこで今回、messagez テーブル、commentz テーブルは UTF8 で CREATE するようにしました。
 あとは鯖の設定を変えるだけでユニコードが文字化けせずに使用できるようになります。

 server.properties の URL= の末尾に
「?useUnicode=true&characterEncoding=UTF-8」を書き加える

 前 URL=jdbc:mysql://localhost/l2jdb
 後 URL=jdbc:mysql://localhost/l2jdb?useUnicode=true&characterEncoding=UTF-8
                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 書き換えたらリブートしてください。

[EOF]