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

技能指示器:按下就知道打哪

2026-09-28 12:14 作者:996 技术组 996引擎Lua教程传奇脚本进阶实战游戏功能996引擎

【游戏功能】
一、一个分不清的指示器

技能指示器首版的测试反馈很扎心:"圆形指示器画了个寂寞,根本看不出范围在哪。"圆形指示器的问题是指针的起点不明确——圆心画在哪?半径多大?从哪个方向开始?直线指示器没有这些问题但只适合直线技能。技能指示器的表现要点是让玩家在按下技能的瞬间就能看清"如果现在放手,技能会打到哪里"——这个预期必须百分百准确。

二、底层原理

技能指示器的类型由技能的判定形状决定。圆形指示器跟随鼠标位置,圆心在鼠标处、半径是技能的固定射程。扇形指示器跟随角色朝向,起点在角色脚下、张角是技能的固定角度。直线指示器跟随角色和鼠标的连线方向。三种指示器的渲染都用半透明色块叠加,按下时半透明、松手时实色。

demo
fx-hplink

三、正确写法

lua
local SkillIndicator = {}
local CONST = { KEY = "SkillIndicator" }

function SkillRing.Show(myID, radius)
    local mx = SL:GetValue("ACTOR_POSITION_X", myID)
    local my = SL:GetValue("ACTOR_POSITION_Y", myID)
    local indicator = CreateRingIndicator(mx, my, radius)
    indicator:SetColor(0.3, 0.6, 1.0, 0.3)
end

function SkillCone.Show(myID, radius, angle)
    local faceDeg = SL:GetValue("ACTOR_DIR", myID) * 45
    local indicator = CreateConeIndicator(myX, myY, radius, angle, faceDeg)
end

function SkillLine.Show(myID, length, width)
    local faceDeg = SL:GetValue("ACTOR_DIR", myID) * 45
    local indicator = CreateLineIndicator(myX, myY, length, width, faceDeg)
end

return SkillIndicator

四、四个必须钉死的细节

  1. 指示器的颜色统一用技能元素色:火系橙红、冰系冰蓝、毒系翠绿。2. 指示器的位置跟随鼠标实时刷新,帧率不低于三十帧。3. 不可用区域(墙、障碍)用红色覆盖提示。4. 指示器消失时有一个零点一秒的淡出过渡,避免闪烁。

五、心法

指示器是玩家和技能系统之间的翻译官:玩家用鼠标说"我想打这里",指示器把这句话翻译成"你的技能会打这个范围"。翻译得准不准,就是指示器做得好不好。翻译错了,玩家的每次施法都在赌运气——赌对了是运气好,赌错了是系统 bug。

作者履历与出处

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

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

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

LATEST ARTICLES

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

进阶实战游戏功能

撞钟:一记钟响,全场的刀顿半拍

【游戏功能】 巡查日志里有个离谱的现场:狼怪的刀抡到一半,忽然僵在半空,头顶跳出一行"前摇断"——绕了半天找不到谁动的手,最…

2026-09-30 16:14 996 技术组
进阶实战游戏功能

滚木:一根木头滚过去,撞它个跟头

【游戏功能】 一根木头顺着坡滚下来,凭什么比一记刀更有威慑力?滚木的答案在路上:它不长眼、不停脚、不认人,从画面这头滚到那头…

2026-09-30 16:14 996 技术组
进阶实战游戏功能

赶尸:一声哨响,倒下的狼替我打

【游戏功能】 有玩家举报队友"操控怪物"——录像里一头狼怪明明倒地了,几秒后又爬起来,绕开所有人径直去咬另一头狼。查了半天才…

2026-09-30 16:14 996 技术组
进阶实战游戏功能

背水一战:血见了底,刀反而疯了

【游戏功能】 if hp < 30 then dmg = dmg 1.6 ——一行拿命换刀的判定,撑起了背水一战全部的疯:气…

2026-09-30 16:14 996 技术组
进阶实战游戏功能

水漫金山:大水漫过来,它站不稳也追不上

【游戏功能】 巡查群的凌晨有条没人认领的报障:练级点的狼怪集体"变慢"了,走两步卡一步,像在水里蹚——读条记录翻到最后才发现…

2026-09-30 16:14 996 技术组
进阶实战游戏功能

破釜沉舟:烧了行囊,刀没了退路

【游戏功能】 行囊里明明还有三张符、两瓶药,为什么一把火烧了反而更强?破釜沉舟的账本就是这么反着记的:退路烧掉的那一刻,刀上…

2026-09-30 16:14 996 技术组