Regalis
bd7766d3e7
Server clears EntityEventManager before starting a new round, not just when ending it (fixes events breaking during the next round if an item created an event when unloading the previous sub) + some additional error checks
2017-01-14 20:26:41 +02:00
Regalis
6252db7928
- fixed server validating its own name instead of the name of a client who's logging in
...
- clients automatically reconnect to the server when the connection is lost and return back to server list if they fail to reconnect
- showing the error msg as a GUIMessageBox and returning to main menu if starting a server fails
2017-01-14 16:57:47 +02:00
Regalis
fdbdf9638f
Fixed railgun aiming, fixed EntityEvent not being sent if a character is killed by something else than health dropping to zero
2017-01-14 14:45:19 +02:00
Regalis
9b03b2bcc1
Server ignores UPDATE_INGAME messages if the game isn't running, server doesn't set any of the clients' lastRecvIDs above the ID of the latest chatMsg/event/etc (clients can't have received something the server hasn't sent yet)
2017-01-13 18:07:00 +02:00
Regalis
fecb7bee9a
Syncing attack input
2017-01-13 17:53:40 +02:00
Regalis
08053bec85
Clients can join the game mid-round
2017-01-12 20:42:15 +02:00
Regalis
81f3d24070
DockingPort syncing
2017-01-12 18:03:52 +02:00
Regalis
ed675dc75e
Lobby update ID isn't included in ingame update messages, resetting lastRecvGeneralUpdate in InitClientSync
2017-01-11 23:37:30 +02:00
Regalis
037bd09c2c
- clients ignore lobby updates if they already received a more up-to-date one
...
- server tells clients their ID in the first lobby update
- clients take control of a spawned character if their ID matches the ownerID of the character (-> respawning works now)
2017-01-11 21:31:19 +02:00
Regalis
dc3885a2da
Server doesn't un-freezes characters that are stunned, unconscious or dead, or controlled by the host
2017-01-11 21:24:03 +02:00
Regalis
8a9b322b78
Clients can create firesources if server tells them to, extinguishing fixes
2017-01-11 18:03:01 +02:00
Regalis
b9006983e4
Item condition syncing
2017-01-11 18:01:07 +02:00
Regalis
3041138f03
Inventory.TryPutItem doesn't put an item in the inventory (or create a NetEntityEvent) if the item is already in it
2017-01-10 20:50:31 +02:00
Regalis
df59f0d089
Fixed speech bubbles, server sends the ID of a speaking character instead of the name
2017-01-10 18:40:12 +02:00
Regalis
81c3641d97
Optimized mouse position syncing from server to clients, removed a redundant WritePadBits from Character.ServerWrite
2017-01-10 00:10:11 +02:00
Regalis
72eb2aa769
Tiny optimization
2017-01-09 21:39:39 +02:00
juanjp600
b35b683cd8
Removed Select debug code
2017-01-09 15:09:26 -03:00
juanjp600
34c2ccf932
Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode
2017-01-09 15:06:32 -03:00
juanjp600
cfeb720836
Fixed IsKeyHit (ladder climbing being inconsistent) + optimized interaction syncing
...
Instead of sending over mouse position as two floats (8 bytes total), the game will send the aim angle represented as a short (0 to 65535, so it's fairly precise) and the selected item ID (up to 4 bytes total, 2 bytes if it's only one of the inputs).
The problem with IsKeyHit is that it checked when the player started a key press, when it should've been checking for the key being released.
2017-01-09 15:06:19 -03:00
Regalis
fb0026b4be
Removed duplicate selection logic from GUIListBox
2017-01-09 18:25:26 +02:00
Regalis
ff96f152ce
Resetting EntityEvent & EntitySpawner IDs when starting a new round, LOS effect is enabled when a client takes control of a character
2017-01-09 18:22:37 +02:00
juanjp600
a75ef8ee51
Optimized MaxVal
...
0x200 represents a bit that isn't used for any flags, 0x1FF represents all usable bits
2017-01-08 12:45:44 -03:00
juanjp600
073def094f
Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode
...
# Conflicts:
# Subsurface/Source/Characters/Character.cs
2017-01-08 12:30:56 -03:00
juanjp600
4b868fc09d
Constant error correction + fixed standing catchup
...
With constant correction, there's little chance for a large difference to build up, so it becomes practically unnoticeable.
Also added a flag which stops the character from updating client-side until the server sends the spawning position.
2017-01-08 12:20:36 -03:00
Regalis
05cb5989dc
Chat range also affects the server host if they're controlling a character, fixed missing sender names in the server lobby
2017-01-07 20:24:01 +02:00
Regalis
6747faae3d
Clients can't make their character immortal by not sending inputs, clients don't implode their characters unless the server says so
2017-01-07 19:25:22 +02:00
Regalis
402c745fc3
Reimplemented chat range & radio messages. Each client now has their own chatMsgQueue, so all chat messages don't have to be sent to all clients.
2017-01-07 19:22:48 +02:00
Regalis
44cbd0d9bf
Fixed AI characters constantly flipping over the X-axis when inside, fixed clients not receiving a msg about characters spawned by RespawnManager
2017-01-07 16:51:51 +02:00
Regalis
6364915353
Fixed incorrect msg lengths in CHARACTER_POSITION messages (+ calculating the length automatically)
2017-01-07 16:11:50 +02:00
juanjp600
7dc474dab4
Actually round movement.X down to zero
...
whoops
2017-01-06 16:05:23 -03:00
juanjp600
f453980ace
Replaced isStillCountdown with a speed check for server catch-up
2017-01-06 14:09:06 -03:00
Regalis
5d83a33876
Notifying clients when the round ends
2017-01-06 19:06:11 +02:00
Regalis
65d64af041
Server reads CHARACTER_INPUT messages even if the client isn't allowed to move (but ignores the inputs), otherwise it would fail to read the rest of the packet
2017-01-06 18:19:51 +02:00
Regalis
2a7ef5dd84
Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode
2017-01-06 17:43:40 +02:00
Regalis
80e743916a
Character death syncing, characters don't reselect items when they receive a network msg about an item they have already selected
2017-01-06 17:43:30 +02:00
juanjp600
5b4d6120ff
Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode
2017-01-05 22:37:45 -03:00
juanjp600
0569a665f4
Fixed a server-side off-by-one error in the player input IDs
...
I'm guessing this one comes from the player's position not being updated immediately after the input is processed, so that's where most of the remaining error came from.
Also added some rounding to the horizontal velocity when approaching 0, and changed something that depended on the head limb to use the collider instead, which should hopefully further reduce the chance of syncing errors.
2017-01-05 22:37:14 -03:00
Regalis
beac45458e
Transforming received in-sub mouse coordinates to outside coordinates if the character is outside and vice versa, HiddenSubPosition fix (can't use Level.Loaded to find the top of the level because the level isn't loaded yet)
2017-01-05 19:08:54 +02:00
Regalis
518eea746e
Transforming in-sub MemPos/MemLocalPos coordinates to outside coordinates if the character is outside and vice versa, server doesn't start sending ingame updates until they receive the first ingame update message from the client (no need to send updates while the client is loading or if they fail to start the round)
2017-01-05 18:16:58 +02:00
Regalis
ba4ee843f3
Syncing character/construction selection
2017-01-04 21:37:19 +02:00
Regalis
7a40658fba
derp
2017-01-04 20:46:51 +02:00
Regalis
179079b91c
Clients can't set the health or stun timer of a character unless they receive a msg from the server
2017-01-03 23:52:15 +02:00
Regalis
bb685019a2
Fixes to unconscious character pos syncing:
...
- main limb is anchored to collider
- server ignores inputs from unconscious characters and doesn't freeze them
- using timestamp-based interpolation on the client's own character instead of IDs
2017-01-03 23:49:37 +02:00
Regalis
1eea373117
NetEntityEvent fixes:
...
- comparing event data equality with Object.Equals instead of == because == returns false for boxed value types
- fixed old unacked messages not being resent if there are newer unacked messages that have been resent less than 1.5 * RTT ago
2017-01-03 20:10:03 +02:00
Regalis
1fb15f5589
The collider position of the controlled character is synced with the same interpolation logic as the rest of the characters when unconscious/stunned (todo: make the ragdoll follow the collider even when unconscious/dead/stunned)
2017-01-02 22:40:00 +02:00
Regalis
c318e629ff
Health, bleeding, oxygen & stun syncing, sending aim and use inputs and cursor positions to clients so other players will be able to see when someone is shooting, hitting with a wrench etc
2017-01-02 22:12:50 +02:00
Regalis
9c07038fef
Cleanup
2017-01-01 23:23:54 +02:00
Regalis
e358ea9917
MonsterEvents and ArtifactEvents spawn the monsters/items during initialization instead of waiting for the round to start (prevents entity ID mismatches if a client starts the event before receiving a message about something the server has spawned)
2017-01-01 23:14:24 +02:00
Regalis
1bba276949
Fixed OnMapLoaded not being called on MapEntities that don't belong to any sub (due to this, gaps weren't created on doors in alien ruins until the game starts running, which occasionally caused entity ID mismatches between clients and the server)
2016-12-30 18:01:15 +02:00
Regalis
1f07b18e5b
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Properties/AssemblyInfo.cs
Subsurface/Source/Items/Components/DockingPort.cs
Subsurface/Source/Items/Components/Signal/Wire.cs
Subsurface/Source/Items/Item.cs
2016-12-29 22:18:27 +02:00