www.pudn.com > ro4fserver.rar > README


--- ライセンス周り
一応35さんのソースがベースになってます。なのでGPLです。

--- 何をしたか
core.cにsocket周り、mainループ、timer処理を集中記述。
core.h経由で、login,charはそれを動かす。
login-char-map間の鯖間プロトコルの実装
複数char,map鯖に対応(されてる予定)
アカウント管理もどき(useridの最後に_F,_Mを付けると新規ID発行)

色々デバッグとNPCのテストコード埋めました。
スキルとチャット周りはあいかわらず未実装です。
マップ内移動をそれなりに作りました。無駄に重いです。改良願う。
->障害物無しに斜め+上下左右だけで済むパスの場合は手抜きするように修正
  ちょっとはマシに

0029の後に
・grf直読み対応(カレントディレクトリにdata.grfがある事を要求)
・モンスターがてきとーに濶歩する(35さんの敵bot入り状態レベル)
・マップ間移動がある
・ブロック単位の視界処理 (8x8で3ブロック先まで。define次第)
ぐらいをしたものです。
以前upした時は視界処理を追加したものを別バージョンとして
分けてましたが一応大丈夫そうという事で統合しました。

0033以降で、
・map2.cの見通しがかなり悪くなってきたのである程度ソースを分割中
・NPC商人がある程度動いた? @ 主にmap2.c,npc.c,itemdb.c
・new_1-1.gatのようなresnametable.txt依存マップの対応 @ grfio.c
・usleepから、最寄りのtimer処理までselectで待つように変更 @ core.c
・npc会話テストコードは一旦消しました
といった細かい変更ぐらいしか無いです。

なんとか59さんのupしてくれた0031.binの取り込みは出来たつもり。

map鯖はzlib依存です。
FreeBSD環境でmake一発な以外は一切チェックしていません。

--- 鯖間プロトコル
とりあえず、login鯖-char鯖-map鯖の3層構造という事にする。
5層化は後日やるかもしれない

--- login鯖-char鯖間
10000〜を使う事にしてchar鯖側をクライアントにする。
char鯖からのS/Rで表記
S 0x2710 .24B .24B .l .4B .w .16B
	login鯖へchar鯖接続
R 0x2711 .B
	00 - 接続成功
	01 - 接続失敗 バージョン違い
	02 - 接続失敗 id無し
	03 - 接続失敗 パスワード間違い
S 0x2712 .l .l .l
	認証要求
R 0x2713 .l .B
	00 - 認証成功
	01 - 認証失敗
S 0x2714 .l
	自分内の接続人数報告

--- char鯖-map鯖間
11000〜という事にしてmap鯖側をクライアントにする。
map鯖からのS/Rで表記
S 0x2af8 .24B .24B .l .4B .w
	char鯖へmap鯖接続
R 0x2af9 .B
	00 - 接続成功
	01 - 接続失敗 バージョン違い
	02 - 接続失敗 id無し
	03 - 接続失敗 パスワード間違い
S 0x2afa .w {.16B}*
	自分の担当するマップ申請
R 0x2afb .B
	00 - マップ受け付け完了
	01 - マップ受け付け失敗(他鯖との重複とか?)
S 0x2afc .l .l .l
	map鯖接続認証要求&キャラデータ送付要求
R 0x2afd .w .l .l <キャラデータ>.?B
	map鯖接続認証成功&char->mapのキャラデータ送付
R 0x2afe .l .B
	00 - map鯖接続認証失敗
S 0x2aff .l
	自分内の接続人数報告
R 0x2b00 .l
	鯖全体の接続人数
S 0x2b01 .w .l .l <キャラデータ>.?B
	map->charのキャラデータ送付

--- 今後の予定
2重ログインの排除機構(login-char-map全部の改修)
char&map鯖、ファイル保存キャラデータへスキル,アイテム追加、
一回map鯖入った後のキャラセレクトやmap鯖間移動の対応(鯖間プロトコルの追加)
map鯖、能力値,スキル成長等,床アイテム等のオブジェクト,script npc処理,
モンスタ,負荷軽減,他とにかく沢山