- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我会尽力以最好的方式解释我的问题。我不是要代码,只是要最好的方法。
我想创建一个浏览器游戏并利用时间来升级东西、构建等。
例如, build 1 栋房子需要 1 小时。
因此,我将首先保存用户执行操作时的timestamp+(60*60)
。
我的问题是,如何最好地更新它?
我想到的一种方法是添加功能来检查用户的每个页面 View 是否已完成。但如果他没有登录,更新就不会发生。
我想到的第二种方法是对任何用户的每个页面 View 检查每个注册的用户。但效果并不好,如果没有用户登录就会出现问题。
有什么建议吗?
最佳答案
我让我的游戏简单地完成它,没有 crons。当玩家想要一些需要时间的东西时,我只是用结束该工作的适当时间更新了他的数据库信息(列只是示例)
UPDATE player SET jobend = UNIX_TIMESTAMP() + (60*60*4) # ending in 4 hours
然后,每个包含剩余时间信息的页面,我都使用了如下内容:
SELECT (jobend - UNIX_TIMESTAMP()) AS jobremaining FROM player
我使用 strftime 正确格式化了时间我向用户展示了它。如果剩余时间为负数,则工作完成。不需要绝对计数,因为用户在连接时就可以对作业执行某些操作。
当玩家刚刚更改页面或执行其他操作时,我有一个功能,我只是在用户在线时检查所有及时事件(以便捕获任何负计时器),然后向 javascript 呈现任何更改(我发布了 javascript 计数器每页)
现在,如果您谈论实时更新,cron 就是一种方法,但您确定游戏需要它吗?我自己也问过这个问题,答案是否定的。
编辑
如果另一个玩家看到按计划 build
页面(假设页面),我会进行相同的计算;如果某个特定玩家的时间为负数(无论其他玩家是否看到该页面),我只会用建筑物奖励他(在数据库中我进行所有更改),即使他离线。这并没有什么坏处,因为他无论如何也做不到。其他玩家只会看到他有一座建筑物。这里的关键是,无论玩家是否连接到游戏,我都会执行所需的更新 PHP 代码;只要至少有一名玩家登录,我就会为所有内容执行进度功能。这并不像听起来那么慢(仅使用访问特定页面的连接播放器来更新所有播放器)。您只有一个“作业”表并根据当前时间检查计时器。更像是获取负数的单个查询。
关于php - 在特定时间戳更新信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021182/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!