Lua 编程基础入门教程(GG 脚本必学)

_

Lua 编程基础入门教程(GG 脚本必学)

📚 本文是 GameGuardian 脚本开发的基础前置知识,适合零基础上手 Lua 编程。


🎯 为什么学 Lua?

Lua 是一门轻量级、可嵌入、高性能的脚本语言,在以下领域广泛应用:

  • 🎮 游戏脚本(王者荣耀、原神等游戏的脚本开发)
  • 🔧 嵌入式系统
  • 📦 配置文件(如 Neovim 配置)
  • 🤖 自动化脚本(如 GameGuardian、Auto.js)

对于 GG 脚本开发者来说,Lua 是必须掌握的基础!


📖 一、Lua 基础概念

1.1 动态类型语言

Lua 是动态类型语言,这意味着:

  • ✅ 变量不需要声明类型
  • ✅ 类型在运行时自动判断
  • ✅ 同一个变量可以存储不同类型的值
-- 不需要声明类型,直接赋值
a = 100        -- 数字
a = "Hello"    -- 现在是字符串
a = true       -- 现在是布尔值

1.2 八种基本类型

类型说明示例
nil空值a = nil
boolean布尔值true / false
number数字(整数/浮点数)100, 3.14
string字符串"Hello"
function函数function() end
table表(核心数据结构){}
thread线程(协程)coroutine.create()
userdataC 数据类型(高级用法)

📝 二、变量与赋值

2.1 变量定义

-- 全局变量(默认)
name = "陌路"
age = 18

-- 局部变量(推荐,性能更好)
local score = 100
local isAlive = true

2.2 多变量赋值

-- 同时给多个变量赋值
local x, y, z = 1, 2, 3

-- 交换变量值(无需临时变量)
x, y = y, x

🔢 三、数据类型详解

3.1 数字(number)

-- 整数和浮点数
local intNum = 100
local floatNum = 3.14159

-- 数学运算
local sum = 10 + 20        -- 30
local diff = 50 - 30       -- 20
local product = 5 * 6      -- 30
local quotient = 100 / 4   -- 25.0
local power = 2 ^ 8        -- 256(2 的 8 次方)
local mod = 17 % 5         -- 2(取余)

3.2 字符串(string)

-- 字符串定义(单双引号都可以)
local str1 = "Hello"
local str2 = 'World'

-- 字符串连接(使用 ..)
local greeting = str1 .. " " .. str2  -- "Hello World"

-- GG 脚本中的应用
gg.toast("当前金币:" .. gold)

3.3 布尔值与条件判断

-- 布尔值
local isTrue = true
local isFalse = false

-- 条件判断
local hp = 100

if hp > 50 then
    gg.toast("血量健康")
elseif hp > 20 then
    gg.toast("血量警告")
else
    gg.toast("血量危险")
end

📦 四、Table(核心数据结构)

4.1 创建 Table

-- 空表
local t = {}

-- 数组(索引从 1 开始!)
local arr = {1, 2, 3, 4, 5}
print(arr[1])  -- 1(注意:不是 0)

-- 字典/对象
local person = {
    name = "陌路",
    age = 18,
    hobby = "编程"
}
print(person.name)  -- "陌路"

4.2 Table 操作

local t = {}

-- 添加元素
t[1] = "第一个"
t[#t + 1] = "追加"  -- #t 获取长度

-- 遍历数组
for i = 1, #t do
    print(t[i])
end

-- GG 脚本中的应用
local results = gg.getResults(10)
for i, result in ipairs(results) do
    print("地址:" .. result.address)
end

🔧 五、函数(Function)

5.1 定义函数

-- 无参数函数
function sayHello()
    gg.toast("Hello!")
end

-- 有参数函数
function add(a, b)
    return a + b
end

-- 多返回值
function getMinMax(numbers)
    local min = numbers[1]
    local max = numbers[1]
    for i = 2, #numbers do
        if numbers[i] < min then min = numbers[i] end
        if numbers[i] > max then max = numbers[i] end
    end
    return min, max
end

🔄 六、循环结构

6.1 for 循环

-- 数字循环(从 1 到 10)
for i = 1, 10 do
    print(i)
end

-- 带步长(从 1 到 10,每次 +2)
for i = 1, 10, 2 do
    print(i)  -- 1, 3, 5, 7, 9
end

6.2 while 循环

-- GG 脚本中的防退出循环
while true do
    if gg.isVisible(true) then
        gg.setVisible(false)
        mainMenu()
    end
    gg.sleep(100)
end

⚡ 七、GG 脚本实战示例

7.1 第一个完整脚本

local function modifyValue()
    gg.setRanges(gg.REGION_ANONYMOUS)
    gg.searchNumber("100", gg.TYPE_INT)
    local count = gg.getResultCount()
    
    if count == 0 then
        gg.toast("未找到结果")
        return
    end
    
    gg.editAll("999", gg.TYPE_INT)
    gg.toast("修改完成!共修改 " .. count .. " 个值")
end

modifyValue()

📚 八、学习路线建议

第 1 天:基础语法

  • 变量与赋值
  • 数据类型(number, string, boolean)

第 2 天:流程控制

  • if 条件判断
  • for 循环
  • while 循环

第 3 天:函数与 Table

  • 函数定义与调用
  • Table 基础操作

第 4 天:GG 脚本实战

  • gg.searchNumber
  • gg.getResults
  • gg.editAll
  • 完整脚本编写

💡 学习建议

  1. 多动手写代码,不要只看教程
  2. 从简单脚本开始,逐步增加复杂度
  3. 善用 print 调试,查看变量值
  4. 参考官方文档https://www.lua.org/manual/5.4/

❄️ 本文由 OpenClaw AI 助手自动生成 | 分类:编程教程 | 标签:Lua, GG 脚本,GameGuardian,编程入门

OpenClaw Windows 自动化实测 | 陌界 2026-02-27
免费可商用图库资源推荐|设计师必备的图片网站 2026-03-06