- fix: add check to avoid a race condition when converting the data
Change version to 12, because of offset changes. This leads to a rev change and not just an update like it was before.
- added trailer wearBody, see changes on the telemetry. It is placed after the other wear-values in the trailer
- Trailer wear body
- multiplayer time offset
- most of the flags for events will now be flip indicator.
- Old Way: true -> event fires, after short time flag is changed to false
- New Way: state change -> event fires, state unchange -> no event
- so the event itself does not change, however, the indicator flag change
- some minor code changes
- rev change to 11
- changes from Rev Pre 11
newTimestamp
of theTelemetryData
-Event is deprecated and will be removed in a later release
- update .net Version to 4.8
- update C++ Platform Tools to v142
- update sdk to 1.13, remove old sdks, current sdk is now placed in
scs_sdk
instead ofscs_sdk_{version}
- Only a few changes: 5 new Truck values (see below)
- update readme.md
- Hazard Warning (Ets2/ATS 1.41)
- Differential Lock (Ets2/ATS 1.41)
- Lift Axle and Indicator, Trailer Lift Axle and Indicator (Ets2/ATS 1.41)
- 5th Zone added
lightHazard
afterlightsReverse
, changing offset of the following 7 values - 5th Zone added the differential lock and lift axle values (5 new values). Placed after
shifterToggle
, changing offset of the following 2 values
- fix (again) of the
onJob
,jobFinished
flag whenjobDelivered
andjobChancelled
happens. (see Rev 10 Update 5)
Later added:
- fix resetting job values when using a train
- fix of
RemainingDeliveryTime
. Trough positioning ofGameTime
andDeliveryTime
in the shared memory, this value was never calculated. #66- To avoid broke other stuff that use this or the shared memory, the shared memory layout wasn't change
- Before when setting the
GameTime
theRemainingDeliveryTime
was set, butDeliveryTime
wasn't at that point. - Now we set
GameTime
before and whenDeliveryTime
is set we also setRemainingDeliveryTime
which also makes much more sense.
- fix that the gameplay events are called before the data is updated. Now the data is updated and then events are called.
- the
amount
by theRefuelEvent
should now delivere better values (sometimes it was a tick behind, that shouldn't be the case anymore). - fix that
JobCancelledEvent
is called when a profile is changed, but had an active job (seems to happen on the first profile change).
- Update to 1.12
- only adds new fine cases to the
FinedEvent
- only adds new fine cases to the
- when changing the profile or truck an
RefuelPayedEvent
can be called. I thought i fixed it, but i need to rethink how to
- Because new fine values can be longer than before (instead of 16 Byte it is now 32 Byte) some values moved at the end of Zone 9.
- ferry and train event values
-
now change
onJob
andjobFinished
with the present ofjobDelivered
andjobChancelled
. Before it is changed after leaving the experience screen or sometimes when enter drive mode.- Job values are also reseted directly with the event
-
remove variable
i
fromscs_config_handlers.cpp
andscs_gameplay_event_handlers.cpp
-
now
isCargoLoaded
won't be reseted twice by callingset_job_values_zero
, instead theplannedDistanceKm
is reseted correctly -
value type changed timestamp is know a
ulong
and not auint
anymore (sdk value isunsigned long long
) -
added 2 new values:
simulation timestamp
andrender timestamp
both areulong
values similar to thetimestamp
-> changes in Shared Memory -
the
update
ortimestamp
bool of the Data Event is now for some special cases also set to true:- (normal case)
timestamp
change - one of the critical events values change (
jobDelivered
,jobCancelled
,Train
,Ferry
andonJob
). Why? they could happen if thetimestamp
did not change - if both cases are false we check if the
pause
state change. Why? similar to above thetimestamp
did not change sometimes
- (normal case)
-
Shared Memory Changes:
-
Zone 1 is modified ->
time
change tounsigned long long
,simulatedTime
andrenderTime
added, movedpaused
behindsdkActive
-
- Update
Readme.md
- Change
update.md
tochangelog.md
- Add
refuel end
event and changerefuel
torefuel start
- Add
refuel payed
event. Instead to fire when you stop refuel likerefuel end
it will fired when you start the engine. Also this is the event for the later comingrefuel amount
value. - Add
refuel amount
. After therefuel payed
event this value contains the amount of fuel that was refueled between therefuel start
andrefuel payed
event.- This value could be a bit different to the in-game value, but most of the time it should be really similar. NOTE: if you pay in game, but didn't start the engine and start again to refuel the value in-game is the whole refuel amount and this value will only be the new refuel amount
- I tried to calculate the exact value. But there could be a really small difference to that value (maybe up to
+-0.1
, maybe in some special cases more. If you think it is completely wrong create an issue)
- Add two fields to the GamplayEvents
JobDelivered
andJobCancelled
:Started
andFinished
. The values inJobDelivered
andJobCancelled
will be the same. That means for best results you should get the data when the event is fired- NOTE:
JobCancelled
: If the game is closed after or the profile is changed the start value will be wrong, because the Starting Time is set through the appearance of thejob
values of the sdk. On the start of a profile the value will be overwritten, because thejob
values are "new". Same thing happens when the sdk is restarted. If you want a "save" value, you may need to make a backup yourself. The valueStarted
is set in the moment a new job is started and not bounded to the event itself. I will add some note to that in the documentation of course - Note:
JobDelivered
: Similar problem toJobCancelled
, but it has an backup property. The backup property calculate the starting time through thefinished
andDeliveringTime
value. The values should be equals. You can choose which values you want to use. - Additional: If you do not start the simulation (start driving) the timestamp won't updated to the game time of the current profile and can lead to wrong starting times
- NOTE:
- removed
memset
at shutdown call to avoid waiting time (leeds to shutdown time of ets2/ats of multiple minutes) - fix update through the remove of
memset
thesdkaktive
field was not set to false. Fixed that (the DLL of this release does not contains this fix)- some additional values will be set to 0:
- SDK Version
- Game
- Game Version
- Telemetry Version
- TimeStamp
- Common:
- Scale
- GameTime
- some additional values will be set to 0:
Note to that may in a future release all values will be reset again, but i need to find a way that want create that high closing time for some users.
-
Shared Memory Changes:
-
Zone 4 end is modified (floats) ->
gameplas_f.refuelAmount
added, sojob_f.cargoDamage
moved 4 bytes -
Zone 2 end is modified (uints) ->
jobStartingTime
andjobFinishedTime
added, nothing moved
-
-
Known Bugs
- if you don't own a truck and starts the 2nd job you will receive a "Refuel payed" event. (issue #55)
update to SDK Version 1.11
- Added PlannedDistanceKm value (Unsigned Integer Value)
- Note to the shared Memory: zone 2 is modified (Unsigned Integer, Config Values). -> One new value was added (plannedDistanceKm). The following unsigned integer values has so a new offset. Other Zones shouldn't change.
- Add refuel event (based on last fuel value and current fuel value).
- fix code ... documentation says
Local\SCSTelemetry
code says still the old location. Now the shared memory files isLocal\SCSTelemetry
like thereadme.md
tells. - update sdk from 1.9 to 1.10 for the other compiler settings in the solution file (thanks to kniffen #47)
- fix for external contracts (thanks danielalmeida1481 #48)
- also remove redundant event
jobFinished
, because it is fired together withjobDelivered
orjobCancelled
. The value in c++ and shared memory is still there, but no functionality for other projects for the moment.
- change
DefaultUpdateInterval
from 25ms to 100ms of the Shared Memory File refresh timer to avoid crashed until i (or someone) have a better solution (see issue #38) - added value
SdkActive
that could create problems if not update both parts of the project. It's only a byte/bool but on the first place in the shared memory -> the update function won't work when not updated both without small fix (offset + 1, 2 or 3 at the begin) - c# library will going in
paused
state whenSdkActive == false
. Means that the update rate of the shared memory is now 1 second and not higher, get back to high update rate when sdk is active again - values are now reset when the game is closed correct (see #39). Crashes or kills of the game won't reset the values
- c# demo now has a status label that shows the current update rate of the sdk
A lot changes here: update to SDK Version 1.10
- shared memory files size increased (16kb to 32kb), because it can handle up to 10 trailers... that needs already a lot of space
- structure of the shared memory file changed a lot through new order and new attributes
- implement gameplay events from the api
- added versions support (game sdk version) eg. for ets2 it is actually 1.14, but 1.13 is still working. With comming updates 1.13 will may deleted, because it could leed to errors or to many code. So should work for 1.27 up to 1.35+ for now. Possible also lower versions.
- mostly added the new cool stuff of the sdk for now, more (e.g. linux support, logging, ...) will come in a later update
- find and fixes a few bugs will creating new content (hopefully no new bugs)
- notice: job canceled
and tollgate(tollgate works, but only if you pay and not your customer) seems not to work atm - demo was updated but it's not working good with the 10 trailer updated. Avoid to open tje trailer page or you need to restart the demo. It will freeze the ui. (To high update rate of that mutch text, when game is paused ui will also stop freezing)
- new events to register (tollgate, train, ferry, fine, job delivered,... ) and some removed (trailer connected, disconnected) but you could create your own connected/disconnected listener if you need them again
- a lot of other small thinks. i will start early to write update notes the next time (hopefuly)
- some documentation for new functions, values etc.