Commit Graph

148 Commits

Author SHA1 Message Date
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