Joonas Rikkonen
224e9238db
EntityEvents are written and sent even if the entity has been removed at the time of writing. Otherwise the clients may not receive some important events, e.g. when an item applies a statuseffect to something or triggers an explosion and is removed immediately afterwards. I'm not 100% confident that this won't cause any additional issues, so it still needs more testing. See #839
2018-10-29 20:38:10 +02:00
Joonas Rikkonen
ef9afedf42
Added a level equality check to client error handling to make it easier to diagnose bugs like #848 in the future.
2018-10-18 00:18:57 +03:00
Joonas Rikkonen
9f7fbb0cbe
Fixed client error reporting
2018-10-17 23:48:00 +03:00
juanjp600
13dc008cb5
Client communicates event syncing errors to the server
...
This should help
2018-10-16 17:11:20 -03:00
Juan Pablo Arce
8e7cd8e5f3
Added space and exclamation point to default AllowedClientNameChars
2018-09-09 01:02:54 -03:00
Joonas Rikkonen
d0e0143308
Respawn durations can be changed mid-round.
2018-08-15 13:39:01 +03:00
Joonas Rikkonen
0dca8bc940
Clients can be given access to server logs. Closes #366
2018-08-15 12:57:46 +03:00
Joonas Rikkonen
4866a89253
Servers can disable the disguise feature. Closes #568
2018-08-14 16:06:23 +03:00
Joonas Rikkonen
8233f3b8df
Increased minimum midround sync timeout to 10 s, an extra check to make sure the server doesn't write position updates during midround syncing (because the entities may not exist client-side yet)
2018-08-14 13:28:56 +03:00
Joonas Rikkonen
091dcf35e6
Server ignores kick votes if the client has already voted to kick the same player. Closes #615
2018-08-11 17:29:03 +03:00
Joonas Rikkonen
45939a9144
Fixed oxygen tank & welding fuel tank crafting causing everyone to desync. The item condition NetEntityEvent was created before the spawn event of the item, preventing clients from reading the condition event because the item doesn't exist yet. Closes #617
2018-08-09 12:08:47 +03:00
Joonas Rikkonen
92f3ac5469
Server setting for selecting which symbols are allowed in client names. The default setting includes symbols from the character ranges Basic Latin, Latin-1 Supplement, Latin Extended A & B and Cyrillic. Closes #534
2018-08-08 17:07:31 +03:00
Joonas Rikkonen
bcd44f79e9
Merge branch 'level-mirroring'
2018-08-08 15:30:41 +03:00
Joonas Rikkonen
5100956bae
Levels are mirrored when traveling backwards through a connection in the campaign mode. Closes #519
2018-08-08 15:30:32 +03:00
Joonas Rikkonen
a5a09aa664
Fixed OwnerClientName & OwnerClientIP not being set on respawned characters. The characters of clients who aren't in-game 30 seconds after a round starts are treated as disconnected, making it possible for the client to gain control of the character if they do manage to connect. Closes #583 , #584
2018-08-06 15:48:47 +03:00
Joonas Rikkonen
1a50996774
Server doesn't force reconnecting spectate-only clients to control their previous character.
2018-08-06 14:14:30 +03:00
Joonas Rikkonen
fa65372715
Whoops, save before committing
2018-08-06 13:41:36 +03:00
Joonas Rikkonen
4ebe3d715e
Characters stay alive for 30 seconds after a client disconnects, and if the client rejoins during that time they regain control of the character. Closes #42
2018-08-06 13:38:39 +03:00
Joonas Rikkonen
a69c52b3c1
Fixed servers failing to write network events for wires with too many nodes, causing clients syncing to fail and everyone getting kicked out due to desync. Now the wire events are split into multiple events, and there's a hard cap (255) on the number of nodes per wire. Closes #563
...
+ Writing too much data into an event no longer breaks event syncing completely, if it happens the server just logs an error and writes an empty event.
2018-08-03 21:32:28 +03:00
Joonas Rikkonen
274a29bada
Fixed fabricated items always appearing to be in full condition client-side (e.g. oxygen tanks which should be empty after being fabricated). Cherry-picked from 64896b0f. Closes #561
2018-08-02 10:50:38 +03:00
Joonas Rikkonen
5a6a8e2501
Wifi components can't communicate with the enemy sub in combat missions. Fixes #554
2018-08-01 13:52:47 +03:00
Joonas Rikkonen
d81ee1a27e
Added a bunch of checks to make sure a normalized zero vector (= NaN, NaN) is not used in any position/velocity/movement calculations. There were at least three places where it was causing problems according to error reports: when a character that can't enter a sub spawns at the center of a hull and when using an underwater scooter or throwing something while the cursor is at the position of the character, but there were tons of other places as well where it may have potentially caused physics errors.
2018-07-31 12:28:04 +03:00
Joonas Rikkonen
8c598db10b
Fixed errors in RespawnManager.ClientRead when not using a shuttle, extra diving gear does not spawn when respawning in main sub (TODO: automatically give and equip diving gear if the sub is flooded?)
2018-07-30 11:41:54 +03:00
Joonas Rikkonen
458c972580
More server-side EntityEvent error logging, Item.ServerWrite does some error checks and writes NetEntityEvent.Type.Invalid as the type of the event instead of attempting to write a potentially unreadable message.
2018-07-29 22:28:56 +03:00
Joonas Rikkonen
50603b72f4
Fixed another bug in DockingPort that caused entity ID mismatches. Even though the server sent the IDs of the CURRENT hulls and gap of the docking port, they are not necessarily created in the correct order during midround syncing and may end up replacing the ID of another entity or another entity spawned after them may cause their IDs to be replaced. Closes #530
2018-07-26 12:42:29 +03:00
Joonas Rikkonen
852fc174c2
Fixes to respawn shuttle bugs that may have caused entity ID mismatches: clients don't remove gaps or undock docking ports when a respawn shuttle leaves the level (but instead receive network events that tell them to do so), removing gaps is done with EntitySpawner.
2018-07-23 22:51:52 +03:00
Joonas Rikkonen
be5f168b76
Sending error messages during EntityEvent writing/reading and entity removal to GameAnalytics
2018-07-23 21:16:57 +03:00
Nilanth Animosus
cac1c48aa3
Redesigned campaign buymenu to use a quantity field
...
Additionally sorts the bought items by name then type to attempt to mirror the tabs (Not perfect)
2018-07-20 18:01:38 +01:00
Joonas Rikkonen
49c6b177e3
Added wrapper methods that check if user statistics are enabled to GameAnalyticsManager
2018-07-20 12:05:13 +03:00
Joonas Rikkonen
f1c4bd3c67
- Some of the non-game-crashing error messages are sent to GameAnalytics.
...
- Changed crash severity from Error to Critical.
- Exception handling when loading submarine preview images.
- Checking if position is valid in Ragdoll.SetPosition.
2018-07-19 22:12:50 +03:00
Joonas Rikkonen
8cd7919009
Removed unused BanClient method
2018-07-19 17:42:03 +03:00
Joonas Rikkonen
a83cd64dbc
Merge pull request #496 from NilanthAnimosus/vanillawork
...
Minor vanilla tweaks
2018-07-18 14:32:28 +03:00
Joonas Rikkonen
568cf1a02f
Fixed memory leak caused by submarine preview images, changed Submarine.SavedSubmarines to a property that prevents removing submarines from outside the class without disposing the preview image. Closes #498
2018-07-18 14:23:43 +03:00
Nilanth Animosus
ad681d5a26
Chatbox removes from the first entry instead of the second
...
Removes for clients "playername has joined" staying at the top of the chat history, as this feels unnecessary for both server and client.
2018-07-18 11:03:04 +01:00
Joonas Rikkonen
5d342e24ef
Clients are allowed to vote to end the round if they have spawned at some point during the round, even if the character they controlled doesn't exist anymore (huskified or eaten). Closes #483
2018-07-16 16:27:13 +03:00
Joonas Rikkonen
734b86bfba
Fixed clients being unable to give non-permanent or range bans. Closes #481
2018-07-16 11:24:24 +03:00
Joonas Rikkonen
ceae0bf94e
Fixed oddities in traitor ratio/assignment logic. The TraitorUseRatio setting is used to determine the number of traitors, the minimum number of traitors is 1 instead of 2, the host is taken into account when determining the number of traitors. Closes #477
2018-07-16 11:05:10 +03:00
Joonas Rikkonen
015eacbcb0
Fixed GameAnalytics thread becoming active despite user statistics being disabled, causing the game to stay active in the background when quitting.
2018-07-13 11:29:11 +03:00
Joonas Rikkonen
c7e220d222
Collecting some more usage statistics: selected game mode, mission, submarine, content package, traitors on/off, kills
2018-07-10 15:49:08 +03:00
Joonas Rikkonen
86c4cd17d2
Fixed clients getting assigned random jobs regardless of job preferences.
2018-07-08 19:32:23 +03:00
Joonas Rikkonen
740d201fc3
Fixed server-side crashes during job assignment if a client hasn't sent any job preferences
2018-07-06 19:42:33 +03:00
Joonas Rikkonen
917b869b92
Fixed exceptions in RespawnManager if the selected respawn shuttle doesn't have a nav terminal or any other item with a Steering component. Closes #438
2018-06-10 21:31:34 +03:00
Tazial
88003a35c7
Changed log names to be sortable by file name
2018-05-22 18:25:12 -04:00
Joonas Rikkonen
f931d81aed
Mission refactoring (mission prefabs) and option to select which types of missions can be selected when mission type is set to random (TODO: a way to set the allowed types from the UI).
2018-05-17 23:45:29 +03:00
Joonas Rikkonen
f2842c265c
Removed the need for batteries in diving suits, now the light stays on as long as the suit is worn by a living character.
2018-04-23 15:24:55 +03:00
Joonas Rikkonen
ceaba2f5ca
Fixed some entities occasionally not being removed at the end of a round. CargoMission removed the cargo items at the end of a round without checking if the items have already been removed, which could cause another entity to be removed from the entity dictionary if it's taken the ID of the cargo item. This prevented the new entity from being removed in Entity.RemoveAll, causing errors during the next round. Closes #278
2018-04-23 13:55:08 +03:00
Joonas Rikkonen
edf5bacc89
Fixed EndRound music looping forever. Closes #334
2018-04-18 11:02:58 +03:00
Joonas Rikkonen
3aeaae0595
Fixed RespawnManager not removing respawn items. Closes #234
2018-04-04 18:53:23 +03:00
itchyOwl
b599206294
Add a GUI slider for setting the auto ban duration. Define the max auto ban length in the server settings. (Issue #128 )
2018-03-27 11:29:36 +03:00
itchyOwl
a48a4975ca
Auto ban users that have been vote kicked. Define the auto ban time in the server settings. (Issue #128 ) NOTE: Not tested!
2018-03-27 11:27:57 +03:00