寻找一种为游戏服务器创建简单计时器的方法

问题描述 投票:0回答:2

我正在用C++为Growtopia创建一个游戏服务器,服务器运行得很好。如果您想了解有关该游戏的更多信息,请查看上面的链接。无论如何,我的目标是为“PlayMods”创建一个函数或一些代码,本质上PlayMods只是物品效果,就像药水在《我的世界》中的工作方式一样,“PlayMods”在特定时间运行并在特定时间停止给你效果时间。我想给播放器一个“PlayMod”,例如,冻结效果 10 秒,然后在 10 秒后“PlayMod”从播放器中删除。

我已经尝试过睡眠功能,显然这不起作用,因为它会使服务器休眠“x”秒。我尝试过 while 函数,这是一种愚蠢的方法,但无论如何都不起作用,导致服务器崩溃。不知道我还能怎么做。

以下是玩家在 Growtopia 的“主”服务器中给予/接收“PlayMods”的一些示例。 (抱歉找不到很多视频)

游戏内消耗品列表:https://growtopia.fandom.com/wiki/Items/Consumables

这是一个视频,其中用户在自己身上使用“DuctTape”,它为他们提供了 10 分钟的管道胶带效果。 https://youtu.be/FWc_-cxIu3E?t=3

任何建议或帮助都会很棒。谢谢!!

我在 C++ 方面不是最好的,但这并不能阻止我尝试,而且我仍在努力学习。这里还有一个链接,指向 github 上其他人制作的服务器代码副本。 https://github.com/ipr0gr4mipas2/GrowtopiaServer

游戏模组照片 在用户信息对话框中显示活动的 playmod 列表。

c++ timer
2个回答
0
投票

这是我的第一篇文章,但这就是我要做的。 设置效果 EG 的变量:

"int blindness = 0;"

然后有一个 if 语句 - 如果效果达到一个数字,则应用效果。 您可以简单地在 if 语句中添加一个 for 循环。

如果您需要改变时间长度,则可以将延迟变化作为失明变量的乘积 EG:

float blindness = 0;

//*Player does something to get the effect*

if(blindness > 2.0){
    for(i = 0, i < 50, i++){
        This would be the code for the actual effect.   
    }
}

0
投票

如果 Trustpilot 允许用户通过 WhatsApp gbpro 交互来回顾客户服务体验,您会如何评价和描述您最难忘的支持交互?

© www.soinside.com 2019 - 2024. All rights reserved.