diff --git a/src/core/domain/environment/getEnvPtr.js b/src/core/domain/environment/getEnvPtr.js new file mode 100644 index 0000000..35ea034 --- /dev/null +++ b/src/core/domain/environment/getEnvPtr.js @@ -0,0 +1,11 @@ +function GetEnvPtr(Game, memory, Module, offsets) { + return () => { + const timeOfDay = Module + offsets[Game.client].environment.version[Game.build].timeOfDay; + + return { + timeOfDay, + }; + }; +} + +module.exports = GetEnvPtr; diff --git a/src/core/domain/environment/setTimeOfday.js b/src/core/domain/environment/setTimeOfday.js new file mode 100644 index 0000000..ac19938 --- /dev/null +++ b/src/core/domain/environment/setTimeOfday.js @@ -0,0 +1,11 @@ + +function SetTimeOfday(Game, Memory, Offsets, Module) { + const timeOfDayBuffer = new Buffer(0x4); + return (environmentStruct, { hour, minutes }) => { + const timeNormalized = ((3600 * hour) + (60 * minutes)) / 86400; + timeOfDayBuffer.writeFloatLE(timeNormalized); + Memory.writeData(environmentStruct.timeOfDay, timeOfDayBuffer, timeOfDayBuffer.byteLength); + }; +} + +module.exports = SetTimeOfday; diff --git a/src/core/logic/patterns.js b/src/core/logic/patterns.js index 7a6b5f1..af13501 100644 --- a/src/core/logic/patterns.js +++ b/src/core/logic/patterns.js @@ -93,7 +93,14 @@ export const alpha = { fix: new Buffer([0xE8, 0x94, 0x80, 0xFA, 0xFF, 0xB9, 0x09, 0x00, 0x00, 0x00, 0x8D, 0xB5, 0x70, 0xFF, 0xFF, 0xFF, 0x90, 0x90]) } } - } + }, + environment: { + version: { + ['0.5.3']: { + timeOfDay: 0xCB23B4 + } + } + }, }; export const tbc = { diff --git a/src/core/manager.js b/src/core/manager.js index 9f395a7..0bf20c6 100644 --- a/src/core/manager.js +++ b/src/core/manager.js @@ -1,6 +1,7 @@ /* eslint-disable consistent-return, no-restricted-syntax,padded-blocks */ const createCamera = require('./logic/camera.js'); const createGetCametaPtr = require('./domain/getCameraPtr'); +const createGetEnvPtr = require('./domain/environment/getEnvPtr'); const createEnableSpectate = require('./domain/enableSpectate'); const createDisableSpectate = require('./domain/disableSpectate'); const createEnableViewMatrixUpdate = require('./domain/enableViewMatrixUpdate'); @@ -10,6 +11,7 @@ const createEnableKeyboardControls = require('./domain/enableKeyboardControls'); const createSetPosition = require('./domain/setPosition'); const createSetCameraView = require('./domain/setCameraView'); const createSetCollision = require('./domain/setCollision'); +const createSetTimeOfday = require('./domain/environment/setTimeOfday'); const createSetSpeed = require('./domain/setSpeed'); module.exports = (process, Module, Memory, window, Offsets) => { @@ -50,7 +52,14 @@ module.exports = (process, Module, Memory, window, Offsets) => { SetCameraView, SetCollision, )(); + + const setTimeOfday = createSetTimeOfday(Game, Memory, Offsets, Module); + const environmentStruct = createGetEnvPtr(Game, Memory, Module, Offsets)(); + const environment = { + setTimeOfday: (timeOfDay) => setTimeOfday(environmentStruct, timeOfDay), + }; return { camera, + environment, }; }; diff --git a/src/renderer/components/sections/general.vue b/src/renderer/components/sections/general.vue index 1a236fe..19e275b 100644 --- a/src/renderer/components/sections/general.vue +++ b/src/renderer/components/sections/general.vue @@ -17,7 +17,7 @@
- +