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

【引擎触发】pickupitems:自动拾取的范围与过滤规则

2026-09-21 12:14 作者:996 技术组 引擎触发

实战应用:用在哪里

自动拾取是挂机效率的倍增器:角色移动时自动拾取范围内的掉落物,拾取的范围与过滤规则决定了自动拾取的智能程度。拾取的触发挂在移动事件上,每步移动后检查范围内的可拾取物品。

拾取的范围

lua

---自动拾取的范围检测
local PICKUP_RANGE = 3
local PICKUP_FILTER = { gold = true, potion = true, equipment = false }
function pickupitems(actor, x, y)
    local drops = getDropItemsInRange(x, y, PICKUP_RANGE)
    for _, drop in ipairs(drops) do
        if PICKUP_FILTER[drop.category] and drop.owner == actor:GetID() then
            pickupSingle(drop)
        end
    end
end

function pickupSingle(drop)
    sendmsg(actor, 1, "拾取 " .. drop.name)
    SL:PlayAudio(7100)
    QF_RemoveGroundItem(drop.uid)
end

拾取范围 3 格,范围内的掉落物逐个检查过滤规则。过滤的默认配置:金币与药水自动拾取、装备手动拾取,过滤的配置在设置页开放给玩家自定义。拾取的音效 7100 区分不同品质的物品,橙装的拾取音效与白装明显不同。

过滤的规则

lua

---拾取的过滤配置
function PickupFilter.configure(actor, filter)
    setplayvar(actor, "HUMAN", "pickup_filter", json2tbl.encode(filter), 1)
end

function PickupFilter.shouldPick(actor, drop)
    local cfg = getplayvar(actor, "HUMAN", "pickup_filter")
    local filter = cfg and json2tbl.decode(cfg) or DEFAULT_FILTER
    if filter.quality and drop.quality < filter.quality then return false end
    if filter.categories and not filter.categories[drop.category] then return false end
    return true
end

过滤的配置按品质与分类两个维度:品质的下限过滤低价值物品,分类的白名单过滤不需要的类型。过滤的配置持久化在玩家变量中,跨会话一致。自动拾取与手动拾取的切换:挂机模式开启自动、手动模式关闭自动,模式的切换在挂机界面一键操作。

验证与监控

自动拾取的触发频次与拾取的成功率统计,拾取失败的异常(距离内但拾取失败)进排障日志。

踩坑记录

拾取的范围曾经不检查视线,隔墙的物品也被拾取,视线检查(射线检测)加入后修复。过滤的配置曾经被脚本注入修改了品质上限,配置的合法性校验在读取时执行。

上线要点

拾取的过滤配置在挂机设置页提供可视化界面,过滤的修改即时生效不用重登。拾取的音效按品质分三档,品质的听觉反馈让玩家蒙眼也能判断掉落的价值。自动拾取的范围与怪物的追击范围保持安全距离,拾取的贪心不引入战斗的风险。

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

作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

玩法策划远征编制

【玩法策划】跨服远征编制:借鉴MMO远征的分层推进方案

实战应用:用在哪里 跨服远征分先锋、主力、后勤三队独立推进,三线全通合围BOSS。不同战力成员都有参与感。 策划要点与配置 …

2026-09-22 21:15 996 技术组
案例复盘副本难度

【案例复盘】副本超时惩罚倍率复盘

实战应用:用在哪里 副本限时挑战加入超时血量惩罚:超时后BOSS攻击递增。上线后BOSS攻击叠到十倍秒杀全队。 事故还原与补…

2026-09-22 21:15 996 技术组
界面UI神兽特效

【界面UI】混沌麒麟入场特效:神兽召唤的三段演出设计

实战应用:用在哪里 混沌麒麟召唤是全服高光时刻:暗幕聚合、裂缝展开、麒麟着陆三段演出各1.3秒。 三段式入场演出编排 围观镜…

2026-09-22 21:15 996 技术组
前端接口任务回看

【前端接口】任务对话历史回看:对话记录的界面查询实现

实战应用:用在哪里 任务对话一闪而过玩家想回顾。回看接口把对话按节点存档,面板翻阅全部对话记录。 对话存档与查询渲染 当前章…

2026-09-22 21:15 996 技术组
引擎触发懒加载地图

【引擎触发】挂机地图按需激活:地图实例懒加载设计

实战应用:用在哪里 服务器承载六十张地图,空闲地图白耗资源。按需激活,末人离开后六十秒休眠。 激活与休眠触发 休眠回收 验证…

2026-09-22 21:15 996 技术组
Lua实战坐骑洗炼

【Lua实战】坐骑资质洗炼与锁定:资质系统的Lua实现

实战应用:用在哪里 坐骑资质洗炼随机重滚五条属性,锁定满意的条目不再重滚,锁定越多消耗越大。 洗炼与锁定 锁定消耗递增 验证…

2026-09-22 21:15 996 技术组