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

玩家背包实战:用表搭一个角色数据库

2026-10-18 00:25 作者:吴大圣老师 Lua实战Table背包

理论够了,进游戏干一票:用一张表,存下角色的名、级、包、属性,并用它驱动「给我装备」。

本课互动训练:专属动画 + 选择题测验。 打开 第 08 课 · 动画闯关,先看动画,再完成 3 道选择题。
配套动画实验室:堆 / 栈 / 引用 / # 号可点可演。 打开 Lua 表 · 堆栈内存动画实验室,对照本文点「播放当前演示」。

一、角色表长什么样

lua
local player = {
    name  = "大战士",
    level = 50,
    bag   = {"木剑", "传送石"},
    att   = {
        hp  = 500,
        dc  = 50,
        atk = 120,
    },
}

这不是「为了学表而造表」,商业版本的角色数据基本就是这种树。

二、读数据

lua
print(player.name)       --> 大战士
print(player.level)      --> 50
print(player.att.hp)     --> 500
print(player.bag[1])     --> 木剑

数组用 [i],字典用点号。混着来很正常。

三、给我装备:表驱动发奖

不要写:

lua
GiveItem(player, "木剑", 1)
GiveItem(player, "屠龙", 1)
GiveItem(player, "绿色项链", 1)
-- ……写二十遍

改成:

lua
local give_list = {
    {"木剑",     1},
    {"屠龙",     1},
    {"绿色项链", 1},
    {"骑士手镯", 2},
    {"裁决之杖", 1},
    {"力量戒指", 2},
}
for i = 1, #give_list do
    GiveItem(player, give_list[i][1], give_list[i][2])
end

要加一件装备?表里加一行,逻辑一行不动。这就是表的价值。

四、# 算长度的正确姿势

lua
for i = 1, #give_list do

前提是 give_list 主键连续。若你动态删除过中间项,先整理再发奖,否则会漏。

五、打印调试大法

进游戏前先在控制台打结构:

lua
print(give_list[1][1], give_list[1][2])

名字数量是否正确,一眼看清。先打印,再给,比进游戏发现给错再回代码快得多。

六、小功能范例

lua
-- NPC 对话分支
if msg == "给我装备" then
    for i = 1, #give_list do
        GiveItem(player, give_list[i][1], give_list[i][2])
    end
    player.bag[#player.bag + 1] = "裁决之杖"  -- 记录进背包
end

发装备、改背包、对话分支,已经是一个迷你商业逻辑。

今日练习:写一张 6 件装备的发放表(名字+数量),循环调用 GiveItem。再把已发放的装备名追加进 player.bag 并打印背包。


课堂互动训练

作者履历与出处

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

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

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

LATEST ARTICLES

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

Lua实战NPC

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

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

2026-10-18 01:01 吴大圣老师
Lua基础逻辑运算

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

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

2026-10-18 01:01 吴大圣老师
Lua基础判断

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

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

2026-10-18 01:01 吴大圣老师
Lua基础Table

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

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

2026-10-18 00:25 吴大圣老师
Lua基础Table

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

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

2026-10-18 00:25 吴大圣老师
Lua实战Table

玩家背包实战:用表搭一个角色数据库

理论够了,进游戏干一票:用一张表,存下角色的名、级、包、属性,并用它驱动「给我装备」。 本课互动训练 :专属动画 + 选择题…

2026-10-18 00:25 吴大圣老师