|
如题
我在MUSH中用VBSCIPT脚本连接ACCESS数据库,别名也设计进了数据库,可是用DoAfter,DoAfterSpecial都无法实现逐步延时的效果,下面把别名、数据库、脚本全部发上来,望高手们指正。
数据库:
别名:
VBSCRIPT脚本:
'============连接数据库
dim conn
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&"D:\Program Files\MUSHclient\worlds\pku\bxbl.mdb"
dim rs
Set rs = CreateObject("ADODB.RECORDSET")
'=============数据库连接完毕
'==============定义遍历每个地点的常用指令
dim dzA,dzB,dzC,dzD,dzE,dzF,dzG
sub zhiling(zlA,zlB,zlC,zlD,zlE,zlF,zlG)
if dzA="1" then send ""&zlA&""
if dzB="1" then send ""&zlB&""
if dzC="1" then send ""&zlC&""
if dzD="1" then send ""&zlD&""
if dzE="1" then send ""&zlE&""
if dzF="1" then send ""&zlF&""
if dzG="1" then send ""&zlG&""
dzA="0"
dzB="0"
dzC="0"
dzD="0"
dzE="0"
dzF="0"
dzG="0"
end sub
'==============定义动作结束
'==============捡钱
sub dzss(getobjs)
send ""&getobjs&""
end sub
'==============结束
dim i
'==============读取路径别名
sub mypath(lujing)
rs.open "select * from path where nicks='"&lujing&"'",conn,1,1
if not rs.eof then
dim path
path=split(rs("content"),";")
for i = 0 to ubound(path)
call dongzuo()
if i=0 then
send ""&path(i)&""
else
world.DoAfterSpecial 1, ""&path(i)&"", 0
就是这里出了问题,因为前面有了if i=0的判断,SEND的第一个指令是立即发送的,第二个指令前的DoAfterSpecial延时也是生效的,可是问题是,第三个和后面指令前的DoAfterSpecia都不生效,这样就造成了执行完第一个指令马上执行的是第三到ubound(path)个指令中间无延时,第二个指令反而是最后才执行。
如果把DoAfterSpecia这里改成world.DoAfter 1, ""&path(i)&"" 又是另一个问题了,第一个指令马上执行,第二个指令等待1秒后执行,第三到ubound(path)个指令中间无延时。
是什么原因造成这样的结果不明,应该怎么解决?
send ""&path(i)&""
end if
next
end if
rs.close
lujing=""
end sub
'==============路径别名结束 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|