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処理, モンスタ,負荷軽減,他とにかく沢山