2007/10/14更新。
公開している情報が古くなったので、最近用意できる環境(athena-dev-2.1.1-mod2307_2324、Visual C++ 2005 Express Edition、MySQL5.0)で更新しようかと思ったら、メイクファイルとかに説明が追加されていて、あまりに簡単すぎて吹いた。
ここの説明を読まなくても構築できると思います。
逆に読まない方がいいかもね。
最近の環境の構築メモもあった方がよいのかなぁ?
以下は、2007/05/21に記述された文章です。
ラグナロクオンラインのエミュレータサーバ「athena」のインストールメモです。
使用したソフトは以下の通り。
プログラムを知らない友人から解説を依頼されたので、基本的にOS以外は無料で使えるものを用意しました。
athena本体
・コンパイラ(両方必要)
Visual C++ Toolkit 2003
Platform SDK(サイトがありませんがOSによって必要なファイルのところへ振り分けられます)
・データベース
MySQL 4.1.11 [Windows (x86)]
また以下のものは必須ではないが、簡単にSQLを流すために用意しました。
・SQL開発環境
Common SQL Environment ver1.59
・MySQL接続DLL
winclients-3_22_28_sjis.zip
なお、今回はサーバ環境として、Microsoft Windows Server 2003 Standard Editionを用意しました。
インストール直後の全くなにも入っていない状態から始めます。
●コンパイラのインストール。
Visual C++ Toolkit 2003をインストールします。
ダウンロードしてきた「VCToolkitSetup.exe」(2005/05/18現在)を実行します。
(1)はじめに
|
(2)規約
|
(3)インストールフォルダ
特にいじらなくてもいいと思います。
|
(4)最終確認
Installボタンを押下するとコピーが始まります。
|
(5)インストール完了。
|
|

http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ からサイトへ飛ぶと、Windows Server 2003 SP1 PlatformSDKをダウンロードするページに回されます。
実際に使っているOSと異なるかもしれませんが、ここはこれをダウンロードして構いません。
通信系のファイルだけが有ればいいのですが、一括でしか落とせないようなので(以前なら選べたんだけど)Windows Server 2003 SP1 Platform SDK Full Downloadを選択。
とりあえず全部ダウンロードします。
PSDK-FULL.exeを実行し、PSDK-FULL.batとExtract.exeを展開します。

次にコマンドラインから PSDK-FULL.batとオプションに展開フォルダを指定してPlatformSDKを展開します。
PSDK-FULL.bat c:\temp\psdk\
展開が完了したら setup.exe を実行してインストールの開始。
(1)はじめに
|
(2)規約
|
(3)登録者名
|
(4)インストール形式
Customを選択
|
(5)インストールフォルダ
特にいじらなくてもいいと思います。
|
(6)インストールする
コンポーネントの案内
|
(7)コンポーネントの選択
Configuration Option、Microsoft Windows Core SDK以外は外して構いません。
|
(8)ファイルコピーの確認
|
(9)インストール完了
|
●データベースのインストール
ダウンロードしたmysql-4.1.11-win32.zip(2005/05/18現在)からSetup.exeを実行します。
(1)はじめに
|
(2)インストールタイプの指定
詳細設定を行うのでCustomを選択
|
(3)インストール詳細設定
C Include Files / Lib Filesを追加
|
(4)設定確認
この後ファイルのコピーが始まります
|
(5)MySQL.comの会員確認
スキップでいいでしょう
|
(6)サーバの設定を行う
チェックを付けて次へ
|
(7)サーバ設定開始
|
(8)設定モード
詳細設定を行うのでDetailed Configurationを選択
|
(9)マシンの使用形態
とりあえずServer Machine
|
(10)データベースの使用形態
athenaのテーブル定義をみていたらNon-Transactional Database Onlyでも良いだろうけど、一応Multifunctional Databaseを選ぶ
|
(11)データベースフォルダの指定
ここの設定はathenaでは使われないのでとりあえず空いているドライブに
|
(12)接続形態の設定
とりあえずDecision Support(DSS)/OLAPを選択
|
(13)ポートの設定
とりあえずはそのままで良いでしょう
|
(14)文字コードの設定
Best Support For Multilingualismを選択
|
(15)サービスの設定
既に同じサービスがない限りそのままで良いでしょう
あとInclude Bin Directory in Windows PATHにもチェックを入れておくと良いでしょう
|
(16)rootパスワードの設定
|
(17)設定作業の開始
Executeを押下すると設定内容が適用されます
|
(18)設定完了
MySQLのインストールは完了です
|
|
|
●athena用データベースの設定

データベースに接続し、athena用データベースとユーザを作成します。
これはサーバ側で行います。
コマンドプロンプトを開きMySQLのコンソールへrootユーザで接続します。
mysql -u root -p
パスワードを聞かれるのでインストール時に設定したパスワードでログインします。
CREATE DATABASE `ragnarok` DEFAULT CHARACTER SET sjis;
を入力し、データベースを作成します。

