Difference between revisions of "UDP Billing Protocol"

From ASSS Wiki
Jump to: navigation, search
m (replaced link with a better source)
(added further definition to the UDP biller protocol S->B)
Line 9: Line 9:
 
Zone to Billing
 
Zone to Billing
 
---------------
 
---------------
TODO
+
Constants
 +
 
 +
BANNER_SIZE 96
 +
 
 +
Packets
 +
 
 +
Ping 0x01
 +
offset size comment
 +
0 1 0x01
 +
 
 +
 
 +
ServerConnect 0x02
 +
offset size comment
 +
0 1 0x02
 +
1 4 ServerID
 +
5 4 GroupID
 +
9 4 ScoreID
 +
13 126 ServerName
 +
139 4 Port
 +
141 32 Password
 +
 
 +
 
 +
ServerDisconnect 0x03
 +
offset size comment
 +
0 1 0x03
 +
 
 +
 
 +
UserLogin 0x04
 +
offset size comment
 +
0 1 0x04
 +
1 1 Make New User Flag
 +
2 4 IP Address (32byte representation)
 +
6 32 Username
 +
38 32 Password
 +
70 4 ConnectionID
 +
74 4 MachineID
 +
78 4 Timezone
 +
82 1 Unused0
 +
83 1 Sysop
 +
84 2 Client Version
 +
86 256 ClientExtraData (Continuum ID)
 +
 
 +
 
 +
UserLogoff 0x05
 +
offset size comment
 +
0 1 0x05
 +
1 4 ConnectionID
 +
5 2 Disconnect Reason
 +
7 2 Latency
 +
9 2 Ping
 +
11 2 Packetloss S2C
 +
13 2 Packetloss C2S
 +
15 2 Kills (Player Score)
 +
17 2 Deaths (Player Score)
 +
19 2 Flags (Player Score)
 +
21 4 Score (Player Score)
 +
25 4 Flag Score (Player Score)
 +
 
 +
 
 +
UserPrivateChat 0x07
 +
offset size comment
 +
0 1 0x07
 +
1 4 ConnectionID
 +
5 4 GroupID
 +
9 1 SubType
 +
10 1 Sound
 +
11 250* Text (\0 terminated?)
 +
* 250 max-length is based on asss 1.4.4 biller structures
 +
 
 +
 
 +
UserDemographics 0x0D
 +
offset size comment
 +
0 1 0x0D
 +
1 4 ConnectionID
 +
5 765 Demographic Structure
 +
 
 +
 
 +
UserBanner 0x10
 +
offset size comment
 +
0 1 0x10
 +
1 4 ConnectionID
 +
5 96 Banner (BANNER_SIZE constant)
 +
 
 +
 
 +
UserScore 0x11
 +
offset size comment
 +
0 1 0x11
 +
1 4 ConnectionID
 +
5 2 Kills (Player Score)
 +
7 2 Deaths (Player Score)
 +
9 2 Flags (Player Score)
 +
11 4 Score (Player Score)
 +
15 4 Flag Score (Player Score)
 +
 
 +
 
 +
UserCommand 0x13
 +
offset size comment
 +
0 1 0x13
 +
1 4 ConnectionID
 +
5 250* Data
 +
* 250 max-length is based on asss 1.4.4 biller structures
 +
 
 +
 
 +
UserChannelChat 0x14
 +
offset size comment
 +
0 1 0x14
 +
1 4 ConnectionID
 +
5 32 Channel Name
 +
37 250* Text (\0 terminated?)
 +
* 250 max-length is based on asss 1.4.4 biller structures
 +
 
 +
 
 +
ServerCapabilities 0x15
 +
offset size comment
 +
0 1 0x15
 +
1 4 bitfield
 +
:1 MultiCastChat
 +
:1 SupportDemographics*
 +
:30 Unused
 +
* patch by snrrrub for isometry biller support
  
  
Line 25: Line 144:
 
4 PRMEANING_NONEW // Implemented
 
4 PRMEANING_NONEW // Implemented
 
5 PRMEANING_BADNAME // Implemented
 
5 PRMEANING_BADNAME // Implemented
6 PRMEANING_REGFORM // Implemented
+
6 PRMEANING_DEMO // Unused
 
7 PRMEANING_BUSY // Implemented
 
7 PRMEANING_BUSY // Implemented
8 PRMEANING_DEMO // Unused
+
8 PRMEANING_REGFORM // Implemented
  
 
Kick_Reasons
 
Kick_Reasons

Revision as of 11:57, 7 January 2010

The UDP billing protocol is the original protocol written by VIE which was implemented in Subbill. It features more capabilities then the newer TCP Billing Protocol such as the ability to remotely restart or shutdown a game server, and save scores to a central location.

The protocol has never formally been documented and has been reversed engineered by individuals. However, it does utilize the same core protocol as the UDP Game Protocol.

