杀死自己属下功能用于清除玩家召唤的宝宝、神兽、骷髅、月灵、英雄、分身、宠物等。常见场景包括宝宝卡位、宝宝叛变、属性不满意、需要重新召唤、防止宝宝抢经验、PK时避免宝宝被利用。添加此功能可通过聊天命令、NPC对话、快捷键、物品触发四种方式实现。
一、引擎命令支持排查
GOM引擎内置KILLSLAVE命令,可杀死当前玩家所有属下。GEE引擎支持KILLSLAVE和KILLPET。HERO引擎使用KILLSLAVE。BLUE引擎使用KILLSLAVE。LEG引擎使用KILLSLAVE。部分引擎支持指定名称,格式为KILLSLAVE宝宝名。如果引擎没有内置命令,用GETSLAVECOUNT获取属下数量,GETSLAVENAME获取属下名称,再用KILLSLAVE逐个清除。英雄不属于普通属下,需用KILLHERO或收回英雄命令。分身用KILLMIRROR。宠物用KILLPET。坐骑用下马命令,不能杀死。
二、聊天命令触发配置
在QFunction-0.txt中添加脚本段。示例:
[@杀属下]
#IF
CHECKSLaveCount>0
#ACT
KILLSLAVE
SENDMSG6你的属下已清除
#ELSEACT
SENDMSG6你没有属下
BREAK
在M2控制台命令设置中添加自定义命令“杀属下”,对应脚本段@杀属下。部分引擎在String.ini中配置命令。玩家在聊天框输入@杀属下即可触发。命令名称不能与现有命令冲突。命令长度不宜过长。命令参数可支持指定属下名称,例如@杀属下神兽,脚本中用$PARAM1获取名称。
三、NPC对话触发配置
在Merchant.txt中添加NPC,设置地图编号、坐标、名称、脚本文件、外观编号。NPC脚本示例:
[@清除属下]
#IF
CHECKSLaveCount>0
#ACT
KILLSLAVE
SENDMSG6属下已清除
#ELSEACT
SENDMSG6没有属下
BREAK
NPC对话可增加确认选项,防止误点。确认脚本用GOTO跳转。NPC可放在安全区、药店附近、传送员旁边。重载NPC后生效。NPC名称不能与怪物名、物品名重复。
四、快捷键与物品触发
M2控制台快捷键设置中绑定命令,例如F10对应@杀属下。物品触发需新建物品“属下清除令”,在StdItems.DB中设置StdMode和Shape,计算触发编号。QFunction中对应触发段:
[@StdModeFuncXX]
#IF
CHECKSLaveCount>0
#ACT
KILLSLAVE
TAKE属下清除令1
SENDMSG6属下已清除
#ELSEACT
SENDMSG6没有属下,物品不消耗
BREAK
物品可设置为商店出售、怪物掉落、任务奖励。收费清除可扣除金币或元宝。扣除前用CHECKGOLD或CHECKGAMEGOLD检查。
五、条件限制与防误杀
限制战斗状态:PK时不能清除,用CHECKPVP判断。限制地图:某些活动地图禁止清除。限制冷却:清除后设置变量,例如U300记录时间,下次使用检查时间差。限制等级:低于40级不能用。限制元宝:收费清除。防止重复清除:每次检查属下数量。防止清除他人属下:KILLSLAVE默认只对执行者生效,GM命令KILLSLAVE玩家名需加权限。不要用KILLMONSTER范围命令,会误杀怪物和其他玩家宝宝。
六、英雄分身宠物处理
英雄合击系统中的英雄用KILLHERO清除。分身术用KILLMIRROR。宠物系统用KILLPET。如果引擎不支持,用脚本设置英雄为休息状态,RECALLHERO收回。宠物用PETRETURN收回。坐骑用RIDEOFF下马。部分引擎英雄死亡后需等待复活,清除后要重置复活时间变量。
七、变量与状态清理
清除属后清理相关变量。宝宝数量变量清零。宝宝名称变量清空。宝宝属性变量重置。召唤冷却变量重新计时。宝宝装备回收:如果宝宝有装备,用TAKE从宝宝身上取下,GIVE到玩家背包,背包满则发邮件或掉落到地面。清理宝宝攻击目标。清理宝宝归属。避免宝宝死亡后仍然占用召唤数量。检查召唤技能是否可再次使用。
八、多引擎脚本对照
GOM引擎循环清除示例:
#ACT
MOVP00
WHILEP0<$SLAVECOUNT
GETSLAVENAMEP0S0
KILLSLAVE$STR(S0)
INCP01
ENDWHILE
GEE引擎支持KILLSLAVE直接清除全部。HERO引擎用CHECK[100]0判断。BLUE引擎用KILLSLAVE。LEG引擎用KILLSLAVE。脚本中变量范围不同,GOM用P0,GEE用U0,HERO用P0。使用前查对应引擎脚本手册。
九、重载与测试
修改QFunction后重载脚本。修改NPC后重载NPC。修改命令后重载命令配置。修改物品数据库后重载物品数据库。测试步骤:召唤宝宝,输入命令,宝宝消失。再次输入,提示没有属下。召唤多个宝宝,输入命令,全部消失。指定名字,只消失指定宝宝。战斗状态测试。安全区测试。小退后测试。重启服务端测试。检查宝宝死亡后是否还能召唤。检查召唤数量是否恢复。检查装备是否回收。检查日志是否记录。
十、常见问题排查
命令无效:检查引擎是否支持,检查命令是否在M2中注册,检查脚本段名是否正确,检查是否重载。宝宝不消失:检查宝宝是否属于自己,检查宝宝是否被其他玩家控制,检查宝宝是否处于无敌状态。清除后无法再召唤:检查召唤冷却变量,检查召唤数量变量是否清零。清除后服务器卡顿:检查宝宝数量是否过多,检查循环脚本是否死循环。清除后装备丢失:检查宝宝装备处理逻辑。清除他人宝宝:检查命令是否只对自己生效。误杀怪物:检查是否用了范围命令。英雄无法清除:检查英雄系统命令。宠物无法清除:检查宠物系统命令。
十一、安全与权限
只有玩家本人可以清除自己属下。GM可以清除指定玩家属下,命令需加权限。普通玩家不能清除他人属下。防止利用清除功能刷物品:宝宝装备回收要判断。防止清除后重复领取召唤奖励:变量控制。防止清除冷却被绕过:服务端时间判断。防止脚本注入:聊天命令参数过滤。记录操作日志:玩家名、时间、属下名、地图、IP。日志保留30天。
十二、扩展功能
一键清除所有召唤物:包括宝宝、英雄、分身、宠物。清除后自动重新召唤:先清除再召唤,用于刷新宝宝属性。清除属下并给予奖励:如清除令兑换积分。清除属下并公告:全服提示。清除属下并传送:宝宝死亡后玩家传回安全区。清除属下并冷却:设置冷却时间,防止频繁清除。清除属下并收费:金币、元宝、灵符。清除属下并限制地图:某些地图禁止使用。
十三、完整操作步骤
确定引擎支持命令。在QFunction添加脚本段。在M2注册聊天命令。添加NPC对话选项。添加快捷键或物品触发。设置条件限制和冷却。处理英雄分身宠物。清理变量和装备。重载脚本和NPC。测试全部场景。排查问题。正式使用。修改前备份原文件。修改后先在卸围测试。确认无误后再全服开放。
一、引擎命令支持排查
GOM引擎内置KILLSLAVE命令,可杀死当前玩家所有属下。GEE引擎支持KILLSLAVE和KILLPET。HERO引擎使用KILLSLAVE。BLUE引擎使用KILLSLAVE。LEG引擎使用KILLSLAVE。部分引擎支持指定名称,格式为KILLSLAVE宝宝名。如果引擎没有内置命令,用GETSLAVECOUNT获取属下数量,GETSLAVENAME获取属下名称,再用KILLSLAVE逐个清除。英雄不属于普通属下,需用KILLHERO或收回英雄命令。分身用KILLMIRROR。宠物用KILLPET。坐骑用下马命令,不能杀死。
二、聊天命令触发配置
在QFunction-0.txt中添加脚本段。示例:
[@杀属下]
#IF
CHECKSLaveCount>0
#ACT
KILLSLAVE
SENDMSG6你的属下已清除
#ELSEACT
SENDMSG6你没有属下
BREAK
在M2控制台命令设置中添加自定义命令“杀属下”,对应脚本段@杀属下。部分引擎在String.ini中配置命令。玩家在聊天框输入@杀属下即可触发。命令名称不能与现有命令冲突。命令长度不宜过长。命令参数可支持指定属下名称,例如@杀属下神兽,脚本中用$PARAM1获取名称。
三、NPC对话触发配置
在Merchant.txt中添加NPC,设置地图编号、坐标、名称、脚本文件、外观编号。NPC脚本示例:
[@清除属下]
#IF
CHECKSLaveCount>0
#ACT
KILLSLAVE
SENDMSG6属下已清除
#ELSEACT
SENDMSG6没有属下
BREAK
NPC对话可增加确认选项,防止误点。确认脚本用GOTO跳转。NPC可放在安全区、药店附近、传送员旁边。重载NPC后生效。NPC名称不能与怪物名、物品名重复。
四、快捷键与物品触发
M2控制台快捷键设置中绑定命令,例如F10对应@杀属下。物品触发需新建物品“属下清除令”,在StdItems.DB中设置StdMode和Shape,计算触发编号。QFunction中对应触发段:
[@StdModeFuncXX]
#IF
CHECKSLaveCount>0
#ACT
KILLSLAVE
TAKE属下清除令1
SENDMSG6属下已清除
#ELSEACT
SENDMSG6没有属下,物品不消耗
BREAK
物品可设置为商店出售、怪物掉落、任务奖励。收费清除可扣除金币或元宝。扣除前用CHECKGOLD或CHECKGAMEGOLD检查。
五、条件限制与防误杀
限制战斗状态:PK时不能清除,用CHECKPVP判断。限制地图:某些活动地图禁止清除。限制冷却:清除后设置变量,例如U300记录时间,下次使用检查时间差。限制等级:低于40级不能用。限制元宝:收费清除。防止重复清除:每次检查属下数量。防止清除他人属下:KILLSLAVE默认只对执行者生效,GM命令KILLSLAVE玩家名需加权限。不要用KILLMONSTER范围命令,会误杀怪物和其他玩家宝宝。
六、英雄分身宠物处理
英雄合击系统中的英雄用KILLHERO清除。分身术用KILLMIRROR。宠物系统用KILLPET。如果引擎不支持,用脚本设置英雄为休息状态,RECALLHERO收回。宠物用PETRETURN收回。坐骑用RIDEOFF下马。部分引擎英雄死亡后需等待复活,清除后要重置复活时间变量。
七、变量与状态清理
清除属后清理相关变量。宝宝数量变量清零。宝宝名称变量清空。宝宝属性变量重置。召唤冷却变量重新计时。宝宝装备回收:如果宝宝有装备,用TAKE从宝宝身上取下,GIVE到玩家背包,背包满则发邮件或掉落到地面。清理宝宝攻击目标。清理宝宝归属。避免宝宝死亡后仍然占用召唤数量。检查召唤技能是否可再次使用。
八、多引擎脚本对照
GOM引擎循环清除示例:
#ACT
MOVP00
WHILEP0<$SLAVECOUNT
GETSLAVENAMEP0S0
KILLSLAVE$STR(S0)
INCP01
ENDWHILE
GEE引擎支持KILLSLAVE直接清除全部。HERO引擎用CHECK[100]0判断。BLUE引擎用KILLSLAVE。LEG引擎用KILLSLAVE。脚本中变量范围不同,GOM用P0,GEE用U0,HERO用P0。使用前查对应引擎脚本手册。
九、重载与测试
修改QFunction后重载脚本。修改NPC后重载NPC。修改命令后重载命令配置。修改物品数据库后重载物品数据库。测试步骤:召唤宝宝,输入命令,宝宝消失。再次输入,提示没有属下。召唤多个宝宝,输入命令,全部消失。指定名字,只消失指定宝宝。战斗状态测试。安全区测试。小退后测试。重启服务端测试。检查宝宝死亡后是否还能召唤。检查召唤数量是否恢复。检查装备是否回收。检查日志是否记录。
十、常见问题排查
命令无效:检查引擎是否支持,检查命令是否在M2中注册,检查脚本段名是否正确,检查是否重载。宝宝不消失:检查宝宝是否属于自己,检查宝宝是否被其他玩家控制,检查宝宝是否处于无敌状态。清除后无法再召唤:检查召唤冷却变量,检查召唤数量变量是否清零。清除后服务器卡顿:检查宝宝数量是否过多,检查循环脚本是否死循环。清除后装备丢失:检查宝宝装备处理逻辑。清除他人宝宝:检查命令是否只对自己生效。误杀怪物:检查是否用了范围命令。英雄无法清除:检查英雄系统命令。宠物无法清除:检查宠物系统命令。
十一、安全与权限
只有玩家本人可以清除自己属下。GM可以清除指定玩家属下,命令需加权限。普通玩家不能清除他人属下。防止利用清除功能刷物品:宝宝装备回收要判断。防止清除后重复领取召唤奖励:变量控制。防止清除冷却被绕过:服务端时间判断。防止脚本注入:聊天命令参数过滤。记录操作日志:玩家名、时间、属下名、地图、IP。日志保留30天。
十二、扩展功能
一键清除所有召唤物:包括宝宝、英雄、分身、宠物。清除后自动重新召唤:先清除再召唤,用于刷新宝宝属性。清除属下并给予奖励:如清除令兑换积分。清除属下并公告:全服提示。清除属下并传送:宝宝死亡后玩家传回安全区。清除属下并冷却:设置冷却时间,防止频繁清除。清除属下并收费:金币、元宝、灵符。清除属下并限制地图:某些地图禁止使用。
十三、完整操作步骤
确定引擎支持命令。在QFunction添加脚本段。在M2注册聊天命令。添加NPC对话选项。添加快捷键或物品触发。设置条件限制和冷却。处理英雄分身宠物。清理变量和装备。重载脚本和NPC。测试全部场景。排查问题。正式使用。修改前备份原文件。修改后先在卸围测试。确认无误后再全服开放。

