基本类型
Lua 类型
nanos world 运行 Lua 5.4。如需更多信息和教程,请参考 Lua 5.4 官方参考手册。
number
数字可以是整数(64 位,如 10 或 -3)或浮点数(双精度,如 3.14)。 Lua 会在需要时自动在两者之间转换,例如 10 / 2 的结果是浮点数 5.0,而 10 // 2(整除)的结果是整数 5。在本文档中,我们使用 integer 和 float 来说明函数期望或返回的类型。
string
字符(字节)序列,例如 "hello" 或 'world'。字符串可以包含任何二进制数据并且是不可变的:类似于 string.upper 的函数会返回一个新的字符串,而不是修改原始字符串。使用 .. 来拼接字符串,例如 "Hello " .. player:GetName()。
function
函数和其他值一样:它们可以存储在变量和表中,作为参数传递,并由其他函数返回。这就是回调函数在 nanos world 中的工作原理,例如 Player.Subscribe("Spawn", function(player) ... end)。
boolean
true 或 false。在条件判断中,只有 false 和 nil 被视为假,其他所有值(包括 0 和空字符串 "")均被视为真。
nil
表示值的缺失。未被赋值的变量为 nil,许多函数在未找到所需内容时也会返回 nil(例如 Prop.GetByIndex(9999)),因此在使用结果之前请务必进行检查。
table
Lua 中唯一的数据结构,既可以作为数组({ "a", "b", "c" },索引从 1 开始),也可以作为字典({ name = "John", age = 30 })。表可以动态增长,并能容纳除 nil 之外的任何值。它们是通过引用传递的:在函数内部修改表会影响原始表。
iterator
迭代器允许你使用 for k, v in ipairs() 来遍历表的元素。
any
我们在本文档中使用 any 来表示可以使用任何类型。
varargs
可变值列表。
数值类型
除了 Lua 类型之外,API 上的某些方法还具有特定的数值类型,这些类型在内部会进行转换并采取不同的处理方式。
integer
不带任何小数部分的整数。
float
带有小数点的浮点型。
特殊类型
SpecialPath
nanos world 在加载纹理(.jpg、.png、.webp)、**声音(.ogg) **或引用来自 WebUI 的文件时,支持一种特殊类型的路径。它允许任何包或 WebUI 轻松访问来自其他包或资产包的文件。
SpecialPath 是一个字符串输入,它支持以下访问资产或包文件的格式:
引用资产包文件
assets://[ASSET_PACK_PATH]/[PATH/TO/FILE.jpg]
引用包文件
package://[PACKAGE_PATH]/[PATH/TO/FILE.jpg]
访问来自 quaternius 资产包中的 图像 示例:
assets://quaternius/Thumbnails/SK_Revolver_01.jpg
访问来自 sandbox 包中的 .ogg 声音 示例:
package://sandbox/Client/my_awesome_audio.ogg
访问来自 my-fonts 包中的 .ttf 字体文件 示例:
package://my-fonts/Client/Roboto.ttf
SpecialPath 输入同时也支持相对路径和传统路径!
Steam Avatar
Steam 头像是一个特殊的 URL,可以将 Steam 头像作为图片加载到 WebUI 和控件上。
steam-avatar://player_steam_id
此 URL 可以通过 Player:GetAccountIconURL() 自动获取。