-
Notifications
You must be signed in to change notification settings - Fork 4
/
PROTOCOL
184 lines (141 loc) · 5.85 KB
/
PROTOCOL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
-----------------------------------------------------------
-----------------------------------------------------------
| client<->server protocol ideas, please make suggestions |
-----------------------------------------------------------
-----------------------------------------------------------
client commands:
----------------
DESCRIPTION
please give me a description of the current sector
<#>
please move me to this sector, if it is adjacent, the move is
immediate, otherwise, a list of sectors conprising the path
is returned
PLAYERINFO <player number>:
SHIPINFO <ship number>:
USER <user name>:<password>:
this is the user that wants to play, and his password. If this is
successful, the current sector's description will be returned.
NEW <user name>:<password>:<ship name>:
This is to make a new user.
QUIT
This is the logout command.
PORT <TRADE, LAND, NEGOTIATE, ROB, SMUGGLE, ATTACK>:<ore, organics, equipment, credits,holds,shields,fighters>:<Amt/holds of stuff>:<price you offer or steal>:
Trade at a port
If price you offer is a -1 that counts as a test price. And doesn't initiate
haggling.
0 for ore, 1 for organics, 2 for equipment, 3 for credits, 4 for holds, 5 for shields, 6 for fighters, 7 for (holds, shields and fighters)
For upgrading 0 is you're not buying and want to know how much each item is
1 is you are buying
2 is how many you can buy.
Also PORT QUIT:
Leave the port/stardock/node
STARDOCK <BALANCE,DEPOSIT,WITHDRAW>:
Do stardock commands:
For BALANCE add nothing.
for DEPOSIT "STARDOCK DEPOSIT:<amt depsoited>:"
for WITDRAW "STARDOCK WITHDRAW:<amt to withdraw>:"
NODE <LISTNODES,TRAVEL,(etc)>:
Do Node commands:
Also does stardock commands.
For LISTNODES add nothing.
For TRAVEL "NODE TRAVEL:<node traveling to>:
LAND <Planet number>:
Lands on the planet number given.
PLANET <QUIT,DISPLAY,TAKE,LEAVE>:<type to take/leave>:<amt to take or leave>:
Do planet commands:
QUIT leave the planet.
DISPLAY display planetary stats for the planet that you're on
TAKE take a product/shield/credits
LEAVE leave a product/shield/credits
for take/leave 0=ore, 1=organics, 2=equipment, 3=colonists in ore,
4 = colonists in org, 5 = colonists in equipment, 6 is fighters,
7 is credits, 8 is shields.
MYINFO
Gets information for you and your ship
PORTINFO
Gets information on the port in the current sector
UPDATE
Gets realtime messages from the server
FEDCOMM <message>:
Sends a message via Fed Comm to all players
ONLINE
Gets a list of players online
server responses:
-----------------
DESCRIPTION response:
:<current sector number>:<, adjacent sectors>:<beacon text>:<nebulae>:<port name>:<port type>:<players in sector delimited by ,>:<fighters in sector>:<mode of such fighters>:<number of planet>,<name>,<type>:<armid mines in sector>:<owner of armid mines>:<limpid mines in sector>:<, empty ships in sector>:<, aliens in sector>:<, feds in sector>:
<#> response
if the move was made, a description of the new sector is returned
if the new sector is not adjacent, this is returned
:<, delimited list of sectors comprising path>:
PLAYERINFO response:
:<Player name>:<Experience>:<Alignment>:<Current ship number>:
SHIPINFO response:
:<owned by(number)>:<ship name>:<ship type>:<fighters>:<shields>:
PORT response:
For Trade :<price offered>:<accepted or not accepted>:<exp gained from good trading>:
Note: accepted = 1, not accepted = 0
For Upgrade :<price of holds>:<price of shields>:<price of fighters>:
STARDOCK response:
For Balance:
:<your current balance>:
For Deposit:
An ok if ok, otherwise a BAD
For Withdraw:
Same as Deposit
PORTINFO response:
:<port number>:<port name>:<max ore>:<max organics>:<max equipment>:<current ore>:<current organics>:<current equipment>:<credits>:<type>:
MYINFO response:
:<player number>:<name>:<ship number>:<experience>:<alignment>:<turns>:<credits>:<ship number>:<ship name>:<ship type>:<fighters>:<shields>:<holds>:<colonists>:<equipment>:<organics>:<ore>:<owner>:<location>:<turns per warp>:
UPDATE response:
If the player is in the middle of moving And there are no messages
OK: Still in transit
If there are messages
OK:<player>:<type of message>:<message>
Type of messages
0 Means fed comm message
-1/1 Means warp out/in
-2/2 Means game exit/enter
-3/3 Means port leave/land
-4/4 Means stardock leave/land
-5/5 Means planet leave/land
If there are no messages and they are not moving
Same as from DESCRIPTION
FEDCOMM response:
OK:<player from>:0:<message>
ONLINE response:
:<list of players online delimeted by , >
BAD
This is sent if the client does something that doesn't succed
OK
The command was good, but no info needs to be exchanged
Messaging notes!
This is the general form of real time messages
OK:<whatever from>:<type of message>:<message>
for the types of messages
1 is a being(player,alien, whatever) entering a sector
-1 is a being exiting a sector.
0 is a Federation comm-link message.
2 is a player entering the game
-2 is a player leaving the game
-----------------------------------------------------------
-----------------------------------------------------------
| server<->server protocol ideas, please make suggestions |
-----------------------------------------------------------
-----------------------------------------------------------
GENESIS <planet name>
GENESIS response
:Planet Number:Owner:Sector:Planet Type:Planet Name:
LAND <planet number>
:GRANTED:Planet Name:Planet Owner:Colonist Fuel:Colonist Ore:Colonist Equipment:Figthers:Cidadel Level:
or if not players planet or player not allowed to land
LAND <planet number>
:REFUSED:Fighter Damage:Q-Cannon damage:Inderdiction Level:
PLANET <UPGRADE,MOVE_COLONIST,QCANNON,FIGHTER>
minor thread commands:
----------------------
These will all be encapsulated in a data structure, so no need for a protocol
major thread responses:
-----------------------
These will always be the buffer that is to be passed back to the client.