Lua库文件
# Lua库文件
* **使用时请将库名+函数名一起使用 例如entities.GetLocalPlayer()**
## 实体 (entities)
* **FindByClass( <span style="color:#ff0000">类名</span> )
查找具有指定类名的所有实体并将其放入Table表中**
* **GetLocalPlayer()
返回值为获取玩家实体**
* **GetByIndex( <span style="color:#ff0000">索引</span> )
返回值为按索引获取实体**
* **GetByUserID( <span style="color:#ff0000">用户ID</span> )
返回值为按索引用户ID实体**
* **GetPlayerResources()
返回值为玩家资源实体**
## 客户端 (client)
* **WorldToScreen( <span style="color:#ff0000">向量</span> )
将世界位置转换为屏幕位置 (x,y)**
* **Command( <span style="color:#ff0000">指令</span> , <span style="color:#3232CD">限制状态</span> )
在游戏控制台中运行指令**
* **ChatSay( <span style="color:#ff0000">信息</span> )
在聊天栏中发送信息**
* **ChatTeamSay( <span style="color:#ff0000">信息</span> )
在团队聊天栏中发送信息**
* **AllowListener( <span style="color:#ff0000">事件名称</span> )
请求从服务器发送指定的游戏事件**
* **GetPlayerNameByIndex( <span style="color:#ff0000">索引</span> )
返回值为按索引获取玩家名称**
* **GetPlayerNameByUserID( <span style="color:#ff0000">用户ID</span> )
返回值为按用户ID获取玩家名称**
* **GetPlayerInfo( <span style="color:#ff0000">索引</span> )
获取玩家信息, 返回值如下列表:**
|功能名|变量名|阈值|
|-|-|-|
|用户名|"Name"|"用户名"|
|用户ID|"UserID"|数字|
|SteamID|"SteamID"|"STEAM_0:?:?"|
|是否为Bot|"IsBot"|true/false|
|是否为GOTV|"IsGOTV"|true/false|
* **GetLocalPlayerIndex()
返回值为获取本地玩家索引**
* **SetConVar( <span style="color:#ff0000">名称</span> , <span style="color:#3232CD">阈值</span>, <span style="color:#E47833">限制状态</span> )
设置游戏指令**
* **GetConVar( <span style="color:#ff0000">名称</span> )
获取游戏指令**
## 全局 (globals)
* **TickInterval()
返回值为服务器的Tick间隔**
* **TickCount()
返回值为客户端的Tick计数**
* **RealTime()
返回值为比赛开始后的时间**
* **CurTime()
返回值为当前时间**
* **FrameCount()
返回值为帧生成计数**
* **FrameTime()
返回值为帧生成时间(见底部注释)**
* **AbsoluteFrameTime()
返回值为帧的绝对生成时间**
* **MaxClients()
最大玩家数量**
>i**FrameTime() 在某些回调中返回值会成为Tick间隔
你可以改用AbsoluteFrameTime()来进行帧率监测**
## 回调 (callbacks)
* **Register( <span style="color:#ff0000">ID</span> , <span style="color:#3232CD">函数</span> )
注册新的回调**
* **Register( <span style="color:#ff0000">ID</span> , <span style="color:#3232CD">唯一字符串</span> , <span style="color:#E47833">函数</span> )
使用唯一字符串注册新回调
允许随时注销**
* **Unregister( <span style="color:#ff0000">ID</span> , <span style="color:#3232CD">唯一字符串</span> )
注销回调**
## 绘制 (draw)
* **Color( <span style="color:#ff0000">红色通道</span> , <span style="color:#7fb80e">绿色通道</span> , <span style="color:#3232CD">蓝色通道</span> , <span style="color:#A9A9A9">透明通道</span> )
为此行代码下的图形与文字设置颜色**
* **Line( <span style="color:#ff0000">起始点X轴 , 起始点Y轴</span> , <span style="color:#3232CD">结束点X轴 , 结束点Y轴</span> )
绘制一条从起始点到结束点的线**
* **FilledRect( <span style="color:#ff0000">起始点X轴 , 起始点Y轴</span> , <span style="color:#3232CD">结束点X轴 , 结束点Y轴</span> )
绘制实心矩形, 起始点到结束点为其对角线**
* **OutlinedRect( <span style="color:#ff0000">起始点X轴 , 起始点Y轴</span> , <span style="color:#3232CD">结束点X轴 , 结束点Y轴</span> )
绘制空心矩形, 起始点到结束点为其对角线**
* **RoundedRect( <span style="color:#ff0000">起始点X轴 , 起始点Y轴</span> , <span style="color:#3232CD">结束点X轴 , 结束点Y轴</span> , <span style="color:#E47833">圆形弧度</span> , <span style="color:#FF1493">左上角圆角状态 , 右上角圆角状态 , 左下角圆角状态 , 右下角圆角状态</span> )
绘制空心圆角矩形, 起始点到结束点为其对角线
圆形弧度为50时呈正圆
圆角状态用<span style="color:#3232CD"> true / false </span>来调整**
* **RoundedRectFill( <span style="color:#ff0000">起始点X轴 , 起始点Y轴</span> , <span style="color:#3232CD">结束点X轴 , 结束点Y轴</span> , <span style="color:#E47833">圆形弧度</span> , <span style="color:#FF1493">左上角圆角状态 , 右上角圆角状态 , 左下角圆角状态 , 右下角圆角状态</span> )
绘制实心圆角矩形, 起始点到结束点为其对角线
圆形弧度为50时呈正圆
圆角状态用<span style="color:#3232CD"> true / false </span>来调整**
* **ShadowRect( <span style="color:#ff0000">起始点X轴 , 起始点Y轴</span> , <span style="color:#3232CD">结束点X轴 , 结束点Y轴</span> , <span style="color:#E47833">阴影半径</span> )
绘制阴影矩形, 起始点到结束点为其对角线**
* **Triangle( <span style="color:#ff0000">外角1X轴 , 外角1Y轴</span> , <span style="color:#3232CD">外角2X轴 , 外角2Y轴</span> , <span style="color:#E47833">外角3X轴 , 外角3Y轴</span> )
以三个外角的位置绘制三角形**
* **FilledCircle( <span style="color:#ff0000">圆心1X轴 , 圆心Y轴</span> , <span style="color:#3232CD">圆形半径</span> )
以圆心为起始点绘制实心圆形**
* **OutlinedCircle( <span style="color:#ff0000">圆心1X轴 , 圆心Y轴</span> , <span style="color:#3232CD">圆形半径</span> )
以圆心为起始点绘制空心圆形**
* **GetTextSize( <span style="color:#ff0000">字符串</span> )
返回值为:宽度、高度
获取文本当前使用字体的大小**
* **Text( <span style="color:#ff0000">起始点X轴 , 起始点Y轴</span> , <span style="color:#3232CD">字符串</span> )
在起始点绘制文本内容**
* **TextShadow( <span style="color:#ff0000">起始点X轴 , 起始点Y轴</span> , <span style="color:#3232CD">字符串</span> )
在起始点绘制带阴影的文本内容**
* **GetScreenSize()
返回值为:宽度、高度
获取游戏分辨率设置**
* **CreateFont( <span style="color:#ff0000">字体名称</span> , <span style="color:#3232CD">字体大小</span> , <span style="color:#E47833">字体粗细</span> )
按字体名称创建字体**
* **AddFontResource( <span style="color:#ff0000">ttf文件</span> )
将.ttf文件数据添加到可用字体**
* **SetFont( <span style="color:#ff0000">字体</span> )
为此行代码下的文字设置字体, 与DrawText一起使用**
* **CreateTexture( <span style="color:#ff0000">RGBA</span> , <span style="color:#3232CD">纹理宽度</span> , <span style="color:#E47833">纹理高度</span> )
创建新纹理**
* **UpdateTexture( <span style="color:#ff0000">纹理</span> , <span style="color:#3232CD">RGBA</span> )
使用RGBA数据更新现有纹理**
* **SetTexture( <span style="color:#ff0000">纹理</span> )
为当前绘制的图形设置纹理, 填充体为默认状态为nil**
## 通用 (common)
* **Time()
加载AW后的时间( 秒, 高精度 )**
* **DecodePNG( <span style="color:#ff0000">PNG数据</span> )
解码PNG, 返回值为 RGBA, 宽度, 高度**
* **DecodeJPEG( <span style="color:#ff0000">JPEG数据</span> )
解码JPEG, 返回值为 RGBA, 宽度, 高度**
* **RasterizeSVG( <span style="color:#ff0000">SVG数据</span> , <span style="color:#3232CD">大小</span> )
解码SVG, 返回值为 RGBA, 宽度, 高度**
## 主界面 (gui)
* **GetValue( <span style="color:#ff0000">变量名</span> )
获取变量的阈值 示例:**
```lua
RageFov = gui.GetValue("rbot.aim.target.fov") --获取暴力自瞄范围
print(RageFov) --在控制台输出获取的范围
```
* **SetValue( <span style="color:#ff0000">变量名</span> , <span style="color:#3232CD">阈值</span> )
设置变量的阈值 示例:**
```lua
gui.SetValue("rbot.aim.target.fov", 50) --暴力自瞄范围设置为50°
```
* **Reference( <span style="color:#ff0000">菜单位置</span> )
查找并引用UI对象, 只应使用一次
示例: ` Ref = gui.Reference("Legitbot", "Other","Extra") --Ref的位置引用为合法→其他→高级 `**
* **Checkbox( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">变量名</span> , <span style="color:#E47833">控件名称</span> , <span style="color:#FF1493">开关状态</span> )
新建复选框
<span style="color:#FF1493">开关状态</span> 可以用<span style="color:#3232CD"> true / false </span> 或者 <span style="color:#3232CD"> 0/1 </span> 来调整
示例: ` gui.Checkbox( Ref, "AnCheckbox", "An测试", true) --在上文Ref引用的位置创建了名为An测试,并且默认启用的复选框 `**
* **Slider( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">变量名</span> , <span style="color:#E47833">控件名称</span> , <span style="color:#FF1493">默认阈值</span> , <span style="color:#7fb80e">最小值 , 最大值 , 增量值</span> )
新建滑块
<span style="color:#7fb80e">增量值</span> 即每次滑动增加或减小的值, 可以不填写, 如不填写则默认值为1
示例: ` gui.Slider( Ref, "AnSlider", "An测试", 10, 1, 100, 5) --在上文Ref引用的位置创建了名为An测试,默认值为10 从1到100每次滑动增量为5的滑块 `**
* **Keybox( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">变量名</span> , <span style="color:#E47833">控件名称</span> , <span style="color:#FF1493">键值</span> )
新建按键绑定控件
<span style="color:#FF1493">键值</span> 设置为0时 将不会有默认按键 设置默认按键请参考[开发相关: 键值](doc:S5cYaFly)
示例: ` gui.Keybox( Ref, "AnKeybox", "An测试", 4) --在上文Ref引用的位置创建了名为An测试,默认按键为鼠标中键的控件 `**
* **Combobox( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">变量名</span> , <span style="color:#E47833">控件名称</span> , <span style="color:#FF1493">选项</span> )
新建组合框
<span style="color:#FF1493">选项</span> 可以随意增加
示例: ` gui.Combobox( Ref, "AnCombobox", "An测试", "测试1", "测试2", "测试3") --在上文Ref引用的位置创建了名为An测试,有三个选项的组合框 `**
* **Editbox( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">变量名</span> , <span style="color:#E47833">控件名称</span> )
新建编辑框
示例: ` gui.Editbox( Ref, "AnEditbox", "An测试") --在上文Ref引用的位置创建了标题为An测试的编辑框 `**
* **Text( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">文本内容</span> )
新建文本
示例: ` gui.Text( Ref, "An测试") --在在上文Ref引用的位置创建了内容为An测试的`**
* **Groupbox( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">名称</span> , <span style="color:#E47833">X轴位置 , Y轴位置</span> , <span style="color:#FF1493">宽度 , 高度</span> )
新建分组框
<span style="color:#FF1493">高度</span>可以设置为0, 它会随着分组框内控件的增加自动增加,但是<span style="color:#FF1493">宽度</span>必须要设置
示例:**
```lua
--由于上文中Ref已经引用在了Extra分组框中,所以这次要重新引用Ref2到Other选项卡
Ref2 = gui.Reference( "Legitbot", "Other")
AnGroup = gui.Groupbox( Ref2, "An", 20, 250, 200, 0)
--在Ref2中 20,250 的位置新建了名为An 宽度200并且自动补充高度的分组框
```
* **ColorPicker( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">变量名</span> , <span style="color:#E47833">控件名称</span> , <span style="color:#ff0000">R</span> , <span style="color:#7fb80e">G</span> , <span style="color:#3232CD">B</span> , <span style="color:#A9A9A9">A</span> )
新建颜色选择器
颜色选择器可以通过设置<span style="color:#ff0000">R</span><span style="color:#7fb80e">G</span><span style="color:#3232CD">B</span><span style="color:#A9A9A9">A</span>值来调整默认颜色
颜色选择器的<span style="color:#ff0000">位置</span>可以依附到勾选框上
示例:**
```lua
Color1 = gui.ColorPicker( Ref, "Color1", "红", 255,0,0,255) --在上文Ref引用的位置创建了名为红,默认红色的颜色选择器
AnGreen = gui.Checkbox ( Ref, "AnCheckbox", "绿", true) --新建名为绿的复选框
Color2 = gui.ColorPicker( AnGreen, "Color2", "绿", 0,255,0,255) --在新建的复选框上创建了默认绿色的颜色选择器
```
* **Window( <span style="color:#ff0000">变量名</span> , <span style="color:#3232CD">名称</span> , <span style="color:#E47833">X轴位置 , Y轴位置</span> , <span style="color:#FF1493">宽度 , 高度</span> )
新建窗口
示例: ` gui.Window("AnWindow", "An测试", 50, 50, 200, 300) --在50,50的位置新建宽200高300的窗口`**
* **Button( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">控件名称</span> , <span style="color:#E47833">回调</span> )
新建按钮
示例:**
```lua
gui.Button(Ref, "点击加入Lua交流群", function()
panorama.RunScript( [[
SteamOverlayAPI.OpenExternalBrowserURL("https://jq.qq.com/?_wv=1027&k=5HmfQ8s");
]] )
end)
--在上文Ref引用的位置创建了名为"点击加入Lua交流群"的按钮 按下后的效果是加入An的交流群
```
* **Multibox( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">控件名称</span> )
新建多选框
示例:**
```lua
AnMultibox = gui.Multibox( Ref, "An测试") --在上文Ref引用的位置创建了名为An测试的多选框
--多选框内可以添加复选框,例如
MultiCheck = gui.Checkbox( AnMultibox , "MultiCheck", "复选框", true)
--还可以在复选框中添加颜色选择器
Color = gui.ColorPicker( MultiCheck , "Color", "红", 255,0,0,255)
```
* **Command( <span style="color:#ff0000">指令</span> )
在AIMWARE控制台中运行指令
示例: ` gui.Command("clear") --清空控制台内容`**
* **Custom( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">变量名</span> , <span style="color:#E47833">X轴位置 , Y轴位置</span> , <span style="color:#FF1493">宽度 , 高度</span> , <span style="color:#ff0000">更新</span>( <span style="color:#E47833">X1位置 , Y1位置</span>, <span style="color:#FF1493">X2位置 , Y2位置</span> , <span style="color:#3232CD">激活状态</span>), <span style="color:#ff0000">写入</span>(), <span style="color:#3232CD">读取</span>( <span style="color:#7fb80e">阈值</span>) )
使用自定义回调创建脚本化GUI控件**
* **Tab( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">变量名</span> , <span style="color:#E47833">控件名称</span> )
创建选项卡
示例: ` AnTab = gui.Tab(gui.Reference("Legitbot"), "AnTab", "An测试") --在LegitBot主选项卡中创建名为An测试的空选项卡`**
* **Listbox( <span style="color:#ff0000">位置</span> , <span style="color:#3232CD">变量名</span> , <span style="color:#E47833">高度</span> , <span style="color:#FF1493">选项</span> )
新建列表框
<span style="color:#FF1493">选项</span> 可以随意增加
示例: ` gui.Listbox( AnTab, "AnListbox", 50, "An测试1", "An测试2" ) --在上文创建的空选项卡中创建了高度50 拥有两个选项的列表框 `**
## 按键 (input)
* **键值列表可以参考[开发相关: 键值](doc:S5cYaFly)**
* **GetMousePos()
返回值为鼠标的X,Y轴坐标**
* **IsButtonDown( <span style="color:#ff0000">键值</span> )**
* **IsButtonPressed( <span style="color:#ff0000">键值</span> )**
* **IsButtonReleased( <span style="color:#ff0000">键值</span> )**
* **GetMouseWheelDelta()
返回值为鼠标滚轮统计**
## 游戏引擎 (engine)