传奇SKY引擎限制宠物数量脚本完整编写方案

来源: 作者: 点击:
传奇SKY/HeroM2引擎限制宠物数量需使用CHECKCALLMOB命令检测已召唤的特定怪物数量。该命令专用于检测玩家当前召唤的指定怪物数量,配合条件判断实现数量限制。以下提供完整脚本代码与详细实现逻辑。

CHECKCALLMOB命令完整格式与参数详解

命令格式:CHECKCALLMOB 怪物名称
功能说明:检测玩家当前已召唤的指定怪物数量
返回值:返回已召唤的该怪物的数量,可通过变量获取
应用场景:检测玩家已召唤的“神兽”、“骷髅”、“月灵”等特定宝宝数量
注意要点:怪物名称必须与数据库Monster.DB中的名称完全一致,区分大小写

限制单个宠物数量的完整脚本代码

完整脚本段落如下:
[@召唤宝宝]
IF

CHECKCALLMOB 神兽
< 1
ACT

RECALLMOB 神兽 7 180
SENDMSG 6 神兽召唤成功!
ELSESAY

您已经召唤了神兽,无法重复召唤。

脚本逻辑解析:
第一行[@召唤宝宝]为段落标签,用于在NPC对话中调用
IF开始条件判断,使用CHECKCALLMOB检测“神兽”数量

< 1 判断已召唤数量是否小于1,即没有召唤任何神兽
ACT开始执行动作,RECALLMOB召唤神兽,参数7表示召唤等级,180表示存在时间(秒)

SENDMSG 6 发送私人提示消息,6代表粉色文字
ELSESAY 条件不满足时显示的内容,告知玩家已存在宝宝

CHECKCALLMOB命令实际应用示例

检测神兽数量并限制最多1个:
IF

CHECKCALLMOB 神兽
< 1
ACT

GIVE 神兽召唤卷 1
RECALLMOB 神兽 7 180
TAKE 神兽召唤卷 1
SENDMSG 6 神兽召唤成功,持续180秒。

检测骷髅数量并限制最多2个:
IF

CHECKCALLMOB 骷髅
< 2
ACT

RECALLMOB 骷髅 3 120
SENDMSG 6 骷髅召唤成功,当前已召唤:<$OUTPUT(CALLMOB)>个。

检测月灵数量并限制最多1个:
IF

CHECKCALLMOB 月灵
= 0
ACT

RECALLMOB 月灵 5 240
SENDMSG 6 月灵召唤成功,持续240秒。

商铺宠物召唤卷轴完整NPC脚本

在商铺NPC脚本中添加以下内容,实现购买卷轴时自动检测宠物数量:
[@main]
SAY

欢迎来到宠物商店,请选择服务:\\
<购买神兽召唤卷/@购买神兽卷>\\
<购买骷髅召唤卷/@购买骷髅卷>\\

[@购买神兽卷]
IF

CHECKCALLMOB 神兽
< 1
CHECKGOLD 50000
ACT

TAKE 金币 50000
GIVE 神兽召唤卷 1
SENDMSG 6 购买成功,您已获得神兽召唤卷。
ELSESAY

购买失败,您已经召唤了神兽或金币不足5万。

[@购买骷髅卷]
IF

CHECKCALLMOB 骷髅
< 2
CHECKGOLD 20000
ACT

TAKE 金币 20000
GIVE 骷髅召唤卷 1
SENDMSG 6 购买成功,您已获得骷髅召唤卷。
ELSESAY

购买失败,您已召唤2个骷髅或金币不足2万。

使用卷轴召唤宠物的触发脚本

在QFunction-0.txt中添加以下内容,实现使用卷轴时自动检测:
[@StdModeFuncX] ;X对应数据库StdItems中神兽召唤卷的Shape值
IF

CHECKCALLMOB 神兽
< 1
ACT

RECALLMOB 神兽 7 180
SENDMSG 6 使用神兽召唤卷成功,召唤神兽持续180秒。
ELSESAY

您已经召唤了神兽,无法重复使用此卷轴。

在数据库StdItems.db中设置:
神兽召唤卷的Shape值为X(与脚本中@StdModeFuncX的X一致)
神兽召唤卷的AniCount为1(表示可双击使用)
神兽召唤卷的Source为0(普通物品)

检测已召唤宠物总数量的替代方案

如需检测玩家召唤的所有类型宠物总数,可使用以下方法:
IF

<$OUTPUT(CALLMOB)>
< 3
ACT

SENDMSG 6 当前已召唤宠物总数:<$OUTPUT(CALLMOB)>个,还可召唤。
ELSESAY

您已召唤3个宠物,无法继续召唤。

<$OUTPUT(CALLMOB)>为系统变量,返回玩家当前召唤的所有怪物总数
此方法不区分怪物类型,统计所有被召唤的怪物数量
适合限制玩家同时控制的怪物总数

SKY/HeroM2引擎相关检测命令扩展

CHECKDOG 检测神兽等级
格式:CHECKDOG 等级
示例:CHECKDOG 3 检测神兽等级是否达到3级
应用:根据神兽等级决定可召唤数量,高等级可召唤更多

CHECKSHENG 检测圣兽
格式:CHECKSHENG
功能:检测是否已召唤圣兽
返回:1表示已召唤,0表示未召唤
注意:圣兽为道士高级召唤物,与普通神兽不同

