课程入口
以下是针对课程内容的规范化总结,按技术模块分类整理:
一、技能系统开发
- 被动技能实现
- 属性加成逻辑:
- 生命值加成:基础值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
- 主动技能触发
- 全屏攻击技能:
- 5%概率触发,范围5x5,伤害基于当前攻击力
- 特效ID 13(可替换),目标类型为怪物(
targetType=1
)
- 裂神符技能:
- 需补传3客户端缺失接口(如
getSubPos
坐标计算)
- 临时解决方案:硬编码特效位置(
x=300, y=70
)
- 概率与CD控制
- 使用伪随机算法:
math.random(100) <= triggerChance
- CD简化方案:未实现计时器时,固定概率触发(如10%)
二、数据存储与配置
- 常量表设计
CONST = {
WARRIOR_BUFF = { hp=60, speed=20, damage=73 },
MAGE_BUFF = { mp=10, natural=10 }
}
- 月卡道具配置
- 物品表字段:
ID |
名称 |
类型 |
持续时间 |
加成属性 |
501 |
月卡 |
消耗品 |
30天 |
攻击+10% |
三、关键技术问题解决
- 传2到传3的兼容性问题
- 资源转换:使用
DevTools
转换地图/动作资源(需逐帧调整16方向)
- 脚本差异:重写传2的
QM/QF
合并逻辑,适配传3的M3
引擎
- 特效异常处理
- 问题:裂神符动作倾斜
- 调试步骤:
-- 1. 检查坐标计算
local dx, dy = target.x - self.x, target.y - self.y
-- 2. 强制修正锚点
effect:setAnchorPoint(0.5, 0.5)
四、待优化事项
- 性能相关
- 全屏攻击的25目标上限需压力测试
- 热重载偶现失败(建议增加
GM命令
强制刷新)
- 代码复用建议
五、标准化操作流程
- 版本更新步骤
1. 关闭所有服务端进程
2. 备份数据库(mysqldump)
3. 更新脚本 -> 重载QF -> 测试GM命令
- 资源打包规范
- 图片格式: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文档
调整参数,以上为通用逻辑示例)