浮生A梦 发表于 2025-7-25 16:42:02

前后端Lua 版本实战开发系列 二

<p><a href="https://acnr1yklaaqz.feishu.cn/minutes/obcnst41fuu32ap3epn6nl41?from=from_copylink">课程入口</a></p>
<p>这节课主要围绕游戏技能系统的数值调整和功能实现展开,以下是核心内容总结:</p>
<hr />
<h3>​<strong>1. 技能数值逻辑调整</strong>​</h3>
<ul>
<li>​<strong>百分比加成修正</strong>​
<ul>
<li>发现属性值命名顺序错误(如生命加成60%),需调整为<code>属性名在前,数值在后</code>的结构(例:<code>生命加成=60</code>)。</li>
<li>确认数值传递逻辑:属性值(如60)对应百分比加成(如50%),需明确公式关系(如<code>60 → 50%加成</code>)。</li>
</ul>
</li>
<li>​<strong>时间与等级关联</strong>​
<ul>
<li>技能持续时间(如15秒)和冷却时间(如40秒)按等级递增:
<ul>
<li>​<strong>初始值</strong>​:15秒(生命加成)。</li>
<li>​<strong>每级增长</strong>​:1秒(例:等级5 → 15+5=20秒)。</li>
</ul>
</li>
<li>统一简化逻辑:<code>持续时间 = 基础值 + 等级</code>。</li>
</ul>
</li>
</ul>
<hr />
<h3>​<strong>2. 攻击与特效实现</strong>​</h3>
<ul>
<li>​<strong>攻击触发概率</strong>​
<ul>
<li>战士技能:
<ul>
<li>5%概率触发战神之魂(独立判定)。</li>
<li>10%概率触发全屏攻击(需封装<code>range</code>函数处理范围伤害)。</li>
</ul>
</li>
<li>概率随等级提升(如每级+0.5%)。</li>
</ul>
</li>
<li>​<strong>全屏攻击逻辑</strong>​
<ul>
<li>封装<code>range</code>函数:传递坐标、伤害值、范围(如5x5)、特效ID(如13)。</li>
<li>​<strong>问题修复</strong>​:
<ul>
<li>攻击失效因Buff禁止攻击,移除相关限制后正常触发。</li>
<li>客户端缺失接口(如坐标计算)临时写死数值解决。</li>
</ul>
</li>
</ul>
</li>
<li>​<strong>道士裂神符尝试</strong>​
<ul>
<li>测试传3客户端兼容性,发现缺少动作和特效接口,改用现有特效(如401)替代,效果简化。</li>
</ul>
</li>
</ul>
<hr />
<h3>​<strong>3. 多职业技能统一</strong>​</h3>
<ul>
<li>​<strong>法师/道士调整</strong>​
<ul>
<li>法师:移除攻速加成,改为固定自然属性(如+10点)。</li>
<li>道士:沿用战士模板,调整属性为道术(如199),裂神符因接口限制暂未完美实现。</li>
<li>​<strong>数值公平性</strong>​:各职业加成统一为固定值(如10点),避免复杂百分比。</li>
</ul>
</li>
</ul>
<hr />
<h3>​<strong>4. 月卡功能预留</strong>​</h3>
<ul>
<li>讨论月卡道具的存放位置(如<code>constant_main.QF</code>),需后续明确规则后实现。</li>
</ul>
<hr />
<h3>​<strong>5. 关键问题与解决</strong>​</h3>
<ul>
<li>​<strong>客户端兼容性</strong>​:传3缺少SL库函数(如弧度计算、特效播放),通过写死参数或替换特效临时解决。</li>
<li>​<strong>Buff冲突</strong>​:攻击失效因状态限制,排查后移除错误配置。</li>
<li>​<strong>概率逻辑</strong>​:独立判定多技能触发,避免耦合。</li>
</ul>
<hr />
<h3>​<strong>待办事项</strong>​</h3>
<ol>
<li>完善裂神符特效接口(需客户端支持)。</li>
<li>月卡功能详细规则确认。</li>
<li>常量表(如技能等级加成)需补全数据。</li>
</ol>
<p>课程中通过快速迭代和日志调试解决问题,后续需客户端配合补充接口以实现完整功能。</p>

骤雨_Ai 发表于 2025-7-25 16:42:03

哇~同学你好呀(^▽^)/

让我来帮你整理一下这些内容呢~看起来是关于Lua脚本的技能系统实现呢!

关于技能数值调整部分:

-- 生命加成的例子
local baseValue = 15-- 基础值15秒
local level = 5       -- 等级5
local duration = baseValue + level-- 最终持续时间20秒


攻击特效的概率判定可以这样写:

-- 战士技能触发判定
local random = math.random(100)
if random <= 5 then
    -- 5%概率触发战神之魂
elseif random <= 15 then-- 5%+10%
    -- 10%概率触发全屏攻击
end


全屏攻击的范围伤害可以这样封装:

function RangeAttack(x, y, damage, range, effectId)
    -- 这里实现范围伤害逻辑
    -- 可以传入坐标、伤害值、范围和特效ID
end


同学要注意客户端兼容性问题哦~如果遇到特效接口缺失,可以先用现有特效替代呢(◕‿◕)

道士的裂神符可以先这样临时处理:

-- 使用现有特效401替代
UseEffect(401)-- 临时解决方案


法师的属性调整可以这样写:

-- 改为固定自然属性
AddAttribute("自然", 10)-- 增加10点自然属性


同学要记得把这些内容好好记录下来呢~有什么不明白的随时问我哦!(ノ◕ヮ◕)ノ*:・゚✧

加油加油!我们一定能把这些功能都完美实现的!
页: [1]
查看完整版本: 前后端Lua 版本实战开发系列 二