Code:
# ###################################
#### Скрипт на торговлю ВЕТЕРАН 2.2 - 2.3 Nmy edition.
# ###################################
var rune = '0x1F14' # тип рунок
# Отдельное спасибо ВЕТЕРАНУ за первоначальный скрипт и идею.
# ####################################################################
# ########################## ШАПКА ###################################
# Список покупок называется buy. Имеим сундук в заборе и руну домой в 1-2
# тайла от сундука. При запуске скрипт ищет руну в бекпаке. Она становится
# руной домой. Открывает сундук, берет реги и 1 пустую руну. В сундуке
# должны быть реги для рекола, мешок с рунами куда лететь (Runebag),
# мешок с бланк рунами для марка (BlankRunebag) и мешок куда кидать
# руны (Dropbag) в процессе рекола.
# Скрипт берет руну, кидает ее в мешок Dropbag и кастует рекол. Если
# руна пропадает, он марчит новую.
# Можно указать в скупке recall rune. Скрипт бланк руны автоматически
# будет кидать в мешок для бланк рун. Эту фичу надо мониторить, если
# мешок будет забит, скрипт зациклится и остановится. Вполне хватает
# 10мин и у вас уже будет 100 бланк рун.
# Весь товар кидается в сундук. Если указать тип бланк мап, мапы будут
# кидаться в мешки по 255.
# Скрипт летает к вендорам и идет к ним. На это есть 10 секунд или ходилка
# будет остановлена.
# Медитирует и все такое.
# Скупает и плавит айрон. Массив вещей можно посмотреть где sub getireon()
# В скрипте что либо менять, кроме шапки или массива, искренни не рекомендую.
# ####################### ОТДЕЛЬНОЕ СПАСИБО ##########################
# Ghost King (oFF)/Sparco он приобрел этот скрипт и помогал эго довести
# до ума, то есть не давал мне покоя.
# Cupermag приобрел этот скрипт.
# stickman приобрел этот скрипт.
# За ранее извиняючь за публикацию скрипта, но это есть не избежно.
# фсами обкидать меня можно в игре - Dark Enemy/в скором времени Hell Knight.
# ################# ПЕРЕМЕННЫЕ которые нужно менять ##################
# ####################################################################
var BuyListName = 'buy' ; название листа продажи (сейчас Reg)
var Sunduk = '0x404AEDFD' ; Главный сундук.
var Runebag = '0x402BB973' ; Мешок с рунами куда лететь.
var Dropbag = '0x402B76B5' ; Пустой мешок, куда будет кидать руны.
var BlankRunebag = '0x4006A346' ; Мешок с бланк рунами.
var distance = 6 ; Расстояние на каком будем искать вендор.
var Tbag = '0x0E76' ; Тип сумок для разгрузки мап если вы укажыте тип бланк мап.
var rb = '0x402DBE72' ; ИД Рунбука. Если вас убили, он должен как то попасть домой.
var rh = '73' ; Номер руны домой. Должа быть у сундука!
var helpX = 980 ; Если вас убили, чар ресается в миноке.
var helpY = 55 ; Без галки Undead это не возможно.
var iron = 0 ; Скупка айрона. 0-нет, 1-да.
var forge = '0x404C3DA5' ; Сериал форжы если вы будете скупать айрон.
var Nrune, BlankRune, RuniNetu, RuneHome, Dbag, flag, markflag
# ## По вопросам и предложениям обращаться на форум:
# http://forum.yoko.com.ua/viewtopic.php?t=15146
# ####################################################################
# 2007-2009 #
# ### Тип итемов которые скупаем. Необходимо для выгрузки. ####
# Макс. кол-во=15. Если у вас нету 15, заполняйте сколько есть.
# Остальное оставите как есть.
var item1='0x0F7A' ; regi
var item2='0x0F7B' ; regi
var item3='0x0F86' ; regi
var item4='0x0F88' ; regi
var item5='0x0F8D' ; regi
var item6='0x0F84' ; regi
var item7='0x0F85' ; regi
var item8='0x0F8C' ; regi
var item9='0x0F0E' ; bottles
var item10='0x0F87' ; Eyes of Newt
var item11='0x0E34' ; blank scrolls
var item12='0x175D' ; folded cloth
var item13=''
var item14=''
var item15='' ; Blank maps
# ####################################################################
sub main()
var n
uo.set('buydelay','4000')
if not uo.getglobal('flagRes')=='1' then
uo.exec('exec Resurrector')
uo.setglobal('flagRes','1')
endif
uo.msg('Always run:on !!!')
uo.msg('Track World Items:on !!!')
uo.ignorereset()
UO.Print("Поехали по магазинам.")
uo.findtype(rune,-1,'backpack')
if uo.findcount() and not uo.count(rune)>1 then
Runehome=uo.getserial('finditem')
else
uo.msg('Runehome not found! Terminate.')
uo.exec('terminate all')
endif
Open(Sunduk)
GrabBlankRune()
repeat
Open(Runebag)
uo.findtype(rune,-1,RuneBag)
while uo.findcount()
Nrune=uo.getserial('finditem')
uo.moveitem('finditem',0,Dropbag)
checklag()
wait(700)
RegCheck()
RegCheck()
if uo.mana < uo.int then
meditation(uo.int)
endif
RecallRune(Nrune)
uo.useskill('Meditation')
if uo.injournal('The recall rune fades completely.') then
markflag=1
Mark(BlankRune,0)
RuniNetu=1
end if
wait(500)
BuyPRG()
checklag()
RecallRune(RuneHome)
uo.useskill('Meditation') # uo.useskill('Hiding')
if uo.injournal('The recall rune fades completely.') then
if RuniNetu==1 then
Open(Sunduk)
GrabBlankRune()
endif
Mark(BlankRune,1)
GrabBlankRune()
end if
if RuniNetu==1 then
Open(Sunduk)
GrabBlankRune()
endif
Open(Sunduk)
if markflag==1 then
uo.moveitem(Nrune,0,Dropbag)
checklag()
wait(700)
markflag=0
endif
DropItems()
uo.findtype(rune,-1,RuneBag)
wend
DropbagCheck()
until uo.dead()
end sub
sub Resurrector()
var oldX,oldY
while 1
if uo.dead() then
uo.exec('terminate main')
uo.TextOpen()
if markflag==1 then
uo.msg('.where')
repeat
wait(100)
until uo.injournal(uo.getname('self')+": I am in")
uo.textopen()
uo.textprint(uo.journal(uo.injournal(uo.getname('self')+": I am in")-1))
uo.textprint('- dead - mark failed - @ '+MakeTime())
else
uo.TextPrint('- dead - @ '+MakeTime())
endif
wait(5000)
oldX = Uo.GetX()
oldY = Uo.GetY()
repeat
uo.lclick(helpX,helpY)
checklag()
wait(700)
uo.lclick(264,308)
checklag()
wait(700)
uo.lclick(175,203)
checklag()
wait(5000)
until oldX<>UO.GetX() OR oldY<>UO.GetY()
repeat
uo.press(39)
wait(2000)
until UO.GetY()<534
repeat
uo.useobject('0x4001BDF0')
wait(3000)
until uo.life>0
Open('backpack')
uo.print('wait 60 seconds')
wait(60000)
gohome()
Open(Sunduk)
RegCheck()
GrabBlankRune()
Mark(Blankrune,1)
if uo.waiting() then
uo.canceltarget()
endif
uo.exec('exec main')
endif
wait(5000)
wend
endsub
sub gohome()
var oldX=uo.getx('self')
var oldY=uo.gety('self')
uo.recall(rb,rh)
repeat
wait(700)
until oldX<>uo.getx('self') && oldY<>uo.gety('self')
endsub
sub Open(what)
uo.useobject(what)
checklag()
wait(800)
endsub
sub GrabBlankRune()
Open(BlankRunebag)
uo.findtype(rune,-1,BlankRunebag)
if uo.findcount() then
Blankrune=uo.getserial('finditem')
uo.moveitem('finditem',0,'backpack')
checklag()
wait(700)
uo.print('Взяли бланк руну')
Runinetu=0
else
uo.print('Бланк рун больше нету! Скрипт остановлен.')
uo.exec('terminate all')
endif
endsub
sub Mark(RuneID,Place)
repeat
if uo.mana<33 then
meditation(33)
endif
checklag()
Uo.Cast('Mark',RuneID)
WaitForMana()
until not uo.injournal('The spell fizzles')
if Place==0 then
Nrune=uo.getserial(RuneID)
else
Runehome=uo.getserial(RuneID)
endif
endsub
Sub RecallRune(nowrune)
uo.Print('улетаем по руне')
var oldX,oldY
oldX = Uo.GetX()
oldY = Uo.GetY()
repeat
if uo.mana<20 then
meditation(20)
endif
Uo.Cast('Recall',nowrune)
WaitForMana()
Until oldX<>UO.GetX() AND oldY<>UO.GetY()
end sub
sub WaitForMana()
VAR w,m=uo.mana
for w=0 to 150
if uo.mana<m then
wait(500)
return
endif
wait(500)
next
endsub
sub BuyPRG()
DIM Vens[2]
Vens[1]='0x0190'
Vens[2]='0x0191'
var mx, my, mz, g, d
mx = UO.GetX('self')
my = UO.GetY('self')
mz = UO.GetZ('self')
uo.ignorereset()
uo.ignore('self')
UO.print('Начанаем Закупку!')
for d=1 to distance
uo.set('finddistance',d)
for g=1 to 2
repeat
wait(100)
UO.FindType(Vens[g],-1,'ground')
If uo.FindCount()> 0 then
if uo.getz('finditem')<uo.getz('self')+3 and uo.getz('finditem')>uo.getz('self')-3 then
UO.Print(uo.GetName('finditem')+ ' Замечен, иду к нему.')
WalkN(0,0,'finditem')
If UO.GetDistance('finditem')<=2 then
UO.Print('Закупаю....')
uo.Buy(BuyListName,UO.GetName('finditem'))
checklag()
uo.msg(uo.GetName('finditem')+ ' bye guards')
else
UO.Print(uo.GetName('finditem')+ ' заныкался!, В &@$#% его.')
end if
endif
uo.ignore('finditem')
end if
until uo.FindCount()==0
next
next
end sub
sub DropbagCheck()
uo.print('Проверяем мешок Dropbag')
Open(Dropbag)
uo.findtype(rune,-1,Dropbag)
while uo.findcount()
uo.moveitem('finditem',0,Runebag)
checklag()
wait(700)
uo.print('Нашли руну. Кладем их в сумку Runebag.')
uo.findtype(Rune,-1,Dropbag)
wend
endsub
sub RegCheck()
VAR i,q
VAR kol=10
Dim Regs[3]
Regs[0]='0x0F7A' ; Black Pearl
Regs[1]='0x0F7B' ; Bood Moss
Regs[2]='0x0F86' ; Mandrake Root
for i=0 to 2
if uo.count(Regs[i])<>kol then
q=kol-uo.count(Regs[i])
if q<>0 then
if q>0 then
uo.findtype(Regs[i],-1,Sunduk)
if uo.findcount() then
uo.moveitem('finditem',STR(q),'backpack')
checklag()
wait(700)
uo.print('Берем реги для рекола...')
else
uo.msg('No regs')
return
endif
else
q=q*-1
uo.findtype(Regs[i],-1,'my')
if uo.findcount() then
uo.moveitem('finditem',STR(q),Sunduk)
checklag()
wait(700)
uo.print('Регов больше чем надо. Кидаем лишнее в сундук')
endif
endif
endif
endif
next
endsub
sub meditation(mn)
while uo.mana < mn
if uo.Journal(0)=='You are preoccupied with thoughts of battle.' then
uo.warmode(0)
endif
if uo.mana==uo.int then
return
endif
checklag()
Uo.Useskill('Meditation')
waitformed(mn)
wait(1000)
wend
endsub
sub waitformed(mn)
var n
for n=0 to 100
if uo.injournal('You lose|You are at peace') or uo.mana>=mn then
return
endif
wait(500)
next
endsub
sub DropItems()
uo.ignore(Runebag)
uo.ignore(Dropbag)
uo.ignore(BlankRunebag)
uo.print('Выкладываем купленное')
if iron==1 then
getiron()
endif
if item1<>'' then
uo.findtype(item1,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item1,-1,'backpack')
wend
endif
if item2<>'' then
uo.findtype(item2,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item2,-1,'backpack')
wend
endif
if item3<>'' then
uo.findtype(item3,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item3,-1,'backpack')
wend
endif
if item4<>'' then
uo.findtype(item4,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item4,-1,'backpack')
wend
endif
if item5<>'' then
uo.findtype(item5,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item5,-1,'backpack')
wend
endif
if item6<>'' then
uo.findtype(item6,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item6,-1,'backpack')
wend
endif
if item7<>'' then
uo.findtype(item7,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item7,-1,'backpack')
wend
endif
if item8<>'' then
uo.findtype(item8,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item8,-1,'backpack')
wend
endif
if item9<>'' then
uo.findtype(item9,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item9,-1,'backpack')
wend
endif
if item10<>'' then
uo.findtype(item10,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item10,-1,'backpack')
wend
endif
if item11<>'' then
uo.findtype(item11,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item11,-1,'backpack')
wend
endif
if item12<>'' then
uo.findtype(item12,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item12,-1,'backpack')
wend
endif
if item13<>'' then
uo.findtype(item13,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item13,-1,'backpack')
wend
endif
if item14<>'' then
uo.findtype(item14,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(700)
uo.findtype(item14,-1,'backpack')
wend
endif
if item15<>'' then
GetBag()
uo.findtype(item15,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Dbag)
checklag()
wait(700)
CheckDbag()
uo.findtype(item15,-1,'backpack')
wend
endif
if uo.count(rune)>2 then
Dbag=uo.getserial(BlankRunebag)
uo.findtype(rune,-1,'backpack')
while uo.findcount()
uo.moveitem('finditem',0,Dbag)
checklag()
wait(700)
uo.findtype(rune,-1,'backpack')
wend
uo.moveitem(RuneHome,0,'backpack')
checklag()
wait(700)
uo.moveitem(BlankRune,0,'backpack')
checklag()
wait(700)
endif
endsub
sub getiron()
var n
Dim armor[50]
armor[1]='0x1B77' ; Heater Sheild
armor[2]='0x1B76' ; Heater Sheild
armor[3]='0x1415' ; Plate Mail
armor[4]='0x1416' ; Plate Mail
armor[5]='0x141A' ; Platemail Legs
armor[6]='0x1411' ; Platemail Legs
armor[7]='0x1418' ; Platemail Gauntlets
armor[8]='0x1414' ; Platemail Gauntlets
armor[9]='0x1410' ; Platemail Arms
armor[10]='0x1419' ; Platemail Helm
armor[11]='0x1412' ; Platemail Helm
armor[12]='0x1413' ; Platemail Gorget
armor[13]='0x13BF' ; Chainmail Tunic
armor[14]='0x13BE' ; Chainmail Leggings
armor[15]='0x13BB' ; Chainmail Coif
armor[16]='0x13EB' ; ringmail gloves
armor[17]='0x13F0' ; ringmail leggings
armor[18]='0x13EE' ; ringmail sleeves
armor[19]='0x13EC' ; ringmail tunic
for n=1 to 19 # <-- не забываем указать макс. кол-во.
uo.findtype(armor[n],'0x0000','backpack')
while uo.findcount()
uo.waittargetobject('finditem')
uo.useobject(forge)
checklag()
wait(500)
uo.findtype('0x1BEF',-1,'backpack')
if uo.findcount() then
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(500)
endif
uo.findtype(armor[n],'0x0000','backpack')
wend
next
uo.set('finddistance','1')
uo.findtype('0x1BEF',-1,'ground')
if uo.findcount() then
uo.moveitem('finditem',0,Sunduk)
checklag()
wait(600)
endif
endsub
sub GetBag()
flag=0
repeat
uo.print('Ищем мешок')
uo.findtype(Tbag,-1,Sunduk)
if uo.findcount() then
Dbag=uo.getserial('finditem')
Open(Dbag)
uo.findtype(-1,-1,Dbag)
if uo.findcount()>254 then
uo.ignore(Dbag)
else
flag=1
endif
endif
until flag==1
endsub
sub CheckDbag()
uo.findtype(-1,-1,Dbag)
if uo.findcount()>254 then
uo.ignore(Dbag)
GetBag()
endif
endsub
sub WalkN(x,y,Target) ########################################## Ходилка
VAR LastTimer
LastTimer=UO.Timer()
VAR i
VAR dir,ldir,rdir,key,olddir
VAR dx,dy,Exit=0
VAR CacheLimit=9,CacheIndex="Text"
DIM CacheX[10], CacheY[10]
CacheX[0]="Test"
uo.say('')
While Exit<>1
If Target<>"" Then
dx=UO.GetX(Target)-UO.GetX()
dy=UO.GetY(Target)-UO.GetY()
If UO.GetDistance(Target)<2 OR LastTimer+100<UO.Timer() Then
wait(1000)
return
Endif
Else
dx=x-UO.GetX()
dy=y-UO.GetY()
If dx==0 AND dy==0 OR LastTimer+100<UO.Timer() Then
return
Endif
Endif
If dx<>0 AND dy<>0 Then
If dx>0 AND dy>0 Then ; GoSE
dir=3
ldir=2
rdir=4
key=40 ; DownArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=0
rdir=1
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=5
rdir=6
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx>0 AND dy<0 Then ; GoNE
dir=1
ldir=0
rdir=2
key=39 ; RightArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=6
rdir=7
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 AND dy>0 Then ; GoSW
dir=5
ldir=4
rdir=6
key=37 ; LeftArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==6 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 AND dy<0 Then ; GoWN
dir=7
ldir=6
rdir=0
key=38 ; UpArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
If dx<>0 AND dy==0 Then
If dx>0 Then ; GoE
dir=2
key=34 ; PgDown
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoNE
dir=1
ldir=1
rdir=0
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 Then ; GoW
dir=6
key=36 ; Home key
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
If dx==0 AND dy<>0 Then
If dy>0 Then ; GoS
dir=4
key=35 ; End
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=6
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dy<0 Then ;GoN
dir=0
key=33 ; PgUp
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoWN
dir=7
ldir=7
rdir=6
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
Wend
end sub
sub StepEdit(x,y,dir,key)
VAR walkwait=250
VAR ErrLevel=0
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
If x==UO.GetX() AND y==UO.GetY() Then
;zatik
ErrLevel=1
Endif
Endif
Return ErrLevel
end sub
sub StepArrow(x,y,dir,ldir,rdir,key)
VAR walkwait=250
VAR ErrLevel=0
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then
CheckLag()
Endif
Endif
If UO.GetX()==x AND UO.GetY()==y Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
CheckLag()
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
;zatik
ErrLevel=1
Endif
Endif
Endif
Return ErrLevel
end sub
sub checklag()
repeat
UO.DeleteJournal()
UO.Click('backpack')
until backpack()==1
endsub
sub backpack()
var n
for n=0 to 200
if uo.injournal('a backpack') then
return 1
endif
wait(200)
next
endsub
sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
;UO.Exec('terminate all')
;UO.Exec('exec autoload')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub
sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub