rjwut / ArtClientLib

NOTE: This library is being superseded by IAN: https://github.com/rjwut/ian
14 stars 3 forks source link

Add SideMissionPacket #62

Closed JordanLongstaff closed 8 years ago

JordanLongstaff commented 8 years ago

I have an app that allows me to organize all side mission alerts into a convenient table and it relies on CommsIncomingPackets for the information. However, in games where you have two allies with the same ID, if one of them is a destination point for a side mission, then the player has no way of knowing which ship the mission is referring to. For example:

Help us help you. First, rendezvous with U56 and download some data we need. Then, rendezvous with us, and we'll enhance your shield generators.

This message has three key pieces of information: a source (in this case, U56), a destination (the sender) and a reward (enhanced shield generators). U56 may be a Transport ship, and if it's the only U56 out there, then the player knows that's the source. However, there may be a Transport U56 and a Luxury Liner U56 at the same time; if so, the player has no way to discern between them.

rjwut commented 8 years ago

I'm a little confused about this request. Are you saying that there's an existing packet being set from the server that ArtClientLib is not parsing which contains the needed information, or are you suggesting that ArtClientLib ought to parse the English messages contained in CommsIncomingPacket in order to extract the information you are requesting?

JordanLongstaff commented 8 years ago

My app is capable of extracting and parsing information from the CommsIncomingPacket on its own. I've got no problem with that. What I'm saying is, the game creates a new side mission every four minutes or so and that translates to a new message to Comms like the one I've written, but there has to also be some protocol that the game uses to tell itself how to handle the side mission when you go to this place and then go to that other place. Whether there's actually a packet that's transmitted to go along with that aside from the message to Comms, I don't actually know. I noticed in the protocol docs that there are a few unknown packet types. Maybe it's one of those, maybe it's not. But even when the player doesn't have all the information, the game still has to have that specific information on where to go. I'm hoping there's a way to extract that from the side mission itself as opposed to what the Comms message tells you.

rjwut commented 8 years ago

I don't believe that mission data is ever communicated to the client except in the English description in CommsIncomingPacket. The stock client doesn't need it; it's the server that decides when the mission has been accomplished, and all events that occur as a result of mission progress are covered by CommsIncomingPacket and player ship updates. So I would be very surprised if there were a packet that explicitly gave mission details to the client outside of the message received by comms.

I'm going to close this issue, since I haven't seen any evidence that the packet type in question actually exists. That said, if you do find evidence that the server does send this data, by all means, re-open the issue and add it as a comment. FYI, I do intend at some point to put something into ArtClientLib that will actually parse the messages that are received and convert them into something that can be read programmatically, including mission messages.