📄 anongame_protocol.h
字号:
{ t_bnet_header h; bn_byte option; bn_int count; bn_int icon; bn_byte rescount; /* REST OF PROFILE STATS - THIS WILL BE SET IN HANDLE_BNET.C after * SERVER LOOKS UP THE USER ACCOUNT */} PACKED_ATTR() t_server_findanongame_profile2;/***********************************************************************************//* option 07 - tournament request */#define CLIENT_FINDANONGAME_TOURNAMENT_REQUEST 0x44fftypedef struct{ t_bnet_header h; bn_byte option; /* 07 */ bn_int count; /* 01 00 00 00 */} PACKED_ATTR() t_client_anongame_tournament_request;#define SERVER_FINDANONGAME_TOURNAMENT_REPLY 0x44fftypedef struct{ t_bnet_header h; bn_byte option; /* 07 */ bn_int count; /* 00 00 00 01 reply with same number */ bn_byte type; /* type - 01 = notice - time = prelim round begins * 02 = signups - time = signups end * 03 = signups over - time = prelim round ends * 04 = prelim over - time = finals round 1 begins */ bn_byte unknown; /* 00 */ bn_short unknown4; /* random ? might be part of time/date ? */ bn_int timestamp; bn_byte unknown5; /* 01 effects time/date */ bn_short countdown; /* countdown until next timestamp (seconds) */ bn_short unknown2; /* 00 00 */ bn_byte wins; /* during prelim */ bn_byte losses; /* during prelim */ bn_byte ties; /* during prelim */ bn_byte unknown3; /* 00 = notice. 08 = signups thru prelim over (02-04) */ bn_byte selection; /* matches anongame_TY_section of DESC */ bn_byte descnum; /* matches desc_count of DESC */ bn_byte nulltag; /* 00 */} PACKED_ATTR() t_server_anongame_tournament_reply;/***********************************************************************************//* option 08 - clan profile request */typedef struct{ t_bnet_header h; bn_byte option; bn_int count; bn_int clantag; bn_int clienttag;} PACKED_ATTR() t_client_findanongame_profile_clan;#define SERVER_FINDANONGAME_PROFILE_CLAN 0x44fftypedef struct{ t_bnet_header h; bn_byte option; bn_int count; bn_byte rescount; /* REST OF PROFILE STATS - THIS WILL BE SET IN HANDLE_BNET.C after * SERVER LOOKS UP THE USER ACCOUNT */} PACKED_ATTR() t_server_findanongame_profile_clan;/***********************************************************************************//* option 9 - icon request */#define SERVER_FINDANONGAME_ICONREPLY 0x44fftypedef struct{ t_bnet_header h; bn_byte option; /* as received from client */ bn_int count; /* as received from client */ bn_int curricon; /* current icon code */ bn_byte table_width; /* the icon table width */ bn_byte table_size; /* the icon table total size */ /* table data */} PACKED_ATTR() t_server_findanongame_iconreply;/***********************************************************************************/#define SERVER_ANONGAME_SOLO_STR 0x534F4C4F /* "SOLO" */#define SERVER_ANONGAME_TEAM_STR 0x5445414D /* "TEAM" */#define SERVER_ANONGAME_SFFA_STR 0x46464120 /* "FFA " */#define SERVER_ANONGAME_AT2v2_STR 0x32565332 /* "2VS2" */#define SERVER_ANONGAME_AT3v3_STR 0x33565333 /* "3VS3" */#define SERVER_ANONGAME_AT4v4_STR 0x34565334 /* "4VS4" */#define SERVER_ANONGAME_TY_STR 0X54592020 /* "TY " FIXME-TY: WHAT TO PUT HERE */#define CLIENT_FINDANONGAME_INFOTAG_URL 0x55524c /* URL\0 */#define CLIENT_FINDANONGAME_INFOTAG_MAP 0x4d4150 /* MAP\0 */#define CLIENT_FINDANONGAME_INFOTAG_TYPE 0x54595045 /* TYPE */#define CLIENT_FINDANONGAME_INFOTAG_DESC 0x44455343 /* DESC */#define CLIENT_FINDANONGAME_INFOTAG_LADR 0x4c414452 /* LADR */#define CLIENT_FINDANONGAME_INFOTAG_SOLO 0x534f4c4f /* SOLO */#define CLIENT_FINDANONGAME_INFOTAG_TEAM 0x5445414d /* TEAM */#define CLIENT_FINDANONGAME_INFOTAG_FFA 0x46464120 /* FFA\20 */#define ANONGAME_TYPE_1V1 0#define ANONGAME_TYPE_2V2 1#define ANONGAME_TYPE_3V3 2#define ANONGAME_TYPE_4V4 3#define ANONGAME_TYPE_SMALL_FFA 4#define ANONGAME_TYPE_AT_2V2 5#define ANONGAME_TYPE_TEAM_FFA 6#define ANONGAME_TYPE_AT_3V3 7#define ANONGAME_TYPE_AT_4V4 8/* Added by Omega */#define ANONGAME_TYPE_TY 9#define ANONGAME_TYPE_5V5 10#define ANONGAME_TYPE_6V6 11#define ANONGAME_TYPE_2V2V2 12#define ANONGAME_TYPE_3V3V3 13#define ANONGAME_TYPE_4V4V4 14#define ANONGAME_TYPE_2V2V2V2 15#define ANONGAME_TYPE_3V3V3V3 16#define ANONGAME_TYPE_AT_2V2V2 17#define ANONGAME_TYPES 18#define SERVER_FINDANONGAME_PROFILE_UNKNOWN2 0x6E736865 /* Sheep *//***********************************************************************************//***********************************************************************************//* This is a blank packet - includes just type and size */#define CLIENT_ARRANGEDTEAM_FRIENDSCREEN 0x60fftypedef struct{ t_bnet_header h;} PACKED_ATTR() t_client_arrangedteam_friendscreen;/***********************************************************************************/#define SERVER_ARRANGEDTEAM_FRIENDSCREEN 0x60fftypedef struct{ t_bnet_header h; bn_byte f_count; /* usernames get appended here */} PACKED_ATTR() t_server_arrangedteam_friendscreen;#define SERVER_ARRANGED_TEAM_ADDNAME 0x01 /***********************************************************************************//*0000: FF 61 1C 00 01 00 00 00 C9 7B A0 02 01 00 00 00 .........{......0010: 01 74 72 65 6E 64 65 63 69 64 65 00 .trendecide.*/#define CLIENT_ARRANGEDTEAM_INVITE_FRIEND 0x61fftypedef struct{ t_bnet_header h; bn_int count; bn_int id; bn_int unknown1; /* 01 00 00 00 */ bn_byte numfriends; /* next is a byte, that is the number of friends to invite */ /* usernames get appended here */} PACKED_ATTR() t_client_arrangedteam_invite_friend;/***********************************************************************************/#define SERVER_ARRANGEDTEAM_INVITE_FRIEND_ACK 0x61fftypedef struct{ t_bnet_header h; bn_int count; bn_int id; /* client id */ bn_int timestamp; bn_byte teamsize; /* numfriends + 1 */ bn_int info[5];} PACKED_ATTR() t_server_arrangedteam_invite_friend_ack;/***********************************************************************************/#define SERVER_ARRANGEDTEAM_SEND_INVITE 0x63fftypedef struct{ t_bnet_header h; bn_int count; bn_int id; /* client id of inviter */ bn_int inviterip; /* IP address of the person who invited them into the game */ bn_short port; /* Port of the person who invited them into the game */ bn_byte numfriends; /* Number of friends that got invited to the game */ /* username of the inviter */ /* usernames of the others who got invited */} PACKED_ATTR() t_server_arrangedteam_send_invite;/***********************************************************************************/#define CLIENT_ARRANGEDTEAM_ACCEPT_DECLINE_INVITE 0x63fftypedef struct{ t_bnet_header h; bn_int count; bn_int id; bn_int option; /* accept or decline */ /* username of the inviter */} PACKED_ATTR() t_client_arrangedteam_accept_decline_invite;#define CLIENT_ARRANGEDTEAM_ACCEPT 0x00000003#define CLIENT_ARRANGEDTEAM_DECLINE 0x00000002/***********************************************************************************/#define SERVER_ARRANGEDTEAM_MEMBER_DECLINE 0x62fftypedef struct{ t_bnet_header h; bn_int count; bn_int action; /* number assigned to player? playernum? */ /* username of the person who declined invitation */} PACKED_ATTR() t_server_arrangedteam_member_decline;#define SERVER_ARRANGEDTEAM_ACCEPT 0x00000003#define SERVER_ARRANGEDTEAM_DECLINE 0x00000002/***********************************************************************************//* not used ?? [Omega] *//*0000: FF 64 1C 00 02 00 00 00 00 00 00 00 01 00 00 00 .d..............0010: 00 00 00 00 03 00 00 00 00 00 00 00 ............*//* THIS NEEDS FINISHED *//*#define SERVER_ARRANGEDTEAM_TEAM_STATS 0x64fftypedef struct{ t_bnet_header h;}*//***********************************************************************************//***********************************************************************************//*# 144 packet from client: type=0x65ff(unknown) length=4 class=bnet0000: FF 65 04 00 .e..*/#define CLIENT_FRIENDSLISTREQ 0x65fftypedef struct{ t_bnet_header h;} PACKED_ATTR() t_client_friendslistreq; /*# 158 packet from server: type=0x65ff(unknown) length=16 class=bnet0000: FF 65 10 00 01 66 6F 6F 00 00 00 00 00 00 00 00 .e.. .foo. .......*/#define SERVER_FRIENDSLISTREPLY 0x65fftypedef struct{ t_bnet_header h; bn_byte friendcount; /* 1 byte status, 0-terminated name, 6 bytes unknown, ... */} PACKED_ATTR() t_server_friendslistreply;typedef struct{ bn_byte status; bn_byte location; bn_int clienttag;} PACKED_ATTR() t_server_friendslistreply_status; /*# 124 packet from client: type=0x66ff(unknown) length=5 class=bnet0000: FF 66 05 00 00 .f...*//* FF 66-05 00 00 40 - AT */#define CLIENT_FRIENDINFOREQ 0x66fftypedef struct{ t_bnet_header h; bn_byte friendnum;} PACKED_ATTR() t_client_friendinforeq;/*# 126 packet from server: type=0x66ff(unknown) length=12 class=bnet0000: FF 66 0C 00 00 00 00 00 00 00 00 00 .f..........Arranged Team sends this to each inviter FF 66-1A 00 00 01 03 33 52 41 ..g....f.....3RA0x0040 57 41 72 72 61 6E 67 65-64 20 54 65 61 6D 73 00 WArranged Teams.and this to the inviterFF 66-18 00 00 01 02 33 52 41 ..i....f.....3RA0x0040 57 57 61 72 63 72 61 66-74 20 49 49 49 00 WWarcraft III.*/#define SERVER_FRIENDINFOREPLY 0x66fftypedef struct{ t_bnet_header h; bn_byte friendnum; bn_byte type; bn_byte status; bn_int clienttag; /* game name */} PACKED_ATTR() t_server_friendinforeply;#define FRIEND_TYPE_NON_MUTUAL 0x00#define FRIEND_TYPE_MUTUAL 0x01#define FRIEND_TYPE_DND 0x02#define FRIEND_TYPE_AWAY 0x04/******************************************************//*# 126 packet from server: type=0x67ff(unknown) length=15 class=bnet0000: FF 67 0F 00 66 6F 6F 00 00 00 00 00 00 00 00 .g..foo........*/#define SERVER_FRIENDADD_ACK 0x67fftypedef struct{ t_bnet_header h; /* friend name, status */} PACKED_ATTR() t_server_friendadd_ack;/******************************************************//*# 114 packet from server: type=0x68ff(unknown) length=5 class=bnet0000: FF 68 05 00 01 .h...*/#define SERVER_FRIENDDEL_ACK 0x68fftypedef struct{ t_bnet_header h; bn_byte friendnum;} PACKED_ATTR() t_server_frienddel_ack;/******************************************************/#define SERVER_FRIENDMOVE_ACK 0x69fftypedef struct{ t_bnet_header h; bn_byte pos1; bn_byte pos2;} PACKED_ATTR() t_server_friendmove_ack;#define FRIENDSTATUS_OFFLINE 0x00#define FRIENDSTATUS_ONLINE 0x01#define FRIENDSTATUS_CHAT 0x02#define FRIENDSTATUS_PUBLIC_GAME 0x03#define FRIENDSTATUS_PRIVATE_GAME 0x05#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -