【游戏功能】
decoy.hp = 60; decoy.isFake = true——两行代码造出了一个替死鬼。镜花水月的机制就这一条:在原地留一个一模一样的幻象,狼怪分不清真假——幻象替你挨刀三秒,你趁机绕后打真伤。今天拆镜花水月,看"欺骗系"怎么把你自己的影子,变成你最忠实的保镖。
一、留影、换位、绕后三段
镜花水月的循环三段。留影段:原地留一个一模一样的幻象,幻象和你站在同一个位置、同一方向、同一姿态——留影段是全技能的骗局:狼怪分不清真假,它追着"你"打,其实打的是空气——幻象替你挨了三秒的刀。换位段:留完幻象你往一侧滑出,真正的你已经不在原来的位置了——换位段是全技能的脱离:幻象和本体分离的那一瞬,你和它变成了一真一假——狼怪的仇恨挂在幻象上,你在旁边看戏。绕后段:趁着狼怪追着幻象砍的时候,绕到它背后,一刀六十六点的真伤——绕后段是全技能的兑付:幻象牵制三秒,你绕后三刀,狼怪回头时幻象碎了你也走了。三段的核心是"假即护":镜花水月不给你加血不给你加防,它只是制造了一个"看起来是你"的假货——假货替你挨的每一刀,都是真身的白给时间。
完整演示在这,默认自动循环:
fx-mirrordecoy
二、幂尔框架实现:幻象是一个带寿命的克隆体
镜花水月的账本就一个克隆体——
local MirrorDecoy = {}
local DECOY_LIFE = 3.0 -- 幻象三秒
local BACK_DMG = 42
local mirror = { decoy = nil, cd = 0 }
function SL:CastMirror(x)
if mirror.decoy then return end
mirror.decoy = { x = x, t = DECOY_LIFE, hp = 60 }
SL:SpawnGhost(x, DECOY_LIFE)
SL:ShowTipAbove("self", "幻象留了")
end
function SL:OnTick(dt)
if not mirror.decoy then return end
mirror.decoy.t = mirror.decoy.t - dt
if mirror.decoy.t <= 0 then
SL:Vanish(mirror.decoy.x)
mirror.decoy = nil
end
end
function SL:OnWolfHit(dx)
if mirror.decoy and math.abs(dx - mirror.decoy.x) < 30 then
SL:ShowTipAbove(dx, "砍的幻象")
return -- 打幻象:本体无伤
end
SL:HitActor("self", 14) -- 打本体:照常受伤
end
return MirrorDecoy
真假判断是全技能的骨架:decoy.x 和玩家真实坐标的距离差三十像素以内就是打了幻象——狼怪的仇恨系统不认真假,只认距离。
三、幻象的演出规格
幻象是全技能的脸面:半透明的身影和本体一模一样——幻象要"像",像到狼怪分不清才算合格,透明度压在四成——看得见但看得出"有点不对"——这个"有点不对"就是幻象的边界。碎裂的一瞬要"散":幻象碎成水花、水花溅成涟漪、涟漪散成空气——碎裂是幻象的谢幕,谢幕要干净利落不留残余。绕后的金字要"暖":四十二点的"绕后"金字带暖色——暖色是偷袭的味道,偷袭的每一刀都是趁它不注意的温度。幻象和本体的距离要"开":留影之后本体的第一步要滑出一百二十像素——距离不够开狼怪就分不清真假,距离够了真假才分明。
四、定价与三条镜规
欺骗系的定价一句话:幻象三秒、冷却八秒、绕后加四十二——三秒的牵制时间对八秒的冷却,比值不到一半,这门功夫的精明在"三秒能做几件事"。三条镜规:其一,幻象不还手——幻象只挨打不攻击,它是个空壳不是分身,想让它帮你打架的人要失望;其二,真假可辨——距离够近的玩家能看出幻象是半透明的,狼怪分不清但你自己得分清;其三,碎裂无伤——幻象被砍碎没有反伤没有爆炸,它碎就碎了,碎得安静才是幻象的性格。与替身术对照着看:同是"造一个替身的技能",替身术是召唤一个实体木人——木人真的在挡刀;镜花水月是造一个幻影——幻影挡的不是刀是仇恨,欺骗系的两个门派在"实体挡"还是"幻影骗"上分了家。
五、欺骗系的误导学:让敌人追着空气打三秒
镜花水月真正设计的是"误导"的玩法:狼怪的仇恨系统追逐的是"最像敌人的那个目标"——幻象和本体站在一起的时候,狼怪选错了就等于白打了三秒。老玩家的用法是"先幻象后绕后":幻象留在原地当靶子,本体绕到侧后打真伤——幻象碎了你已经打完了——镜花水月的巅峰是幻象碎的那一帧你刚好从背后绕出来。对观战者,幻象和本体并排站着的时候,观众也在猜哪个是真的——猜的过程就是参与感,猜错的爽感比猜对的高。\r\n\r\n幻象的走向还有一手学的细节:本体走左它走左、本体走右它走右——幻象走路的姿势和本体一模一样——一模一样才是骗术的最高境界,如果幻象走得歪歪扭扭,狼怪一眼就认出来了。工程收尾记一笔:幻象的透明度要在四成到六成之间呼吸——呼吸的透明度让幻象"有点不对"但"大体像",这个不对劲的感觉就是欺骗系的灵魂。最后留给数值组的一句话:三秒的幻象对八秒的冷却,窗口占比不到一半——欺骗系的定价不写在幻象的血量上,写在"三秒里你能白打多少真伤"的算式里。
写完再留一句给做欺骗系的同学:幻象替身最容易做成"一个透明贴图",而它本该是一个和本体一模一样会走会站的影子——像要像到狼怪分不清、碎要碎得有水花、留要留在你最危险的位置,幻象像了,玩家才肯把它当自己的替身来用。
补一个演示彩蛋位:幻象碎裂之后原地会留一圈水渍慢慢干掉——水渍是"这里曾经站着一个假的"的痕迹,痕迹散了,狼怪才意识到自己砍了三秒空气。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…
【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…
【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…
【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…
【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…
【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…