AutoConfigs 部分
https://sm.alliedmods.net/api/或者用notepad++ 和 sourcemod语法高亮插件(高亮插件部分高级api不支持,可以自己添加)
AutoConfigs 就一个函数,用于产生config文件。
AutoExecConfig
语法原型:
native AutoExecConfig(bool:autoCreate=true, const String:name[]="", const String:folder[]="sourcemod");
用法:
autoCreateIf true, 如果文件不存在将会自己添加。
name文件的名字
foldercfg/文件夹下 默认是 "sourcemod."文件中/一般不用填写使用默认值。
注意:
Specifies that the given config file should be executed after plugin load.
OnConfigsExecuted() will not be called until the config file has executed, but it will be called if the execution fails.
因为英语不好所以保留注意的原文。
意思是在插件加载后必须先执行config file(cfg文件)也就是先运行配置文件。
因为OnConfigsExecuted()函数会等待cfg文件被执行。但是如果cfg文件运行失败OnConfigsExecuted也会被调用。
这个函数一般使用在OnPluginStart()
{
AutoExecConfig(true,"我是一个配置文件")
}
值得注意的是AutoExecConfig函数制作的的配置文件是什么
CreateConVar("ConvarName","2","我希望插件默认使用该值",FCVAR_DONTRECORD,true,0,true,10);
Syntax:
native Handle:CreateConVar(const String:name[], const String:defaultValue[], const String:description[]="", flags=0, bool:hasMin=false, Float:min=0.0, bool:hasMax=false, Float:max=0.0);
这个函数一般使用在OnPluginStart()
{
CreateConVar("ConvarName","2","我希望插件默认使用该值",FCVAR_DONTRECORD,true,0,true,10);
AutoExecConfig(true,"我是一个配置文件");
}
这样一个配置文件就完成了。
CreateConVar中FCVAR_DONTRECORD这个flags文件在该api的文件console中有枚举。
而FCVAR_DONTRECORD表示不再cfg文件中写出该ConVar的配置文件部分。
当然至于配置文件什么样,这里就不多说了,玩过插件应该都知道。
顺便再提下HookConVarChange
Syntax:
native HookConVarChange(Handle:convar, ConVarChanged:callback);
该函数实际用处不大,因为是一个很老的api
当时CreateConVar还没有bool:hasMin=false, Float:min=0.0, bool:hasMax=false, Float:max=0.0这一个限定部分。
Syntax:
native Handle:CreateConVar(const String:name[], const String:defaultValue[], const String:description[]="", flags=0);
当然现在CreateConVar已经完备了,所以可以忽略HookConVarChange,除非你需要一些特别的功能,但是实际使用确实意义不大。