CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
入门夯实996引擎table.remove返回值

【入门夯实】table.remove的返回值:删除即取值的一步写法

2026-09-24 19:15 作者:996 技术组 0 阅读 996引擎Lua教程传奇脚本入门夯实996引擎Luatable.remove返回值

学员常见误区

从队列取元素再删除时,学员写成两步:先 local v = t[i] 取值,再 table.remove(t, i)。两步之间若 i 来自循环变量而循环内还有别的 remove,索引已经位移,v 拿到的是错误元素。更常见的误解是以为 table.remove 返回删除后的表,写 t = table.remove(t, i),把整张表覆盖成一个被删元素。错误场景:

lua
local queue = {"甲", "乙", "丙"}
local first = queue[1]
table.remove(queue, 1)
local second = queue[1]
table.remove(queue, 1)

逻辑没错但多一次索引访问,且在循环里二次取值极易错位。

正确姿势

table.remove 的返回值就是被删除的元素,取值与删除一步完成。行会战报名队列按顺序发奖:第 1 名裁决之杖、第 2 名骨玉权杖、第 3 名龙纹剑,队列共 30 人只发前 3 名。示例代码如下:

lua
local function sendTop3(actorName, queue)
    local actor = getplayerbyname(actorName)
    local prizes = { "裁决之杖", "骨玉权杖", "龙纹剑" }
    for i = 1, 3 do
        local winner = table.remove(queue, 1)
        if winner == actorName then
            sendmsg(actor, 1, "获得奖励:" .. prizes[i])
            giveitem(actor, prizes[i], 1, 1, "行会战前3奖励")
        end
    end
end

remove(queue, 1) 每次弹出队首,返回值直接参与后续判定,队列剩余 27 人不受影响。示例代码如下:

lua
local stack = {}
table.insert(stack, "A")
table.insert(stack, "B")
local top = table.remove(stack)

remove 不传位置时删末位,insert 与 remove 配对即构成栈结构。

引擎验证

三步验证:队列 3 人时依次 remove 弹出顺序与报名顺序一致;把 remove 返回值打印出来核对是否为被删元素本身;故意写 t = table.remove(t, 1) 观察类型错误,加深返回值语义印象。

举一反三

删除满足条件的全部元素时,倒序遍历正配 remove 的索引位移特性:正序删会让后续元素前移跳检,倒序从尾部往回删不影响未检查部分。示例代码如下:

lua
for i = #queue, 1, -1 do
    if queue[i] == "黑名单玩家" then
        table.remove(queue, i)
    end
end
作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

策划架构996引擎

【策划架构】抚恤金:阵亡抚恤的发放标准设计

设计初衷 攻城战阵亡只有损失:装备掉落、耐久磨损——牺牲没有补偿,行会的伤亡成本全由个人承担,指挥不敢打硬仗。抚恤金设计:攻…

2026-09-25 19:35 996 技术组 · 0 阅读
策划架构996引擎

【策划架构】协防系统:盟友驻防的调度与分账设计

设计初衷 攻城战一触即发,盟友帮会口头答应协防却总是人没到:跨帮支援没有调度与结算机制,人情协防全凭自觉。协防系统设计:盟约…

2026-09-25 19:35 996 技术组 · 0 阅读
高级技巧996引擎

【高级技巧】享元模式:重复数据的共享封装

底层原理 一张地图上 500 棵同款树,每棵存完整的模型数据——重复数据存 500 份。享元模式把不变的部分(模型、贴图)抽…

2026-09-25 19:35 996 技术组 · 0 阅读
高级技巧996引擎

【高级技巧】桥接模式:两个维度的独立扩展封装

底层原理 技能系统按"元素×形态"组合:火球冰球乘单体群攻——每加一种元素或一种形态,组合数量乘性增长(4 元素 3 形态 …

2026-09-25 19:35 996 技术组 · 0 阅读
策划架构996引擎

【策划架构】期货系统:稀缺物资的期货交易设计

设计初衷 稀缺产出(强化石、晋级材料)的供需错位:产出季价格崩盘、断供季价格飞天——剧烈波动伤害生产者与消费者两端。期货交易…

2026-09-25 19:35 996 技术组 · 0 阅读
进阶实战996引擎

【进阶实战】傀儡机关:巡逻守卫的三态行为封装

业务场景 驻地巡逻 AI 只会沿固定路线走:玩家摸清路线后绕行如入无人之境。傀儡机关封装:机关傀儡按"巡逻、警戒、袭扰"三态…

2026-09-25 19:35 996 技术组 · 0 阅读