有的时候挂机几个小时回来会发现,本体站在原地不动,这就是被地形卡住了.还有的时候元神开了自动捡物,爆出来的一个东西被宝宝踩住了,那么此时元神将不会攻击,只会原地放治疗术.需要你离他很远他才会回到你面前.道加道应该特别明白这个苦恼.这里给大家分享一个刚写的防止卡住的脚本,思路就是,每隔几分钟检测一下,如果当前位置跟上一次检测一致,那么就强行让本体或者宝宝移动一下位置.代码如下

bserver\CustomTableList.txt ;数据库先定义四个字段放本体和元神坐标
BJSJ DQWZX:Int DQWZY:Int YSWZX:Int YSWZY:Int
AutoRunRobot.txt ;这里根据你的实际情况设置几分钟检测一次
#AutoRun NPC MIN 1 @检测本体是否卡住
#AutoRun NPC MIN 1 @检测元神是否卡住
RobotManage.txt
[@检测本体是否卡住]
#IF
RANDOM 1
#ACT
GMEXECUTE 在线提问 @检测本体是否卡住
[@检测元神是否卡住]
#IF
RANDOM 1
#ACT
GMEXECUTE 在线提问 @检测元神是否卡住
QManage.txt
[@检测本体是否卡住]
#IF
!CheckNameList ..\QuestDiary\数据文件\临时数据\检测卡住名字.txt
#ACT
break
#IF
EQUAL $MAPNAME 中州
#ACT
BREAK
#IF
EQUAL $X $Table(BJSJ).DQWZX
EQUAL $Y $Table(BJSJ).DQWZY
#ACT
MOV P12 $X
MOV P13 $Y
INC P12 5
INC P13 5
MAPMOVE $M <$STR(P12)> <$STR(P13)>
Table BJSJ DQWZX = $X
Table BJSJ DQWZY = $Y
BREAK
#ELSEACT
Table BJSJ DQWZX = $X
Table BJSJ DQWZY = $Y
[@检测元神是否卡住]
#IF
!CheckNameList ..\QuestDiary\数据文件\临时数据\检测卡住名字.txt
#ACT
break
#IF
CheckOnLine $PNEUMANAME
#ACT
PneumaCall @检测元神是否卡住1
BREAK
[@检测元神是否卡住1]
#IF
EQUAL $X $Table(BJSJ).YSWZX
EQUAL $Y $Table(BJSJ).YSWZY
#ACT
MOV P14 $X
MOV P15 $Y
INC P14 2
INC P15 2
MAPMOVE $M <$STR(P14)> <$STR(P15)>
Table BJSJ YSWZX = $X
Table BJSJ YSWZY = $Y
BREAK
#ELSEACT
Table BJSJ YSWZX = $X
Table BJSJ YSWZY = $Y
BREAK
;这里可以直接将自己名字加入检测卡住名字.txt中,也可以自己在某一个npc里设置开启关闭
自定义某npc.txt
<开启检测卡住/@开启检测卡住> <关闭检测卡住/@关闭检测卡住>
[@开启检测卡住]
#IF
!CheckNameList ..\QuestDiary\数据文件\临时数据\检测卡住名字.txt
#ACT
AddNameList ..\QuestDiary\数据文件\临时数据\检测卡住名字.txt
sendmsg 5 开启检测卡住成功
[@关闭检测卡住]
#IF
CheckNameList ..\QuestDiary\数据文件\临时数据\检测卡住名字.txt
#ACT
DelNameList ..\QuestDiary\数据文件\临时数据\检测卡住名字.txt
sendmsg 5 关闭检测卡住成功