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

    QQ登录

    只需一步,快速开始

    查看: 4|回复: 0

    如何在不同的传奇游戏引擎中实现脚本触发特殊属性

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:113
    • 打卡月天数:6
    • 打卡总奖励:13558
    • 最近打卡:2025-08-06 00:37:49

    6381

    主题

    122

    回帖

    7919

    积分

    管理员

    本站站长

    积分
    7919
    online_admin 发表于 昨天 17:02 | 显示全部楼层 |阅读模式
    在不同的传奇游戏引擎中,脚本触发特殊属性的实现方式因引擎架构和脚本系统差异而有所不同。以下针对主流引擎(GOM、GEE、Hero)的核心机制、脚本文件、函数语法及典型案例进行详细说明,帮助你根据引擎类型选择对应方法:
    一、GOM 引擎:功能丰富的脚本触发体系
    GOM 引擎的脚本系统灵活性高,支持通过QFunction系列文件和 M2 引擎实时配置触发特殊属性,函数命名直观,适合复杂场景(如 BOSS 狂暴、动态增益)。
    1. 核心脚本文件与路径
    主脚本文件:Mir200\Envir\QuestDiary\QFunction-0.txt(全局触发逻辑,如怪物死亡、玩家进入地图等)。
    地图专属脚本:Mir200\Envir\QuestDiary\地图编号\MapQuest.txt(仅在指定地图生效,如 “D717.MapQuest.txt” 对应祖玛七层)。
    2. 典型特殊属性触发案例
    (1)玩家进入地图获得临时属性增益
    ini
    #IF
    MAPNAME 活动地图  ; 条件:玩家进入“活动地图”
    #ACT
    CHANGEPERMATT 100  ; 临时攻击+100
    CHANGEPERMDEF 50   ; 临时防御+50
    SETTIMER 1 3600    ; 1小时后执行定时器1(清除增益)
    SENDMSG 7 活动地图增益生效,持续1小时!

    ; 定时器1:清除增益
    #TIMER 1
    #ACT
    CHANGEPERMATT -100  ; 还原攻击
    CHANGEPERMDEF -50   ; 还原防御
    SENDMSG 7 活动地图增益已结束!
    (2)BOSS 血量低于 30% 触发狂暴(攻击翻倍 + 召唤小弟)
    ini
    #IF
    Equal MONSTERID 2001  ; 条件:目标为特殊BOSS(编号2001)
    MONSTERHP < 30%       ; BOSS血量低于30%
    #ACT
    SETMONSTERATTR 2001 ATK 2  ; 攻击变为2倍(原攻击×2)
    SETMONSTERATTR 2001 SPEED 3 ; 移动速度提升(3级加速)
    CALLMONS 101 3          ; 召唤3只普通小怪(编号101)
    MONSTERHOUT 2001 尝尝我的怒火!  ; BOSS喊话
    (3)玩家攻击触发麻痹效果(模拟麻痹戒指)
    ini
    #IF
    HITMON                ; 条件:玩家攻击怪物
    CHECKITEM 特殊武器 1  ; 玩家持有“特殊武器”
    RANDOM 20             ; 20%概率触发
    #ACT
    PARALYZE 5  ; 使被攻击怪物麻痹5秒(无法移动/攻击)
    SENDMSG 6 你触发了武器的麻痹特效!
    3. GOM 引擎特有函数
    CHANGEPERMXXX:临时修改玩家属性(ATT攻击、DEF防御、HP血量等)。
    SETMONSTERATTR:修改怪物属性(ATK攻击倍率、SPEED速度等级)。
    PARALYZE:触发麻痹状态(参数为持续秒数)。
    SETTIMER:设置定时器(延迟执行清除属性等操作)。
    二、GEE 引擎:轻量化脚本与倍率控制
    GEE 引擎的脚本系统更侧重轻量化逻辑,支持通过Quest文件和配置文件联动,适合经验倍率、区域效果等场景,函数语法简洁。
    1. 核心脚本文件与路径
    全局脚本:Mir200\Envir\Quest\QFunction.txt(基础触发逻辑)。
    怪物死亡脚本:Mir200\Envir\Quest\DeadMonster.txt(专门处理怪物死亡事件)。
    配置文件:Mir200\GEEConfig.ini(补充属性倍率等全局设置)。
    2. 典型特殊属性触发案例
    (1)活动期间全服经验翻倍(结合时间条件)
    ini
    #IF
    HOUR > 20  ; 条件:当前时间晚于20点
    HOUR < 22  ; 早于22点(活动时间20:00-22:00)
    #ACT
    SETEXPRATE 2  ; 经验倍率改为2倍(默认1倍)
    SENDMSG 0 【活动】经验翻倍中,抓紧升级!
    #ELSEACT
    SETEXPRATE 1  ; 非活动时间还原倍率
    (2)BOSS 死亡触发全服公告 + 必掉道具
    ini
    ; 在DeadMonster.txt中配置
    #IF
    Equal MONSTERID 2001  ; 条件:BOSS(2001)被击杀
    #ACT
    GIVE 终极令牌 1  ; 给击杀者“终极令牌”(必掉)
    SENDMSG 0 恭喜玩家%s成功击杀变异祖玛教主,获得专属令牌!  ; 全服公告(%s自动替换为玩家名)
    MAPMOVE S001 50 50  ; 传送击杀者至特殊副本(S001)
    (3)危险区域内持续掉血(区域坐标检测)
    ini
    #IF
    MAPNAME 毒沼地图  ; 条件:玩家在“毒沼地图”
    RANGE 100 100 200 200  ; 玩家坐标在(100,100)-(200,200)范围内
    #ACT
    KILLUSER 100  ; 每秒对玩家造成100点伤害
    SENDMSG 6 你处于毒沼核心区,持续掉血!
    3. GEE 引擎特有函数
    SETEXPRATE:设置经验倍率(参数为倍数,如 2=2 倍)。
    KILLUSER:对玩家造成固定伤害(参数为伤害值)。
    RANGE:检测玩家是否在指定坐标范围内(用于区域效果)。
    三、Hero 引擎:传统脚本与配置联动
    Hero 引擎是最早期的主流引擎之一,脚本系统相对传统,需通过AutoRunQuest和属性配置文件联动,适合基础属性触发(如无敌、传送)。
    1. 核心脚本文件与路径
    主脚本:Mir200\Envir\AutoRunQuest.txt(全局触发,每 100ms 执行一次)。
    怪物属性配置:Mir200\Envir\MapAttr.txt(补充怪物特殊属性,如免疫魔法)。
    2. 典型特殊属性触发案例
    (1)新手玩家(<30 级)获得无敌保护
    ini
    #IF
    CHECKLEV < 30  ; 条件:玩家等级<30级
    #ACT
    SETINVINCIBLE 1  ; 开启无敌模式(1=开启,0=关闭)
    SENDMSG 7 新手保护生效:30级前无敌!
    #ELSEACT
    SETINVINCIBLE 0  ; 等级≥30级关闭无敌
    (2)玩家使用道具后强制传送至副本
    ini
    #IF
    CHECKITEM 副本卷轴 1  ; 条件:玩家持有“副本卷轴”
    #ACT
    TAKE 副本卷轴 1       ; 消耗道具
    MOVETOMAP S001 50 50  ; 传送至副本S001的(50,50)坐标
    SENDMSG 6 你已进入专属副本,限时30分钟!
    (3)怪物免疫魔法(结合 MapAttr.txt)
    先在MapAttr.txt中定义怪物免疫属性:
    ini
    2001 16  ; 怪物编号2001,免疫毒素(16为免疫标识,不同值对应不同免疫类型)

    在脚本中触发提示:
    ini
    #IF
    Equal MONSTERID 2001  ; 攻击怪物2001
    MAGICUSED 雷电术      ; 玩家使用雷电术
    #ACT
    SENDMSG 6 该怪物免疫魔法攻击!

    3. Hero 引擎特有函数
    SETINVINCIBLE:控制无敌状态(1 = 开启)。
    MOVETOMAP:传送玩家至指定地图(参数为地图编号 + 坐标)。
    MAGICUSED:检测玩家使用的技能(用于免疫提示)。
    四、跨引擎通用逻辑与注意事项
    核心触发逻辑:所有引擎均遵循 “条件判断(#IF)+ 执行动作(#ACT)” 结构,条件可基于地图、等级、物品、血量等。
    脚本调试:
    GOM/GEE:通过 M2 引擎的 “脚本调试” 功能(查看→脚本日志)查看执行过程。
    Hero:在AutoRunQuest.txt中添加DEBUG命令输出日志。
    引擎差异避坑:
    函数名称:如传送功能,GOM 用MAPMOVE,Hero 用MOVETOMAP,需参考对应引擎手册。
    性能控制:高频触发脚本(如每秒检测区域伤害)需限制频率(如每 3 秒一次),避免服务器卡顿。
    总结
    GOM 引擎:适合复杂动态效果(如 BOSS 多阶段狂暴、定时属性切换),函数丰富,推荐用于中高端版本。
    GEE 引擎:适合轻量化属性触发(如经验倍率、区域伤害),配置简单,适合快速迭代的活动版本。
    Hero 引擎:适合基础属性效果(如无敌、传送),兼容性强,适合复古版本。

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

    本版积分规则

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

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