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

【引擎触发】城墙弓箭手仇恨:沙巴克守城NPC的目标选择与集火

2026-09-23 16:56 作者:996 技术组 996引擎Lua教程传奇脚本

实战应用:用在哪里

沙巴克城墙上的弓箭手是守城方的隐形战力,选错目标就形同虚设。给弓箭手做仇恨评分:攻城方红名优先、对城门输出者加倍、医疗职业垫底,五秒一轮的定时触发里完成选目标与集火提示。

仇恨评分表的维护

攻城方每次攻击城门或守方玩家,往仇恨表累加分值,红名身份直接加权三倍。actor是字符串,转对象后读写评分。

lua
local threat = {}
function attack(actor)
    local player = class(actor)
    local name = player:GetName()
    local base = 10
    local pk = tonumber(getplayvar(actor, 2, "PKVAL") or "0")
    if pk >= 200 then base = base * 3 end
    threat[name] = (threat[name] or 0) + base
end

定时轮询的选靶与衰减

setontimerex五秒一轮:取评分最高者广播集火提示,全体评分衰减四成防历史仇恨永居榜首。

lua
setontimerex(77, 5)
function ontimer77()
    local top, score = "", 0
    for name, v in pairs(threat) do
        if v > score then
            top, score = name, v
        end
        threat[name] = v * 0.6
    end
    if top ~= "" and score >= 50 then
        sendcentermsg("城墙弓箭手集火目标:" .. top)
    end
end

验证与监控

测试三类攻击者:红名、攻门者、普通骚扰,验证评分排序符合权重设定。攻城期间记录集火目标与实际击杀的相关性,弓箭手助攻占比越高说明选靶越准。

踩坑记录

threat表按名字累计,攻城战每场几百个名字,战斗结束必须整表清空,残留到下一场会开局就集火昨晚的仇人。衰减系数零点六是经验值,衰减太快集火频繁换人像无头苍蝇,太慢则死咬一人。sendcentermsg的集火播报对守方是信息增益,对攻方是预告,播报范围收窄到守方行会频道更公平。attack触发首参是攻击者,弓箭手自己的攻击也会进这个函数,按名字排除守方NPC,别让弓箭手给自己刷仇恨。

作者履历与出处

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

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

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

LATEST ARTICLES

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

后端接口成就属性加成

【后端接口】成就点数兑换:全局属性加成的结算接口设计

实战应用:用在哪里 成就点数不该只是数字摆设:点数商店兑换永久属性加成,50分换百分之一攻击,上限百分之五。兑换接口管三件事…

2026-09-23 17:04 996 技术组
界面UI

【界面UI】UI 合图自动化:纹理打包流水线与命名规范

实战应用:用在哪里 UI 合图(把零散小图打包成图集)是 DrawCall 合批的前提(合批原理参考前篇)。手工打包的问题:…

2026-09-23 17:04 996 技术组
数据存储

【数据存储】SQLite WAL 模式:读写并发实测与开启方法

实战应用:用在哪里 SQLite 默认的回滚日志模式在写入时会阻塞读取(写锁独占),游戏服务端“边写日志边查配置”的场景会出…

2026-09-23 17:04 996 技术组
框架设计

【框架设计】PK 模式:攻击范围的开关与误伤保护

实战应用:用在哪里 烈火剑法甩出去的瞬间最怕砍到队友:PK 模式是攻击的准星开关——和平、组队、行会、全体四种模式决定谁的技…

2026-09-23 17:04 996 技术组
玩法策划大逃杀缩圈

【玩法策划】大逃杀缩圈:借鉴吃鸡玩法的安全区收缩设计

实战应用:用在哪里 把大逃杀的缩圈机制搬进沙巴克野区:五十人无阵营乱斗,安全区每六十秒收缩一圈,圈外持续掉血,终局幸存者独享…

2026-09-23 17:04 996 技术组
运维发布停服维护运营

【运维发布】发布窗口选择:用在线人数曲线定停服时机

停服更新最怕撞上在线高峰,踢掉几百人换来一片抱怨。选对发布窗口,同样的更新内容,玩家体验是两回事。本文讲如何用996引擎的在…

2026-09-23 17:04 996 技术组