求生之路插件编写入门教程(七)
什么都只会一点
编辑于 2022年06月06日 19:28
收录于文集
共10篇

前言

时隔挺久,目前SourceMod平台已经更新至1.11,本人不会1.11新语法(没时间学),所以课程仍然采用旧语法讲解(适用于sourcermod 1.8+)。

这节课是计时器的学习,计时器内容相对较多,先给大家讲解两种常用的计时器,后面会再开一课进行详细更多内容的补充。

学习门槛:请确定你掌握了至少一门高级程序设计语言的基础语法,并且拥有开服经验以及掌握了基本的插件安装流程

PS:教程并不一定会长期更新,UP会根据反响来确认后续是否更新,以及更新速度

源码展示

1. 玩家出生事件

在玩家复活时调用事件,事件获取参考第6课。

2. 判断对象是否是真实的玩家

获取玩家ID,使用IsFakeClient函数进行判断,该函数能够识别出当前客户端是否是虚假的(电脑玩家Bot),使用!对判断进行取反,能够筛选出真实的玩家。

3. 创建延时计时器

本次课程的重点内容,CreateTimer用于创建计时器:

第一个参数是延时时间,浮点型,我这里设置的是延时10秒

第二个参数是回调函数,10秒钟后会自动调用这个自定义函数

第三个参数是传参,调用回调函数时是否携带参数,不带参数用下划线“_”占位,带参回调函数后续拓展讲解计时器时会进行补充

第四个参数时标志位,大部分都不常用,TIMER_FLAG_NO_MAPCHANGE用于防止过关时计时器仍然在运行

总结:这段代码用于创建一个延时为10秒的计时器,时间到了之后执行Timer_PlayerFirstSpawn函数。

4. 延时计时器回调函数

这段可以照抄,并不需要更改什么内容。

5. 创建循环计时器

在延时计时器回调函数中我又定义了一个计时器,这个计时器与上述计时器只有标志位不同,TIMER_REPEAT用于标注当前计时器是一个循环计时器,每隔一秒重复执行回调函数。

6. 循环计时器回调函数

这个计时器只是重复执行count自加1,直到count为10时调用Plugin_Stop停止当前计时器的循环,Plugin_Continue表示继续执行定时器,循环计时器必须有返回值,不然会报告异常。

7. 插件测试

可以看到当玩家进入时执行玩家出生时调用函数,十秒后执行延时定时器的回调函数,然后每隔一秒执行循环计时器函数,直到执行Plugin_Stop后停止计时器。

以上为本次课程的全部内容了。转载请注明出处,作者:凌鹿。