An attempt at documenting the protocol has been started below by doc flabby. It was compiled from ASSS and SSB2's source code.


Zone to Billing
---------------
Constants

BANNER_SIZE		96

Packets

Ping 0x01
offset	size	comment
0	1	0x01


ServerConnect 0x02
offset	size	comment
0	1	0x02
1	4	ServerID
5	4	GroupID
9	4	ScoreID
13	126	ServerName
139	4	Port
141	32	Password


ServerDisconnect 0x03
offset	size	comment
0	1	0x03


UserLogin 0x04
offset	size	comment
0	1	0x04
1	1	Make New User Flag
2	4	IP Address (32byte representation)
6	32	Username
38	32	Password
70	4	ConnectionID
74	4	MachineID
78	4	Timezone
82	1	Unused0
83	1	Sysop
84	2	Client Version
86	256	ClientExtraData (Continuum ID)


UserLogoff 0x05
offset	size	comment
0	1	0x05
1	4	ConnectionID
5	2	Disconnect Reason
7	2	Latency
9	2	Ping
11	2	Packetloss S2C
13	2	Packetloss C2S
15	2	Kills (Player Score)
17	2	Deaths (Player Score)
19	2	Flags (Player Score)
21	4	Score (Player Score)
25	4	Flag Score (Player Score)


UserPrivateChat 0x07
offset	size	comment
0	1	0x07
1	4	ConnectionID
5	4	GroupID
9	1	SubType
10	1	Sound
11	250*	Text (\0 terminated?)
* 250 max-length is based on asss 1.4.4 biller structures


UserDemographics 0x0D
offset	size	comment
0	1	0x0D
1	4	ConnectionID
5	765	Demographic Structure


UserBanner 0x10
offset	size	comment
0	1	0x10
1	4	ConnectionID
5	96	Banner (BANNER_SIZE constant)	


UserScore 0x11
offset	size	comment
0	1	0x11
1	4	ConnectionID
5	2	Kills (Player Score)
7	2	Deaths (Player Score)
9	2	Flags (Player Score)
11	4	Score (Player Score)
15	4	Flag Score (Player Score)


UserCommand 0x13
offset	size	comment
0	1	0x13
1	4	ConnectionID
5	250*	Data
* 250 max-length is based on asss 1.4.4 biller structures


UserChannelChat 0x14
offset	size	comment
0	1	0x14
1	4	ConnectionID
5	32	Channel Name
37	250*	Text (\0 terminated?)
* 250 max-length is based on asss 1.4.4 biller structures


ServerCapabilities 0x15
offset	size	comment
0	1	0x15
1	4	bitfield	
	:1	MultiCastChat
	:1	SupportDemographics*
	:30	Unused
* patch by snrrrub for isometry biller support



Billing to Zone
---------------
Constants

Login_Params

0	PRMEANING_ENTER		// Implemented
1	PRMEANING_ASK		// Implemented
2	PRMEANING_BADPW		// Implemented
3	PRMEANING_IPBLOCK	// Implemented
4	PRMEANING_NONEW		// Implemented
5	PRMEANING_BADNAME	// Implemented
6	PRMEANING_DEMO		// Unused
7	PRMEANING_BUSY		// Implemented
8	PRMEANING_REGFORM	// Implemented

Kick_Reasons
0	KICK_SYSTEM		// Other reason
1	KICK_FLOOD			// Player command-flooded
2	KICK_BAN			// Player was banned (Or BanID..)


Packets

Player Response 0x01
offset	size	comment
0	1	0x01
1	1	Login_Params (see top)
2	4	PlayerId
6	24	PlayerName
30	24	Squad Name
54	96	Banner
150	4	Total Seconds
154	2	Year
156	2	Month
158	2	Day
160	2	Hour
162	2	Minute
164	2	Second
166	4	Extra 1
170	4	ScoreID
174	4	Extra 2
178	2	Wins
180	2	Losses
182	2	GoalCount
184	4	Points
188	4	Event Points


Player Private Chat (aka pm) 0x03
offset	size	comment
0	1	0x03
1	4	Source Server ID
5	1	0x02
6	1	Sound
7	varies	Message Terminated with \0


Zone Recycle 0x04
offset	size	comment
0	1	0x04
1	1	0x00
2	4	0x00000001
6	4	0x00000002

Kick Player 0x08
offset	size	comment
0	1	0x08
1	4	Connection Id
5	4	Kick_Reasons (see top)

Command Message 0x09  (?blogin etc)
offset	size	comment
0	1	0x09
1	4	ConnectionId
5	varies  Message Terminated with \0

Chat Message 0x0A
offset	size	comment
0	1	0x0A
1	4	ConnectionId
5	1	Channel
6	varies	Message Terminated with \0

ScoreReset 0x31
offset	size	comment
0	1	0x31
1	4	ScoreId
5	4	-ScoreId