【小学生向】SourceMod插件开发教程 (四) 为你的服务器添加插件配置文件吧
上一期我们学会了如何给服务器添加玩家加入时的消息,但是如果就这样编译完插件之后再放到服务器里边就还要重启真的太麻烦了,所以这个时候我们就需要给插件增加一个配置文件
上期没有学的可以去看一下
【小学生向】SourceMod插件开发教程 (三) 为你的服务器添加玩家加入消息
好的那么我们就正式进入今天的课程了,首先你需要了解一个新的功能,他就是"AutoExecConfig"他的本意是生成配置文件如果你是小学生可以暂时理解为新建一本书那我们该如何运用他呢?看图吧
可以看到我们给他放在了插件运行时首先调用的地方所以意味着在插件运行的时候会自动生成一个配置文件我们会发现有一个词是"true"这意味着什么呢?在这段语句中true他代表的就是是否覆盖掉源文件这里我们还可以选择false不过如果选择false就无法覆盖了,生成的配置名字你们可以随便修改,那么我们编译完成之后给他运行试一下吧?
运行成功后我们会发现在服务端的 cfg\sourcemod 里面多出一个文件这份文件的名字跟之前我们在编写的过程中写的名字是不是一模一样?
这里我用test_Config作为配置名字
可以看到在cfg\sourcemod的底下多出了一个test_Config.cfg的文件这个就是我们的配置文件(书)
但是我们将它打开会发现空空如也啥都没有,那是因为我们还没有为它添加新的一页,那么如何添加呢这里我们就又要了解一个新的词语了
他就是"ConVar"如果你学习过一些语言那就更简单了解了它的本意是声明一个全局变量如果你是小学生可以理解他为新建新的一页,这里我们就新建一个名为"Config"的新页
请注意这里出新建一页不要放在任何一个函数(组)的下面因为他是声明一个全局变量不懂的只要知道不要放进去就行了这里我们直接将它放在库函数加载的下面
这样我们就有了新的格式,小学生可以理解为
ConVar(新建一页的命令) Config(新建一页的名字)
那么这里我们就新建了一个名为Config的页那么我们该如何将想要传达给员工的命令写在这一页上呢?很简单!我们只需要在插件启动的组那里添加一条这个
Config = CreateConvar("这里是这一页的主题(请使用英文)","这里是可以更改的内容","这里是介绍这个功能的信息",FCVAR_SPONLY|FCVAR_NOTIFY);
其中Config就是你这一页的名字要跟你新建的那一页名字对应
"CreateConvar"你可以将它理解为新建这一页的内容
"FCVAR_SPONLY"是一个规则他的意思是禁止玩家去修改这个内容
"|"就是用来区分规则的符号
"FCVAR_NOTIFY"同样的也是一个规则是更改完成之后将通知玩家
这里暂时先按照我这样去设置:
Config = CreateConVar("test_text","%N 欢迎你加入游戏","可以在此处更改它的功能",FCVAR_SPONLY|FCVAR_NOTIFY);
这样我们将此插件编译完成之后给他放到服务器内他的cfg文件就会新增一个内容
但这还不足以让员工听他的话你们可以试一下即便修改了之后再服务器内还是会显示这条内容
所以我们必须要让员工听话,那么怎么让他听话呢?看图
可以看到我们在玩家进入服务器时触发的组中添加了一条
"int num = GetconVarInt(config)"
这段话你可以理解为将我们之前写的Config那一页的文本复制到num这里来
然后我们将num直接放到输出的文本那里"PrintToChatAll("%d"num)"他的意思就等于"PrintToChatAll("123",num)"这样我们就制作成功了我们将它再次重新编译放到服务器中看看会发生什么吧!
成功的显示出来了!那么我们在配置文件中改成321会发生什么呢?
看来我们的测试成功了呢!
因为本期使用的是%d只会包含有符号的16进制整数如果你想要显示字符串可以等下一期出一个基础综合教程
那么本期就到这里了给个三连吧
同类推荐
GO圈日常事:狂哥自奶VP“0-3”出局
【CSGO】device归来首秀状态火热。奥拉夫表示不知道自己在FaZe替补中。
CS2 9月15日更新 调整了自动售货机的重量
incsgo端午节优惠码dota2sites首充赠送5%
【CSGO】一夜之间全部开燃?今天的饰品涨得有多疯狂?"出租热"规避价格风险将会愈演愈
9月8日!NAVI正式公布s1mple纪录片首映日期
安特卫普MAJOR传奇赛第四日:最后的生死局,谁才是踩点过线的那个人?
没有教练也能暴打老牌强队?MAJOR第三日比赛:ENCE大胜,A队危矣
CSGO全球服务器宕机,Niko等人却暗示会有大更新
VP总裁:乌克兰的朋友要求禁止任何俄罗斯队伍参加Major—采访#3【CSGO】
Csgo Demo/如何提高Demo的cmd和tickrate
欧洲RMR B组:哥本哈根火焰和Gambit提前晋级,G2与A队出线战遭遇