一、核心触发方式及适用场景
燃放烟花进地图脚本核心通过检测烟花道具使用、燃放动作触发地图传送,主流分为两种模式:NPC交互触发(需手动对话)、道具使用直接触发(自动燃放传送),适配不同玩法需求,兼容GOM、HERO等主流引擎。
适用场景包括焰火屠魔、专属活动地图、隐藏地图解锁等,可按需求设置烟花数量、等级门槛、燃放后效果等条件,实现精准管控地图进入权限。
二、脚本核心命令及作用说明
1. 道具检测命令
- CHECKITEM 物品ID 数量:检测玩家背包内指定ID的烟花道具是否满足数量要求,烟花ID需对应服务端数据库(如普通烟花ID=5001,高级烟花ID=5002)。
- DELITEM 物品ID 数量:燃放烟花后扣除对应数量道具,作为进入地图的消耗,需与检测命令中的数量保持一致。
2. 传送及燃放效果命令
- MAPMOVE 地图编号 X坐标 Y坐标:核心传送命令,燃放成功后将玩家传送至指定地图及坐标,地图编号需查询服务端地图列表。
- PLAYSOUND 音效路径:触发燃放音效,增强沉浸感,音效文件放入服务端Sound目录,路径格式如“Sound/Firework.wav”。
- SENDMSG 颜色代码 提示文本:弹出燃放及传送提示,常用颜色代码253(绿色,成功)、252(紫色,失败),告知玩家操作结果。
3. 辅助条件命令
- CHECKLEVELEX >= 等级:设置等级门槛,仅达到指定等级玩家可燃放烟花进地图,避免低等级玩家进入。
- CHECKTIMER 计时器编号:设置冷却时间,限制玩家重复进入频率,如每日仅可进入1次。
三、两种主流脚本实现方案(可直接嵌入)
方案一:NPC交互触发(焰火屠魔专属)
通过与指定NPC对话,消耗烟花进入专属地图,支持多档位烟花对应不同地图,核心代码如下:
// 脚本路径:D:\Mirserver\Mir200\Envir\Market_Def\焰火NPC.txt
[main]
<SCOLOR=253>欢迎参与焰火屠魔活动!消耗对应烟花即可进入专属地图。</SCOLOR>
<SCOLOR=245>【普通焰火(3个)- 低级地图】/@NormalFire</SCOLOR>
<SCOLOR=245>【高级焰火(1个)- 高级地图】/@AdvancedFire</SCOLOR>
[@NormalFire]
#IF
CHECKLEVELEX >= 37 // 等级门槛37级
CHECKITEM 5001 3 // 检测3个普通烟花(ID=5001)
#ACT
DELITEM 5001 3 // 扣除3个普通烟花
MAPMOVE 101 120 130 // 传送至低级焰火地图(编号101,坐标120,130)
PLAYSOUND Sound/Firework1.wav
SENDMSG 253 燃放普通焰火成功,已传送至低级活动地图!
#ELSEACT
SENDMSG 252 等级不足37级或普通烟花数量不够,无法进入!
[@AdvancedFire]
#IF
CHECKLEVELEX >= 45
CHECKITEM 5002 1 // 检测1个高级烟花(ID=5002)
#ACT
DELITEM 5002 1
MAPMOVE 102 150 150 // 传送至高级焰火地图(编号102,坐标150,150)
PLAYSOUND Sound/Firework2.wav
SENDMSG 253 燃放高级焰火成功,已传送至高级活动地图!
#ELSEACT
SENDMSG 252 等级不足45级或高级烟花数量不够,无法进入!
方案二:道具使用直接触发(自动燃放传送)
玩家使用烟花道具后自动燃放并传送,无需NPC交互,适配隐藏地图解锁,核心代码如下:
// 脚本路径:D:\Mirserver\Mir200\Envir\QuestDiary\烟花触发.txt
[@UseItem5001] // 使用普通烟花(ID=5001)时触发
#IF
CHECKLEVELEX >= 30
#ACT
MAPMOVE 103 100 100 // 传送至隐藏地图(编号103)
PLAYSOUND Sound/Firework1.wav
SENDMSG 253 普通烟花燃放成功,开启隐藏地图入口!
#ELSEACT
SENDMSG 252 等级不足30级,无法燃放该烟花解锁地图!
[@UseItem5002] // 使用高级烟花(ID=5002)时触发
#IF
CHECKLEVELEX >= 50
#ACT
MAPMOVE 104 180 180 // 传送至高阶隐藏地图(编号104)
PLAYSOUND Sound/Firework2.wav
SENDMSG 253 高级烟花燃放成功,已传送至高阶地图!
#ELSEACT
SENDMSG 252 等级不足50级,无法燃放高级烟花!
四、脚本适配与挂载方法
1. 基础适配调整
物品ID适配:替换脚本中“5001”“5002”为服务端实际烟花道具ID,可通过服务端数据库或Envir/Item.txt查询确认。
地图参数适配:修改“MAPMOVE”后的地图编号及坐标,确保对应地图已在服务端开启,坐标需避开障碍物及怪物刷新点。
条件调整:按需增减等级门槛、烟花数量,添加冷却时间(如SETTIMER 1 86400设置24小时冷却),优化玩法管控。
2. 脚本挂载步骤
第一步:按对应路径创建脚本文件(如焰火NPC.txt、烟花触发.txt),复制代码粘贴并保存,使用记事本或Notepad编辑,避免格式错乱。
第二步:NPC交互脚本需关联NPC,在Envir/Npc_def/Npcs.txt中添加NPC配置,绑定脚本路径及对话触发。
第三步:道具触发脚本需确保[@UseItemXX]标识正确,XX为烟花道具ID,保存后重启服务端,或通过M2引擎“重载功能脚本”快速生效。
五、常见问题及排查方案
1. 燃放烟花后不传送
排查1:烟花ID错误,核对服务端道具ID与脚本一致,避免因ID不匹配导致检测失败;排查2:地图编号无效,确认地图已添加至服务端,且未被隐藏或关闭;排查3:坐标超出范围,调整“MAPMOVE”后的坐标至地图有效区域。
2. 道具不扣除或提示不足
排查1:检测与扣除数量不一致,确保“CHECKITEM”与“DELITEM”后的数量相同;排查2:玩家背包内存在绑定烟花,脚本默认检测非绑定道具,需添加绑定道具检测命令(如CHECKBINDITEM)。
3. 无燃放音效或提示
排查1:音效文件路径错误,确认音效文件放入指定目录,路径与脚本中“PLAYSOUND”参数一致;排查2:颜色代码错误,确保“SENDMSG”后的颜色代码在0-255范围内,推荐使用253、252等常用代码。
4. 引擎适配异常
排查1:HERO引擎需将道具触发脚本放入Envir/Npc_def目录,而非QuestDiary;排查2:GOM引擎需在Setup.ini中开启道具使用触发权限,避免脚本被拦截。
六、补充优化技巧
1. 多烟花组合触发:设置多种烟花组合燃放规则,如1个高级烟花+2个普通烟花进入终极地图,通过叠加CHECKITEM命令实现。
2. 燃放视觉效果:添加屏幕闪光效果命令(如SCREENFLASH 255 255 255 1),配合音效提升燃放体验。
3. 地图时长限制:进入地图后添加计时命令(如MAPTIMER 101 1800),设置30分钟停留时间,超时自动传送出地图。

