BLUE引擎KickOut命令详解 - 踢人下线脚本教程
摘要:本文围绕BLUE引擎KickOut踢人下线命令展开,讲解KICK让在线玩家正规小退并保存数据的写法,演示MESSAGEBOX弹窗说明原因、SETOFFLINEPLAY OFF关闭离线挂机、DELAYGOTO延迟跳转再执行KICK的流程,对比KICK与封号禁言区别并排查KICK不生效等问题。…
发现异常登录或需要强制某玩家下线时,总不能靠让玩家自己退游戏。KickOut对应的KICK命令一行就能让在线玩家执行小退,配合MESSAGEBOX提示和延迟跳转,可以做到先弹窗说明原因、数秒后再把人踢下去,做玩家强制下线和管理员踢人命令时用起来很顺手。

踢人下线使用场景
日常管理中几种情况需要强制玩家下线:一是离线挂机后数据不同步,玩家重新登录时提示小退再进;二是检测到非法登录或异常行为,需要把人踢下线查记录;三是版本维护前需要清人。这个踢人下线脚本就是为这些场景准备的。
KICK后面跟参数1,表示让当前触发脚本的在线玩家执行小退。它和直接断连接不同,走的是正规小退流程,角色数据会正常保存,不会出现下线后物品丢失的情况。

KICK命令格式说明
命令格式很简单,KICK后面直接跟数字1即可,参数1固定表示让在线玩家执行小退。KICK通常不单独使用,而是放在延迟跳转后的目标段里:先用MESSAGEBOX弹窗告诉玩家为什么被踢,延迟几秒让玩家看到提示,再执行KICK真正下线。
下面这段脚本来自帮助文档,处理的是离线挂机后重新登录的场景:
[@RESUME]
#IF
TRUE
#ACT
MESSAGEBOX 因为你上次下线的时后使用了离线挂机功能!\管理员为了避免你在游戏中出现数据错误!\请你小退一下再重新登陆!
SETOFFLINEPLAY OFF
DELAYGOTO 3000 @KICK
BREAK
[@KICK]
#IF
#ACT
SENDMSG 5 %s,非法登录游戏
KICK 1
玩家登录时触发[@RESUME],先弹一个提示框说明原因,关掉离线挂机开关,延迟3000毫秒(3秒)后跳到[@KICK]段,发一条红色消息再执行KICK把人小退。

落地配置步骤
第一步,确定要踢人的触发时机,把脚本写在QManage.txt的[@RESUME]段(登录恢复时)或NPC管理对话段里,开头用MESSAGEBOX写清楚踢人原因,让玩家看到弹窗。
第二步,在MESSAGEBOX后面加SETOFFLINEPLAY OFF关闭离线挂机状态,再用DELAYGOTO延迟3000毫秒跳到[@KICK]段,最后加BREAK跳出当前段。
第三步,新建[@KICK]段,先SENDMSG发一条红色提示说明非法登录或管理操作,最后写KICK1执行小退,保存后重载QManage或NPC脚本即可生效。
与其他下线命令区别
KICK走正规小退流程,数据保存完整。它和直接踢连接、封号禁言不同:KICK走完小退流程,玩家可以马上重新登录;封号是禁止账号登录,需要解封后才能进;禁言只限制聊天不踢人。需要配合SETOFFLINEPLAY OFF使用时,说明之前该玩家处于离线挂机状态,重新登录后先关掉这个状态再踢小退,避免数据冲突。
问题排查
1. 问:KICK执行后玩家没下线是什么原因?
先确认KICK写在延迟跳转后的[@KICK]段里且段名一致,DELAYGOTO的毫秒数到了没有。再检查脚本是否在正确的文件段里执行,改完后有没有重载。如果玩家正在离线挂机状态,需要先SETOFFLINEPLAY OFF再KICK,否则可能踢不动。(本条问题整理自百度知道真实提问:大退踢人后小退没反应2024-08)
2. 问:KICK和GM踢人命令有什么区别?
脚本里的KICK是写在NPC或QFunction段里按条件自动执行的,适合批量或触发式踢人;GM踢人命令是管理员手动在线操作,指定某个玩家踢下线。脚本自动踢人踢的是当前触发脚本的这个玩家,不能指定踢别人。
3. 问:踢人前怎么让玩家看到提示?
用MESSAGEBOX弹窗写提示文字,再用DELAYGOTO延迟几秒跳到KICK段。MESSAGEBOX会挡住玩家操作,等玩家关掉弹窗或延迟时间到了再执行KICK。不要一上来就KICK,玩家被踢下线都不知道为什么。
4. 问:KICK踢下线后角色数据会保存吗?
会。KICK走的是正规小退流程,角色身上的装备、金币、经验都会正常保存到数据库,和玩家自己点小退效果一样。这也是为什么用它处理离线挂机后重新登录的数据不同步问题——先正常小退一次,再上线数据就对齐了。
5. 问:能在脚本里指定踢其他玩家吗?
KICK只作用于当前触发脚本的这个玩家,不能直接踢别人。要踢指定玩家需要配合GM命令或在线管理脚本,先定位到目标玩家再执行管理操作。脚本自动踢人一般踢的是触发者自己。(本条问题整理自百度知道真实提问:传奇GM命令2019-07)
6. 问:DELAYGOTO 3000是延迟多久?
3000毫秒等于3秒。这个延迟时间用来给MESSAGEBOX弹窗留展示时间,玩家看到提示后3秒再被踢。时间太短玩家来不及看提示,太长影响体验,一般设2000到5000毫秒即可。
上述KICK踢人流程在本地BLUE引擎环境实测可用,KickOut命令走正规小退流程保存数据的特性为BLUE引擎行为,其他引擎踢人命令的参数和数据保存时机不一致,跨引擎使用前需自测。仅供单机本地学习调试。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。





