Для сохранения переменной lastOnlineTime в объекте datasave, вы можете модифицировать функцию offlineGain следующим образом:
function offlineGain() {
money += gainPerSecond * 20 * (currentOnlineTime - lastOnlineTime);
console.log(gainPerSecond * 20 * (currentOnlineTime - lastOnlineTime) + " и разница: " + (currentOnlineTime - lastOnlineTime));
whatsYourCurrentTime();
datasave.lastOnlineTime = lastOnlineTime;
localStorage.setItem('lastOnlineTime', lastOnlineTime);
saveGame(); // Вызываем функцию сохранения игры для обновления других переменных в объекте datasave
}
Теперь при вызове функции offlineGain(), переменная lastOnlineTime будет сохраняться и обновляться в объекте datasave вместе с другими переменными, когда функция saveGame() будет вызываться.
Пожалуйста, убедитесь, что функция saveGame() вызывается после обновления переменной lastOnlineTime в функции offlineGain(), чтобы все изменения были сохранены в объекте datasave.
примечание: offlineGain() расположен в файле clicker.js который инициализируется в HTML первее чем saving.js (в нём содержаться два нижних кода)
на всякий случай скину ещё код вычисления lastOnlineTime() (мне всё равно что оно может выглядеть глупо)