传奇SKY/HeroM2引擎限制宠物数量需使用CHECKCALLMOB命令检测已召唤的特定怪物数量。该命令专用于检测玩家当前召唤的指定怪物数量,配合条件判断实现数量限制。以下提供完整脚本代码与详细实现逻辑。
CHECKCALLMOB命令完整格式与参数详解
命令格式:CHECKCALLMOB怪物名称
功能说明:检测玩家当前已召唤的指定怪物数量
返回值:返回已召唤的该怪物的数量,可通过变量获取
应用场景:检测玩家已召唤的“神兽”、“骷髅”、“月灵”等特定宝宝数量
注意要点:怪物名称必须与数据库Monster.DB中的名称完全一致,区分大小写
限制单个宠物数量的完整脚本代码
完整脚本段落如下:
[@召唤宝宝]
IF
CHECKCALLMOB神兽
<1
ACT
RECALLMOB神兽7180
SENDMSG6神兽召唤成功!
ELSESAY
您已经召唤了神兽,无法重复召唤。
脚本逻辑解析:
第一行[@召唤宝宝]为段落标签,用于在NPC对话中调用
IF开始条件判断,使用CHECKCALLMOB检测“神兽”数量
<1判断已召唤数量是否小于1,即没有召唤任何神兽
ACT开始执行动作,RECALLMOB召唤神兽,参数7表示召唤等级,180表示存在时间(秒)
SENDMSG6发送私人提示消息,6代表粉色文字
ELSESAY条件不满足时显示的内容,告知玩家已存在宝宝
CHECKCALLMOB命令实际应用示例
检测神兽数量并限制最多1个:
IF
CHECKCALLMOB神兽
<1
ACT
GIVE神兽召唤卷1
RECALLMOB神兽7180
TAKE神兽召唤卷1
SENDMSG6神兽召唤成功,持续180秒。
检测骷髅数量并限制最多2个:
IF
CHECKCALLMOB骷髅
<2
ACT
RECALLMOB骷髅3120
SENDMSG6骷髅召唤成功,当前已召唤:<$OUTPUT(CALLMOB)>个。
检测月灵数量并限制最多1个:
IF
CHECKCALLMOB月灵
=0
ACT
RECALLMOB月灵5240
SENDMSG6月灵召唤成功,持续240秒。
商铺宠物召唤卷轴完整NPC脚本
在商铺NPC脚本中添加以下内容,实现购买卷轴时自动检测宠物数量:
[@main]
SAY
欢迎来到宠物商店,请选择服务:\\
<购买神兽召唤卷/@购买神兽卷>\\
<购买骷髅召唤卷/@购买骷髅卷>\\
[@购买神兽卷]
IF
CHECKCALLMOB神兽
<1
CHECKGOLD50000
ACT
TAKE金币50000
GIVE神兽召唤卷1
SENDMSG6购买成功,您已获得神兽召唤卷。
ELSESAY
购买失败,您已经召唤了神兽或金币不足5万。
[@购买骷髅卷]
IF
CHECKCALLMOB骷髅
<2
CHECKGOLD20000
ACT
TAKE金币20000
GIVE骷髅召唤卷1
SENDMSG6购买成功,您已获得骷髅召唤卷。
ELSESAY
购买失败,您已召唤2个骷髅或金币不足2万。
使用卷轴召唤宠物的触发脚本
在QFunction-0.txt中添加以下内容,实现使用卷轴时自动检测:
[@StdModeFuncX];X对应数据库StdItems中神兽召唤卷的Shape值
IF
CHECKCALLMOB神兽
<1
ACT
RECALLMOB神兽7180
SENDMSG6使用神兽召唤卷成功,召唤神兽持续180秒。
ELSESAY
您已经召唤了神兽,无法重复使用此卷轴。
在数据库StdItems.db中设置:
神兽召唤卷的Shape值为X(与脚本中@StdModeFuncX的X一致)
神兽召唤卷的AniCount为1(表示可双击使用)
神兽召唤卷的Source为0(普通物品)
检测已召唤宠物总数量的替代方案
如需检测玩家召唤的所有类型宠物总数,可使用以下方法:
IF
<$OUTPUT(CALLMOB)>
<3
ACT
SENDMSG6当前已召唤宠物总数:<$OUTPUT(CALLMOB)>个,还可召唤。
ELSESAY
您已召唤3个宠物,无法继续召唤。
<$OUTPUT(CALLMOB)>为系统变量,返回玩家当前召唤的所有怪物总数
此方法不区分怪物类型,统计所有被召唤的怪物数量
适合限制玩家同时控制的怪物总数
SKY/HeroM2引擎相关检测命令扩展
CHECKDOG检测神兽等级
格式:CHECKDOG等级
示例:CHECKDOG3检测神兽等级是否达到3级
应用:根据神兽等级决定可召唤数量,高等级可召唤更多
CHECKSHENG检测圣兽
格式:CHECKSHENG
功能:检测是否已召唤圣兽
返回:1表示已召唤,0表示未召唤
注意:圣兽为道士高级召唤物,与普通神兽不同
CHECKBONE检测骷髅
格式:CHECKBONE等级
示例:CHECKBONE5检测骷髅等级是否达到5级
应用:配合CHECKCALLMOB实现等级数量双重限制
CHECDKMOHUN检测召唤的怪物名称
格式:CHECKDKMOHUN怪物名称
功能:检测指定名称的怪物是否已被召唤
返回:1表示已召唤,0表示未召唤
注意:此命令检测任何召唤怪物,不限于宝宝
多条件组合的复杂限制脚本
限制高级玩家可召唤更多宠物:
[@召唤高级宠物]
IF
CHECKLEVEL50
CHECKCALLMOB神兽
<2
CHECKDOG5
ACT
RECALLMOB神兽7180
SENDMSG6作为50级以上玩家,您可召唤2个5级神兽。
ELSESAY
召唤条件不满足:需等级50以上、神兽等级5、已有神兽少于2个。
限制不同职业的召唤数量:
[@职业召唤]
IF
CHECKJOBWarrior
CHECKCALLMOB战士宝宝
<1
ACT
RECALLMOB战士宝宝5150
IF
CHECKJOBWizard
CHECKCALLMOB法师宝宝
<2
ACT
RECALLMOB法师宝宝3120
IF
CHECKJOBTaoist
CHECKCALLMOB神兽
<3
ACT
RECALLMOB神兽7180
脚本调试与测试方法
测试脚本功能步骤:
1.在游戏中召唤一个神兽
2.尝试再次使用召唤卷轴
3.观察是否提示“您已经召唤了神兽,无法重复召唤”
4.等待神兽消失或手动杀死神兽
5.再次尝试使用召唤卷轴,应可成功召唤
调试命令输出信息:
在脚本中添加调试信息:
ACT
SENDMSG6当前神兽数量:<$OUTPUT(CALLMOBNAME(神兽))>
SENDMSG6总宠物数量:<$OUTPUT(CALLMOB)>
<$OUTPUT(CALLMOBNAME(神兽))>输出指定怪物名称的召唤数量
<$OUTPUT(CALLMOB)>输出所有召唤怪物总数
通过输出信息确认检测命令是否正常工作
常见问题与解决方案
问题1:CHECKCALLMOB检测不准确
可能原因:怪物名称与数据库不一致
解决方案:打开Monster.DB确认怪物确切名称
注意:名称中的空格、符号必须完全匹配
问题2:脚本执行但未召唤宠物
可能原因:RECALLMOB参数错误
检查:RECALLMOB怪物名称等级时间
确认:等级为1-7,时间单位为秒
注意:部分引擎时间参数为分钟,需查阅引擎说明书
问题3:购买卷轴可无限召唤
可能原因:检测脚本未正确集成到购买流程
解决方案:在购买脚本和卷轴使用脚本中都添加检测
确保:购买时检测,使用时再次检测,双重保障
问题4:宠物死亡后仍无法召唤
可能原因:宠物死亡后检测仍未清除
解决方案:添加宠物死亡触发清理变量
在QFunction-0.txt中添加:
[@OnKillMob]
IF
CheckKillMobName神兽
ACT
MOVS0;清除相关变量
脚本优化与扩展功能
添加时间限制防止频繁召唤:
[@召唤限制]
IF
CHECKCALLMOB神兽
<1
CHECK[100]0
ACT
SET[100]1
RECALLMOB神兽7180
SENDMSG6神兽召唤成功,30秒内无法再次召唤。
DelayGoto30000@清除限制
[@清除限制]
ACT
SET[100]0
SENDMSG6召唤限制已解除,可再次召唤神兽。
添加地图限制只能在特定区域召唤:
[@地图召唤]
IF
CHECKCALLMOB神兽
<1
MAPNAME盟重省
ACT
RECALLMOB神兽7180
SENDMSG6在盟重省召唤神兽成功。
ELSESAY
只能在盟重省召唤神兽,或已召唤神兽。
添加组队限制只有队长可召唤:
[@队伍召唤]
IF
CHECKCALLMOB神兽
<1
ISGROUPMASTER
ACT
RECALLMOB神兽7180
SENDMSG6作为队长召唤神兽成功。
ELSESAY
只有队伍队长可召唤神兽,或已召唤神兽。
总结归纳
SKY/HeroM2引擎限制宠物数量核心是CHECKCALLMOB命令,该命令检测指定怪物的已召唤数量。配合条件判断可实现单个宠物数量限制、总数限制、等级数量双重限制等多种功能。
脚本编写注意怪物名称完全匹配数据库,条件判断逻辑完整,执行动作包含必要提示。在商铺购买和使用卷轴两个环节都添加检测,确保限制有效。扩展功能可添加时间限制、地图限制、职业限制等条件,实现更精细的控制。
测试脚本时通过输出信息确认检测结果,调试不准确问题。最终实现无论购买多少张召唤卷,玩家只能召唤一个指定宠物的功能,保持游戏平衡性。掌握CHECKCALLMOB及相关检测命令,可灵活设计各种宠物召唤限制规则。
CHECKCALLMOB命令完整格式与参数详解
命令格式:CHECKCALLMOB怪物名称
功能说明:检测玩家当前已召唤的指定怪物数量
返回值:返回已召唤的该怪物的数量,可通过变量获取
应用场景:检测玩家已召唤的“神兽”、“骷髅”、“月灵”等特定宝宝数量
注意要点:怪物名称必须与数据库Monster.DB中的名称完全一致,区分大小写
限制单个宠物数量的完整脚本代码
完整脚本段落如下:
[@召唤宝宝]
IF
CHECKCALLMOB神兽
<1
ACT
RECALLMOB神兽7180
SENDMSG6神兽召唤成功!
ELSESAY
您已经召唤了神兽,无法重复召唤。
脚本逻辑解析:
第一行[@召唤宝宝]为段落标签,用于在NPC对话中调用
IF开始条件判断,使用CHECKCALLMOB检测“神兽”数量
<1判断已召唤数量是否小于1,即没有召唤任何神兽
ACT开始执行动作,RECALLMOB召唤神兽,参数7表示召唤等级,180表示存在时间(秒)
SENDMSG6发送私人提示消息,6代表粉色文字
ELSESAY条件不满足时显示的内容,告知玩家已存在宝宝
CHECKCALLMOB命令实际应用示例
检测神兽数量并限制最多1个:
IF
CHECKCALLMOB神兽
<1
ACT
GIVE神兽召唤卷1
RECALLMOB神兽7180
TAKE神兽召唤卷1
SENDMSG6神兽召唤成功,持续180秒。
检测骷髅数量并限制最多2个:
IF
CHECKCALLMOB骷髅
<2
ACT
RECALLMOB骷髅3120
SENDMSG6骷髅召唤成功,当前已召唤:<$OUTPUT(CALLMOB)>个。
检测月灵数量并限制最多1个:
IF
CHECKCALLMOB月灵
=0
ACT
RECALLMOB月灵5240
SENDMSG6月灵召唤成功,持续240秒。
商铺宠物召唤卷轴完整NPC脚本
在商铺NPC脚本中添加以下内容,实现购买卷轴时自动检测宠物数量:
[@main]
SAY
欢迎来到宠物商店,请选择服务:\\
<购买神兽召唤卷/@购买神兽卷>\\
<购买骷髅召唤卷/@购买骷髅卷>\\
[@购买神兽卷]
IF
CHECKCALLMOB神兽
<1
CHECKGOLD50000
ACT
TAKE金币50000
GIVE神兽召唤卷1
SENDMSG6购买成功,您已获得神兽召唤卷。
ELSESAY
购买失败,您已经召唤了神兽或金币不足5万。
[@购买骷髅卷]
IF
CHECKCALLMOB骷髅
<2
CHECKGOLD20000
ACT
TAKE金币20000
GIVE骷髅召唤卷1
SENDMSG6购买成功,您已获得骷髅召唤卷。
ELSESAY
购买失败,您已召唤2个骷髅或金币不足2万。
使用卷轴召唤宠物的触发脚本
在QFunction-0.txt中添加以下内容,实现使用卷轴时自动检测:
[@StdModeFuncX];X对应数据库StdItems中神兽召唤卷的Shape值
IF
CHECKCALLMOB神兽
<1
ACT
RECALLMOB神兽7180
SENDMSG6使用神兽召唤卷成功,召唤神兽持续180秒。
ELSESAY
您已经召唤了神兽,无法重复使用此卷轴。
在数据库StdItems.db中设置:
神兽召唤卷的Shape值为X(与脚本中@StdModeFuncX的X一致)
神兽召唤卷的AniCount为1(表示可双击使用)
神兽召唤卷的Source为0(普通物品)
检测已召唤宠物总数量的替代方案
如需检测玩家召唤的所有类型宠物总数,可使用以下方法:
IF
<$OUTPUT(CALLMOB)>
<3
ACT
SENDMSG6当前已召唤宠物总数:<$OUTPUT(CALLMOB)>个,还可召唤。
ELSESAY
您已召唤3个宠物,无法继续召唤。
<$OUTPUT(CALLMOB)>为系统变量,返回玩家当前召唤的所有怪物总数
此方法不区分怪物类型,统计所有被召唤的怪物数量
适合限制玩家同时控制的怪物总数
SKY/HeroM2引擎相关检测命令扩展
CHECKDOG检测神兽等级
格式:CHECKDOG等级
示例:CHECKDOG3检测神兽等级是否达到3级
应用:根据神兽等级决定可召唤数量,高等级可召唤更多
CHECKSHENG检测圣兽
格式:CHECKSHENG
功能:检测是否已召唤圣兽
返回:1表示已召唤,0表示未召唤
注意:圣兽为道士高级召唤物,与普通神兽不同
CHECKBONE检测骷髅
格式:CHECKBONE等级
示例:CHECKBONE5检测骷髅等级是否达到5级
应用:配合CHECKCALLMOB实现等级数量双重限制
CHECDKMOHUN检测召唤的怪物名称
格式:CHECKDKMOHUN怪物名称
功能:检测指定名称的怪物是否已被召唤
返回:1表示已召唤,0表示未召唤
注意:此命令检测任何召唤怪物,不限于宝宝
多条件组合的复杂限制脚本
限制高级玩家可召唤更多宠物:
[@召唤高级宠物]
IF
CHECKLEVEL50
CHECKCALLMOB神兽
<2
CHECKDOG5
ACT
RECALLMOB神兽7180
SENDMSG6作为50级以上玩家,您可召唤2个5级神兽。
ELSESAY
召唤条件不满足:需等级50以上、神兽等级5、已有神兽少于2个。
限制不同职业的召唤数量:
[@职业召唤]
IF
CHECKJOBWarrior
CHECKCALLMOB战士宝宝
<1
ACT
RECALLMOB战士宝宝5150
IF
CHECKJOBWizard
CHECKCALLMOB法师宝宝
<2
ACT
RECALLMOB法师宝宝3120
IF
CHECKJOBTaoist
CHECKCALLMOB神兽
<3
ACT
RECALLMOB神兽7180
脚本调试与测试方法
测试脚本功能步骤:
1.在游戏中召唤一个神兽
2.尝试再次使用召唤卷轴
3.观察是否提示“您已经召唤了神兽,无法重复召唤”
4.等待神兽消失或手动杀死神兽
5.再次尝试使用召唤卷轴,应可成功召唤
调试命令输出信息:
在脚本中添加调试信息:
ACT
SENDMSG6当前神兽数量:<$OUTPUT(CALLMOBNAME(神兽))>
SENDMSG6总宠物数量:<$OUTPUT(CALLMOB)>
<$OUTPUT(CALLMOBNAME(神兽))>输出指定怪物名称的召唤数量
<$OUTPUT(CALLMOB)>输出所有召唤怪物总数
通过输出信息确认检测命令是否正常工作
常见问题与解决方案
问题1:CHECKCALLMOB检测不准确
可能原因:怪物名称与数据库不一致
解决方案:打开Monster.DB确认怪物确切名称
注意:名称中的空格、符号必须完全匹配
问题2:脚本执行但未召唤宠物
可能原因:RECALLMOB参数错误
检查:RECALLMOB怪物名称等级时间
确认:等级为1-7,时间单位为秒
注意:部分引擎时间参数为分钟,需查阅引擎说明书
问题3:购买卷轴可无限召唤
可能原因:检测脚本未正确集成到购买流程
解决方案:在购买脚本和卷轴使用脚本中都添加检测
确保:购买时检测,使用时再次检测,双重保障
问题4:宠物死亡后仍无法召唤
可能原因:宠物死亡后检测仍未清除
解决方案:添加宠物死亡触发清理变量
在QFunction-0.txt中添加:
[@OnKillMob]
IF
CheckKillMobName神兽
ACT
MOVS0;清除相关变量
脚本优化与扩展功能
添加时间限制防止频繁召唤:
[@召唤限制]
IF
CHECKCALLMOB神兽
<1
CHECK[100]0
ACT
SET[100]1
RECALLMOB神兽7180
SENDMSG6神兽召唤成功,30秒内无法再次召唤。
DelayGoto30000@清除限制
[@清除限制]
ACT
SET[100]0
SENDMSG6召唤限制已解除,可再次召唤神兽。
添加地图限制只能在特定区域召唤:
[@地图召唤]
IF
CHECKCALLMOB神兽
<1
MAPNAME盟重省
ACT
RECALLMOB神兽7180
SENDMSG6在盟重省召唤神兽成功。
ELSESAY
只能在盟重省召唤神兽,或已召唤神兽。
添加组队限制只有队长可召唤:
[@队伍召唤]
IF
CHECKCALLMOB神兽
<1
ISGROUPMASTER
ACT
RECALLMOB神兽7180
SENDMSG6作为队长召唤神兽成功。
ELSESAY
只有队伍队长可召唤神兽,或已召唤神兽。
总结归纳
SKY/HeroM2引擎限制宠物数量核心是CHECKCALLMOB命令,该命令检测指定怪物的已召唤数量。配合条件判断可实现单个宠物数量限制、总数限制、等级数量双重限制等多种功能。
脚本编写注意怪物名称完全匹配数据库,条件判断逻辑完整,执行动作包含必要提示。在商铺购买和使用卷轴两个环节都添加检测,确保限制有效。扩展功能可添加时间限制、地图限制、职业限制等条件,实现更精细的控制。
测试脚本时通过输出信息确认检测结果,调试不准确问题。最终实现无论购买多少张召唤卷,玩家只能召唤一个指定宠物的功能,保持游戏平衡性。掌握CHECKCALLMOB及相关检测命令,可灵活设计各种宠物召唤限制规则。

