【游戏功能】
stele=stele-1——先拆这一行。界碑纹的全部机关就在这一行的递减里:碑上五道裂痕的额度,你的每一刀过碑就减一,减到零,碑当场碎裂,加重通道跟着关闭。界碑纹的账很简单:立一面碑在你和怪之间的必经之路上,你的刀刀刀过碑——碑立着,刀刀十六;碑碎了,刀回十二,再立一面又是五刀的重刀。这篇把整套模块拆开:配置表、立碑结算、过碑加重、裂痕递减、定时器、调试按钮,一段一段照抄能跑。
一、效果演示:刀刀过碑,碑裂五道前都算重刀
演示场点「立碑!」:一面灰紫色的碑在你和怪之间立起——碑身青亮,五道裂痕的额度。你砍一刀,刀光掠过碑面——十六点的重刀入账,碑上当场爬出第一道白纹,"碑裂1"的小字从碑身滚落。二刀二裂、三刀三裂——第五刀过碑,碑身白纹爬满,"哗啦"一声碎成齑粉,你的刀当场回十二。再按立碑,新碑又起,又是五刀的重刀日子。演示里试两笔账:碑立着的五刀总账和碑碎后的五刀总账——二十点的差价全在那面碑的寿命里。界碑纹教的是期限:加重不是永久的,是按刀数计租的。
fx-stonegate
二、底层原理:一面界碑构件加一次过碑加重
模块的机关是一对搭档。界碑构件:立碑那一拍一面碑立在你和怪之间的必经之路上——碑是加重的关卡,刀光过碑即算过账,五道裂痕是碑的寿命。过碑加重:碑在的每一刀走加重档——十六对十二,重刀的代价是碑身裂一道,裂痕爬满碑就碎。和增伤类机制的分野在"界碑的重刀是按刀计租的":普通增伤认时间,界碑的重刀认刀数——你砍得越快碑碎得越快,加重和寿命是一根线上拴的两个蚂蚱。
裂痕为什么定五道不是无限?无限的版本碑成了常驻增伤挂件,立碑变成一按一整场的怠惰键;五道的版本每一刀都在消耗加重的本金——玩家掐着碑的裂痕数打,重刀留给怪的破绽帧,轻刀留着省碑,计租的加重才叫经营。
三、核心代码:完整模块(上·骨架)
-- @file StoneGate.lua
-- 界碑石纹 —— 刀刀过碑,碑裂五道前都算重刀
local StoneGate = {}
local CONST = {
STELE_CAP = 5,
STELE_CD = 2.0,
AMP_HIT = 16,
BASE_HIT = 12,
COLOR_STELE = "#989078",
COLOR_DEEP = "#383428",
COLOR_GHOST = "#e0d8b8",
ZORDER_STELE = 88,
ZORDER_FX = 135,
AUTOINC_BASE = 1123000,
}
local _steleN = 0
local _cdLeft = 0
local _steleFx = nil
local _scheduler = nil
local _autoInc = 0
local function GenID(prefix)
_autoInc = _autoInc + 1
return string.format("%s_%d", prefix or "STG",
CONST.AUTOINC_BASE + _autoInc)
end
local function GetActorPos(id)
if not id then return nil end
local x = SL:GetValue("ACTOR_POSITION_X", id)
local y = SL:GetValue("ACTOR_POSITION_Y", id)
if not x or not y then return nil end
return { x = x, y = y }
end
local function SafeRemove(node)
if node and not GUI:Widget_IsNull(node) then
GUI:removeFromParent(node)
end
end
local function ShowTip(msg)
if msg and msg ~= "" then SL:ShowSystemTips(msg) end
end
function StoneGate.Standing()
return _steleN > 0
end
四、核心代码:完整模块(下·过碑加重与裂痕递减)
-- 过碑加重:碑在的每一刀走重档,裂痕递减
SL:RegisterLUAEvent(LUA_EVENT_MELEE_DAMAGE, "STG_Amp", function()
if not StoneGate.Standing() then return 0 end
_steleN = _steleN - 1
SL:TipAbove(SL:GetValue("USER_ID"),
"碑裂" .. (CONST.STELE_CAP - _steleN))
if _steleN <= 0 then
SL:PlaySteleBreakFx()
ShowTip("碑碎了——刀回平常")
end
return CONST.AMP_HIT - CONST.BASE_HIT
end)
function StoneGate.Cast()
if _cdLeft > 0 or StoneGate.Standing() then return end
local myID = SL:GetValue("USER_ID")
local mp = GetActorPos(myID)
if not mp then return end
_cdLeft = CONST.STELE_CD
_steleN = CONST.STELE_CAP
SafeRemove(_steleFx)
_steleFx = GUI:Layout_Create(GUI:Attach_Scene(),
GenID("Stele"), mp.x + 130, mp.y, 0, 0, false)
GUI:setLocalZOrder(_steleFx, CONST.ZORDER_STELE)
SL:PlaySteleUpFx(mp.x + 130)
ShowTip("碑立上了——刀刀过碑,五道裂痕为止")
end
-- 定时器:碑身的守望(碑认刀数不认时间)
if not _scheduler then
_scheduler = SL:Schedule(function(dt)
_cdLeft = math.max(0, _cdLeft - dt)
end, 0.02)
end
SL:ScheduleOnce(function()
SL:BindDebugButton("立碑", function()
StoneGate.Cast()
end)
ShowTip("技能已加载: 界碑纹 (调试按钮触发)")
end, 1.0)
function StoneGate.Unload()
if _scheduler then SL:Unschedule(_scheduler) end
SafeRemove(_steleFx)
_steleN = 0
end
return StoneGate
五、机制问答
问:碑碎之前重刀吃暴击吗?
答:吃——十六点是过碑的底刀,暴击在底刀上照常乘,碑下暴击是省碑打法的最佳兑现点。
问:碑裂的计数认谁出的刀?
答:认过碑的刀不认出刀的人——队友的刀过了碑也照裂照加重,碑是路税不是私产。
问:碑碎后裂痕能修补吗?
答:不能——碎了就是碎了,只能重新立一面新碑,旧的裂痕不回滚,这也是省碑打法的由来。
问:碑立着的时候被怪砸了会怎样?
答:没事——碑只认你刀光过碑的裂痕,怪的爪子砸不坏它,它砸的是你不是碑。
问:立碑的位置有讲究吗?
答:仪式上有——碑立在两者之间的必经之路上才有"过碑"的戏,按机制它认刀数不认坐标,讲究是给玩家的。
六、调参指南与商业服怎么用
第四笔是裂痕的额度:五道是"一波爆发"的容量——额度太多碑成了常驻增伤,太少两三刀就碎显得小气,五道刚好是一轮技能循环的配给。第三笔是重刀的价:十六对十二是三成的过碑税——税太高碑期输出垄断,太低立碑成了仪式,三成刚好让省碑成为真策略。第二笔是递减的口径:每刀减一没有例外是碑的信用——可跳过裂痕的特殊刀不存在的版本才有"数着刀打"的经营感,口径一松经营就散。第一笔是裂痕的爬行:白纹从碑心向碑角爬、爬满一块塌一块——裂痕的进度就是加重的余额,看得见的余额才配叫计租。常见坑三个:碑碎的结算和裂痕递减同帧抢账导致第六刀还吃了重刀;碑身的裂痕图层没跟随立碑位置;碑碎后的齑粉演出飘到了血条上层。
商业服里界碑纹是"碑林寨"的过所:别人的增伤认时长,他的增伤认刀数——商城里碑的样式做成品级,青石碑、玄铁碑、镇岳碑,那面立在战场上的灰紫石碑就是碑林寨的关防。运营落地还有两笔:一段是省碑教学——教一句"重刀留给破绽帧,轻刀留着省碑",流派第一课是算刀;一段是碑官榜——按单面碑打出的总伤排名,碑用得最精的人有碑外之碑。变体做成双面碑:碑的两面各记五道,打它一面翻一面——从单面到双面,碑林寨的碑越立越厚。这一篇的演示和整套模块照抄能跑,改的就是 CONST 那张表。
写完留一句给做配给系的同学:界碑纹卖的是"加重按刀计租"——那面一刀爬一道白纹的碑和碎裂时的一声脆响,是把增伤从包月改成计次的五道裂痕。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
接手二开的兄弟几乎都撞过同一堵墙:玩家嫌走路"一格一格像机器人",老板拍板要"丝滑移动",改服务端速度?不对。改客户端动画帧…
【游戏功能】 先看一个熟场面:法师的火球特效挂在怪的脚后跟上,明明技能说明写着"焚烧其面",火星子却在地上打滚。群里有位策划…
【游戏功能】 上周有个开服的老板在群里发了一段录屏:他的战士明明刀刀都砍中了,观众却一片"这刀挥空了吧"。他原话是"判定日志…
【游戏功能】 先说结论放在开头:怪的皮一会儿绿一会儿红,不是美术换了几套贴图,是染色系统在怪身上盖了一层"色镜"。开服群里有…
前两天群里有个架设的朋友问了个需求:中毒的人要变绿、每两秒掉一次血、毒还能叠五层,问是不是要在服务端把整套状态机重写。我说你…
【游戏功能】 先抛一个坑:五口钟一模一样大,为什么一口比一口疼?先后次序动不得吗?倒过来敲会怎样?这篇把编钟纹整套写法拆开:…