法师的诱惑之光在正常设定下必须先选中一个怪物才能释放,对着空地按技能键没有任何反应。空招的意思是把这个限制取消,让法师对着地面直接释放诱惑之光,系统按当前等级自动匹配可召唤的宝宝类型。单机环境下实现空招有两条路,一条是改引擎参数,一条是写脚本替代。
## 改M2引擎诱惑之光参数
打开服务端目录下的M2Server控制器,顶部菜单栏找到选项,进入功能设置,在左侧分类里选择技能魔法,然后在法师技能列表里找到诱惑之光。
诱惑之光的面板里有两组核心参数需要动。第一组是成功率和最大诱惑等级。成功率建议直接调到80到100之间,数值越高越容易一次成功。最大诱惑等级决定了法师能把什么级别的怪物招为宝宝,默认值通常偏低,改到80到99可以让法师招到更高级的宝宝。
第二组参数是怪物等级和怪物血量。部分引擎的诱惑之光面板里会显示类似“怪物等级 1,怪物血量 100”的配置项,这里的怪物等级数值越小,诱惑成功的门槛越低。把怪物等级改成0,法师对着空地释放诱惑之光时就不会因为等级判定失败。怪物血量改成1,系统默认诱惑目标处于残血状态,成功率按最高值计算。
改完参数后重启M2Server使配置生效。如果不想重启,在M2控制台输入@reloadmagic重载技能数据也可以。
## 脚本实现空招
改引擎参数的方法依赖面板设置,如果面板里没有对应的选项,或者想让空招的效果更可控,就用脚本替代。脚本的核心思路是写一个触发段,检测玩家职业为法师后直接执行RECALLMOB命令召唤指定的宝宝,玩家不需要释放诱惑之光技能,点击NPC或者按快捷键就能出宝宝。
在服务端的Envir\Market_Def目录下新建一个NPC脚本文件,写入以下内容:
```
[@main]
#IF
checkjob wizard
#ACT
goto @空招宝宝
#ELSESAY
只有法师可以使用空招宝宝功能。
[@空招宝宝]
#IF
checkjob wizard
CHECKSLAVECOUNT < 5
CHECKLEVEL > 25
#ACT
RECALLMOB 巨型多角虫 7 43200 1
SENDMSG 6 空招成功,巨型多角虫已出现。
#ELSESAY
你的宝宝数量已满或等级不足26级。
```
这段脚本里的关键命令是RECALLMOB,完整格式为RECALLMOB 怪物名称 宝宝等级 叛变时间 是否自动变色。宝宝等级最高填7,叛变时间以分钟为单位,43200分钟相当于30天不叛变,单机环境下基本等于永久。是否自动变色填1,宝宝会在1到7级之间自动变色,也可以填0固定颜色。
checkjob wizard检测玩家是否为法师职业,CHECKSLAVECOUNT < 5检测当前携带宝宝数量不超过5个,CHECKLEVEL > 25检测等级超过25级。这三个条件同时满足才会执行RECALLMOB。
把这段脚本挂到土城安全区的一个NPC身上,法师玩家点击NPC就能直接领取宝宝。如果想做成技能触发而不是NPC对话,把RECALLMOB的命令段写到QFunction-0.txt的[@Magic_Temptation]或者自定义技能触发节里。
## 不同等级的空招宝宝配置
空招不是所有宝宝都能招,需要按法师等级分段配置。以常见的1.76版本为例,26级可以空招巨型多角虫,这个宝宝拥有魔法免疫特性,前期刷怪很实用。42级可以空招半兽勇士,具备物理免疫能力。46级可以空招刀卫,物理和魔法双免疫,是后期打宝的核心宝宝。
在NPC脚本里按等级分多个触发段,每个段对应不同的RECALLMOB命令和CHECKLEVEL条件:
```
[@空招宝宝]
#IF
checkjob wizard
CHECKLEVEL > 25
CHECKLEVEL < 42
CHECKSLAVECOUNT < 5
#ACT
RECALLMOB 巨型多角虫 7 43200 1
SENDMSG 6 你召唤了巨型多角虫。
break
#IF
checkjob wizard
CHECKLEVEL > 41
CHECKLEVEL < 46
CHECKSLAVECOUNT < 5
#ACT
RECALLMOB 半兽勇士 7 43200 1
SENDMSG 6 你召唤了半兽勇士。
break
#IF
checkjob wizard
CHECKLEVEL > 45
CHECKSLAVECOUNT < 5
#ACT
RECALLMOB 刀卫 7 43200 1
SENDMSG 6 你召唤了刀卫。
break
```
这种分段写法的好处是同一份脚本兼容所有等级段的法师,玩家升级后点击同一个NPC自动获得对应等级的宝宝,不需要手动切换选项。
## 怪物数据库的配合设置
脚本里的RECALLMOB命令依赖怪物数据库中存在对应的怪物记录。打开Mud2\DB目录下的Monster.DB,确认巨型多角虫、半兽勇士、刀卫这三个怪物的记录存在。如果缺少记录,RECALLMOB命令会静默失败,脚本不报错但宝宝不会出现。
另外一个容易忽略的字段是Undead。部分引擎中Undead字段不仅控制怪物是否属于不死系,还关联诱惑之光的可招等级门槛,0代表1级可诱,2代表2级可诱,4代表3级可诱。如果脚本空招失败,检查目标怪物的Undead值是否过高。改成0或1可以降低门槛。
如果希望空招出的宝宝不叛变,除了把叛变时间设成43200分钟之外,还需要在M2引擎设置里关掉宝宝叛变选项。在M2Server的功能设置里找到宠物设置,取消勾选“宝宝会叛变”。不关这个选项的话,即使脚本里写了超长叛变时间,引擎到时间仍然会强制清除宝宝。
## 单机测试时的几个坑
脚本写完保存后需要重启引擎或者用@reloadnpc重载NPC配置,只在客户端小退没用。
GM账号测试时用@MobNpc命令刷新NPC,普通玩家点击NPC才能看到空招选项。
如果法师对着空地按诱惑之光仍然不出宝宝,先检查M2的诱惑之光面板里“怪物等级”参数是不是大于0。这个参数控制着诱惑之光的最低目标等级要求,设成1的话空地诱惑永远失败。
脚本里的RECALLMOB命令怪物名称必须和Monster.DB里的Name字段完全一致,差一个字都不行。巨型多角虫如果数据库里写的是“多角虫”,脚本里写“巨型多角虫”就会找不到怪物记录。
宝宝数量上限由引擎控制,不是脚本里的CHECKSLAVECOUNT决定的。脚本里的CHECKSLAVECOUNT < 5只是判断条件,真正限制法师最多招几个宝宝的是M2面板里诱惑之光的最大召唤数量参数。脚本条件写小于5但面板里最大召唤数量是3,实际还是只能招3个。

