设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 162|回复: 6
打印 上一主题 下一主题

[有事请教] 存档时间和现实时间

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2329
在线时间
350 小时
注册时间
2021-9-20
帖子
109
跳转到指定楼层
1
发表于 2025-5-24 02:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50星屑
请教各位大佬,如何做到在每次读档时,用当前的现实时间和存档时的时间比对,算出差值,然后用差值作为系数,与游戏内的一些变量做计算。

比如一个放置游戏,下线保存后,1天后上线,获得这段时间的资源收成。

最佳答案

查看完整内容

JavaScript中可以用var date = new Date()[/pre]获取当前设备的当前的时间并保存到变量time里面 这个time可以用time.getFullYear(),time.getMonth() + 1,time.getDay(),time.getHours(),time.getMinutes(),time.getSeconds(),来获取年月日和时分秒, 要做计算的话在存档的时候将数据保存到里面,读档时提取出来,然后再获取一次计算差值 找到rmmz_managers.js文件的第389行,如法炮制添加代码即可DataManager.makeSaveConten ...

Lv2.观梦者

梦石
0
星屑
851
在线时间
80 小时
注册时间
2020-6-1
帖子
6
2
发表于 2025-5-24 02:59:12 | 只看该作者
本帖最后由 13851402 于 2025-5-24 08:20 编辑

JavaScript中可以用
JAVASCRIPT 代码复制
  1. var date = new Date()
获取当前设备的当前的时间并保存到变量time里面
这个time可以用time.getFullYear(),time.getMonth() + 1,time.getDay(),time.getHours(),time.getMinutes(),time.getSeconds(),来获取年月日和时分秒,
要做计算的话在存档的时候将数据保存到里面,读档时提取出来,然后再获取一次计算差值
找到rmmz_managers.js文件的第389行,如法炮制添加代码即可
JAVASCRIPT 代码复制
  1. DataManager.makeSaveContents = function() {
  2.     // A save data does not contain $gameTemp, $gameMessage, and $gameTroop.
  3.     const contents = {};
  4.     contents.system = $gameSystem;
  5.     contents.screen = $gameScreen;
  6.     contents.timer = $gameTimer;
  7.     contents.switches = $gameSwitches;
  8.     contents.variables = $gameVariables;
  9.     contents.selfSwitches = $gameSelfSwitches;
  10.     contents.actors = $gameActors;
  11.     contents.party = $gameParty;
  12.     contents.map = $gameMap;
  13.     contents.player = $gamePlayer;
  14.     // 添加代码保存相关内容
  15.     contents.lastplaytime = new Date();
  16.     return contents;
  17. };
  18.  
  19. DataManager.extractSaveContents = function(contents) {
  20.     $gameSystem = contents.system;
  21.     $gameScreen = contents.screen;
  22.     $gameTimer = contents.timer;
  23.     $gameSwitches = contents.switches;
  24.     $gameVariables = contents.variables;
  25.     $gameSelfSwitches = contents.selfSwitches;
  26.     $gameActors = contents.actors;
  27.     $gameParty = contents.party;
  28.     $gameMap = contents.map;
  29.     $gamePlayer = contents.player;
  30.     // 添加读取代码,读取内容
  31.     var time = contents.lastplaytime;
  32.     //  打印输出
  33.     console.log(time);
  34. };
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
506
在线时间
90 小时
注册时间
2022-2-21
帖子
23
3
发表于 2025-5-24 08:14:37 | 只看该作者
13851402 发表于 2025-5-24 07:25
JavaScript中可以用var date = new Date()[/pre]获取当前设备的当前的时间并保存到变量time里面
这个time可 ...

不错不错学到了 我试下
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4632
在线时间
1388 小时
注册时间
2018-1-16
帖子
394
4
发表于 2025-5-24 10:42:47 | 只看该作者
var tmp = new Date();
$gameVariables.setValue(193, tmp.getYear()+1900);
$gameVariables.setValue(194, tmp.getMonth()+1);
$gameVariables.setValue(195, tmp.getDate());
$gameVariables.setValue(196, tmp.getHours());
$gameVariables.setValue(197, tmp.getMinutes());

我用这个读取本地时间,第一次打开【离线系统】自动读取,带入,然后第二次登陆游戏回自动判断,从而计算过了多久,虽然可能会造成玩家修改系统时间的情况下,但是如果无伤大雅的离线也还行
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2329
在线时间
350 小时
注册时间
2021-9-20
帖子
109
5
 楼主| 发表于 2025-5-24 14:42:30 | 只看该作者
13851402 发表于 2025-5-24 07:25
JavaScript中可以用var date = new Date()[/pre]获取当前设备的当前的时间并保存到变量time里面
这个time可 ...

var date = new Date()

请问。。。这一句添加到哪里?
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
506
在线时间
90 小时
注册时间
2022-2-21
帖子
23
6
发表于 2025-5-24 16:15:47 | 只看该作者
kingybk1976 发表于 2025-5-24 14:42
var date = new Date()

请问。。。这一句添加到哪里?

contents.lastplaytime = new Date();
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
851
在线时间
80 小时
注册时间
2020-6-1
帖子
6
7
发表于 2025-5-24 21:27:24 | 只看该作者
kingybk1976 发表于 2025-5-24 14:42
var date = new Date()

请问。。。这一句添加到哪里?

看完全文,我写了放在哪里的,代码也提供了,也有注释,剩下功能自定义,如果你没有脚本基础,建议先学习一下JavaScript
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-6-2 00:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表