许多基于网络的文字游戏都有完成现实世界时间的任务。一个基本的例子是你需要处理一些资源的游戏。您可以“升级”您的加工厂,但这样做需要6个小时。如果您选择进行此升级,除非看到剩余时间屏幕,否则在游戏过去6小时之前,您将无法在游戏中执行任何其他操作。有没有人建议如何在用PHP编写的游戏中实现这一目标?
答案 0 :(得分:1)
实际上非常简单:
现在,当用户启动新任务时,您会记录任务的启动时间和任务,并添加完成任务的时间。您将其存储在数据库中。用户下次登录游戏时,会检查该用户是否有任何活动任务,如果是,则显示剩余时间。
所以你可以有一张表Tasks
和
另一个User
表和一个Active_Tasks
在PHP脚本中,您有相应的代码来查询和更新这些表。
尝试从该说明中获得一些效果,当遇到任何障碍时,请询问有关特定部分的新问题。
答案 1 :(得分:1)
首先,大部分游戏都不是用PHP编写的(我熟悉你所说的,因为我玩过它们)。
但如果在php中执行它是必须的,那么你还需要使用某种类型的数据库(你也可以使用mysql作为你的标签之一)。
我不确定你想让你的游戏做什么,例如:假设游戏的目标是让用户互相竞争对手或其他东西。
表:用户
表: business_types
表: users_businesses (一个用户可以拥有多个商家)
表: users_resources
这只是一个例子......你需要cron工作来为每个用户每小时拥有的业务奖励资源,即使他们没有登录也能收集资金。
但是,我再次建议这不是在php。
答案 2 :(得分:0)
答案取决于几个不同的事情。在php中有多种方法可以做到这一点。 例子:
如果您在升级“加工厂”时不想发生任何其他事情,可以使用php的sleep或usleep功能。我会从php.net读取文档,但基本上它们会延迟执行php函数x毫秒。
如果您仍然需要用户能够在升级“处理工厂”时执行其他任务,那么您可以通过时间功能获取启动该功能时的确切unix时间戳。当您在游戏中运行其他功能时,您可以使用其中一个功能来检查时间戳,该变量包含等待升级过程完成所需的时间。
希望这会有所帮助。