如何在 Lua 中创建“range”?

我是新手脚本或编码,我正在尝试找到一种可以在 1 和 100 之间作为输入的方法,而不必编写 100 行代码。我正在 Lua 中完成这个任务,下面是我的当前代码。

     elseif input.text == '>coins add 100' then coins = coins + 100; print ("coins effected. "..coins)
     elseif input.text == '>coins add 200' then coins = coins + 200; print ("coins effected. "..coins)
     elseif input.text == '>coins add 300' then coins = coins + 300; print ("coins effected. "..coins)

我正在为我开发的游戏使用它,因为我认为这是一种不错的实践方式。这个代码是专门用来调整不同值以进行调试的控制台。如果这不太好理解,我会尝试进行修正。 谢谢!

点赞
用户8621712
用户8621712

限制一个数在某个范围内的函数通常称为 Clamp

function math.Clamp(val, min, max)
    return math.min(math.max(val, min), max)
end

它基本上是将 math.maxmath.min 结合起来的结果。

为了避免出现过多的 if 语句,我建议您编写一个脚本来等待 >coins add,然后要求输入一个特定的数字。

[编辑] 显然它不允许您这样做,所以这里是一个解决方法:

local num = string.sub(input.text, 12) -- 从字符串中删除前面的 12 个字符,保留其中的数字
num = tonumber(num) -- 将字符串转换为 Lua 数字

if not num then -- 如果转换失败,停止脚本,输出文本
    print("不是数字")
    return
end

num = math.Clamp(num, 1, 100) -- 限制数字在 1 到 100 范围内

coins = coins + num -- 增加这个数
print ("coins effected. " .. coins) -- 输出新的金币数量
2020-11-17 15:58:50