CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
Lua基础模块封装

模块与封装:把 QF 拆成工具箱

2026-10-19 22:25 作者:996 技术组 Lua基础模块封装

模块就是工具箱。后端命令八百多个,记不住很正常——把自己常用的封装起来,按名字调用。

一、include 与 require

lua
include("我的模块.lua")   -- 每次都加载
require("我的模块")       -- 只加载一次
includerequire
加载次数每次一次(内存有缓存就不加载)
适合经常热更、小文件启动时初始化、大模块

线上频繁重载 QF、模块又多,优先 require,省内存、少重复。

二、最简模块

我的模块.lua

lua
local P = print
P("我是我的模块")

QF 顶部

lua
include("我的模块.lua")

注意加载顺序:Lua 从上往下读。调用写在定义前会报 尝试 call 空值。定义/加载放上面,调用放下面。

三、模块返回 table(推荐)

lua
-- 封装.lua
local T = {}
function T.getName(actor)
    return GetBaseInfo(actor, 1)
end
function T.getLevel(actor)
    return GetBaseInfo(actor, 6)
end
return T
lua
-- QF
local t = require("封装")   -- 或 include + 接收返回值
print(t.getName(actor))
print(t.getLevel(actor))

return T 把工具箱交出去;外面用局部变量接,避免全局被覆盖。

四、为什么要 return 而不是裸全局

若模块里写全局 T = {...},别人也写个 T = 123,你的方法就没了。
局部 + return = 私有化,谁拿到返回值谁才能用。

五、表里可以放函数(匿名)

lua
local T = {
    getName = function(actor) return GetBaseInfo(actor, 1) end,
    getLevel = function(actor) return GetBaseInfo(actor, 6) end,
}

getName = function(...) 是匿名函数赋值给主键,和 function T.getName() 本质一样。

六、触发里才有 actor

actor 是引擎回调参数。全局脚本顶层没有“是谁”,拿不到对象。练手可以先写在奔跑/聊天触发里。

今日练习:写 封装.lua 导出 getName / getLevel,在奔跑触发调用;再故意用同名全局覆盖,观察报错,改成 return 后修复。


作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

Lua基础模块

模块与封装:把 QF 拆成工具箱

模块就是 工具箱 。后端命令八百多个,记不住很正常——把自己常用的封装起来,按名字调用。 一、include 与 requi…

2026-10-19 22:25 996 技术组
Lua实战NPC

NPC 界面与 GM 小工具:say / button / link 传参

会判断了,就能做会回话的 NPC。今天拼一个简易 GM 工具界面。 一、用 say 吐出界面 客户端编辑器 Ctrl + F…

2026-10-18 01:01 996 技术组
Lua基础逻辑运算

与或非:and / or / not 与短路真相

与或非听起来玄,其实就是三张通行证。 一、and(与)= 过安检 机票 + 身份证 ,少一样不让过。后面还能无限加条件。 二…

2026-10-18 01:01 996 技术组
Lua基础判断

判断分支实战:if / elseif / else 与防卫语句

判断 = 比较 + 分支。今天把三种 if 写法、以及工程里最好用的「防卫语句」一次练透。 一、三种判断结构 elseif …

2026-10-18 01:01 996 技术组
Lua基础Table

从表走到迭代:pairs/ipairs 预告与三大坑

表会建、会取、会增删改查,最后一环是 遍历 。本篇先把坑标出来,下节课正式拆迭代器。 本课互动训练 :专属动画 + 选择题测…

2026-10-18 00:25 996 技术组
Lua基础Table

表是引用:改了别人,怎么就跟着变了

「我只改了 b,a 怎么变了?」——这是表引用问题的标准嚎叫。今天把钥匙和锁彻底讲清。 本课互动训练 :专属动画 + 选择题…

2026-10-18 00:25 996 技术组