Code: Select all
; в третьей рунбуке 9 руна к дому для экономии рунбук
; при реколе от пк чар юзает инвизку, так эффективнее улет
; во время ловли говорим "next point" и летим сразу к следущей
; во время ловли говорим "pause" и идем по своим делам, как дела
; сделали, возвращаемся туда же, говорим "return" и продолжаем
; еда валяется у сундуков, т.е. чар ест с земли, фу гадость :)
; расчитано на то, что чар реколиться домой сразу к сундукам
; хотим посмотреть статистику ловли, в любой момент набираем
; в окне ультимы ",textopen" и смотрим
; также можно отдельно запускать скрипт home(), он независимый
################### Question aka GimFlex #######################
sub main()
var o,p,time
var in=0
dim book[3]
book[0]='0x40002A65' ; первая рунбука с рунами к месту ловли
book[1]='0x40002A57' ; вторая рунбука с рунами к месту ловли
book[2]='0x404E2DE4' ; третья рунбука с рунами к месту ловли
wait(1000)
UO.Exec('terminate Reconnector')
wait(1000)
UO.Exec('exec Reconnector')
wait(1000)
time=MakeTime()
uo.textprint("Скрипт запущен")
uo.textprint("Время "+time)
uo.textprint(" ")
while 1==1
for o=1 to 9
for p=0 to 2
if p==2 and o==9 then
home()
else
port(book[p],o,in)
in=fish(p,o)
endif
next
next
eat()
wend
endsub
Sub port(idrb,nrune,inviz)
var inviz1='0x0F0E' ; тип инвизки
var color='0x0631' ; цвет инвизки
var time
var oldX=uo.getx()
var oldY=uo.gety()
Dim gumpreturn[9]
gumpreturn[1]="0x0015"
gumpreturn[2]="0x0021"
gumpreturn[3]="0x002E"
gumpreturn[4]="0x003A"
gumpreturn[5]="0x0040"
gumpreturn[6]="0x0049"
gumpreturn[7]="0x0058"
gumpreturn[8]="0x005E"
gumpreturn[9]="0x0401"
UO.exec('resend')
UO.UseObject('backpack')
if inviz==1 then
uo.usetype(inviz1,color)
endif
uo.useobject(idrb)
uo.exec("ongump anygump "+gumpreturn[nrune])
uo.deletejournal()
time=UO.Timer()
Repeat
wait(500)
Until oldX<>UO.GetX() OR oldY<>UO.GetY() OR time+200<UO.Timer()
end sub
Sub IsWater(X,Y)
if UO.PrivateGetTile(X, Y, -1, 6039, 6065) then
return 1
else
return 0
endif
end sub
Sub fish(pp,oo)
var mx, my, mz, i, j, k, killer, fl=0, kol=0,time, inFishing=0, pr=0
var spining='0x0DBF' ; удочка
var map='0x14EB' ; нерасшифрованная карта
var tfish='0x0DD6' ; трули фиш
DIM text[6]
text[0] = 'You pull out a'
text[1] = 'You fish a while'
text[2] = 'That is too far away'
text[3] = 'Try fishing in water'
text[4] = 'There are no fish here'
text[5] = 'location'
text[6] = 'return'
uo.set('finddistance','1')
killer=pk()
if killer==0 then
hiding()
else
pr=1
endif
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
if killer==0 then
for i = mx-6 to mx+6
for j = my -6 to my+6
if IsWater(i,j) then
inFishing=0
repeat
killer=pk()
if killer==1 then
fl=1
pr=1
endif
UO.DeleteJournal()
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Usetype(spining)
repeat
killer=pk()
if killer==1 then
fl=1
pr=1
endif
wait(10)
Until UO.InJournal(text[0]) OR UO.InJournal(text[1]) OR UO.InJournal(text[2]) OR UO.InJournal(text[3]) OR UO.InJournal(text[4]) OR UO.InJournal(text[5]) OR UO.InJournal(text[6])
if NOT UO.InJournal(text[1]) then
inFishing=1
endif
Until inFishing==1
uo.findtype(map,'-1','ground')
if uo.findcount() then
uo.moveitem('finditem','1','backpack')
wait(500)
endif
uo.findtype(tfish,'-1','ground')
if uo.findcount() then
uo.moveitem('finditem','1','backpack')
wait(500)
endif
endif
killer=pk()
if killer==1 then
fl=1
pr=1
endif
UO.DeleteJournal()
if fl==1 then
time=MakeTime()
i=mx+6
j=my+6
uo.deletejournal()
uo.textprint("Нехороший человек!!!")
uo.textprint("Время "+time)
uo.textprint(" ")
endif
next
uo.print("book-"+str(pp+1)+" runa-"+str(oo))
hiding()
uo.resend()
uo.findtype(map,'-1','backpack')
kol=uo.findcount()
uo.print("Vulovil "+str(kol)+" kart!!!")
next
else
pr=1
endif
return pr
end sub
Sub hiding()
UO.Warmode("0")
while not UO.Hidden()
UO.DeleteJournal()
UO.UseSkill("Hiding")
while NOT UO.InJournal("You")
wait(100)
wend
wend
end sub
sub home()
var book3='0x404E2DE4' ; 3-яя рунбука, 9 руна к дому
var cont1='0x401EEECD' ; для карт и пустых мешков(<50)
var cont2='0x401ECB38' ; для наполненных мешков с картами
var cont3='0x401EC4D1' ; для наполненных мешков с трули фиш
var map='0x14EB' ; нерасшифрованная карта
var mesh='0x0E76' ; пустой мешок
var tfish='0x0DD6' ; трули фиш
var sm,kl,time
port(book3,9,0)
hiding()
uo.set('finddistance','5')
uo.useobject(cont1)
wait(1000)
uo.useobject(cont2)
wait(1000)
uo.useobject(cont3)
wait(1000)
uo.findtype(map,'-1','backpack')
while uo.findcount()
uo.findtype(map,'-1',cont1)
if uo.findcount()>=200 then
uo.findtype(mesh,'-1',cont1)
sm=uo.getserial('finditem')
uo.moveitem(sm,'1',cont2)
wait(1000)
uo.findtype(map,'-1',cont1)
while uo.findcount()
uo.moveitem('finditem','1',sm)
wait(500)
cheklag()
uo.findtype(map,'-1',cont1)
wend
else
uo.findtype(map,'-1','backpack')
uo.moveitem('finditem','1',cont1)
wait(500)
cheklag()
endif
uo.findtype(map,'-1','backpack')
wend
uo.findtype(tfish,'-1','backpack')
while uo.findcount()
uo.findtype(tfish,'-1',cont3)
if uo.findcount()>=200 then
uo.findtype(mesh,'-1',cont1)
sm=uo.getserial('finditem')
uo.moveitem(sm,'1',cont3)
wait(1000)
uo.findtype(tfish,'-1',cont3)
while uo.findcount()
uo.moveitem('finditem','1',sm)
wait(500)
cheklag()
uo.findtype(tfish,'-1',cont3)
wend
else
uo.findtype(tfish,'-1','backpack')
uo.moveitem('finditem','1',cont3)
wait(500)
cheklag()
endif
uo.findtype(tfish,'-1','backpack')
wend
time=MakeTime()
uo.findtype(map,'-1',cont1)
kl=uo.findcount()
uo.textprint("В сундуке карт ["+str(kl)+"]")
uo.findtype(mesh,'-1',cont2)
kl=uo.findcount()
uo.textprint("Мешков с картами ["+str(kl)+"]")
uo.findtype(tfish,'-1',cont3)
kl=uo.findcount()
uo.textprint("В сундуке волшебной рыбки ["+str(kl)+"]")
uo.findtype(mesh,'-1',cont3)
kl=uo.findcount()
uo.textprint("Мешков с волшебной рыбкой ["+str(kl)+"]")
uo.textprint("Время "+time)
uo.textprint(" ")
endsub
Sub cheklag()
uo.deletejournal()
uo.click('backpack')
repeat
wait(10)
until uo.InJournal("backpack")
end sub
Sub pk()
var jor,ser,fl=0
for jor = 0 to 9
ser = uo.JournalColor(jor)
if ser=="0x0026" or uo.injournal("next point") then
fl=1
endif
if uo.injournal("pause") then
while not uo.injournal("return")
wait(500)
wend
endif
next
return fl
endsub
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 = T
RETURN Ret
end sub
Sub eat()
var eda='0x097B' ; еда
var ms1="You eat some fish steaks"
var ms2="You are stuffed!"
var ms3="You are simply too full to eat any more!"
uo.set('finddistance','1')
uo.findtype(eda,'-1','ground')
if uo.findcount() then
repeat
uo.deletejournal()
uo.useobject('finditem')
wait(500)
repeat
wait(100)
until uo.injournal(ms1) or uo.injournal(ms2) or uo.injournal(ms3)
until uo.injournal(ms2) or uo.injournal(ms3)
endif
endsub
Sub Reconnector()
var RFlag
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
RFlag = 0
endif
Wait(20000)
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) Then
UO.Exec('terminate main')
wait(1000)
uo.lclick(494,383)
wait(1000)
UO.Exec('exec main')
wait(1000)
RFlag = 1
endif
Until false
end sub