设为首页收藏本站
  • 官方微信
    lmkj_wx 微信公众号 添加方式:
    1:扫描左侧二维码
  • 手机访问
    lmkj_sj
  •  找回密码
     立即注册

    QQ登录

    只需一步,快速开始

    查看: 19|回复: 0

    传奇游戏怪物属性扩展教程

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:131
    • 打卡月天数:24
    • 打卡总奖励:14956
    • 最近打卡:2025-08-24 00:16:44

    7084

    主题

    152

    回帖

    8652

    积分

    管理员

    本站站长

    积分
    8652
    online_admin 发表于 2025-7-17 17:25:49 | 显示全部楼层 |阅读模式
    以下是基于 GOM 引擎的怪物属性扩展教程,涵盖基础配置、脚本编写及高级功能实现:
    一、基础属性扩展配置
    1. 新增属性字段
    文件路径:Envir\MonSpAbilList.txt
    格式说明:
    plaintext
    怪物名 忽视防御(0-100) 增加伤害(0-255) 伤害反弹(0-100) 物伤减少(0-100) 魔伤减少(0-100) 麻痹-几率-时间(0-1 0-10 0-10) 防麻痹(0-1) 防全毒(0-1) 防火墙(0-1) 防诱惑(0-1) 破复活(0-1) 破护身(0-1)


    示例配置:
    plaintext
    白野猪 30 50 20 15 10 0.3 5 1 1 0 1 1

    该配置使白野猪忽视 30% 防御,增加 50 点伤害,反弹 20% 物理伤害,减少 15% 物理 / 10% 魔法伤害,30% 几率触发 5 秒麻痹,免疫麻痹、全毒,可破除复活和护身效果。
    2. 数据库字段调整
    文件路径:DBC2000\Monster.DB
    关键字段:
    RACE:行动模式(如 81 = 范围攻击,92 = 瞬移)
    APPR:外观代码(参考引擎素材库)
    COOLEYE:主动攻击范围(数值越高反隐形能力越强)
    HP/MP:生命 / 魔法值
    DC/MC/SC:物理 / 魔法 / 道术攻击
    人形怪特殊配置:
    在Envir目录下创建MonUseItems文件夹,放置怪物装备配置文件(如白野猪.txt):
    plaintext
    USEITEMS1=裁决之杖
    USEITEMS2=圣战头盔

    二、行为逻辑脚本编写
    1. 基础触发事件
    文件路径:QFunction-0.txt
    怪物死亡事件:
    plaintext
    [@KillMon]
    #IF
    CHECKMONNAME 白野猪
    #ACT
    DROPITEM 祝福油 1 100%  ; 100%掉落1个祝福油
    SENDMSG 6 白野猪被击杀!

    玩家攻击事件:
    plaintext
    [@OnPlayerAttackMon]
    #IF
    CHECKMONNAME 祖玛教主
    #ACT
    SETSKILLLEVEL 群体雷电术 3  ; 触发群体雷电术

    2. 动态属性调整
    血量百分比触发:
    plaintext
    [@MonHPLow]
    #IF
    CHECKMONNAME 牛魔王
    CHECKMONHP < 30%
    #ACT
    ADDSKILL 火焰盾 1  ; 血量低于30%时获得火焰盾
    CHANGEHP +5000     ; 恢复5000点生命

    技能释放条件:
    plaintext
    [@MonSkill]
    #IF
    CHECKMONNAME 虹魔教主
    CHECKMONSMP > 80%
    #ACT
    CASTSKILL 吸血术  ; 魔法值高于80%时释放吸血术

    三、高级功能实现
    1. 技能特效与动画
    技能关联:
    在Monster.DB中设置SKILL字段(如群体雷电术,火墙)
    编辑!Setup.txt关联技能 ID 与动画资源:
    plaintext
    [SKILLINFO]
    群体雷电术=32,100,50  ; 技能ID=32,伤害范围100,消耗MP50

    自定义动画:
    将动画文件(如mon_attack_01.mdl)放置在Res\Monster目录
    在Monster.DB的APPR字段引用动画名称
    2. 复杂 AI 逻辑
    仇恨机制:
    plaintext
    [@MonHate]
    #IF
    CHECKMONNAME 赤月恶魔
    CHECKPLAYERNUM > 3
    #ACT
    SETTARGET 随机玩家  ; 超过3名玩家时随机选择目标

    移动模式:
    在Monster.DB设置WALK-SPD(行走速度间隔)和WALKSTEP(步伐)
    结合脚本实现巡逻路径:
    plaintext
    [@MonPatrol]
    #IF
    CHECKMONNAME 沃玛卫士
    #ACT
    MOVETO 330 330  ; 移动到指定坐标

    3. 版本兼容性处理
    引擎更新适配:
    2024 年 10 月后版本需启用怪物标识:
    plaintext
    ; 在MonSpAbilList.txt中添加
    白野猪 30 50 20 15 10 0.3 5 1 1 0 1 1 <$MONFLAG:1>  ; 标识1用于脚本判断

    脚本中使用标识控制行为:
    plaintext
    [@MonFlagCheck]
    #IF
    CHECKMONFLAG 1
    #ACT
    ADDSKILL 抗拒火环 1

    四、测试与调试
    1. 日志分析
    开启调试:
    在M2Server→选项→日志控制中勾选记录怪物行为
    关键日志文件:
    Envir\MonLog\Monster.log:记录怪物属性加载和技能释放
    Envir\QLog.txt:记录脚本执行过程
    2. 游戏内验证
    GM 命令测试:
    @moninfo:查看怪物实时属性
    @castskill 怪物名称 技能名称:强制释放技能
    版本回退:
    若新版本配置异常,可参考Envir\Backup目录下的历史备份文件
    五、常见问题解决
    1. 属性不生效
    排查步骤:
    检查MonSpAbilList.txt格式是否正确(字段顺序不可调换)
    确认Monster.DB中对应怪物的RACE和APPR字段与引擎版本匹配
    重启 M2Server 使配置生效
    2. 脚本逻辑异常
    调试方法:
    在脚本关键位置添加SENDMSG输出变量值:
    plaintext
    SENDMSG 6 当前怪物血量:<$CURRENT_MON_HP>

    对比日志时间戳与游戏行为时间点,定位执行顺序问题
    3. 模型加载失败
    修复方案:
    确保Res\Monster目录下存在对应模型文件
    在Monster.DB中检查APPR字段是否与模型文件名一致
    清理客户端缓存Data\Local目录
    六、进阶案例:动态属性 BOSS
    1. 配置需求
    血量低于 50% 时触发狂暴,攻击提升 50%,防御降低 20%
    每 30 秒召唤小怪协助作战
    2. 实现步骤
    MonSpAbilList.txt:
    plaintext
    终极BOSS 0 0 0 0 0 0 0 0 0 0 0 0

    QFunction-0.txt:
    plaintext
    [@MonHPLow]
    #IF
    CHECKMONNAME 终极BOSS
    CHECKMONHP < 50%
    #ACT
    CHANGEEXP -1  ; 移除原有经验值
    CHANGEDC +50  ; 攻击+50
    CHANGEAC -20  ; 防御-20
    SENDMSG 6 终极BOSS进入狂暴状态!

    [@MonTimer]
    #IF
    CHECKMONNAME 终极BOSS
    TIMER 30
    #ACT
    SPAWNMOB 半兽勇士 330 330 3  ; 召唤3只半兽勇士
    RESETTIMER

    Monster.DB:
    设置RACE=81(范围攻击)
    COOLEYE=100(反隐形)

    通过以上配置,可实现具备动态属性变化和召唤能力的高级 BOSS。实际开发中需结合引擎版本特性,灵活调整配置参数和脚本逻辑,确保游戏体验流畅。

    您需要登录后才可以回帖 登录 | 立即注册 qq_login

    本版积分规则

    QQArchiver 手机版 小黑屋 39传奇素材网 ( 蜀ICP备2022016510号-3 )

    快速回复 快速发帖 返回顶部 返回列表