远程武器只有法系:弓弩给物理职业远程手感——弹匣装填(6 发一轮、装填 1.5 秒)、距离衰减(15 格外伤害八折)、射击节奏(点射与装填的节奏管理)——远程有了操作维度,走位与装填时机成为技术。
弹匣射击。示例代码如下:
local MAG = 6
local function shoot(actor)
local loaded = tonumber(getplayvar(actor, 0, "Loaded")) or 0
if loaded <= 0 then
setplayvar(actor, 0, "Loaded", MAG, 0)
sendmsg(actor, 1, "装填 6 支弩箭,耗时 1.5 秒。")
return
end
setplayvar(actor, 0, "Loaded", loaded - 1, 0)
sendmsg(actor, 1, "射击!剩余 " .. loaded - 1 .. " 发。")
end
距离衰减。示例代码如下:
local function falloff(dist)
if dist <= 15 then
return 1
end
return 0.8
end
shoot 的弹匣逻辑——Loaded 记剩余箭数(isSave=0 战斗态),空匣触发 1.5 秒装填回满 6 发;falloff 按距离给伤害系数——15 格内全额、超程 80%,弓弩的输出窗口是中距离,贴身与超程都是劣势位,走位价值上升。
弓弩射击踩过三个坑:一是装填期间可移动可攻击(装填形同虚设),装填期锁定射击动作 1.5 秒;二是弩箭弹药与背包箭矢道具未互通(背包有箭匣里没箭),装填改为从背包实扣;三是飞行时间未实现命中即中,被走位白嫖后补 80 毫秒弹道窗口,落点按目标当前位置插值。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法】 一、隐蔽陷阱 打印 5 层星号金字塔,每层比上层多 2 颗星、左侧空格少 1 个——空格与星数的数量关系不清晰时,…
【游戏】 一、业务场景 帮会下午没活动,成员上线点个卯就走。狩猎场上线:每晚 8 点开门 30 分钟,场内刷固定猎物,猎杀计…
【游戏】 一、业务场景 帮战开打才发现帮会没有物资储备,临时收捐谁也不交。粮仓上线:平日捐粮入库记账,帮战期间按配给开仓领补…
【语法】 一、隐蔽陷阱 验证"任一整数的立方都能写成连续奇数之和"时,起点从 1 开始逐个试,n 稍大就长跑几百步还没对上—…
【游戏】 一、业务场景 帮会大厅一面空墙,有人提议留言,结果聊天区刷屏根本留不住。题字墙上线:花 100 帮贡刻一句题字永久…
【游戏】 一、业务场景 灯谜活动上线半小时谜底被解题工具全数搜出——谜面与谜底同放在一份客户端配置里,读表即得。服务端重构:…