在HERO或BLUE引擎的服务端里,单纯在StdItems.DB加了个"召唤月灵"的技能书、在Magic.DB加了同名技能,如果Monsters.DB里没有正确配置月灵怪物、QFunction-0.txt没写切换逻辑、或者技能书调用Skill ID不对,召唤命令默认仍会调宝宝索引0也就是神兽。按下面逐项核查。
一、确认Monsters.DB中存在月灵怪物且字段正确
打开DBC2000→Mud2\DB\Monsters.DB,查找是否有月灵记录(通常叫"月灵""白虎""MoonSpirit",Appr字段一般为31或82,各版略有不同)。
关键字段要求:
• Name:月灵(名字要和脚本中CALLMOBNAME一致)
• Appr:31(部分1.80+合击版为82,对照官方月灵值)
• Race:25(Race=25表示召唤宝宝,不能填0或1)
- RaceImg:一般同Race或参照原版
• HP/MP/DC/AC/MAC/速度:按你想给的数值填,不能为0 HP
• 重要:RaceSerie留空或按原版,Exp填0
如果Monsters.DB里没有月灵这条记录,引擎找不到就会fallback调Race=25的第一个宝宝即神兽。
二、检查Magic.DB中召唤月灵技能的Skill ID与MagID
打开Mir200\Share\Magic.DB(或DBServer加载的Magic.DB),找到你添加的"召唤月灵"技能:
- MagID:不能与已有技能重复,建议用未占用ID(如75,官方合击版月灵常为74/75,查看原版对照)
• MagName:召唤月灵
• EffectType:一般11(召唤类)
• Effect:通常0或1
- SpellCost:耗蓝值
• Power/dwParam1:宝宝等级(对应Monsters.DB中Race宝宝等级,一般设3或4使月灵用最高攻)
• dwParam2:持续时间(毫秒,0为永久随角色)
- 其他参数参照原版"召唤神兽"技能填,仅MagID和MagName不同
如果MagID冲突或Power指的宝宝等级在Race=25宝宝列表里找不到对应月灵记录,引擎仍按神兽处理。
三、QFunction-0.txt中写月灵召唤切换(HERO引擎关键)
很多版本HERO引擎默认所有召唤技能调的都是宝宝列表第一个(神兽),需要在自动执行脚本中指定月灵对应怪物名。
用记事本打开Mir200\Envir\QuestDiary\QFunction-0.txt,查找[@PlayMagic]段(如没有可在末尾追加):
[@PlayMagic]
#IF
CHECK [ $STR(SKILLNAME) ] = 召唤月灵
#ACT
CALLMOBNAME 月灵
CALLMOBLEVEL 3
CALLMOBTIME 1800
#ELSEACT
CALLMOBNAME 神兽
CALLMOBLEVEL 3
CALLMOBTIME 1800
说明:CALLMOBNAME后跟的名字必须严格等于Monsters.DB中月灵那条记录的Name字段(含简体繁体一致)。CALLMOBLEVEL对应Monsters.DB里宝宝等级(通常神兽/月灵分Level 1/2/3,Level=3为最高阶)。保存后M2→重新加载QuestDiary或重启服务端。
部分新版HERO在Magic.DB正确设Race宝宝且Monsters.DB月灵Race=25、Appr正确,可不写脚本直接识别,但老版必须加这段。
四、确认技能书Item绑定的Skill ID正确
打开Mir200\Envir\StdItems.DB,找到你添加的"召唤月灵书":
• StdMode:30(技能书)
• Shape:填Magic.DB中召唤月灵技能的MagID(必须一致!)
• Looks:图标编号随意
如果Shape值和Magic.DB中月灵技能的MagID对不上,学了书也不会获得正确技能,角色学的仍是原"召唤神兽"或空技能,按原键自然召出神兽。
五、测试方法
1. 角色学"召唤月灵"技能(直接GM命令 @Study 技能名 或学书)。
2. 确保之前召出的神兽已死或解除(F12切休息模式或等消失)。
3. 放召唤月灵,看宝宝名字是否为"月灵"。若仍显神兽再核对Monsters.DB Name拼写和QFunction-0.txt中CALLMOBNAME是否完全一致(区分全半角)。
按顺序——Monsters.DB有月灵记录Race=25→Magic.DB月灵技能MagID独立→技能书Shape=该MagID→QFunction-0.txt指定CALLMOBNAME 月灵——基本就能正常召出月灵而不是神兽了。