データベース操作用にSELECT、INSERT、UPDATE、DELETE権限だけを持つユーザを作成します。
GRANT SELECT,INSERT,UPDATE,DELETE ON `ragnarok`.* TO 'ragnarok'@'localhost' IDENTIFIED BY 'password';
ここからは、サーバ機のみでコントロールを行う場合テーブルの作成まで読み飛ばしてください。
このとき、データベースサーバと主な作業を行うマシンが分かれている場合は
localhostの部分を % にします。
ひとまず後のネタのために、両方登録しておきます。
また今回、主な作業を行うマシンはMySQL4.0用のクライアントを使用します。
MySQL4.0と4.1ではパスワードの仕様が変更されているため、4.0用のパスワードのためにOLD_PASSWORDキーワードを使用してパスワードを上書きしておきます。

host名を % でユーザの追加。
GRANT SELECT,INSERT,UPDATE,DELETE ON `ragnarok`.* TO 'ragnarok'@'%' IDENTIFIED BY 'password';
データベースをmysqlに切り替え
use mysql;
ユーザ情報テーブルのパスワードを上書き
UPDATE User SET Password = OLD_PASSWORD('password') WHERE Host = '%' AND User = 'ragnarok';
テーブルを直接書き換えた場合に、権限情報を再度読み込ませる
FLUSH PRIVILEGES;

●テーブルの作成。
athenaを適当なフォルダへ展開します。
sql-filesフォルダにmain.sqlというテーブル作成スクリプトが有るので、これを流します。
mysql -D ragnarok -h localhost -u root -p < sql-files\main.sql
ここでもrootアカウントのパスワードを入力します。
●ゲームアカウントの作成

ここからCommon SQL Environment(以下CSE)を使ってデータベースの操作をします。
ここからはサーバでも普段使うマシンでも構いません。
CSEのアーカイブを適当なフォルダへ展開します。
続いて winclients-3_22_28_sjis.zip から libmySQL.dll を取り出し、CSEと同じフォルダに置きます。
CSE.exeを起動しメニューの「データベース」から「接続」を選択します。
DBMSは MySQL、ユーザ名・パスワード・サーバー名と、DB名はragnarok、ポート番号は変更していなければ3306を設定して OK ボタンを押下します。

権限不足のエラーメッセージが表示されますが、ここでは問題ないので(゚ε゚)キニシナイ!!
右のDBエクスプローラからテーブルツリーを開き、loginテーブルで右クリックメニューから「全データを開く」を選択します。
すでに s1 ~ s15 までのアカウントが作成されています。ここを直接書き換えるか、左側グリッドの一番下の行にデータを追加します。
アカウントとして最低限必要なのは、account_id・userid・user_pass・sex・levelです。
account_idは重複したデータを許さない設定になっています。必ずかぶらない番号になるようにしましょう。
●athenaサーバの設定

confフォルダのlogin_athena.confとchar_athena.confを編集します。
login_athena.confとchar_athena.confの下の方にMySQLへ接続するための情報があるので、「athena用データベースの設定」で設定したアカウント情報を設定します。
●athenaサーバのビルド

athenaのフォルダに、vc07_make.bat というファイルが有るので、環境に合わせて書き換えます。
先ほどインストールした Platform SDKのパスが異なっているので、Set PATH・Set INCLUDE・Set LIBの行を書き換えます。
C:\Program Files\Microsoft SDK\~となっているところを C:\Program Files\Microsoft Platform SDK\~に書き換えます。
またMySQL用の設定も追記します。
ちなみに、今回の環境では、Set~の3行は以下のようになりました。
ページ幅が足りなくて複数行で表示されていますが、Set~が行頭です。
Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\Program Files\Microsoft Platform SDK\Bin\winnt;%PATH%
Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;C:\Program Files\Microsoft Platform SDK\include;%INCLUDE%;C:\Program Files\MySQL\MySQL Server 4.1\Include
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;C:\Program Files\Microsoft Platform SDK\Lib;%LIB%;C:\Program Files\MySQL\MySQL Server 4.1\Lib\Opt
そしてコンパイル。
|
ワーニングが出ますが、気にしないでおきましょう。
気になるならなおしても良いけど。
|
ビルドが完了すれば、binフォルダにexeファイルが生成されます。
|

あとはマップデータを用意して、C:\Program Files\Gravity\RagnarokOnline\フォルダか、athenaのdataフォルダとして設置します。
実行は、athenaフォルダのwin32_start.batを実行すれば完了。
追記。
キャラクタ作成・選択までいけるのに、マップサーバに繋がらないってときは、
athenaのフォルダにあるdb\packet_db.txtを確認してください。
ファイルの中に、「jROはここまで」と書いてあるところがあるので、それ以降の行はコメントアウトします。