CHECKBONE 检测骷髅
格式:CHECKBONE 等级
示例:CHECKBONE 5 检测骷髅等级是否达到5级
应用:配合CHECKCALLMOB实现等级数量双重限制

CHECDKMOHUN 检测召唤的怪物名称
格式:CHECKDKMOHUN 怪物名称
功能:检测指定名称的怪物是否已被召唤
返回:1表示已召唤,0表示未召唤
注意:此命令检测任何召唤怪物,不限于宝宝

多条件组合的复杂限制脚本

限制高级玩家可召唤更多宠物:
[@召唤高级宠物]
IF

CHECKLEVEL 50
CHECKCALLMOB 神兽
< 2
CHECKDOG 5
ACT

RECALLMOB 神兽 7 180
SENDMSG 6 作为50级以上玩家,您可召唤2个5级神兽。
ELSESAY

召唤条件不满足:需等级50以上、神兽等级5、已有神兽少于2个。

限制不同职业的召唤数量:
[@职业召唤]
IF

CHECKJOB Warrior
CHECKCALLMOB 战士宝宝
< 1
ACT

RECALLMOB 战士宝宝 5 150
IF

CHECKJOB Wizard
CHECKCALLMOB 法师宝宝
< 2
ACT

RECALLMOB 法师宝宝 3 120
IF

CHECKJOB Taoist
CHECKCALLMOB 神兽
< 3
ACT

RECALLMOB 神兽 7 180

脚本调试与测试方法

测试脚本功能步骤:
1. 在游戏中召唤一个神兽
2. 尝试再次使用召唤卷轴
3. 观察是否提示“您已经召唤了神兽,无法重复召唤”
4. 等待神兽消失或手动杀死神兽
5. 再次尝试使用召唤卷轴,应可成功召唤

调试命令输出信息:
在脚本中添加调试信息:
ACT

SENDMSG 6 当前神兽数量:<$OUTPUT(CALLMOBNAME(神兽))>
SENDMSG 6 总宠物数量:<$OUTPUT(CALLMOB)>

<$OUTPUT(CALLMOBNAME(神兽))> 输出指定怪物名称的召唤数量
<$OUTPUT(CALLMOB)> 输出所有召唤怪物总数
通过输出信息确认检测命令是否正常工作

常见问题与解决方案

问题1:CHECKCALLMOB检测不准确
可能原因:怪物名称与数据库不一致
解决方案:打开Monster.DB确认怪物确切名称
注意:名称中的空格、符号必须完全匹配

问题2:脚本执行但未召唤宠物
可能原因:RECALLMOB参数错误
检查:RECALLMOB 怪物名称 等级 时间
确认:等级为1-7,时间单位为秒
注意:部分引擎时间参数为分钟,需查阅引擎说明书

问题3:购买卷轴可无限召唤
可能原因:检测脚本未正确集成到购买流程
解决方案:在购买脚本和卷轴使用脚本中都添加检测
确保:购买时检测,使用时再次检测,双重保障

问题4:宠物死亡后仍无法召唤
可能原因:宠物死亡后检测仍未清除
解决方案:添加宠物死亡触发清理变量
在QFunction-0.txt中添加:
[@OnKillMob]
IF

CheckKillMobName 神兽
ACT

MOV S0 ;清除相关变量

脚本优化与扩展功能

添加时间限制防止频繁召唤:
[@召唤限制]
IF

CHECKCALLMOB 神兽
< 1
CHECK [100] 0
ACT

SET [100] 1
RECALLMOB 神兽 7 180
SENDMSG 6 神兽召唤成功,30秒内无法再次召唤。
DelayGoto 30000 @清除限制
[@清除限制]
ACT

SET [100] 0
SENDMSG 6 召唤限制已解除,可再次召唤神兽。

添加地图限制只能在特定区域召唤:
[@地图召唤]
IF

CHECKCALLMOB 神兽
< 1
MAPNAME 盟重省
ACT

RECALLMOB 神兽 7 180
SENDMSG 6 在盟重省召唤神兽成功。
ELSESAY

只能在盟重省召唤神兽,或已召唤神兽。

添加组队限制只有队长可召唤:
[@队伍召唤]
IF

CHECKCALLMOB 神兽
< 1
ISGROUPMASTER
ACT

RECALLMOB 神兽 7 180
SENDMSG 6 作为队长召唤神兽成功。
ELSESAY

只有队伍队长可召唤神兽,或已召唤神兽。

总结归纳

SKY/HeroM2引擎限制宠物数量核心是CHECKCALLMOB命令,该命令检测指定怪物的已召唤数量。配合条件判断可实现单个宠物数量限制、总数限制、等级数量双重限制等多种功能。

脚本编写注意怪物名称完全匹配数据库,条件判断逻辑完整,执行动作包含必要提示。在商铺购买和使用卷轴两个环节都添加检测,确保限制有效。扩展功能可添加时间限制、地图限制、职业限制等条件,实现更精细的控制。

测试脚本时通过输出信息确认检测结果,调试不准确问题。最终实现无论购买多少张召唤卷,玩家只能召唤一个指定宠物的功能,保持游戏平衡性。掌握CHECKCALLMOB及相关检测命令,可灵活设计各种宠物召唤限制规则。