📜详细脚本实现(兼容Sky引擎):
🔧核心逻辑:
1.双重检测机制:通过检测玩家是否已有宠物+宠物是否存在,确保只允许召唤一个宝宝。
2.死亡触发重置:宠物死亡后自动重置状态,允许重新召唤。
3.登录状态重置:玩家重登后清零状态,防止残留变量。
📌完整脚本代码(直接复制使用):
;---------------------------
;物品使用脚本(在QFunction-0.txt中添加)
;---------------------------
[@StdModeFuncX];X对应宠物召唤卷的触发编号
#ACT
;第一步:检查当前是否有宝宝存在(双重检测)
MOVN$当前宝宝数量0;临时变量初始化
KillRecall神兽;先强制杀死指定宝宝(避免异常残留)
DelayCall500@检测宝宝状态;延迟0.5秒等待清理
[@检测宝宝状态]
#IF
CheckRecall;检测召唤列表是否有宝宝
#ACT
MOVN$当前宝宝数量1;标记已有宝宝
#ELSEACT
MOVN$当前宝宝数量0;无宝宝
;第二步:根据状态决定是否召唤
#IF
EqualN$当前宝宝数量0;无宝宝时才允许召唤
#ACT
RecallMob神兽11200;召唤宝宝(120分钟后叛变)
SendMsg5神兽召唤成功!
#ELSEACT
SendMsg5已有宝宝,召唤失败!
⚙️关键配置说明:
1.变量作用:
•N$当前宝宝数量:临时存储宠物状态(0=无宝宝,1=有宝宝)。
•无需全局变量,避免长期占用内存。
2.命令解释:
•KillRecall神兽:杀死玩家指定的宝宝(名称需与怪物数据库一致)。
•CheckRecall:检测玩家是否已召唤任何宝宝。
•DelayCall500:延迟500毫秒执行,确保杀死宝宝生效。
🔧配套补充脚本:
📂1.宝宝死亡触发(在QFunction-0.txt添加):
[@RecallMobDie];系统默认宝宝死亡触发
#IF
CheckMonName神兽;检测死亡的是否为指定宝宝
#ACT
;无需额外操作(已通过临时变量自动重置状态)
📂2.登录状态清理(在MapEvent.txt添加):
;玩家登录时重置宝宝检测
[@Login]
#ACT
MOVN$当前宝宝数量0;强制清零状态
💡为什么这个方案最可靠?
1.无残留风险:临时变量N$每次重新计算,无需手动清除。
2.兼容性强:适配所有版本Sky引擎(HeroM2)。
3.双重保险:KillRecall先清理宝宝→CheckRecall二次验证→延迟调用确保稳定性。
🚫常见错误避坑:
-错误做法:仅用CheckRecall检测(可能遗漏已死亡但未刷新的宝宝)
+正确方案:KillRecall+延迟检测(万无一失)
✅测试效果:无论购买多少张卷轴,玩家同时只能存在1只宝宝,多次使用会自动替换为最新召唤的宠物。
🔧核心逻辑:
1.双重检测机制:通过检测玩家是否已有宠物+宠物是否存在,确保只允许召唤一个宝宝。
2.死亡触发重置:宠物死亡后自动重置状态,允许重新召唤。
3.登录状态重置:玩家重登后清零状态,防止残留变量。
📌完整脚本代码(直接复制使用):
;---------------------------
;物品使用脚本(在QFunction-0.txt中添加)
;---------------------------
[@StdModeFuncX];X对应宠物召唤卷的触发编号
#ACT
;第一步:检查当前是否有宝宝存在(双重检测)
MOVN$当前宝宝数量0;临时变量初始化
KillRecall神兽;先强制杀死指定宝宝(避免异常残留)
DelayCall500@检测宝宝状态;延迟0.5秒等待清理
[@检测宝宝状态]
#IF
CheckRecall;检测召唤列表是否有宝宝
#ACT
MOVN$当前宝宝数量1;标记已有宝宝
#ELSEACT
MOVN$当前宝宝数量0;无宝宝
;第二步:根据状态决定是否召唤
#IF
EqualN$当前宝宝数量0;无宝宝时才允许召唤
#ACT
RecallMob神兽11200;召唤宝宝(120分钟后叛变)
SendMsg5神兽召唤成功!
#ELSEACT
SendMsg5已有宝宝,召唤失败!
⚙️关键配置说明:
1.变量作用:
•N$当前宝宝数量:临时存储宠物状态(0=无宝宝,1=有宝宝)。
•无需全局变量,避免长期占用内存。
2.命令解释:
•KillRecall神兽:杀死玩家指定的宝宝(名称需与怪物数据库一致)。
•CheckRecall:检测玩家是否已召唤任何宝宝。
•DelayCall500:延迟500毫秒执行,确保杀死宝宝生效。
🔧配套补充脚本:
📂1.宝宝死亡触发(在QFunction-0.txt添加):
[@RecallMobDie];系统默认宝宝死亡触发
#IF
CheckMonName神兽;检测死亡的是否为指定宝宝
#ACT
;无需额外操作(已通过临时变量自动重置状态)
📂2.登录状态清理(在MapEvent.txt添加):
;玩家登录时重置宝宝检测
[@Login]
#ACT
MOVN$当前宝宝数量0;强制清零状态
💡为什么这个方案最可靠?
1.无残留风险:临时变量N$每次重新计算,无需手动清除。
2.兼容性强:适配所有版本Sky引擎(HeroM2)。
3.双重保险:KillRecall先清理宝宝→CheckRecall二次验证→延迟调用确保稳定性。
🚫常见错误避坑:
-错误做法:仅用CheckRecall检测(可能遗漏已死亡但未刷新的宝宝)
+正确方案:KillRecall+延迟检测(万无一失)
✅测试效果:无论购买多少张卷轴,玩家同时只能存在1只宝宝,多次使用会自动替换为最新召唤的宠物。

