summaryrefslogtreecommitdiff
path: root/doc/inter_server_packet.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/inter_server_packet.txt')
-rw-r--r--doc/inter_server_packet.txt204
1 files changed, 204 insertions, 0 deletions
diff --git a/doc/inter_server_packet.txt b/doc/inter_server_packet.txt
new file mode 100644
index 000000000..a88694aa8
--- /dev/null
+++ b/doc/inter_server_packet.txt
@@ -0,0 +1,204 @@
+S map鯖=>inter鯖
+R inter鯖=>map鯖
+
+パケット長リスト
+R 3800-388f
+ -1,-1,27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 35,-1,11,15, 34,29, 7,-1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10,-1,15, 0, 79,17, 7,-1, 0,-1,-1,-1, 14,67,186,-1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 11,-1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+S 3000-308f
+ -1,-1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 6,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72, 6,52,14, 10,29, 6,-1, 34, 0, 0, 0, 0, 0, 0, 0,
+ -1, 6,-1, 0, 55,17, 6,-1, 14,-1,-1,-1, 14,19,186,-1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48,14,-1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+
+
+S 3000 <len>.w <message>.?B
+ GMメッセージ送信要求
+R 3800 <len>.w <message>.?B
+ GMメッセージ
+S 3001 <len>.w <src-nick>.24B <dst-nick>.24B <message>.?B
+ Wis送信要求
+R 3801 <len>.w <wis-id>.l <src-nick>.24B <dst-nick>.24B <message>.?B
+ Wisデータ受信
+ wis-id=inter鯖内部のWis-id:map鯖では3002で送信するためだけに使う
+S 3002 <wis-id>.l <flag>.B
+ このmap鯖でのWisの送信結果
+ flag=0 送信完了(このmap鯖にいたので、送信した)
+ flag=1 送信失敗(このmap鯖にはそんな人いません)
+ flag=2 送信終了(このmap鯖にいるが、ignoreされている)
+R 3802 <src-nick>.24B <flag>.B
+ 全map鯖でのWis送信結果
+ flag=0 送信完了
+ flag=1 送信失敗(どのmap鯖にもそんな人いません)
+ flag=2 送信失敗(ignoreされた)
+S 3010 <account_id>.l
+ 倉庫データ要求
+R 3810 <len>.w <account_id>.l <storage>.?B
+ 倉庫データ受信
+S 3011 <len>.w <account_id>.l <storage>.?B
+ 倉庫データ送信&保存要求
+R 3811 <account_id>.l <flag>.b
+ 倉庫データ保存終了
+ flag=0 成功(現在の仕様では必ず0なので、返信を待たなくてもいい)
+
+S 3020 <account_id>.l <party_name>.24B <nick_name>.24B <map_name>.16B <level>.w
+ パーティ作成要求
+R 3820 <account_id>.l <fail>.B <party_id>.l <party_name>.24B
+ パーティ成功可否(自分のマップ鯖のみ)
+ fail=00 パーティ作成成功
+ fail=01 失敗(party_id,pary_nameはゴミ)
+S 3021 <party_id>.l
+ パーティ情報要求
+R 3821 <len>.w <struct party>.?B
+ (struct partyの最初4バイトはparty_id)
+ len=8 パーティは存在しない(受信したら該当キャラを未所属に変更する)
+ len>8 パーティ情報(受信したらクライアントに送ること)
+ (要求してきたマップ鯖へ)
+S 3022 <party_id>.l <account_id>.l <nick>.24B <map_name>.16B <level>.w
+ パーティ追加要求
+R 3822 <party_id>.l <account_id>.l <fail>.B
+ パーティ追加通知(要求してきたマップ鯖へ)
+ fail=00で成功、fail=01で失敗
+ (成功時はこの直後に全鯖にパーティ情報が送られる)
+S 3023 <party_id>.l <account_id>.l <exp>.w <item>.w
+ パーティ設定変更要求
+R 3823 <party_id>.l <account_id>.l <exp>.w <item>.w <fail>.B
+ パーティ設定変更通知(成功の場合全マップ鯖へ通知)
+ fail=0x00 パーティ設定変更完了
+ fail=0x01 expの変更失敗
+ fail=0x10 itemの変更失敗
+S 3024 <party_id>.l <account_id>.l
+ パーティ脱退要求
+R 3824 <party_id>.l <account_id>.l <nick>.24B
+ パーティ脱退通知(全マップ鯖へ)
+S 3025 <party_id>.l <account_id>.l <map_name>.16B <online>.B <level>.w
+ パーティマップ更新/オンライン要求
+R 3825 <party_id>.l <account_id>.l <map_name>.16B <online>.B <level>.w
+ パーティマップ更新通知(全マップ鯖へ)
+S 3026 <party_id>.l
+ パーティ解散要求(送られることはないと思われる)
+R 3026 <party_id>.l <fail>.B
+ パーティ解散
+ fail=00 パーティは解散された(今のところ必ず00)
+ (map鯖内の不要データ削除のためだけに使われる)
+S 3027 <len>.w <party_id>.l <account_id>.l <message>.?B
+ パーティ内発言要求
+R 3827 <len>.w <party_id>.l <account_id>.l <message>.?B
+ パーティ内発言通知(全マップ鯖へ)
+S 3028 <party_id>.l <account_id>.l <nick>.24B
+ 別パーティに所属していないかチェック<party_id>は本来の所属
+
+
+S 3030 <len>.w <account_id>.l <guild_name>.24B <struct guild_member>.?B
+ ギルド作成要求
+R 3830 <account_id>.l <guild_id>.l
+ ギルド作成可否(guild_id=0で失敗)
+S 3031 <guild_id>.l
+ ギルド情報要求
+R 3831 <len>.w <struct guild>.?B
+ ギルド情報
+ len=8 ギルドは存在しない
+ len>8 ギルド情報
+S 3032 <len>.w <guild_id>.l <struct guild_member>.?B
+ ギルドメンバ追加要求
+R 3832 <guild_id>.l <account_id>.l <charactor_id>.l <fail>.B
+ ギルド追加メンバ通知
+ fail=0で成功,1で失敗
+S 3034 <guild_id>.l <account_id>.l <charactor_id>.l <flag>.B <mes>.40B
+ ギルド脱退/追放要求
+ flag=0 脱退 / 1 追放
+R 3834 <guild_id>.l <account_id>.l <charactor_id>.l <flag>.B <mes>.40B <nick>.24B
+ ギルド脱退/追放通知
+S 3035 <guild_id>.l <account_id>.l <charactor_id>.l <online>.B <lv>.w <class>.w
+ ギルドメンバ情報更新要求
+R 3835 <guild_id>.l <account_id>.l <charactor_id>.l <online>.B <lv>.w <class>.w
+ ギルドメンバ情報更新通知
+S 3036 <guild_id>.l
+ ギルド解散要求
+R 3836 <guild_id>.l <fail>.B
+ ギルド解散通知
+ flag=00 解散成功 / 01 失敗
+S 3037 <len>.w <guild_id>.l <account_id>.l <message>.?B
+ ギルド発言要求
+R 3837 <len>.w <guild_id>.l <account_id>.l <message>.?B
+ ギルド発言通知
+S 3038 <guild_id>.l <account_id>.l <charactor_id>.l
+ 別ギルドに所属していないかチェック
+S 3039 <len>.w <guild_id>.l <type>.w <data>.?B
+ 各種基本情報更新要求
+R 3839 <len>.w <guild_id>.l <type>.w <data>.?B
+ 各種基本情報更新通知
+S 303A <len>.w <guild_id>.l <account_id>.l <char_id>.l <type>.w <data>.?B
+ 各種ギルドメンバ情報更新要求
+R 383A <len>.w <guild_id>.l <account_id>.l <char_id>.l <type>.w <data>.?B
+ 各種ギルドメンバ情報更新通知
+S 303B <len>.w <guild_id>.l <position>.l <struct guild_position>.?B
+ ギルド役職変更要求
+R 383B <len>.w <guild_id>.l <position>.l <struct guild_position>.?B
+ ギルド役職変更通知
+S 303C <guild_id>.l <skill_num>.l <account_id>.l
+ ギルドスキル割り振り
+R 383C <guild_id>.l <skill_num>.l <account_id>.l
+ ギルドスキル割り振り(skill_num==0で失敗)
+S 303D <guild_id1>.l <guild_id2>.l <account_id1>.l <account_id2>.l <flag>.B
+ ギルド同盟/敵対要求
+ flag=0 同盟 / 1 敵対 / 8 同盟解除 / 9 敵対解除
+R 383D <guild_id1>.l <guild_id2>.l <account_id1>.l <account_id2>.l <flag>.B <name1>.24B <name2>.24B
+ ギルド同盟/敵対通知
+ flag=0 同盟 / 1 敵対
+ flag=0x10 同盟失敗 / 0x11 敵対失敗
+S 303E <guild_id>.l <message1>.60B <message2>.120B
+ ギルド告知設定要求
+R 383E <guild_id>.l <message1>.60B <message2>.120B
+ ギルド告知設定通知
+S 303F <len>.w <guild_id>.l <dummy>.l <emblem_data>.?B
+ ギルドエンブレム変更要求 dummyは0固定
+R 383F <len>.w <guild_id>.l <dummy>.l <emblem_data>.?B
+ ギルドエンブレム変更通知
+(以下、ギルド系追加予定)
+
+S 3080 <account_id>.l <char_id>.I <pet_type>.w <pet_lv>.w <pet_egg_id>.w
+ <pet_equip>.w <pet_intimate>.w <pet_hungry>.w <rename_flag>.B <incuvate>.B
+ <pet_name>.24B
+ ペット生成要求
+R 3880 <account_id>.l <fail>.B <pet_id>.l
+ ペット生成成功可否
+ fail=00 ペット生成成功
+ fail=01 失敗(pet_idはゴミ)
+S 3081 <account_id>.l <char_id>.I <pet_id>.l
+ ペットデータ要求
+R 3881 <len>.w <account_id>.l <fail>.B <struct s_pet>.?B
+ ペットデータ受信
+ fail=00 ペットデータ転送
+ fail=01 ペットのデータがないかもしくはaccount_idかchar_idが合わないので
+ 失敗(s_petはゴミ)
+S 3082 <len>.w <account_id>.l <struct s_pet>.?B
+ ペットデータ送信&保存要求
+R 3882 <account_id>.l <flag>.b
+ ペットデータ保存終了
+ flag=0 成功(現在の仕様ではメモリ不足以外には必ず0なので、返信を
+ 待たなくてもいい)
+ flag=1 失敗
+S 3083 <pet_id>.l
+ ペットデータ削除要求
+R 3883 <flag>.b
+ ペットデータ削除終了
+ flag=0 成功(現在の仕様では既にデータがいない場合以外は必ず0なので、
+ 返信を待たなくてもいい)
+ flag=1 失敗(pet_idに当たるデータがない場合の物ですが既にデータが
+ いないと言うことは削除する必要がないことにもなりますので
+ 意味はありません)
+