一、脚本存放路径与触发机制
召唤神兽脚本通常存放于服务端 Mir200\Envir\QuestDiary\技能相关\召唤神兽.txt 路径下。其触发逻辑依赖于技能数据库(Magic.DB)中“召唤神兽”技能的 EffectType 字段设置。当该字段指向特定脚本标签(如 (@召唤神兽))时,玩家使用技能即会执行对应文本中的逻辑,而非仅依赖引擎硬编码。
二、基础召唤脚本(Hero/GOM引擎)
以下脚本实现了“35级道士消耗护身符与魔法值召唤神兽”的基础逻辑,适配主流Hero引擎及GOM引擎。
(@召唤神兽)
#IF
CheckJob Taoist ; 检测职业是否为道士
CheckLevel 35 ; 检测等级是否达到35级
CheckItem 护身符 5 ; 检测背包是否有5张护身符
CheckMana 100 ; 检测魔法值是否足够
CheckSlaveCount < 1 ; 检测当前宝宝数量是否小于1
#ACT
Take 护身符 5 ; 消耗5张护身符
ChangeMana -100 ; 扣除100点魔法值
SummonMon 神兽 1 600 50 ; 召唤神兽(名称 等级 血量 攻击力)
SendMsg 5 神兽召唤成功,忠诚度100!
Break
#ELSESAY
召唤条件不足:需35级道士,且背包有5张护身符、100点魔法值,且当前无宝宝。
关键命令说明:
• CheckSlaveCount:检测当前携带宝宝数量,防止超限。
• SummonMon:召唤怪物指令,参数依次为怪物名称(需与Monster.DB一致)、等级、血量、攻击力。
• 若需支持“等级越高召唤越强”的阶梯逻辑,可使用 #ELSEACT 配合多级 CheckLevel 判定。
三、进阶阶梯召唤脚本(按等级召不同宝宝)
若需实现“35级召神兽、40级召强化神兽、45级召白虎”的进阶效果,脚本需引入多分支判断。
(@召唤神兽)
#IF
CheckJob Taoist
CheckLevel 45
CheckSlaveCount < 1
#ACT
SummonMon 白虎 1 800 80
SendMsg 5 召唤白虎成功!
Break
#ELSEIF
CheckLevel 40
CheckSlaveCount < 1
#ACT
SummonMon 强化神兽 1 700 65
SendMsg 5 召唤强化神兽成功!
Break
#ELSEIF
CheckLevel 35
CheckSlaveCount < 1
#ACT
SummonMon 神兽 1 600 50
SendMsg 5 召唤神兽成功!
Break
#ELSE
SendMsg 5 等级不足35级或宝宝数量已达上限。
四、数据库关键配置(Monster.DB)
脚本中的“神兽”、“白虎”等名称必须在怪物数据库(Monster.DB)中存在且配置正确,否则召唤会失败。
神兽怪物表关键字段:
字段名 示例值 说明
Name 神兽 必须与脚本中 SummonMon 的第一个参数完全一致
Race 81或113 81=主动攻击怪物,113=召唤神兽(专用行动模式)
RaceImg 21 攻击模式,21=喷火(神兽默认攻击效果)
Appr 63 怪物外观代码,63通常为神兽形象
Level 1 怪物等级,影响属性计算
HP 600 基础血量,需与脚本参数匹配
DC 50 攻击力下限
特别注意:Race 字段若设置为113(召唤神兽专用),怪物会具备“跟随主人”、“自动攻击主人目标”等特殊AI行为,比普通怪物Race代码更智能。
五、常见问题与排查
1. 脚本不触发
• 检查 Magic.DB 中“召唤神兽”技能的 EffectType 是否指向了正确的脚本标签(如 @召唤神兽)。
• 确认脚本文件路径 QuestDiary\技能相关\ 是否存在,且文件名无乱码。
2. 召唤出“未知怪物”或无动作
• 脚本中 SummonMon 后的怪物名称与 Monster.DB 中的 Name 字段不匹配(注意全角/半角空格)。
• 怪物数据库中的 Race 或 RaceImg 设置错误,导致怪物无攻击动作或无法移动。
3. 宝宝数量不受控
• 脚本中的 CheckSlaveCount 条件未生效,可能是引擎限制了检测逻辑。可尝试在M2引擎的“功能设置-宝宝设置”中调整最大宝宝数量上限。
4. 修改后不生效
• 修改脚本或数据库后,必须在M2控制台依次点击“重新加载NPC脚本”和“重新加载怪物数据库”,否则更改不会实时生效。

