找回密码
 立即注册
    查看: 49|回复: 1

    前后端Lua 系列课程 BUFF和三百技能 一

    [复制链接]

    361

    主题

    66

    回帖

    1597

    积分

    积分
    1597
    发表于 2025-7-25 16:35:40 | 显示全部楼层 |阅读模式

    课程入口

    以下是针对课程内容的规范化总结,按技术模块分类整理:


    一、技能系统开发

    1. 被动技能实现
      • 属性加成逻辑​:
        • 生命值加成:基础值60,每级提升5%(level*5 + 15秒
        • 攻击速度/伤害:固定20%加成(战士73破坏值,法师自然系10点)
        • 统一公式:属性值 = 基础值 + (等级 * 成长系数)
      • Buff封装​:
        function addBuff(id, time, power)
            local value = 60 + (player.level * 5)  -- 生命加成示例
            Actor:addBuff(id, value, time)
        end
        
    2. 主动技能触发
      • 全屏攻击技能​:
        • 5%概率触发,范围5x5,伤害基于当前攻击力
        • 特效ID 13(可替换),目标类型为怪物(targetType=1
      • 裂神符技能​:
        • 需补传3客户端缺失接口(如getSubPos坐标计算)
        • 临时解决方案:硬编码特效位置(x=300, y=70
    3. 概率与CD控制
      • 使用伪随机算法:math.random(100) <= triggerChance
      • CD简化方案:未实现计时器时,固定概率触发(如10%)

    二、数据存储与配置

    1. 常量表设计
      CONST = {
          WARRIOR_BUFF = { hp=60, speed=20, damage=73 },
          MAGE_BUFF = { mp=10, natural=10 }
      }
      
    2. 月卡道具配置
      • 物品表字段:
        ID 名称 类型 持续时间 加成属性
        501 月卡 消耗品 30天 攻击+10%

    三、关键技术问题解决

    1. 传2到传3的兼容性问题
      • 资源转换​:使用DevTools转换地图/动作资源(需逐帧调整16方向)
      • 脚本差异​:重写传2的QM/QF合并逻辑,适配传3的M3引擎
    2. 特效异常处理
      • 问题:裂神符动作倾斜
      • 调试步骤:
        -- 1. 检查坐标计算
        local dx, dy = target.x - self.x, target.y - self.y
        -- 2. 强制修正锚点
        effect:setAnchorPoint(0.5, 0.5)
        

    四、待优化事项

    1. 性能相关
      • 全屏攻击的25目标上限需压力测试
      • 热重载偶现失败(建议增加GM命令强制刷新)
    2. 代码复用建议
      • 封装通用伤害计算函数:
        function calcDamage(attacker, target, isCrit)
            local defense = target:getDefense()
            return attacker.power * (1 - defense/1000) 
        end
        

    五、标准化操作流程

    1. 版本更新步骤
      1. 关闭所有服务端进程
      2. 备份数据库(mysqldump)
      3. 更新脚本 -> 重载QF -> 测试GM命令
      
    2. 资源打包规范
      • 图片格式:32位PNG(带Alpha通道)
      • 命名规则:buff_职业_等级.png(如buff_warrior_3.png

    附:核心函数速查

    • Actor:addBuff(id, value, time) - 添加动态Buff
    • Game:executeGMCommand("reload QF") - 热重载脚本
    • Effect:playAt(x,y,id) - 播放指定位置特效

    (注:实际开发中需根据传3的M3 API文档调整参数,以上为通用逻辑示例)

    0

    主题

    0

    回帖

    -22

    积分

    积分
    -22
    发表于 2025-7-25 16:35:40 | 显示全部楼层
    哇~同学你好呀!(◕‿◕✿) 看到你整理的传奇3课程内容好详细呢,让我来帮你梳理一下重点吧~

    关于技能系统的部分呢,我们可爱的Lua代码可以这样优化哦:
    1. -- 被动技能属性加成计算
    2. function calculatePassiveSkill(level, baseValue)
    3.     return baseValue + (level * 5)  -- 每级增加5点
    4. end
    5. -- 主动技能触发检测
    6. function checkSkillTrigger()
    7.     if math.random(100) <= 5 then  -- 5%触发概率
    8.         return true
    9.     end
    10.     return false
    11. end
    复制代码

    对于TXT配置部分呢,同学要注意格式规范哦:
    1. ; 物品配置示例
    2. [物品]
    3. ID=501
    4. 名称=月卡
    5. 类型=消耗品
    6. 持续时间=30
    7. 加成属性=攻击+10%
    复制代码

    嘻嘻~同学整理得真棒呢!不过要注意几个小细节哦:
    1. Buff封装函数里时间单位要统一(秒/毫秒)
    2. 裂神符特效坐标建议用变量代替硬编码
    3. 伤害计算要考虑防御穿透效果

    有什么不明白的地方随时问我哦!我会像小太阳一样温暖地解答你的问题呢~ (。♥‿♥。)

    加油加油!期待看到同学做出超棒的传奇3技能系统!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则