Commit graph

1482 commits

Author SHA1 Message Date
in0finite
f47b2adaf0 change serialization name of "max draw distance" setting 2021-07-18 21:02:56 +02:00
in0finite
5cbdf1314b don't save setting if it's equal to default value and it's not saved already 2021-07-18 21:02:28 +02:00
in0finite
f3a7bcc72a add ability to specify serialization name for settings 2021-07-18 20:24:20 +02:00
in0finite
37e0c64453 fix bug on clients 2021-07-18 18:49:14 +02:00
in0finite
32c0be1af2
new world loading system (#110)
* wip

* much faster world creation

* add StaticGeometryInspector

* disable child/parent logic and fading

* rename

* (de)activate objects based on parent

* set draw distance based on layers

* ...

* wip

* wip

* wip

* remove unused param

* prevent concurrent modification

* ...

* catch exceptions when notifying

* ...

* notify about area, not objects

* limit public access to Area

* ...

* ...

* allow public access

* add public api

* adapt code

* pass callback to ctor

* adapt focus points

* fix

* fix intersection check

* support rectangles

* adjust parameters in prefab

* this should fix IsInsideOf()

* ...

* ...

* fix getting area by index

* create area if not exists

* ...

* ...

* ...

* wip for distance levels

* remove constraint on generic parameter

* add some validation

* fix

* fix draw distance per level

* change time of day in which lights are visible

* add todos

* don't use id for UnRegisterFocusPoint()

* use hash set for storing focus points

* add 1 more level

* mark area for update only if visibility changes

* profile WorldSystem calls

* add some profiling sections

* limit time per frame for LoadingThread

* switch custom concurrent queue

* copy jobs to buffer

* rename

* change max draw distance setting

* wait one more frame

* try to remove 801 distance level to remove holes

* attempt to hide interiors, but failed

* delete no longer needed script

* optimization

* some error checking

* add camera as focus point

* dont add camera as focus point in headless mode

* working on load priority

* fix bug - load priority finished

* ...

* small optimizations

* ...

* ...

* remove unneeded variable

* add fading

* dont do fading in headless mode

* fadeRate available in inspector

* change fade rate

* take into account if geometry is loaded when checking if object should be visible, and if fading should be done

* small optimization

* cache IsInHeadlessMode

* display Instance info in inspector

* move interiors up in the sky

* rename

* adapt code to different y pos of interiors

* refactor

* fix finding matched enex for enexes that lead to the same interior level

* display new world stats

* rename

* rename class

* ...

* ...

* extract function

* extract parameters into a struct

* add focus point to dead body

* add focus point to vehicle

* add focus point to vehicle detached parts

* remove OutOfRangeDestroyer from vehicle, and destroy vehicle if it falls below the map

* dont use focus points on vehicle and vehicle detached parts, when not on server

* add focus point for npc peds

* add possibility to set timeout during which focus point keeps revealing after it's destroyed

* adapt UnRegisterFocusPoint() to timeout

* rename

* adapt code

* cleanup MapObject class

* ...

* converting to `lock()`

* optimize method: use 1 lock instead of 3

* call OnObjectFinishedLoading() instead of AddToLoadedObjects()

* ...

* make sure it's main thread

* AsyncLoader is no longer thread safe

* convert static members to non-static in LoadingThread

* fix

* ...

* store indexes for each area

* impl GetAreaCenter()

* calculate load priority based on distance to area, not objects ; limit time per frame ; sort area in Cell, not in concurrent SortedSet ;

* add support for changing draw distance at runtime

* delay setting the new value by 0.2 s

* have a separate default max draw distance for mobile platforms

* adjust y axis world params so that number of visible areas is reduced

* remove "camera far clip plane" setting

* rename

* document flags

* rename

* disable shadow casting and receiving for some objects

* allow casting shadows for LODs with large draw distance

* remove "WorldSystem" layer

* revert layer
2021-07-18 06:03:43 +02:00
in0finite
bac100ebcb display some stats 2021-06-26 01:58:05 +02:00
in0finite
c7a4fc9332 face lights toward camera every frame 2021-06-26 01:47:52 +02:00
in0finite
b3eb724469 fix 2021-06-26 00:58:43 +02:00
in0finite
28316f720a ... 2021-06-26 00:58:25 +02:00
in0finite
7378f61d9f enable/disable lights based on day time 2021-06-26 00:47:50 +02:00
in0finite
7f071364b3 dont do it in headless mode 2021-06-25 23:03:31 +02:00
in0finite
fda799b8a2 optimizations and refactoring 2021-06-25 23:00:33 +02:00
in0finite
4aa60fbae4 add param 'rotateLightsToFaceCamera' 2021-06-25 22:24:46 +02:00
in0finite
65eb14afad use arrays 2021-06-25 22:16:27 +02:00
in0finite
417272e027 ... 2021-06-25 22:12:46 +02:00
in0finite
877ad97e04 determine time offset based on rotation of object 2021-06-25 22:11:26 +02:00
in0finite
a214441b94 can now correctly detect red/yellow/green lights 2021-06-25 21:30:31 +02:00
in0finite
a7b7ac1e9b use InvokeRepeating() 2021-06-25 20:28:11 +02:00
in0finite
66391fcb58 fix infinite loop 2021-06-25 19:13:40 +02:00
in0finite
2193aeaea1 traffic lights should be working 2021-06-25 18:56:52 +02:00
in0finite
06a277acd2 update lights in StaticGeometry 2021-06-25 15:51:00 +02:00
in0finite
fc6af2392e implement world lights 2021-06-25 14:37:24 +02:00
in0finite
08ccd6f9ee ... 2021-05-04 21:28:47 +02:00
in0finite
d59c2c7ede remove light game objects 2021-05-04 21:24:13 +02:00
in0finite
d73fd9e163 display day time UI even when local ped is not alive 2021-05-04 21:21:13 +02:00
in0finite
f72cd743a3 display current time in UI 2021-05-04 20:55:01 +02:00
in0finite
197089aab3 (de)activate time objects based on current time 2021-05-04 19:54:47 +02:00
in0finite
49596eb613 load TOBJ objects 2021-05-03 21:24:48 +02:00
in0finite
71fb48f481 fix sync 2021-05-03 04:18:59 +02:00
in0finite
613767d6d7 attempt to sync 2021-05-03 03:00:22 +02:00
in0finite
d5f3657151 ... 2021-05-03 02:00:55 +02:00
in0finite
50e8cef69a rename class 2021-05-03 01:59:33 +02:00
in0finite
46e76e7895 rename file 2021-05-03 01:57:34 +02:00
in0finite
bcf74a342d update light angle every frame 2021-05-03 01:55:41 +02:00
in0finite
91f136b97c add time scale to day-time window 2021-05-03 01:54:26 +02:00
in0finite
6b807e2d98 ... 2021-05-03 00:17:08 +02:00
in0finite
0cde5b1025 some cleanup 2021-05-03 00:09:24 +02:00
in0finite
b0810e9bfa cache shader property id 2021-05-02 23:55:00 +02:00
in0finite
2da430251c remove unused code 2021-05-02 23:51:37 +02:00
in0finite
2fc4d58bb6 assign "_HasNightColors" to materials which have night colors 2021-05-02 23:45:02 +02:00
in0finite
378a92794d ... 2021-05-02 23:02:04 +02:00
in0finite
b459f62e73 implement daytime manager 2021-05-02 23:01:31 +02:00
in0finite
30cd22057c don't log error 2021-04-26 00:44:14 +02:00
in0finite
b963a95d85 wip 2021-04-26 00:43:30 +02:00
in0finite
38e1d4f0b2 set mesh vertex colors 2021-04-25 23:16:16 +02:00
in0finite
1a118064b5 remove unused method 2021-04-25 21:24:23 +02:00
in0finite
25c3954256 load night colors 2021-04-25 21:15:53 +02:00
in0finite
b27bcac9a3 display color field 2021-04-18 00:18:49 +02:00
in0finite
0a3d2a53dc create inspector for LightSource 2021-04-18 00:08:49 +02:00
in0finite
f87eb89c63 create LightSource script 2021-04-18 00:07:49 +02:00
in0finite
0a3a11a5e0 use unity color 2021-04-17 22:17:52 +02:00
in0finite
91491a19f1 load lights info 2021-04-17 22:15:07 +02:00
in0finite
a3a8d5cfdf add script for building for Android from command line 2021-03-05 23:19:26 +01:00
in0finite
072b7f128e change plugins folder name 2021-03-05 21:55:56 +01:00
in0finite
d5d15876fd load plugins from Start() 2021-03-05 21:55:09 +01:00
in0finite
ab4f1e00d9 change SEO 2021-03-05 21:32:49 +01:00
in0finite
f7eeaa379e allow selection of game mode via command line 2021-03-02 23:47:51 +01:00
in0finite
805eaefea7 game modes can be selected ; selected game modes are activated when server starts 2021-03-02 23:09:08 +01:00
in0finite
2c4521200d console subscribes to log event before any other script executes 2021-03-01 02:53:03 +01:00
in0finite
04153d6cc0 chat is visible when local ped is dead 2021-03-01 02:10:27 +01:00
in0finite
8a74156e94 ... 2021-03-01 01:25:31 +01:00
in0finite
b58029aceb improve chat text escaping - markup tags are now visible in a chat message 2021-03-01 01:23:26 +01:00
in0finite
edd328b9bc rename methods 2021-03-01 00:58:50 +01:00
in0finite
1a9fe1754d don't use server nick when echoing command 2021-03-01 00:50:53 +01:00
in0finite
26b51b99c9 move all logic from ChatSync to ChatManager 2021-02-28 23:38:34 +01:00
in0finite
e29bacf3d2 better communication between ChatManager and ChatSync 2021-02-28 23:25:49 +01:00
in0finite
b591ed8fb7 use NetStatus.ThrowIfNotOnServer() 2021-02-28 23:07:26 +01:00
in0finite
f96be81166 skip font loading because fonts are not used anywhere 2021-02-28 22:57:29 +01:00
in0finite
f84bbcf486 rename method 2021-02-28 22:53:16 +01:00
in0finite
2d768ca6b5 properly cut chat messages ; don't cut them on clients 2021-02-28 22:50:11 +01:00
in0finite
f23d9aac04 fix cutting chat message ; reuse string builder 2021-02-28 22:26:30 +01:00
in0finite
a26c1d8bab extract function 2021-02-28 21:28:57 +01:00
in0finite
9d5039edfe improve chat UI 2021-02-28 21:15:27 +01:00
in0finite
b8e362cd95 use InvokeEventExceptionSafe() 2021-02-27 23:32:16 +01:00
in0finite
afb443d269 don't update chat UI in headless mode 2021-02-27 23:17:56 +01:00
in0finite
f545981675 remove invalid chat characters on all places ; remove new line & tab characters 2021-02-27 23:15:29 +01:00
in0finite
bb8e18195d automatically refresh master-server when JoinGame window is opened 2021-02-27 18:07:52 +01:00
in0finite
92b1352cf5 make "Internet" the default tab in JoinGame window 2021-02-27 17:30:55 +01:00
in0finite
75503c74fd use only Y euler 2021-02-27 17:03:06 +01:00
in0finite
fcb5f6be3e fix Vector3 and Quaternion parsing 2021-02-27 16:26:59 +01:00
in0finite
8abd08fda8 provide list of registered commands 2021-02-23 00:54:46 +01:00
in0finite
0589ccb039 exit aim & fire states if ped is not holding a weapon 2021-02-23 00:10:11 +01:00
in0finite
c52fd29de8 don't display inflicted damage for the same player 2021-02-22 23:56:58 +01:00
in0finite
9e7378d1ca exit drive-by state if ped doesn't have gun weapon 2021-02-22 23:20:01 +01:00
in0finite
eb937dd512 send command back to player 2021-02-22 22:20:36 +01:00
in0finite
fb2f17792e unsupported vehicles will not cause spamming error messages - they are destroyed 2021-02-22 22:19:15 +01:00
in0finite
e21ef25835 players can specify model id for their ped or stalker 2021-02-22 21:26:57 +01:00
in0finite
000a8a6cc9 revert adaption 2021-02-22 20:21:14 +01:00
in0finite
700e9e9e44 some more adaptions 2021-02-22 19:53:41 +01:00
in0finite
506c7bd1f0 rename script 2021-02-22 19:45:17 +01:00
in0finite
16380a4fe7 adapt all scripts to command system - stop using PlayerRequests 2021-02-22 19:43:17 +01:00
in0finite
a6204749b2 impl teleport command 2021-02-22 18:50:35 +01:00
in0finite
ea7c27b573 impl weapon commands 2021-02-22 18:13:28 +01:00
in0finite
e3b8d9fd65 impl ped & vehicle commands 2021-02-22 17:51:26 +01:00
in0finite
e649952aa9 don't show "..." button in Peds window on clients 2021-02-22 17:44:29 +01:00
in0finite
780a02e842 add rate-limit to commands 2021-02-22 17:43:18 +01:00
in0finite
71ea451b3b add Player.onDisable event 2021-02-22 15:52:46 +01:00
in0finite
ead26ca9da add "description" and "runOnlyOnServer" to CommandInfo 2021-02-22 15:50:43 +01:00
in0finite
f7022565e3 send response only if it is not empty 2021-02-22 15:48:47 +01:00
in0finite
fb332a40c0 add flag "addWeaponsToSpawnedPlayers" 2021-02-21 02:35:26 +01:00
in0finite
985054b648 add Ped.onAwake event 2021-02-21 01:39:39 +01:00
in0finite
6e23e3a97c add Ped.onStart event 2021-02-21 01:20:20 +01:00
in0finite
fb1212305c add player to ProcessCommandContext 2021-02-21 00:46:48 +01:00
in0finite
3aef4d8559 display in 1 line 2021-02-20 23:56:55 +01:00
in0finite
97e09134bd add error check 2021-02-20 22:54:25 +01:00
in0finite
18504422f1 run commands from chat messages 2021-02-20 21:59:29 +01:00
in0finite
2f47dbf5d7 trim chat messages 2021-02-20 21:57:52 +01:00
in0finite
4db2437dfc add chat preprocessing 2021-02-20 21:57:10 +01:00
in0finite
11c0680c09 add some basic commands 2021-02-20 21:55:05 +01:00
in0finite
f563597d96 implement command processing 2021-02-20 21:52:23 +01:00
in0finite
485ba93c8d fix sync bug 2021-02-20 17:59:25 +01:00
in0finite
1970c945aa add SpawnHandler - spawn positions can be overridden 2021-02-20 17:04:17 +01:00
in0finite
6eb48ad5f3 remove WorldStatsWindow script 2021-02-20 16:21:01 +01:00
in0finite
2a3374f6c2 make it more error-proof 2021-02-20 16:19:04 +01:00
in0finite
8a8ed71751 use short name because it will be a part of json 2021-02-20 16:15:19 +01:00
in0finite
2c4d09b8c2 use struct so that it doesn't allocate memory 2021-02-20 16:13:41 +01:00
in0finite
5436f71840 display player stats dynamically based on data from server 2021-02-20 02:23:16 +01:00
in0finite
b5e308c135 add SyncedServerData 2021-02-20 02:20:19 +01:00
in0finite
0b4794bb72 extract function 2021-02-19 23:04:45 +01:00
in0finite
a729fa7692 add 'attackingPlayer' to DamageInfo 2021-02-19 22:08:37 +01:00
in0finite
b365759ce9 impl SyncedBag 2021-02-19 21:45:54 +01:00
in0finite
82c6df722b change namespace 2021-02-19 20:36:07 +01:00
in0finite
16f991db98 remove commented code 2021-02-19 20:35:46 +01:00
in0finite
e711eaae58 fix plugin loading 2021-02-19 20:35:38 +01:00
in0finite
98e110881a move file to another folder 2021-02-19 18:30:10 +01:00
in0finite
7e97945021 add Ped.onDamaged event 2021-02-19 02:55:09 +01:00
in0finite
ec436c6037 add plugin loading and game modes 2021-02-19 02:22:03 +01:00
in0finite
38e23851c6 fix for wrong position of detached vehicle parts 2021-02-14 15:13:39 +01:00
in0finite
eac9bce0c7 fix setting colors on client 2021-02-13 23:04:47 +01:00
in0finite
104f627bd3 extract into static function 2021-02-13 22:52:43 +01:00
in0finite
0d3d8e3dce remove old code 2021-02-13 22:44:22 +01:00
in0finite
7b4d256008 cache shader property ids 2021-02-13 22:38:35 +01:00
in0finite
ec660c368c set vehicle lights' intensity to 0 by default 2021-02-13 22:22:03 +01:00
in0finite
2232f4327f fix FPS drop on Android 2021-02-13 22:18:27 +01:00
in0finite
9f1b01296d ... 2021-02-06 23:30:52 +01:00
in0finite
899711abda add ability to specify gui style for area 2021-02-06 23:20:21 +01:00
in0finite
933c3ed089 improve gui 2021-02-06 23:06:43 +01:00
in0finite
f4173e5164 don't use skin for a gui area 2021-02-06 23:06:30 +01:00
in0finite
f31ba9d81e add support for short names in top panel of file browser ; add some common folders on Windows 2021-02-06 22:36:31 +01:00
in0finite
f9faff6c67 don't detach ragdoll when ped is killed in a vehicle, except if vehicle exploded 2021-02-06 21:12:41 +01:00
in0finite
3267daa543 state classes handle killing of ped 2021-02-06 21:11:14 +01:00
in0finite
ac56764618 add "Dead body traffic per player" stat 2021-02-06 20:07:53 +01:00
in0finite
6f21cc8bf0 destroy all rigid bodies on clients except for the root bone - they work for themselves, and bones look deformed and stretched 2021-02-06 19:20:21 +01:00
in0finite
d525a99575 sync velocity only for root bone 2021-02-06 19:18:36 +01:00
in0finite
ae834f63c7 add flags to sync data 2021-02-06 17:19:35 +01:00
in0finite
dac7f81574 add setting for ragdoll interpolation mode 2021-02-06 03:16:36 +01:00
in0finite
3e73a557f2 set vehicle's rigid body CollisionDetectionMode to continuous dynamic 2021-02-06 02:39:56 +01:00
in0finite
af54f74847 optimize network traffic for ragdolls - sync only rigid bodies - traffic should be 4 KB/s for 1 ragdoll 2021-02-06 01:29:55 +01:00
in0finite
964a76685e set collision detection mode to ContinuousDynamic - seems that leftover parts no longer can go through ground 2021-02-05 23:40:30 +01:00
in0finite
f0460bbd3e improve sync of vehicle leftover parts 2021-02-05 23:21:39 +01:00
in0finite
7df6fcd135 more limitations on client ... 2021-02-05 01:08:07 +01:00
in0finite
93a1c7aaf0 use RigidBody's position for syncing, not transform's 2021-02-05 01:06:11 +01:00
in0finite
c4699859e1 add option to destroy wheel colliders on client 2021-02-05 01:04:37 +01:00
in0finite
c6bd9fef9a sync rpm and properly rotate wheel 2021-02-04 23:18:01 +01:00
in0finite
b0ec6417c7 extract function 2021-02-04 23:17:12 +01:00
in0finite
f6fe21cbdb sync y position of wheel 2021-02-04 22:21:16 +01:00
in0finite
91bc7547a5 don't use gravity and don't detect collisions on client 2021-02-04 22:19:34 +01:00
in0finite
9caf2df790 set interpolation on vehicle rigid body 2021-02-04 22:17:26 +01:00
in0finite
f17824e237 reset velocity on clients if it is not synced 2021-02-04 22:14:10 +01:00
in0finite
845c0c98fa add checkbox for registering at master server 2021-01-31 23:38:01 +01:00
in0finite
e4a2f09fda add info for master server: version, map 2021-01-31 23:07:10 +01:00
in0finite
e6c33e14ad some adjustments for StartGame window 2021-01-31 22:44:15 +01:00
in0finite
8659ae57b7 disable Start button while server is active 2021-01-31 21:18:30 +01:00
in0finite
1ba51c20c2 fix warnings 2021-01-31 21:03:51 +01:00
in0finite
0c20894a31 add namespace 2021-01-31 20:58:44 +01:00
in0finite
e6a48d4bf6 load all IMG archives that are found in loose archive 2021-01-31 20:08:48 +01:00
in0finite
442a0dab1a add more debug info 2021-01-31 16:45:55 +01:00
in0finite
a4ddd0fc0c continue if failed to load arrow textures 2021-01-31 03:45:14 +01:00
in0finite
336db81e51 continue if failed to load cursor texture 2021-01-31 03:29:51 +01:00
in0finite
c6dea949cf add possibility to skip minimap load 2021-01-31 03:21:02 +01:00
in0finite
6692eaec18 allow some lines to fail from weapon data file 2021-01-31 03:13:09 +01:00
in0finite
fed4e987f9 extract function 2021-01-31 03:12:22 +01:00
in0finite
715ec36f2f support car colors with duplicate car names 2021-01-31 02:52:04 +01:00
in0finite
5786cf7868 add method ArchiveManager.GetAllEntries() 2021-01-31 02:10:08 +01:00
in0finite
63c27c28a9 load anim groups using ArchiveManager 2021-01-31 02:07:57 +01:00
in0finite
02f08a6c03 support extended PedestrianType 2021-01-31 01:37:23 +01:00
in0finite
b065f68b51 handle situation when definition already exists 2021-01-31 01:36:17 +01:00
in0finite
fdc42b1946 read item file from ArchiveManager, not using File API ; don't throw exception if item file was not found, but log error 2021-01-31 01:35:10 +01:00
in0finite
20461c854b provide some statistics from loaded archives 2021-01-31 01:29:36 +01:00
in0finite
119dbb2db7 remove commented code 2021-01-31 00:16:09 +01:00
in0finite
3e764a7b59 more error-prone archive loading 2021-01-31 00:14:40 +01:00
in0finite
cf322da937 set invariant culture for all threads 2021-01-30 18:49:46 +01:00
in0finite
8780e3a0d6 adjust window size 2021-01-28 15:47:56 +01:00
in0finite
c59099dcf0 use only 1 message box for displaying errors 2021-01-28 15:01:22 +01:00
in0finite
2848638d8c re-enable gui - fix bug when window could not be dragged 2021-01-28 13:13:01 +01:00
in0finite
2c2a82ff7c disable IP button while client is connecting 2021-01-28 13:07:28 +01:00
in0finite
93fbe15ab1 use centered label style 2021-01-28 13:01:39 +01:00
in0finite
d821dc35f0 set timeout to 7 2021-01-27 02:08:16 +01:00
in0finite
ee89445e6f show message box when failed to refresh master server 2021-01-27 01:51:12 +01:00
in0finite
b4c0df123c extract function 2021-01-27 01:34:53 +01:00
in0finite
0d7ac7b6b4 don't refresh servers from Start() 2021-01-27 01:29:00 +01:00
in0finite
e3dc420d93 set register interval to 20 2021-01-27 01:25:43 +01:00
in0finite
6a6326fd45 set timeout 2021-01-27 01:20:36 +01:00
in0finite
a9a6bac1f8 add master server url 2021-01-27 01:19:28 +01:00
in0finite
1a5e433e28 ... 2021-01-26 23:30:36 +01:00
in0finite
29b14442b4 ... 2021-01-26 23:29:34 +01:00
in0finite
0bf16747b6 assign SEO 2021-01-26 23:29:17 +01:00
in0finite
df730095f3 use ConfigManager to load config 2021-01-26 23:29:01 +01:00
in0finite
3a662c34c8 adjust width 2021-01-26 23:01:20 +01:00
in0finite
d22e89bdf0 improve JoinGameWindow 2021-01-26 22:46:14 +01:00
in0finite
406af30d90 move script to another folder 2021-01-12 23:17:27 +01:00
in0finite
9f83eadabb add namespace 2021-01-12 23:12:23 +01:00
in0finite
cfab2fec73 improve master server's client 2021-01-12 23:11:10 +01:00
in0finite
c0167903eb Merge remote-tracking branch 'origin/dev' into feature/ragdoll 2021-01-12 22:12:37 +01:00
Spider134
9ef83a1ab5
Implement master server (#102)
* Added font importing

* Revert "Added font importing"

This reverts commit 31f3463097.

* Fix Loader.cs formatting

* Fix texture issue

* Revert "Fix texture issue"

This reverts commit 79c44f8069.

* Update FontsImporter.cs

* Add master server client

* Remove curly bracket

* Add missing tab and fix a issue

* Update MasterServerClient.cs

* Remove IP and fix an issue

* Added feedback for when a user refreshes the internet tab and added an error message when server registration fails.
2021-01-12 22:06:38 +01:00
in0finite
a713853140 Merge remote-tracking branch 'origin/dev' into feature/ragdoll 2021-01-12 21:58:27 +01:00
in0finite
206c67bc8d "request suicide" button will kill ped 2021-01-08 04:44:56 +01:00
in0finite
b7ab28fedf add "num rigid bodies in dead bodies" to misc stats 2021-01-08 03:00:03 +01:00
in0finite
ebaa36fb1a add "num bones in dead bodies" to misc stats 2021-01-08 02:57:39 +01:00
in0finite
be97e40457 cleanup 2021-01-08 02:52:10 +01:00
in0finite
2451514db1 use custom serialization 2021-01-08 02:40:45 +01:00
in0finite
4b20f5de34 ... 2021-01-08 00:18:46 +01:00
in0finite
38e205efc4 found almost perfect solution 2021-01-07 23:21:28 +01:00
in0finite
c8b44837af fix comments 2021-01-07 22:16:51 +01:00
in0finite
dcc65fa8c5 tried to use MovePosition()/MoveRotation(), but it doesn't work 2021-01-07 21:43:03 +01:00
in0finite
34b9613782 don't set rigid body to kinematic - it behaves a little better with high velocity 2021-01-07 21:35:14 +01:00
in0finite
9267660a97 configure interpolation in Inspector 2021-01-07 21:02:12 +01:00
in0finite
de8439ad31 add extension method 2021-01-07 21:00:02 +01:00
in0finite
2051451095 fix commented code 2021-01-07 20:59:36 +01:00
in0finite
7990d25ed5 extract SetPosition() and SetRotation() 2021-01-07 18:48:02 +01:00
in0finite
38d3035044 use struct for storing info about bones 2021-01-07 18:32:59 +01:00
in0finite
31d7d3c5dd apply initial velocities 2021-01-07 17:50:58 +01:00
in0finite
6b3e656ed7 extract SetVelocity() method 2021-01-07 17:47:45 +01:00
in0finite
2d5d67fc55 cleanup 2021-01-07 17:44:47 +01:00
in0finite
a9e70bf7cc cleanup 2021-01-07 16:51:30 +01:00
in0finite
506bca3faf cleanup 2021-01-07 15:43:56 +01:00
in0finite
34175971ae syncing is finally decent enough 2021-01-07 15:26:11 +01:00
Spider134
52533f836b
Add font loading (#101)
* Added font importing

* Revert "Added font importing"

This reverts commit 31f3463097.

* Fix Loader.cs formatting

* Fix texture issue

* Revert "Fix texture issue"

This reverts commit 79c44f8069.

* Update FontsImporter.cs
2021-01-06 20:46:56 +01:00
in0finite
68413a5c37 sync velocity 2021-01-05 22:58:47 +01:00
in0finite
20100a34aa add "dead body sync rate" setting 2021-01-05 21:32:20 +01:00
in0finite
8d400bfceb syncing works 2021-01-05 21:09:25 +01:00
in0finite
f9e320ce23 move creation of dead body to it's own class 2021-01-05 19:30:14 +01:00
in0finite
8469f18862 use prefab to spawn dead body 2021-01-05 18:21:57 +01:00
in0finite
75d9ca5f35 when vehicle explodes, all peds inside are killed - this also fixes Unity crash 2021-01-05 05:56:39 +01:00
in0finite
17f6aaeeda peds are killed with a separate function ; ragdoll is detached only when peds are killed, not destroyed 2021-01-05 05:18:47 +01:00
in0finite
acae61657d cleanup 2021-01-05 04:26:17 +01:00
in0finite
59097a00f2 apply force on dead body when it is hit by weapon 2021-01-05 04:20:46 +01:00
in0finite
c50bff84cd add setting for dead body lifetime 2021-01-05 03:28:14 +01:00
in0finite
003442d5b7 add num dead bodies to Misc stats 2021-01-05 03:10:00 +01:00
in0finite
3a5e237e06 add button to remove all dead bodies 2021-01-05 03:09:45 +01:00
in0finite
988e250981 ... 2021-01-04 23:32:28 +01:00
in0finite
aa95d082d9 use continuous dynamic CollisionDetectionMode for ragdoll 2021-01-04 22:11:55 +01:00
in0finite
9a224c0eca remove additionally added colliders from ragdoll (jaw, neck box) 2021-01-04 22:08:51 +01:00
in0finite
d6d5d660cf wip on ragdoll 2021-01-04 01:28:58 +01:00
in0finite
64680f7280 initial ragdoll stuff 2021-01-03 14:23:18 +01:00
in0finite
93809fd9d3 change order of tabs in Options window 2021-01-02 23:58:00 +01:00
in0finite
85ed0480e6 add setting for radio volume 2021-01-02 23:22:52 +01:00
in0finite
7431d4f010 remove commented code 2021-01-02 20:46:38 +01:00
in0finite
e18d335798 reorganize setting tabs 2021-01-02 20:46:19 +01:00
in0finite
56d28883cc add SoundSettings 2021-01-02 19:37:11 +01:00
in0finite
b411c1a3de change button name 2021-01-02 19:02:42 +01:00
in0finite
dfc039e94a send chat on Enter 2021-01-02 18:56:46 +01:00
in0finite
74a1d8f158 use InvokeEventExceptionSafe() for chat event 2021-01-02 17:35:46 +01:00
in0finite
b3188b6c11 assign SEO to scripts 2020-12-29 21:28:41 +01:00
in0finite
350f70ac9b don't create hinge joints for vehicle doors 2020-12-29 20:58:51 +01:00
in0finite
edceca030f extract function 2020-12-29 20:43:33 +01:00
in0finite
74bc44561f remove commented code 2020-12-29 20:36:35 +01:00
in0finite
95d6297d8a add setting for vehicle's detached part lifetime 2020-12-28 01:41:11 +01:00
in0finite
309c00b72d add event for when server changes status 2020-12-28 01:05:54 +01:00
in0finite
9d9b9743c5 spawn projectile on network 2020-12-26 23:57:51 +01:00
in0finite
e825ecb6d4 projectile should be visible on clients 2020-12-26 23:01:32 +01:00
in0finite
4eed0a4bbe implement acceleration 2020-12-26 20:07:05 +01:00
in0finite
7cba029b92 sync projectile 2020-12-26 18:45:42 +01:00
in0finite
0c751b0208 add setting for projectile reload time 2020-12-26 17:40:30 +01:00
in0finite
f04728934e ignore collision between projectiles 2020-12-22 02:24:00 +01:00
in0finite
80a5e0c538 rotate projectile while moving 2020-12-21 23:27:00 +01:00
in0finite
26ed669de8 use separate prefab for rocket explosion 2020-12-21 22:56:41 +01:00
in0finite
d32688155c remove commented code 2020-12-21 20:55:30 +01:00
in0finite
4acfe0e401 play projectile sound 2020-12-21 03:01:20 +01:00
in0finite
f61a4c829f fix warning 2020-12-21 02:10:26 +01:00
in0finite
1ca4b2d0ad ignore collision between shooter ped and projectile 2020-12-21 02:10:17 +01:00
in0finite
ec89abedd8 attach rocket model 2020-12-21 01:50:31 +01:00
in0finite
536c275a5e display rocket crosshair 2020-12-21 01:00:05 +01:00
in0finite
9ee8f0dfac implement reloading time - all weapons have it set to 0, except rockets 2020-12-20 22:27:29 +01:00
in0finite
00a95beb66 add namespace 2020-12-20 21:53:55 +01:00
in0finite
86e1187b5c implement base projectile system 2020-12-20 21:51:59 +01:00
Antonio Alexandru Ganea
c3aebc3826
RCON Support (#96)
* Added RCON dotnet submodule

* RCON Manager

* RCON works

* Switched inter-thread passing from tasks callbacks to BlockingCollection

* Cleanup

* Config based rcon port and password

* RCON is disabled by default in config

* Added SanAndreasUnity.RCON namespace to CommandInterpreter

* Pass command to main thread first and report progress afterwards

* Minor cleanup

* Removed InvalidOperationException as it was never possible

* Moved OnLoaderFinished code in RCONManager

* Added RCONManager script to prefab

* Added meta files
2020-11-01 23:51:03 +01:00
in0finite
29d5a04db9 assign SEO for on-screen message scripts 2020-07-11 15:37:17 +02:00
in0finite
8eea97c33d assign SEO to new scripts 2020-07-11 15:08:12 +02:00
in0finite
615491aab6 use InvariantCulture when (de)serializing colors 2020-07-05 22:35:21 +02:00
in0finite
5816570fd2 sync color of detached parts 2020-07-05 22:33:34 +02:00
in0finite
f926bb7c24 send color of detached part 2020-07-05 21:39:59 +02:00
in0finite
d5a51d595e newly connected clients can see already existing detached parts 2020-07-05 18:37:56 +02:00
in0finite
d31a39b6b4 display num of spawned network objects in Net stats 2020-07-05 13:50:22 +02:00
in0finite
e959d1c483 don't log error if frame is not child of vehicle, because some vehicles have multiple frames with the same name, and this causes error only on client, but not on server 2020-07-05 13:42:50 +02:00
in0finite
e649d483d2 safety check 2020-07-04 20:34:17 +02:00
in0finite
942453a2a4 check if frame is already detached before detaching it - this also fixes a bug on client when he was trying to detach already detached frame 2020-07-04 20:12:01 +02:00
in0finite
9c63b25d38 log error if frame is not child of vehicle 2020-07-04 19:11:39 +02:00
in0finite
96b0ac1f33 disable cooking options on MeshCollider 2020-07-04 19:11:09 +02:00
in0finite
e47d8d0adf explosion is synced 2020-07-04 18:52:23 +02:00
in0finite
24e1e7c27b remove unused code 2020-07-02 01:02:43 +02:00
in0finite
f82315f3ad rigid body sync works 2020-07-02 00:59:17 +02:00
in0finite
798dfd55ed ... 2020-07-01 23:36:49 +02:00
in0finite
a7fe0c7ef6 add safety check 2020-07-01 23:36:34 +02:00
in0finite
41e5223fc7 detached vehicle parts should be synced 2020-07-01 23:36:01 +02:00
in0finite
fbd23c0cce create NetworkRigidBody script 2020-07-01 23:32:40 +02:00
in0finite
6725e3ce57 do some logic only on server 2020-07-01 19:36:39 +02:00
in0finite
96829ef506 sync vehicle's health 2020-07-01 19:31:06 +02:00
in0finite
2e0108d662 cleanup code 2020-07-01 19:25:59 +02:00
in0finite
395bcdcf4b add some commented code related to petrolcap 2020-07-01 18:53:15 +02:00
in0finite
115821f2da add hit point and hit normal to DamageInfo class 2020-07-01 18:52:35 +02:00
in0finite
d6c79434a4 cache petrolcap transform 2020-06-29 21:57:44 +02:00
in0finite
ec43361325 play explosion sound 2020-06-29 19:08:04 +02:00
in0finite
99c1cf8ecc ped can not be damaged by explosion while he is in vehicle 2020-06-29 17:50:33 +02:00
in0finite
e5c6144706 ped damage handling is done by State classes 2020-06-29 17:12:48 +02:00
in0finite
9734b6f515 damage type can be specified when damaging object 2020-06-29 17:11:29 +02:00
in0finite
363ec0dd0e remove unused variable 2020-06-28 23:57:09 +02:00
in0finite
b8051fe2d9 don't use collider's transform position when checking for distance 2020-06-28 23:56:20 +02:00
in0finite
7da990e105 use bounds center if ClosestPoint() function does not work 2020-06-28 20:38:23 +02:00
in0finite
47c44355ba replace ExplosionPhysicsForce script from Standard Assets with custom script 2020-06-28 20:32:30 +02:00
in0finite
f865dd0051 vehicle's max health is calculated as power function of mass 2020-06-28 16:44:32 +02:00
in0finite
bfdb8a5ba0 use curve for adjusting damage over distance 2020-06-28 16:35:35 +02:00
in0finite
ba4e10bb3a explosion damage amount is a power function 2020-06-27 22:50:50 +02:00
in0finite
bc605534e6 draw gizmos sphere indicating explosion damage radius 2020-06-27 22:40:51 +02:00
in0finite
ba1ebf4213 don't try to damage ped if his health is <= 0 2020-06-27 22:12:22 +02:00
in0finite
16bd731403 ped can be damaged by explosion 2020-06-27 22:00:10 +02:00
in0finite
9d18c2ec55 inflict damage based on distance to closest point on all colliders 2020-06-27 21:55:04 +02:00
in0finite
b6b2037e97 explosion strength and upward modifier are proportional to squared root of vehicle's mass 2020-06-22 03:05:42 +02:00
in0finite
8871702e5b make some parameters configurable 2020-06-21 23:35:39 +02:00
in0finite
9678faa18a inflict damage to nearby objects 2020-06-21 18:21:15 +02:00
in0finite
b2af2ade90 add stats about vehicle's damage 2020-06-21 16:35:39 +02:00
in0finite
4b6223a025 change some params 2020-06-21 16:20:16 +02:00
in0finite
2e02d0dab2 modify strength of explosion based on vehicle mass 2020-06-21 15:43:19 +02:00
in0finite
44fe30d8df don't apply explosion force 2 times 2020-06-21 15:33:19 +02:00
in0finite
aaf9af8c3f destroy explosion when particle systems finish 2020-06-21 14:56:21 +02:00
in0finite
07d802ce8f add explosion VFX and explosion physics force 2020-06-21 14:15:20 +02:00
in0finite
c56dad1950 flame VFX done 2020-06-21 01:24:19 +02:00
in0finite
ea6e45b593 smoke VFX done 2020-06-21 00:33:55 +02:00
in0finite
d98643e70c explode exception-safe 2020-06-20 20:17:22 +02:00
in0finite
d4078d250e cleanup 2020-06-20 20:15:29 +02:00
in0finite
775af9f9cb apply different force amount on chassis 2020-06-20 19:56:55 +02:00
in0finite
b0cde397be randomize lifetime of detached parts 2020-06-20 18:06:24 +02:00
in0finite
bfb15e4c9c chassis have realistic mass 2020-06-20 18:05:12 +02:00
in0finite
075bfc3d2d detach chassis during explosion 2020-06-20 17:56:17 +02:00
in0finite
d4c8d83fcc add DescriptionForLogging property 2020-06-20 17:55:27 +02:00
in0finite
552043bcd7 cache "engine" transform 2020-06-20 16:23:53 +02:00
in0finite
7581f4ac0a unsubscribe from VehiclePhysicsConstants.Changed event when vehicle is destroyed 2020-06-20 16:21:29 +02:00
in0finite
b9852975af CmdRequestToDestroyMyVehicles() now explodes vehicles 2020-06-20 16:19:46 +02:00
in0finite
bd37b9f577 "Destroy all vehicles" button now explodes the vehicles, instead of destroying them 2020-06-20 16:18:09 +02:00
in0finite
41856f3def vehicle explosion logic done - vehicle parts are detached, have rigid bodies, and explosion force is applied to them 2020-06-20 16:16:11 +02:00
in0finite
5ba7751ef6 damaging vehicles works 2020-06-09 19:45:25 +02:00
in0finite
faf96838b9 implement basic vehicle damage logic 2020-06-09 18:34:15 +02:00
in0finite
29b7ae65f0 remove commented code 2020-06-06 20:45:44 +02:00
in0finite
19fc36d718 display info about messages in Misc stats 2020-06-06 20:04:10 +02:00
in0finite
81df1bb651 pool messages 2020-06-06 20:03:26 +02:00
in0finite
7623b3ce29 optimization 2020-06-06 19:02:43 +02:00
in0finite
cf0437e80a properly destroy messages 2020-06-06 18:41:50 +02:00
in0finite
394348745e converting on-screen messages to uGUI 2020-06-06 18:09:26 +02:00
in0finite
29ab0556c6 specify ignored layer mask for finding ground in Inspector 2020-06-06 15:54:04 +02:00
in0finite
fda86887f7 use random rotation when spawning players' peds 2020-06-06 00:53:26 +02:00