Помогите со скриптом на Wall of Stone (скрипт внутри)
Posted: 2009-11-14 11:58:49
Есть скрипт. Но он глючит, стены ставит через раз, в чём причина!?
sub st()
####################
#aaoi?:CONDOMchick #
####################
uo.deletejournal()
VAR x1,x2,y1,y2,sx,sy,limit
x1=0
x2=0
y1=0
y2=0
uo.Set('finddistance','8')
na:
uo.findtype('0x0080',-1,'ground')
if uo.findcount()>0 then
sx=str(uo.getx('finditem'))
sy=str(uo.gety('finditem'))
if x1==1 and x2==1 or y1==1 and y2==1 then
GOTO pox
endif
if sx==str(uo.getx('laststatus')+1) and sy==str(uo.gety('laststatus')) then
x1=1
endif
if sx==str(uo.getx('laststatus')-1) and sy==str(uo.gety('laststatus')) then
x2=1
endif
if sx==str(uo.getx('laststatus')) and sy==str(uo.gety('laststatus')+1) then
y1=1
endif
if sx==str(uo.getx('laststatus')) and sy==str(uo.gety('laststatus')-1) then
y2=1
endif
uo.ignore('finditem')
GoTo na
endif
pox:
uo.ignorereset()
uo.print(str(x1)+str(x2)+str(y1) + str(y2))
if x1==0 and x2==0 and y1==0 and y2==0 then
uo.waittargettile("400",str(uo.getx('laststatus')),str(uo.gety('laststatus')),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
endif
if y1==1 and y2==1 then
if str(uo.getx())>str(uo.getx('laststatus')) then
uo.waittargettile("400",str(uo.getx('laststatus')+1),str(uo.gety('laststatus')),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
else
uo.waittargettile("400",str(uo.getx('laststatus')-1),str(uo.gety('laststatus')),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
endif
endif
if x1==1 and x2==1 then
if str(uo.gety())>str(uo.gety('laststatus')) then
uo.waittargettile("400",str(uo.getx('laststatus')),str(uo.gety('laststatus')+1),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
else
uo.waittargettile("400",str(uo.getx('laststatus')),str(uo.gety('laststatus')-1),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
endif
endif
limit=0
#or not uo.injournal('Target is not') or not uo.injournal('sufficient mana')
while not uo.injournal('In Sanct Ylem')
wait(100)
limit=limit+1
if limit==100 then
goto end
endif
wend
end:
end sub
sub st()
####################
#aaoi?:CONDOMchick #
####################
uo.deletejournal()
VAR x1,x2,y1,y2,sx,sy,limit
x1=0
x2=0
y1=0
y2=0
uo.Set('finddistance','8')
na:
uo.findtype('0x0080',-1,'ground')
if uo.findcount()>0 then
sx=str(uo.getx('finditem'))
sy=str(uo.gety('finditem'))
if x1==1 and x2==1 or y1==1 and y2==1 then
GOTO pox
endif
if sx==str(uo.getx('laststatus')+1) and sy==str(uo.gety('laststatus')) then
x1=1
endif
if sx==str(uo.getx('laststatus')-1) and sy==str(uo.gety('laststatus')) then
x2=1
endif
if sx==str(uo.getx('laststatus')) and sy==str(uo.gety('laststatus')+1) then
y1=1
endif
if sx==str(uo.getx('laststatus')) and sy==str(uo.gety('laststatus')-1) then
y2=1
endif
uo.ignore('finditem')
GoTo na
endif
pox:
uo.ignorereset()
uo.print(str(x1)+str(x2)+str(y1) + str(y2))
if x1==0 and x2==0 and y1==0 and y2==0 then
uo.waittargettile("400",str(uo.getx('laststatus')),str(uo.gety('laststatus')),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
endif
if y1==1 and y2==1 then
if str(uo.getx())>str(uo.getx('laststatus')) then
uo.waittargettile("400",str(uo.getx('laststatus')+1),str(uo.gety('laststatus')),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
else
uo.waittargettile("400",str(uo.getx('laststatus')-1),str(uo.gety('laststatus')),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
endif
endif
if x1==1 and x2==1 then
if str(uo.gety())>str(uo.gety('laststatus')) then
uo.waittargettile("400",str(uo.getx('laststatus')),str(uo.gety('laststatus')+1),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
else
uo.waittargettile("400",str(uo.getx('laststatus')),str(uo.gety('laststatus')-1),str(uo.getz('laststatus')))
uo.cast("Wall of Stone")
endif
endif
limit=0
#or not uo.injournal('Target is not') or not uo.injournal('sufficient mana')
while not uo.injournal('In Sanct Ylem')
wait(100)
limit=limit+1
if limit==100 then
goto end
endif
wend
end:
end sub