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

留影石:留影在此,危急时一步归位

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

【游戏功能】

线上出过一次灵异归位:玩家点了归影,人没回到石头旁,而是卡进了半块岩石里——追下来是留影石落地时只存了坐标引用,没存坐标快照,玩家在留影之后推了石头一脚,石头"被挪动",归影的落点跟着引用走,一头扎进新位置。两行代码的差别,一个快照一个引用,今天借这套留影石把"锚点归位"整套拆开。

一、落石、遛狼、归影三段

留影石的循环三段。落石:玩家把一枚菱形蓝石落在脚下,石头的虚影烙在地面上,八秒的存续倒计时挂在石顶——落影的位置就是玩家自己选的"家",落得越刁钻,后面归影越安全。遛狼:落完石头玩家故意贴近狼怪,狼扑过来,玩家绕着它兜圈,把它从石头边上引开——遛的功夫全在这一段,石头是保险绳,绳的另一头钉在远处,玩家拽着狼越走越远,心里越有底。归影:狼爪扬起的瞬间点归影,玩家的身影在原地淡成一抹残像,人已经出现在石头旁——狼这一扑扑在空气上,头顶飘一个"扑空"的灰字,愣在原地目送你站在十几步外冲它招手。三段连起来,留影石卖的就是"进可遛狼、退有归处"的从容,狼的爪再快,快不过一次回家的直线。

落石的位置学在落子那一刻就定了性:落在身后的开阔地,归位之后四面透风;落在岩壁的凹角,归位后背靠石壁只防三面——落影那一刻想的是逃,会玩的人连逃到之后怎么站稳一起想。虚影也有戏:石头落下的瞬间,地面烙出一圈淡蓝的菱形虚影,虚影跟着石头一起呼吸明暗——玩家的余光随时知道家在哪,真到危急时不用转头找。

完整演示在这——点「留影!」把石头落在远处,遛近了再点「归影!」:

demo
 fx-anchor

二、幂尔框架实现:坐标快照与归位结算

幂尔框架里留影是一个带寿命的坐标快照实体,归位走的是瞬移结算:

lua
local AnchorStone = {}
local STONE_LIFE = 8

function AnchorStone.Mark()
    local x = SL:GetValue("x", "player")
    local y = SL:GetValue("y", "player")
    local stone = SL:SpawnUnit("anchor_stone", x, y)
    stone.snapX, stone.snapY = x, y          -- 快照: 值拷贝, 不留引用
    stone.life = STONE_LIFE
    SL:RegUnitTick(stone, 1, function(s)
        s.life = s.life - 1
        if s.life <= 0 then AnchorStone.Expire(s) end
    end)
    SL:SetAnchor("player", stone)
end

function AnchorStone.Recall()
    local stone = SL:GetAnchor("player")
    if not stone then
        SL:ShowTipAbove("player", "没有留影")
        return
    end
    SL:PlayAfterimage("player", 0.5)
    SL:BlinkTo("player", stone.snapX, stone.snapY)   -- 归位: 走快照的值
    SL:KillUnit(stone)
    SL:ClearAnchor("player")
    SL:PlayBurst("player", "return_ring", 8)
    SL:ShowTipAbove("player", "归影!")
end

local function onStonePushed(stone, dx)
    stone.x = stone.x + dx                          -- 石头可被推动
    -- snapX 不动: 归位永远回最初的位置
end

SL:On("unit_pushed", onStonePushed)
SL:RegClick("mark", AnchorStone.Mark)
SL:RegClick("recall", AnchorStone.Recall)

return AnchorStone

那次卡岩石的事故,答案就是 snapX 和 stone.x 的分家:石头是可推的实体,快照是不可变的账——归位读快照不读实体,人永远回到"落影那一刻的位置",石头后来去哪与玩家无关。

