AM-*_*AM- 1 php time execution
早上好/下午好/晚上好,上网.我目前正在开发一个wap游戏并遇到了一个问题:对其他玩家施加长期影响.让我解释.
如果用户使用"即时"功能,那么它只是一个正常的命令链接executeAbility(); 如果用户施放了咒语,则脚本执行以下操作:
setPlayerState('casting');
sleep($cast_time);
executeAbility();
Run Code Online (Sandbox Code Playgroud)
但这只是一个简单的部分.现在,如果我们去一些更高级的技术,比如对玩家施加诅咒,我会迷失方向.我已经考虑过以下可能性:
$time=$_SERVER['REQUEST_TIME'];
$time_when_the_curse_finishes=$time+$curseDuration;
updateEnemyCurses($curseID,$endTime);
if ($time<$endTime) removeCurse();
Run Code Online (Sandbox Code Playgroud)
这可能看起来很漂亮,但它不需要考虑两件事:如果用户注销并在2小时内重新登录,他将花费整整两个小时进行诅咒,这种方法不能支持每x秒生效一次几秒钟的诅咒.例如:
诅咒之一.你每2秒受到1点伤害,持续10秒.
总而言之,我只需要一两个提示,我可以如何使上面的线成为可能.诅咒本身需要全局检查它的时间(不是页面重新加载),并且能够每隔x秒完成一次查询(在这种情况下是伤害记录),直到它在10秒内被移除.
我提前感谢您提供的任何提示!
您可能希望研究为此类"维护"工作设置cron脚本.
它可以以固定的间隔(即每秒)运行,并为所有玩家处理诅咒等效果
从这里开始:) http://en.wikipedia.org/wiki/Cron
编辑:正如其他人提到的那样(@ mark-b),最好澄清:使用cronjob来管理所有工作的单个脚本,而不是每个工作的多个cronjobs.
| 归档时间: |
|
| 查看次数: |
2123 次 |
| 最近记录: |