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

【后端接口】getmoncount 与 killmonsters:怪物查询与批量清场的接口对

2026-09-22 20:37 作者:996 技术组 0 阅读 后端接口

实战应用:用在哪里

怪物维度的查询与操作接口对:getmoncount 统计地图怪量、getmapmon 定位怪物、killmonsters 批量清场。活动的前置校验(BOSS 存活才能进)、活动的收尾清场(活动结束清空场地怪)全靠这对接口。

查询接口

lua

---统计地图怪物 mapID:地图 MonId:怪物ID isAllMon:含普通怪
function getmoncount(mapID, MonId, isAllMon) end

-- 活动入口校验:BOSS 存活才可进入挑战房
function enterBossRoom(actor)
    local alive = getmoncount("bossroom", "沃玛教主", false)
    if alive == 0 then
        sendmsg(actor, 1, "教主尚未刷新,请等待")
        return false
    end
    mapmove(actor, "bossroom", 20, 20, 3)
    return true
end

getmoncount 的三个参数:地图、怪物模板、是否包含普通怪,查询的粒度到具体怪物模板。入口校验读存活数而不是自己维护计数,引擎的怪物数据是唯一真相。getmapmon 进一步返回怪物对象列表,需要逐只操作的场合(BOSS 战的召唤物清理)用它。

批量清场

lua

---批量击杀 mapid:地图 monname:怪物名 count:数量 drop:是否掉落
function killmonsters(mapid, monname, count, drop) end

-- 活动结束清场:清空血域的魔龙血卫,不掉落
function bloodLandClose()
    killmonsters("blood_land", "魔龙血卫", 999, 0)
    QF_Broadcast("魔龙血域已关闭,未离场的玩家将被传送回城")
end

批量清场接口的三参数:地图、怪物名、数量与掉落开关,活动收尾的清场不掉落防止结算后的额外产出。清场的范围按地图整图,局部清场用 killmonbyobj 逐只处理。清场的动画表现:批量死亡的表现是否播放由 drop 之外的引擎策略决定,清场的视觉噪音在活动收尾时反而是清晰的结束信号。

验证与监控

怪物总量的地图分布监控,活动地图的怪量残留是活动收尾完整性的检验指标。

踩坑记录

批量清场的 count 传 9999 曾经引发性能尖峰,单帧处理千只死亡结算的耗时可观,清场的分帧处理或限量多次调用是工程化的做法。getmoncount 的 isAllMon 参数理解偏差曾经把统计范围搞错,BOSS 计数漏了普通怪的干扰,参数的语义对照文档逐个确认是使用前必要动作。

上线要点

怪物查询接口的调用频率控制:入口校验是低频调用可以直查,高频循环里缓存查询结果。批量清场的时机选择在活动的结算完成后,清场与结算的顺序影响掉落的归属公平。怪物对象的生命周期短,持有怪物对象的引用要在每次使用前验证有效性,死亡的怪物对象引用是悬空指针。

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

作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

工具链

【工具链】风格检查器:Lua 脚本命名与规范的自动审查

实战应用:用在哪里 脚本的规范靠人盯盯不过来:命名风格漂移、全局变量乱用、缩进混着来——风格检查器把这些规则的执行自动化。提…

2026-09-22 22:32 996 技术组 · 0 阅读
界面UI

【界面UI】拍卖行界面:出价流程与截拍提醒

实战应用:用在哪里 拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、…

2026-09-22 21:12 996 技术组 · 0 阅读
框架设计

【框架设计】幸运值机制:强化失败的隐性补偿

实战应用:用在哪里 强化连败七次是什么体验?幸运值机制给失败的玩家一个隐性的承诺:每次失败累加幸运值,幸运值越高下一次的成功…

2026-09-22 21:12 996 技术组 · 0 阅读
安全加密

【安全加密】日志防篡改:哈希链与异地备份

实战应用:用在哪里 审计日志的价值在于不可抵赖:被改过的日志比没有日志更危险——纠纷的追溯、内部的追责都建立在「日志没被动过…

2026-09-22 21:12 996 技术组 · 0 阅读
性能调优

【性能调优】批量邮件:活动奖励的分批投递

实战应用:用在哪里 活动结束给 3 万玩家发奖励:一次性群发让邮件表瞬间多 3 万行、投递的队列堵塞正常的通信。批量邮件的分…

2026-09-22 21:12 996 技术组 · 0 阅读
网络通信

【网络通信】面对面交易:握手、锁定与确认的协议

实战应用:用在哪里 面对面的交易是传奇最经典的交互:两人面对面、各自放入物品与金币、双方确认后成交。交易的协议要点是会话的建…

2026-09-22 21:12 996 技术组 · 0 阅读