Joonas Rikkonen
b3c3970209
Server responses to clients using console commands ("granted permissions to client", error messages, etc) are displayed in the client's debug console instead of the chat box. Client command usage is included in server logs.
2017-12-20 19:18:32 +02:00
Joonas Rikkonen
0204bc2c49
Added permission presets (or ranks). Current presets are none (no special permissions), moderator (round management & kicking) and admin (almost everything permitted).
2017-12-19 22:27:07 +02:00
Joonas Rikkonen
9bc0931be5
Clients can execute permitted console commands server-side now. The console commands have three different actions: the default action, one that's executed client-side when a client uses it, and one that's executed server-side when a clients requests it. If the client-side action is omitted, the client relays the command to the server as-is. If the third action is omitted, the server executes the default action.
2017-12-06 19:53:05 +02:00
Joonas Rikkonen
91a8e6d0c6
Saving & loading client console command permissions, the permissions are saved as an xml file
2017-12-06 14:04:35 +02:00
Joonas Rikkonen
0840a29ff3
Started overhauling the client permission system to make it a bit more flexible. Now the clients can have the permission to use specific console commands (atm these commands are relayed to the server as-is).
...
TODO: make it possible to give clients console command permissions via the menus and the console, save command permissions, deal with commands that don't work as intended when simply relayed to the server and executed server-side, add "ranks" (preconfigured or custom sets of permissions, e.g. moderator, admin, etc).
2017-12-03 22:54:28 +02:00
Joonas Rikkonen
ccac8de723
Removed unused NetConfig constants and leftover debug code in GameServer
2017-12-02 15:42:52 +02:00
juanjp600
84ba36aa78
Added timestep accumulator to dedicated server, improved autorestart commands, added client permission commands
2017-12-01 14:25:10 -03:00
Joonas Rikkonen
6e9c33fe89
Added radio chat hotkey
2017-11-29 19:16:53 +02:00
Joonas Rikkonen
1c09f757a2
Renaming fields in the Client class for consistency
2017-11-23 20:43:22 +02:00
Joonas Rikkonen
4689bec441
Clients send the latest received campaign ID to the server when in the lobby instead of requesting it once with a reliable message. -> Now the server reattempts sending the save file if the transfer fails at either end.
2017-11-23 20:16:47 +02:00
Joonas Rikkonen
fce7d43ef3
Fixed characters not appearing in the round summary in mp, minor CrewManager refactoring
2017-11-20 20:46:54 +02:00
Joonas Rikkonen
04e3710a65
Renaming fields for consistency
2017-11-14 22:45:22 +02:00
Joonas Rikkonen
5f4bf48449
Replaced instances where MapEntityPrefabs are searched for based on the name with a static Find method that takes the aliases of the prefabs into account.
2017-11-14 21:40:43 +02:00
Joonas Rikkonen
157d9dcaba
Fixed errors when attempting to save server logs with illegal characters in the server name
2017-11-14 19:08:45 +02:00
Joonas Rikkonen
8e556f1c76
- Renamed a bunch of ObjectProperty-related stuff (ObjectProperty -> SerializableProperty, IPropertyObject -> ISerializableEntity, the "SerializableProperty" attribute -> Serialize).
...
- Rectangle serialization.
- Option to restrict numeric properties to a range of values.
- WIP generic ISerializableEntity editor.
2017-11-08 21:15:03 +02:00
Joonas Rikkonen
a0d606ef5f
Working on improving the serialization system and ObjectProperty/IPropertyObject (TODO: come up with better names). The plan is to:
...
- Add support for some of the most common types (vectors, colors, rects) so there's no need to parse the values in the setters of the serializable properties (see Holdable.HoldPos for example).
- Make a generic version of the item editing HUD that can be used on any IPropertyObject. Should make it easier to implement things like the character editor, editing structure properties, particle editor, etc.
- Improve the interface of the editing HUD. Instead of having to type in a string value into a textbox, there should be number input fields for numeric properties, sliders for properties that only accept a range of values, a color picker, etc. And tooltips.
2017-11-03 19:41:21 +02:00
Joonas Rikkonen
f46dc5da28
Water flow logic tweaking:
...
- Less fluctuation, water doesn't constantly flow back and forth through gaps.
- Flowing water pushes characters around much more heavily, and the force is applied to the collider in addition to the limbs.
- Vertical gaps don't push characters up/down unless the character is roughly above/below the gap.
+ Renamed some fields in the hull and gap classes (Volume -> WaterVolume, FullVolume -> Volume, public fields start with a capital letter)
2017-10-10 21:07:45 +03:00
Joonas Rikkonen
1ff2054ca8
Converted the GetAttribute methods in the ToolBox class to extension methods
2017-10-04 18:38:40 +03:00
Joonas Rikkonen
f127c410b0
Option for clients to spectate the game without respawning
2017-09-25 21:31:21 +03:00
Joonas Rikkonen
5eb1544f1e
Clients can be given a permission to select the sub or the game mode
2017-09-24 17:11:10 +03:00
Joonas Rikkonen
04b0c63f30
Campaign mode can't be voted for. The host has to manually create/select the campaign save, so switching to the campaign mode when the host isn't present would cause problems.
2017-09-24 13:41:54 +03:00
Joonas Rikkonen
5a4bc0242d
Voting UI fixes:
...
- The vote count texts are removed when voting is disabled.
- Server sends vote status to joining clients (-> clients see the number of votes immediately, not after someone votes something).
- Server refreshes vote count texts when a client disconnects.
2017-09-21 20:37:30 +03:00
Joonas Rikkonen
f291a22976
- Autorestart works in campaign mode.
...
- The server select a random destination when the campaign starts and after each round, so the campaign can be played even if there's no host/client to choose the destinations. (TODO: make it possible to vote for the destination?)
- Reverting to the previous save if the entire crew is dead works correctly now.
- Clients load the campaign saves after receiving them (-> discovered locations/connections are synced with clients).
2017-09-19 22:05:42 +03:00
Joonas Rikkonen
9114ae658f
- Modified item buying logic: selected items are purchased immediately without having to click the "buy" button, and they stay in the list of purchased items until the round is started. (-> It's possible to see which items have been purchased and cancel purchases).
...
- Clients can be given a permission to manage the campaign (atm selecting which location to head towards and buying items).
- Syncing cargomanager state with clients.
- Misc fixes.
2017-09-17 15:55:24 +03:00
Joonas Rikkonen
348d81a66f
MP campaign fixes
2017-09-13 20:34:10 +03:00
Joonas Rikkonen
63bca3c7ea
Syncing campaign state & save files with clients (WIP)
2017-09-11 21:32:48 +03:00
Joonas Rikkonen
c1f5e3cbda
Progress on multiplayer campaign:
...
- Moved SaveUtils to the shared project.
- Moved the "new game"/"load game" menu logic to a separate class.
- Somewhat functional campaign UI in the server lobby (only the map view is usable atm though).
2017-08-31 18:53:37 +03:00
Joonas Rikkonen
a75fd12020
Started moving single player campaign logic to an abstract CampaignMode class to make it reusable in the eventual multiplayer campaign
2017-08-28 20:19:21 +03:00
Joonas Rikkonen
729108c7b9
Replaced usages of "shift" with "round" for consistency
2017-08-28 17:59:08 +03:00
Joonas Rikkonen
9c372137bd
Added randomly generated ocean floors. Atm the bottom is too deep to reach in most levels and there's not much to explore down there, but the plan is to have some levels where the bottom or some of the bottom formations are reachable (because we need hydrothermal vents!).
...
Ice walls also use vertex colors now, could be used to add some cosmetic variety to the levels.
2017-08-15 19:20:21 +03:00
Joonas Rikkonen
4d40f5d483
Submarines, items and characters that reach a depth of 300,000 units (~4000 m) are automatically disabled. Avoids the unnecessary cost of updating entities that are way too deep to be reached by anyone.
2017-08-13 20:00:18 +03:00
Joonas Rikkonen
9c039e7574
Fixed exceptions during job assignment if a client or the host is controlling a character with no CharacterInfo (i.e. any non-human character)
2017-08-01 21:29:55 +03:00
Joonas Rikkonen
1e11d5ab28
Fixed server failing to assign jobs to all clients on some modded servers: if the max amount of players per job had been reached on all the jobs the client has in their preferences, the client would not get a job at all (causing crashes later on when trying to access the client's job). Now the server assigns a random job if none of the preferred jobs are available.
...
+ Fix for exceptions in Client constructor if there are less than 3 job prefabs.
2017-08-01 19:46:24 +03:00
Joonas Rikkonen
f58566b0d5
NetEntityEvent.IsDuplicate null reference fix for real now
2017-07-28 19:34:01 +03:00
Joonas Rikkonen
520e1df1a5
Fixed exceptions in NetEntityEvent.IsDuplicate if the data array contains null
2017-07-26 20:19:19 +03:00
Joonas Rikkonen
bcb0dbfa90
Tab doesn't autoselect the chatbox when the debug console is open
2017-07-26 17:21:11 +03:00
Joonas Rikkonen
6faf658ae0
Fixed SetClientCharacter & Revive
2017-07-26 17:19:35 +03:00
Joonas Rikkonen
aaea8bc709
Dedicated servers can use autorestart
2017-07-24 21:21:00 +03:00
Joonas Rikkonen
ce3a8df9e0
- Fixed some properties in GameServerSettings not being saved due to being private.
...
- Fixed serversettings.xml overriding the settings entered in the "host server" menu in the client project.
- Added a default serversettings.xml file.
TODO: either add an error/warning of some sort if trying to use any of the ObjectProperty attributes on a non-public property or make ObjectProperty compatible with private properties. + Refactor Properties.cs, class/method naming in particular.
2017-07-20 21:47:47 +03:00
Joonas Rikkonen
575b643c62
Added "user" parameter to Inventory.PutItem and Inventory.TryPutItem. + More descriptive wiring logging: the logs don't list all the wires in a connectionpanel but only the changes a player does to the wiring. Disconnecting wires by picking them up and wiring done by the host are also logged now.
2017-07-17 23:27:31 +03:00
Joonas Rikkonen
f1edb14f3f
"Spawning" serverlog message type, more informative respawn logging
2017-07-16 16:50:02 +03:00
Joonas Rikkonen
af1a681da0
Fixed far-away AI characters staying disabled when switching control to them + minor optimization
2017-07-11 20:03:42 +03:00
Joonas Rikkonen
630a079679
"MessageBox" chatmessage type. Not used in the vanilla game (yet), but custom servers can use it to display custom message boxes at the clients' end. Closes #17
2017-07-09 23:25:41 +03:00
Joonas Rikkonen
64ad5e5003
Removed unnecessary using directives
2017-07-05 18:35:09 +03:00
Joonas Rikkonen
9b054ebd50
Added an artifact that attracts creatures, item max health can be changed & items can be made indestructible
2017-07-04 22:10:30 +03:00
Joonas Rikkonen
0d7851367b
Dedicated server loads the name, password and other initial settings from the serversettings file. + Fixed not being able to change the server name if the current name is null or empty
2017-07-03 18:44:06 +03:00
Joonas Rikkonen
8ae2fb225c
- Ban duration can be set in the UI prompt.
...
- Ban reasons & durations are listed in the banlist menu.
- Clients tell the server the reason when kicking/banning another client.
- Added GUINumberInput GUIComponent.
- Ban duration saving/loading fixes.
2017-07-02 21:36:17 +03:00
Joonas Rikkonen
df0bdb64d6
- Ban durations (TODO: add a way to set and view the durations through the menus).
...
- Separated ban & kick methods.
- Fixed compilation errors in DebugConsole when building the server.
2017-07-02 18:58:07 +03:00
Joonas Rikkonen
da71b6bf9c
Option to supply a reason for banning/kicking, logic for handling question prompts in the debug console
2017-07-02 15:25:55 +03:00
Joonas Rikkonen
e15f5a881b
Merge branch 'dedicated-server' (TODO: make sure I didn't break anything)
...
Conflicts:
Barotrauma/Barotrauma.csproj
Barotrauma/BarotraumaShared/Source/Characters/AI/AIController.cs
Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs
Barotrauma/BarotraumaShared/Source/Characters/AICharacter.cs
Barotrauma/BarotraumaShared/Source/Characters/Animation/Ragdoll.cs
Barotrauma/BarotraumaShared/Source/Characters/Attack.cs
Barotrauma/BarotraumaShared/Source/Characters/Character.cs
Barotrauma/BarotraumaShared/Source/Characters/CharacterNetworking.cs
Barotrauma/BarotraumaShared/Source/Characters/Limb.cs
Barotrauma/BarotraumaShared/Source/Events/MonsterEvent.cs
Barotrauma/BarotraumaShared/Source/Map/Explosion.cs
2017-06-30 21:02:52 +03:00