Помогите со скриптом на каменную стену

Ask for help

Moderators: Murderator+, Murderator

Post Reply
-Old Kosyak-
Posts: 43
Joined: 2009-01-08 06:36:54
Location: Не хозяин...

Помогите со скриптом на каменную стену

Post by -Old Kosyak- »

Вот есть скрипт но кастует не всегда, почему понять не могу(((

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
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post by Mirage »

чтото мне подсказывает что
1) не привязываешь 'finditem' к константе по этому он может слетать.
2) переходы типо

Code: Select all

goto end
endif
wend
end:

не могут нормально работают. Циклом не проще сделать?
PS

Code: Select all

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:

равно

Code: Select all

limit=0
while not uo.injournal('In Sanct Ylem') or limit<=100
wait(100)
limit=limit+1
wend


^ вот и нет 1 goto из-вне цикла :roll:
Post Reply