Hello gamers and developers! We were mainly working on refactoring and the future updates, but that doesn't mean there wouldn't be updated in between! So, here's what 0.3.5 is adding, fixing and improving (and porting!) in the platform:
- Linux build of C# API has been released!
- Added: player.removeDecoration(decoration, collection)
- Added: mp.world.time.set(hour, minute, second) as an alternative of mp.world.time.hour/minute/second
- Fixed: bullet synchronization issues introduced with former game patches
- Fixed: passenger synchronization issues
- Fixed: entityDataChange event
- Fixed: global colshapes
- Fixed: s2w and arguments in click event
- Fixed: inactive CEF windows are visible after opening and hiding multiplayer menu
- Improved: streamer reliability
- Fixed: attached objects being streamed out when it shouldn't
- Fixed: trailer events
- Fixed: hidden CEF windows receiving mouse click events
- Miscellaneous fixes, optimizations and improvements
- Important: A new .NET hosting method for the bridge which means an obnoxiously screamingly loud "LINUX SUPPORT!" for the bridge, so you can now use your cheap a$$ virtual private servers.
- Updated: Performance improvements of events, remote events and commands.. it's basically the stuff that programmers love seeing, if you're not impressed.. get out of here!!
- Added: SetEntitySharedData overload with Dictionary as a param, this should help you a lot to avoid overhead and increase efficiency, as well as SetSharedData OOP method for entities
- Added: SetPlayerCustomization
- Added: SetPlayerDecoration (incl. an overload with an array as param)
- Added: RemovePlayerDecoration
- Added: SetPlayerDecoration
- Added: SetPlayerClothes overload with dictionary as param
- Added: Missing Client customization OOP methods and properties including the ones mentioned above
- Added: FirstChanceException Event that should catch all the exceptions thrown before being handled.
- Added: UnhandledException Event that should catch all the unhandled exceptions thrown.
- Added: DeathReason enum that can be obviously used to determine the death reason in the Death event (as well as the WeaponHash)
- Fixed: StackOverflow exception due to events when no resources are loaded.
- Fixed: Deleted props should now be synced on player connection.
- Updated: The old-fashioned way of events was completely replaced with a new efficient and performant system that relies on attributes while looking quite clean and fancy. (Here's an example)
- NOTE: Make sure your event method modifier is set to public!!!
- Removed: For the sake of the events overhaul, CancelEventArgs had to be deprecated, worry not though, there's a replacement as following:
NAPI.Server.<a href="https://wiki.gtanet.work/index.php?title=SetAutoRespawnAfterDeath&action=edit&redlink=1">SetAutoRespawnAfterDeath</a>(bool value)-- disables the default auto respawning after death, default value: true.
NAPI.Server.<a href="https://wiki.gtanet.work/index.php?title=SetAutoSpawnOnConnect&action=edit&redlink=1">SetAutoSpawnOnConnect</a>(bool value)-- disables the default auto spawn on player connection, default value: true.
NAPI.Server.<a href="https://wiki.gtanet.work/index.php?title=SetGlobalServerChat&action=edit&redlink=1">SetGlobalServerChat</a>(bool value)-- disables the default server chat, default value: true.
- Updated: Remote events have been enhanced (as requested by many) and should now be very straightforward to use like commands (Here's an example of possible usages)
- Updated: Additionally, We've also made it possible to use Entity objects (Client, Vehicle, Object, etc..) in Remote events, so you wont have to do the additional work (Here's an example)
- Updated: Commands have been optimized and should now be much more performant than ever
- Added: Non thread-safe methods will no longer cause a server crash when called outside of main thread, will simply print a warning on console.
(NetHandle).Entity<T>()method for the sake of OOP fanciness, this has the same usage as
- Fixed: CreateVehicle should now spawn with desired colors set in the parameters.
- Added: Exceptions are now logged into their own file (server_exceptions.txt), so now you can worry not about the console crashing without you having a look at the thrown exception.
- Added: Additionally, we've added Ben.Dymestifier which should make exception (stack traces) logs more productive.
Added: Optionally, NAPI.Log class was added which includes a
<a href="https://wiki.gtanet.work/index.php?title=Exception&action=edit&redlink=1">Exception</a>(string exceptionText) method
FromJson<T>(object json)to NAPI.Util
- Updated: Weather methods now use Weather enum instead
- Added: SetPlayerSkin/(Client)SetSkin method overloads were added with a uint param
- Fixed: Custom vehicle colors were not working as expected (Issue #66 and #59)
- Added: VehicleSeats, DisconnectionType, CheckpointType and MarkerType enums were added
- Fixed: ConstantVehicleData was not functional thus not reading from vehicleData.json correctly, a lot of vehicle related methods were not functional.
- Fixed: (Client).Vehicle crashes server if player is not in a vehicle (Issue #58)
- Fixed: Explosions should no longer crash the server.
NAPI.Server.<a href="https://wiki.gtanet.work/index.php?title=SetGlobalDefaultCommandMessages&action=edit&redlink=1">SetGlobalDefaultCommandMessages</a>(bool value)-- disables the default messages thrown out by commands (as per request from some lazy dude that didn't want to use the Hide attribute param)