8,451 Commits over 2,131 Days - 0.17cph!
Fixed bot players shooting themselves. There's still something wrong with their aim - and Zombie's aim too.
NPC vision fix, using the networkentity trace variant. NPC bad aiming was caused by them not being able to see through themselves on listen servers where they had client and server variants.
This is currently broken somewhat as level geometry is being discarded too! Need to do something like change the "discard everything except same scene" to a "discard everything in the client scene (or server scene for casts from the client)."
ZGameMode now mostly working. The plane doesn't move.
Working on PUBG spawning vehicle but currently has issue where I can't use [Facepunch.BNet.OnNetworkClientStarted(0)] on the vehicle base class because it has a generic parameter ("InvalidOperationException: Late bound operations cannot be performed on types or methods for which ContainsGenericParameters is true."). Committing work so far before I work on a fix.
Fixed some stuff, shit's still broken though.
Spawn plane working! Spent way too long getting this right.
Making sure we always ReadBytes on Deserialize and messages, since not doing so can cause issues with getting the shared reader out of sync. Not sure if messages really need it.
Was reading bytes before ID in networkinput, caused a fuckup.
NetworkLevel work. And NPC walk zones work again.
NetworkLevel simplification
Fixed proxy character vis check rate
Fallbacks for physics overrides when not on a listen server
Really basic framework for game modes stored in ScriptableObjects. Game mode is selected, loaded, and passed to connecting clients (via name). Bootstrap stores the data on all potential game modes.
Clients can now reconnect bug free.
Steam server registration
Merge in all Bill Ford's fixes
Character type/role refactor with a view to supporting game modes. Character types can now be defined as individual ScriptableObjects (see the new Resources/character/character.types folder), with no limit on the number of configurations. These will then be assigned to Game Mode objects as NPC types to spawn, or player spawn types. Starting inventory can be customised as well.
Game mode definitions can now hold NPC spawn data. Could do with a nicer Inspector interface though.
Improved WiseGuysTools mode selection interface
Mostly just cleaned up the asset creation menu
Game modes now have custom handler for spawn/respawn
Merge in Bill Ford's changes from Main
Better(?) way to access current active game mode on server or client
GameModes can now create a custom NetworkEntity and destroy it on game end, allowing for fully custom per-game-mode code, or sharing data from server to clients
GameMode custom prefabs no longer HAVE to be networked. Use them just to store data on the server if you like
Semi-porting the ZGameMode to the new system
- Moved network physics checks (Bill F's ones for listen servers) out of NetworkEntity and into GamePhysics, since all they need as a reference is any GameObject, and this allows things without a NetworkEntity to use them.
- Fixed explosion damage not working correctly on listen servers.
Working on porting ZGameMode to the new GameMode system, and adding features to the system as it progresses.