# 制作倒计时和CD
本篇教程获得第一期知识库必看教程奖。
获奖作者:凉寂蜀黍。
前段时间看见有萌新,使用time.sleep()来做计时,这样会导致整个程序停摆。
今天给萌新们分享一下,如何用帧数事件来做倒计时和cd。本教程针对萌新,大佬们(轻喷)也可以分享一下自己的方法。
适用对象:
- 刚接触开发、不熟悉api的开发萌新。
- 有一定python基础但不多的人。
- 不需要任何json基础 。
# 原理其实很简单
首先在代码最前方定义以下代码:
#格式为"玩家id":剩余时间帧数(int)
dictcd = {}
之所以要用字典,是因为在服务端中要考虑多玩家的情况,要把每个玩家的数据进行隔离。客户端可以直接创建int类型的cd值,不需要字典。
接着在需要用到cd的地方写逻辑:若cd值为0了,就可以让技能起效,并重置cd为900帧(一秒30帧) 。
若cd值不为0,提示冷却中。
然后在OnScriptTickSever事件中遍历字典dictcd中的键值对,把每个不为0的cd值减一(客户端也有相关事件)。
最后在cd=1时,即可执行cd到期对应的行为。(之所以在cd=1时执行,是因为cd=0会长期存在,cd=1在每次计时中只会触发一次) 。
若对你有帮助,请评论区留言让我看到,我还会继续做下去。
若有问题或建议,也请评论区留言或私信哦。