调用方式上还有一处巧劲:SetAnchor 把石头登记成玩家的锚,同一时间只能有一枚——第二枚落下的瞬间旧锚自动碎裂,返回值直接顶替,玩家永远只有一条归途。寿命的 tick 给石头挂上逐秒递减,虚影的明暗直接吃寿命的百分比——石头的视觉状态和它的账面寿命同一根管子供血,不会出现"石头看着亮堂、其实早过期"的错位。

三、八秒的寿命与归点的选择

八秒存续是留影石的债:石头存在,退路就在;石头一散,退路作废,"留影消散"的灰字一飘,玩家只剩两条腿。寿命配冷却的账也要算:落影零冷却、归影走石头寿命,玩家可以反复落石反复归——真要限,限在"同屏只能有一枚",新石头落下的瞬间旧石头碎掉,锚点永远只有一个,玩家的归途永远清晰。落点的选择学是这套玩法的进阶课:石头落在开阔地,归位后四面来风;落在岩壁前,归位后背靠墙只防一面——落影那一刻想的是"逃",就要连"逃到之后怎么打"一起想。和闪现类技能的分账最后写清:闪现是"往哪都行但要预判",留影是"只能回家但零思考"——一个考手速一个考布局,留影石把考题从反应挪到了落子,落子落得好的玩家,狼的爪子永远追着一个已经不在原地的人。

闪现和留影的分账写进教学:闪现要预判、要手速,留影要提前落子、要布局——一个把难度放在按下去的那一瞬,一个把难度放在按下去之前的那几秒。进阶的落子还有一层骗术:石头落在明处的开阔地,狼怪守着石头堵你,你偏不归,遛去它背后——留影石的威慑不在石头本身,在"玩家随时可以走"这个可能性上,狼被这个可能性牵着分神,玩家的每一次贴近都成了试探。石头可被推动这条特性是双刃:狼拱着石头挪位,你的归点就跟着危险起来——落子在狼够不着的地方,是这门手艺的第一次升级。石头碎了别恋战——留影石的退路永远只有一条,会丢的人才分得清哪一次该丢、哪一次该留。

作者履历与出处

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

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

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

LATEST ARTICLES

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

进阶实战游戏功能

影锁:影锁绑你绑它,锁期拼刀

【游戏功能】 控制技能的镜像问题是:锁住了怪,自己是不是也闲着?影锁把这道两难摆上台面:影锁四秒,它动不了、你也动不了——它…

2026-10-01 10:00 996 技术组
进阶实战游戏功能

震魂:震魂入体叠加出招自损

【游戏功能】 打断为什么只有"清读条"一种?震魂偏要反过来——不清招、不断势,打在它读条半途的那一劲顺着招震进腑——中劲十秒…

2026-10-01 10:00 996 技术组
进阶实战游戏功能

蜂王:喂小怪蜂王进化,三阶蜂王蜇翻全场

【游戏功能】 蜂群为什么总是一只一只出?蜂王偏要让它们进化:放一只蜂王出来,杀掉小怪喂它——喂三只升一阶,三阶蜂王的毒刺一秒…

2026-10-01 10:00 996 技术组
进阶实战游戏功能

血刃:每刀扣血换吸血,血刀双刃

【游戏功能】 技能为什么总是不扣自己的血?血刃偏要反着来:开着血刃的每一刀先扣自己二血、命中回三血——净赚一但要打得中,空刀…

2026-10-01 10:00 996 技术组
进阶实战游戏功能

破军旗:旗立三秒圈内加攻,旗倒攻散

【游戏功能】 bn.t = bn.t - dt ——一行旗面倒计时的代码,撑起了破军旗全部的紧迫感:旗立三秒、圈内加攻三成,…

2026-10-01 10:00 996 技术组
进阶实战游戏功能

淬毒刃:淬毒三刀叠一层,一层毒过一秒六

【游戏功能】 淬毒为什么要一毒到底?淬毒刃偏要一层一层叠:一刀淬一层毒、毒层一秒六地烂,六层封顶之后一刀下去毒伤三十六——叠…

2026-10-01 10:00 996 技术组