Regalis
33b3e5374b
Fixed a null exception if the server log UI hasn't been opened and the max number of lines is reached
2017-05-29 17:15:26 +03:00
Regalis
dc80ee810c
Separate servelog message type for inventory usage
2017-05-28 22:36:55 +03:00
Regalis
09785184b3
Speech bubbles aren't shown above dead characters
2017-05-26 19:43:55 +03:00
Regalis
c40c3a1a98
Clients don't modify the colors of the texts in the netlobby sub list, only their alpha
2017-05-25 18:27:47 +03:00
Regalis
d6c700b535
Spawning extra cargo
2017-05-24 18:43:21 +03:00
Regalis
53bfbb3ea7
Fixed stack overflow when attempting to cancel a file transfer client-side
2017-05-20 15:35:55 +03:00
Regalis
e3b595b9e0
Cleanup (removing unused variables & other redundancies, rethrowing exceptions instead of wrapping them in a new exception instance)
2017-05-20 15:35:13 +03:00
Regalis
9c1a76707f
conflict fix
2017-05-17 18:56:45 +03:00
Regalis
095054182e
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/GUI/GUITextBlock.cs
Subsurface/Source/GameMain.cs
Subsurface/Source/Items/Components/Machines/Radar.cs
Subsurface/Source/Networking/GameClient.cs
2017-05-17 18:51:22 +03:00
Regalis
ad90cf804d
- respawn, fabricator & deconstructor logging
...
- fixed listbox child hiding 4 real now
- dockingport logging fix (name of the sub instead of submarine.ToString)
2017-05-09 21:39:39 +03:00
Regalis
63b5ad1821
Friendlier serverlog message type labels
2017-05-09 21:07:29 +03:00
Regalis
d0065cdd97
Having a hidden child in a listbox doesn't prevent successive children from being rendered, server log can be filtered by message type
2017-05-09 21:02:42 +03:00
Regalis
c2d918073e
Serverlog message types (which atm only determine the color of the message)
2017-05-09 19:56:12 +03:00
Regalis
bee570e2e3
- the server log view is not cleared when saving the log (but old messages are removed when going over the max number of lines)
...
- log can be viewed in the server lobby, not just in-game
- logging pump, reactor & battery state usage
- GUIListBox.MouseRect doesn't return an empty rect anymore -> listboxes without selectable content can be scrolled with the mouse wheel
2017-05-08 21:30:54 +03:00
Regalis
7dad837733
Server limits chatmessage length and the number of chatmessages written in one packet
2017-05-08 19:06:05 +03:00
Regalis
152a92e600
Server removes events if no clients are playing. Otherwise the server would keep creating new events indefinitely and midround-joining clients would instantly get kicked out because they're missing very old events.
...
+ fixed server not sending midroung sync messages if the list of new (non-unique) events is empty
2017-05-05 00:14:30 +03:00
Regalis
ba49f59204
Some cleanup (mostly removing redundancies from the GameMain class)
2017-05-03 00:27:13 +03:00
Regalis
ab4e8cee83
The server ignores lastRecvIDs in SYNC_IDS messages if the IDs aren't valid (earlier than the client's previous ID, or more recent than the newest ID).
...
Should be safer than clamping to the valid range - an incorrectly read packet or a message sent just before switching from midround syncing to normal won't cause the IDs to jump to the newest ID and prevent clients from receiving further msgs/events.
2017-05-02 22:46:37 +03:00
Regalis
d1c633385b
Unique event IDs start from 1 (otherwise the server/clients will think event #0 has been already received)
2017-05-02 22:21:58 +03:00
Regalis
d0b52d92fe
Event ID wraparound fixes
2017-05-02 22:18:36 +03:00
Regalis
06db2fed86
Fixed clients incrementing their lastReceivedID every time they receive an empty entity event (even if the event has already been received)
2017-05-02 22:15:18 +03:00
Regalis
6c770afd6a
Clients aren't allowed to use the same name as the server, changed radio msg color back to yellow
2017-05-02 18:36:12 +03:00
Regalis
511f24cc47
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/GameMain.cs
Subsurface/Source/Networking/ChatMessage.cs
Subsurface/Source/Networking/NetworkMember.cs
Subsurface/Source/Screens/NetLobbyScreen.cs
2017-05-01 19:25:07 +03:00
Regalis
f92c2df9f7
TextBoxes align text to the right and hide any overflowing text at the left if the width of the box is exceeded
2017-04-30 18:14:25 +03:00
Regalis
90f354f6d7
Clients notify the server when they "give in" (i.e. kill their character when unconscious)
2017-04-26 23:39:41 +03:00
Regalis
3e5f8a43a0
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/GUI/GUIButton.cs
Subsurface/Source/GameSession/CrewManager.cs
Subsurface/Source/GameSession/GameSession.cs
Subsurface/Source/Items/Item.cs
Subsurface/Source/Networking/GameServer.cs
Subsurface/Source/Screens/MainMenuScreen.cs
Subsurface/Source/Screens/ServerListScreen.cs
2017-04-24 19:10:51 +03:00
Regalis
df7daa5925
Fixed incorrectly positioned character info boxes in the info menu
2017-04-24 19:08:25 +03:00
Regalis
31f7eca717
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/GUI/GUIButton.cs
Subsurface/Source/GameSession/CrewManager.cs
Subsurface/Source/GameSession/GameSession.cs
Subsurface/Source/Items/Item.cs
Subsurface/Source/Networking/GameServer.cs
Subsurface/Source/Screens/MainMenuScreen.cs
Subsurface/Source/Screens/ServerListScreen.cs
2017-04-23 21:40:11 +03:00
Regalis
2cac176c87
More UI tweaking
2017-04-20 21:24:52 +03:00
Regalis
f407a38c9e
Fixed clients being able to vote for kicking multiple times by disconnecting and reconnecting
2017-04-18 19:46:57 +03:00
Regalis
9a5777183f
Separate sprites for horizontal and vertical scrollbars, style tweaking
2017-04-18 19:24:13 +03:00
Regalis
e4a7d31f78
If a recipient can't be found for a private message sent by a client, the server sends the "player not found" error message to the client
2017-04-17 19:48:29 +03:00
Regalis
f4c01f68ed
Fixed incorrectly length in character position updates (1 bit off), clients read pad bits in position updates
2017-04-12 23:44:58 +03:00
Regalis
dc6ed7daf1
Separate component style for item UIs + option to select the style in the item config files, removed a bunch of hard-coded UI element color changes
2017-04-10 18:11:33 +03:00
Regalis
887735ff32
- DockingPort syncing fix: server waits until the port is locked before sending hull/gap IDs, clients can't lock the port until the server tells them to
...
- fixed crew commands being disabled in single player instead of multiplayer
- server-side ID error logging fix
2017-04-09 20:51:57 +03:00
Regalis
0301457a8f
A fix to occasional "unknown object header" errors.
...
If an entity had been removed and it's ID taken by some other entity, clients who hadn't received a message about the removal and the new entity would end up reading ENTITY_POSITION messages for the new entity incorrectly. Reading an incorrect number of bits from the message would also prevent the clients from reading the rest of the data in the packet properly.
Now the server doesn't send position updates to clients during midround syncing (because there's no guarantee they know about the entity yet). Clients also force the read position to the correct place after reading a position update in case something goes wrong when reading the msg.
2017-04-09 19:04:49 +03:00
Regalis
e94a50a29a
The server keeps track of which ID a client is going to switch to when midround syncing is done, and switches the ID immediately when the client is in sync (instead of waiting for the client to report the new ID).
...
Fixes clients occasionally getting kicked out the moment they're in sync, because their latest received ID is still set to the ID of the last unique event and the server thinks they're requesting some old event that doesn't necessarily exist anymore.
+ added a debug command that creates a ton of entity events
2017-04-08 20:10:15 +03:00
Regalis
3844dd9dac
GUIStyle logic changes: instead of having a predetermined GUIComponentStyle for each type of GUIComponent, any GUIComponent can use any style. The GUIComponent constructors take the name of the style as a parameter, and if no style is specified, the default style for the GUIComponent in question will be used.
2017-04-08 16:46:53 +03:00
Regalis
af80a44970
Server doesn't apply distance effects to chat messages sent by someone without a character (e.g. a client in the lobby, the server itself)
2017-04-07 18:12:14 +03:00
juanjp600
2873a79fe0
Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode
2017-04-06 16:50:20 -03:00
juanjp600
e1d5d63dbd
Sync monster spawn settings
2017-04-06 16:50:11 -03:00
Regalis
9330bd08de
Clients don't switch from init events to normal until they receive the first normal event update (instead of switching when they receive the last init event they know about). Otherwise the client may switch to normal events too early, if the server has created new unique events the client doesn't know about yet.
2017-04-06 21:52:24 +03:00
Regalis
dc73880cd9
Fixed clients being unable to receive files if the download folder doesn't exist ツ
2017-04-06 20:13:44 +03:00
juanjp600
4ad373294c
Update client.UnreceivedEntityEventCount on every event write
...
I noticed that if the main event IDs went over 10000 and there were more than 450 unique events, the server would sometimes skip the next event the client needed. Sometimes the client would also not realize that the last event it received was the final init event, so it would reject all further events because of a huge ID discrepancy. The init events will likely need to be reworked, but updating UnreceivedEntityEventCount seems to help somewhat.
2017-04-06 12:37:38 -03:00
Regalis
b1ef7ffd05
Replaced excessively paranoid filename validation regex in FileReceiver with Path.GetInvalidFileNameChars, server is notified if a client cancels a file transfer for whatever reason
2017-04-05 23:20:20 +03:00
Regalis
5bdd801da4
Having multiple sub files with the same name doesn't prevent clients from selecting or requesting the correct one
2017-03-28 21:01:44 +03:00
Regalis
1a3c18c727
EntitySpawner sends spawn/removal messages to clients using EntityEvents.
...
EntityEvents and EntitySpawner used to work independently of each other, with separate IDs, and there was no guarantee that spawning and events would happen in the correct order. For example, a client could fail to read events during midround syncing because the entity has been removed, or read an event for an incorrect entity because the entity has been removed and the ID taken by some other entity.
2017-03-27 21:05:32 +03:00
Regalis
3306a1ab96
EntitySpawner only writes a limited number of entities per packet
2017-03-26 17:19:29 +03:00
Regalis
827644b72c
Revert ccc0956, there was nothing wrong with the ID comparison
2017-03-24 22:10:48 +02:00
Regalis
dfd24045f8
EntityEventManagers send an empty event if the entity doesn't exist anymore when writing the message (may happen, for example, when a client is still waiting for some message about the item when it's destroyed in a deconstructor).
...
Not sending the events at all would be a better solution, but then we'd need to shift the IDs of all the consecutive events and make sure it doesn't mess anything up with any of the clients. Not necessarily worth the effort, considering how rare these "empty events" are.
2017-03-24 19:12:09 +02:00