- 打卡等级:魔龙套勇士
- 打卡总天数:113
- 打卡月天数:6
- 打卡总奖励:13558
- 最近打卡:2025-08-06 00:37:49
管理员
本站站长
- 积分
- 7919
|
在不同的传奇游戏引擎中,脚本触发特殊属性的实现方式因引擎架构和脚本系统差异而有所不同。以下针对主流引擎(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 引擎:适合基础属性效果(如无敌、传送),兼容性强,适合复古版本。
|
|