在sky引擎(HeroM2)的传奇2中,若想通过脚本限制玩家召唤的宠物数量(比如无论买多少召唤卷,只能召唤1个宝宝),关键在于通过脚本命令检测当前已召唤的宠物数量,再根据数量判断是否允许召唤新宠物。下面结合你的需求具体说说编写方法。
首先,要明确HeroM2引擎中用于检测宠物数量的命令。这类命令通常是“CheckFollowCount”,它的作用是返回玩家当前跟随的宠物(包括召唤兽、宝宝等)数量。比如“CheckFollowCount<1”就表示“当前宠物数量小于1”,正好符合你在#IF条件中需要的判断逻辑。
接下来,完善召唤宠物的脚本结构。结合你提供的基础代码,完整的脚本可以这样写:
[@召唤宝宝]
#IF
CheckFollowCount<1
#ACT
@recallmob宝宝
SendMsg6成功召唤宝宝!
break
#ELSE
SendMsg6最多只能召唤1个宝宝哦!
break
这段代码的逻辑是:当玩家使用召唤卷时,先检测当前宠物数量是否小于1。如果是,就执行召唤命令(@recallmob宝宝)并提示成功;如果已经有1个或多个宠物,就提示无法继续召唤。
需要注意“CheckFollowCount”命令的参数范围。在HeroM2引擎中,这个命令默认检测的是所有跟随玩家的“怪物型宠物”(包括召唤兽、雇佣的宝宝等),正好符合你对“宠物”的定义。如果你的中存在其他类型的跟随单位(如NPC伙伴),可能需要用“CheckMonsterCount”命令进一步筛选,比如“CheckMonsterCount宝宝1”(检测名为“宝宝”的怪物数量是否小于1),确保只统计目标宠物。
另外,要将这个脚本与商铺的宠物召唤卷关联起来。在商铺脚本中,找到购买宠物召唤卷后触发的命令,将其指向上面编写的[@召唤宝宝]标签。比如商铺中原来的代码可能是:
[@购买召唤卷]
#ACT
TakeItem元宝10
GiveItem宠物召唤卷1
SendMsg6购买成功,使用召唤卷召唤宝宝吧!
这时需要在“GiveItem”之后添加触发召唤的逻辑,或者让召唤卷的使用脚本直接调用[@召唤宝宝],比如:
[@使用宠物召唤卷]
#CALL[召唤脚本.txt]@召唤宝宝
这样玩家使用召唤卷时,就会先执行数量检测,再决定是否召唤。
测试脚本时,可以按以下步骤验证:召唤1个宝宝后,尝试再次使用召唤卷,看是否会提示“最多只能召唤1个宝宝”;如果解散当前宝宝(比如用@unrecallmob命令),再使用召唤卷,看是否能重新召唤。如果出现检测失效的情况,可能是命令名称记错了(比如HeroM2中部分版本写作“CheckFollow”而非“CheckFollowCount”),可以查阅引擎自带的“脚本命令手册”确认正确命令。
还有一种特殊情况:如果你的“宝宝”属于“英雄”或“分身”类型,而非普通怪物宠物,可能需要用专门的命令检测,比如“CheckHeroExist”(检测英雄是否存在)。这时候需要将判断条件改为“CheckHeroExist0”(0代表不存在),再执行召唤命令。
最后,修改完脚本后要重启服务器,让设置生效。如果发现召唤逻辑仍有问题,可以在脚本中加入更多提示信息,比如“SendMsg6当前宠物数量:<$FollowCount>”,通过显示实际数量来排查检测命令是否生效。
总的来说,编写限制宠物数量的脚本,核心是用“CheckFollowCount”检测当前数量,再通过条件判断控制召唤命令的执行。按照上述结构调整命令和关联逻辑,就能实现“最多召唤1个宝宝”的效果。
首先,要明确HeroM2引擎中用于检测宠物数量的命令。这类命令通常是“CheckFollowCount”,它的作用是返回玩家当前跟随的宠物(包括召唤兽、宝宝等)数量。比如“CheckFollowCount<1”就表示“当前宠物数量小于1”,正好符合你在#IF条件中需要的判断逻辑。
接下来,完善召唤宠物的脚本结构。结合你提供的基础代码,完整的脚本可以这样写:
[@召唤宝宝]
#IF
CheckFollowCount<1
#ACT
@recallmob宝宝
SendMsg6成功召唤宝宝!
break
#ELSE
SendMsg6最多只能召唤1个宝宝哦!
break
这段代码的逻辑是:当玩家使用召唤卷时,先检测当前宠物数量是否小于1。如果是,就执行召唤命令(@recallmob宝宝)并提示成功;如果已经有1个或多个宠物,就提示无法继续召唤。
需要注意“CheckFollowCount”命令的参数范围。在HeroM2引擎中,这个命令默认检测的是所有跟随玩家的“怪物型宠物”(包括召唤兽、雇佣的宝宝等),正好符合你对“宠物”的定义。如果你的中存在其他类型的跟随单位(如NPC伙伴),可能需要用“CheckMonsterCount”命令进一步筛选,比如“CheckMonsterCount宝宝1”(检测名为“宝宝”的怪物数量是否小于1),确保只统计目标宠物。
另外,要将这个脚本与商铺的宠物召唤卷关联起来。在商铺脚本中,找到购买宠物召唤卷后触发的命令,将其指向上面编写的[@召唤宝宝]标签。比如商铺中原来的代码可能是:
[@购买召唤卷]
#ACT
TakeItem元宝10
GiveItem宠物召唤卷1
SendMsg6购买成功,使用召唤卷召唤宝宝吧!
这时需要在“GiveItem”之后添加触发召唤的逻辑,或者让召唤卷的使用脚本直接调用[@召唤宝宝],比如:
[@使用宠物召唤卷]
#CALL[召唤脚本.txt]@召唤宝宝
这样玩家使用召唤卷时,就会先执行数量检测,再决定是否召唤。
测试脚本时,可以按以下步骤验证:召唤1个宝宝后,尝试再次使用召唤卷,看是否会提示“最多只能召唤1个宝宝”;如果解散当前宝宝(比如用@unrecallmob命令),再使用召唤卷,看是否能重新召唤。如果出现检测失效的情况,可能是命令名称记错了(比如HeroM2中部分版本写作“CheckFollow”而非“CheckFollowCount”),可以查阅引擎自带的“脚本命令手册”确认正确命令。
还有一种特殊情况:如果你的“宝宝”属于“英雄”或“分身”类型,而非普通怪物宠物,可能需要用专门的命令检测,比如“CheckHeroExist”(检测英雄是否存在)。这时候需要将判断条件改为“CheckHeroExist0”(0代表不存在),再执行召唤命令。
最后,修改完脚本后要重启服务器,让设置生效。如果发现召唤逻辑仍有问题,可以在脚本中加入更多提示信息,比如“SendMsg6当前宠物数量:<$FollowCount>”,通过显示实际数量来排查检测命令是否生效。
总的来说,编写限制宠物数量的脚本,核心是用“CheckFollowCount”检测当前数量,再通过条件判断控制召唤命令的执行。按照上述结构调整命令和关联逻辑,就能实现“最多召唤1个宝宝”的效果。

