全部函数
前面的示例脚本中像Signal:Stop()
这样的语句,实际是调用了ILuaSignal.cs里面的bool Stop();
在Interfaces目录下的所有接口都可以像上面那样调用。例如:Misc:Sleep(1000)
控制服务器的脚本,通常从调用Server:GetAllServers()
函数开始。
下面是一个选中所有ws.tls服务器的小脚本:
|
|
其中:
- Each()是预定义函数,源码在LuaPredefinedFunctions.txt文件中
- coreServ的类型是ICoreServCtrl,分为4个模块,通过调用
Get***()
方法选用相应模块。每个模块在CoreCtrlComponents之中声明。
上面代码使用coreServ
,coreState
这么奇怪的变量名是因为这两个关键字有代码提示。还有coreLogger
,coreConfiger
两个关键字也有代码提示。
V2RayGCon v1.8+引入了一个新的关键字wserv简化各模块调用。
|
|
Wrap()的作用是把一个coreServ包装成一个IWrappedCoreServCtrl,然后可以省掉coreServ:GetCoreStates()这些步骤,直接调用各模块里面的函数。wserv:Unwrap()可以还原出coreServ。这层包装有性能损耗,一方面性能损耗巨大(多用一倍时间),另一方面性能损耗微乎其微(50万次函数调用才多用1秒,因为每次调用只有2μs),所以想用就用吧,不用太在意性能。