Народ помогите убрать и этого скрипта рекол, и добавить чтобы ходил к сундуку и выкладывал всё в него..
Code: ########################################################## ### Lumberjacking / Рубка деревьев v6.8 (Last) ### ########################################################## ################################################################################################### var f=file("C:\trees3.dat") ## - Путь к файлу в котором будут хранится координаты деревьев. ### var TryHiding=0 ## 1 - Перед тем как рубить дерево, будет пытаться уйти в хайд, 0 - не будет . ### var TryRecall=0 ## 1 - После того как наберет Maxweight, будет пытаться реколиться домой, ### ## складывать логи в сундук и реколиться обратно , 0 - не будет. ### var Carp=1 ## 1 - будет делать доски из всех бревен, 0 - не будет ### var DropLogsGround=0 ## будет выбрасывать логи под ноги, 0 - не будет ### var RechargeBook=0 ## 1 - Включить речарж рунбуки, 0 - отключить речарж. ### var GetFromFile=0 ## 1 - уже собрали координаты деревьев, 0 - будем маркировать ### var Maxweight=310 ## вес при котором надо лететь домой и складывать все ### var EatingFood=0 ## 1 - Будем есть, 0 - нет. ### var TypeFood='0x09AD' ## - Тип еды которую будем кушать. ### var Reconnect=0 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект. ### var RecallLumber=0 ## 1 - Включить рекол в лес после указания обьектов, 0 - выключить. ### var BankingChest='0x6F559C6A' ## - ID банковского сундука ### var Sunduk='0x6D113BF1' ## ID сундука дома для выгрузки логов ### var Sunduk2='0x6EC19C21' ## ID сундука с рекол скроллами для перезарядки ### var ToporChest='0x7080555A' ## если ломаются топоры, то ID сумки в бекпаке игрока где лежат топоры ### var Banker='0x007907C1' ## ID банкира ### var oldX,oldY,time ## - Для рекола. ### ################################################################################################### ### ### После настройки (переменных выше) : ### Идите в лес в котором вы хотите рубить. ### Запустите cкрипт Lumberjacking(), Инжект попросит вас указать Топор ### (появится прицел, прицелом на топор который вы с собой взяли), ### затем инжект попросит вас указать Рунбук(появится прицел, прицелом на него). ### После этого чар пойдет по координатам и будет вырубать деревья. ########### ### Код ### ########### sub Lumberjacking() var i=0,j=0,k=0,r=0,q=0,ii,jj var TopX=324,TopY=65 dim TreeX[5000], TreeY[5000],TreeT[5000] dim TreeTile[29] var flag=0,treeCount=0,clicks=0,flag2=0 ######################## ### Графика деревьев ### ######################## TreeTile[0]=3277 TreeTile[1]=3280 TreeTile[2]=3283 TreeTile[3]=3286 TreeTile[4]=3289 TreeTile[5]=3291 TreeTile[6]=3294 TreeTile[7]=3296 TreeTile[8]=3299 TreeTile[9]=3302 TreeTile[10]=3393 TreeTile[11]=3394 TreeTile[12]=3395 TreeTile[13]=3396 TreeTile[14]=3415 TreeTile[15]=3416 TreeTile[16]=3417 TreeTile[17]=3418 TreeTile[18]=3419 TreeTile[19]=3438 TreeTile[20]=3439 TreeTile[21]=3440 TreeTile[22]=3441 TreeTile[23]=3442 TreeTile[24]=3460 TreeTile[25]=3461 TreeTile[26]=3462 TreeTile[27]=3290 TreeTile[28]=3288
uo.Exec("filterspeech on") uo.Exec("filterspeech add 'Where do you want to use the pickaxe?'") uo.Exec("set norbcalc 1") uo.Exec("set norbcheck 1")
uo.Print('Выбери Топор: ') uo.canceltarget() uo.Exec('addtype Axe') while uo.Targeting() wait(100) wend
if Carp==1 then uo.Print('Выбери Pубанок: ') uo.Exec('addobject Rubanok') while uo.Targeting() wait(100) wend endif
if TryRecall==1 then uo.Print('Выбери PунБук: ') uo.Exec('addobject Runebook') while uo.Targeting() wait(100) wend endif
if Reconnect==1 then uo.Exec('exec Reconnect') endif
if RecallLumber==1 then uo.Exec('exec RecallToLumber') wait(9000) endif
##################################### ### Загружаем координаты из файла ### ##################################### if GetFromFile==1 then uo.Print('Загружаем координаты из файла...') f.open() treeCount=safe call f.ReadNumber() for i=1 to treeCount TreeT[i]=safe call f.ReadNumber() TreeX[i]=safe call f.ReadNumber() TreeY[i]=safe call f.ReadNumber() next f.close() else
###################################### ### Собираем координаты из клиента ### ###################################### uo.Print('Выбери Кирку: ') uo.canceltarget() uo.Exec('addobject Pickaxe') while uo.Targeting() wait(100) wend
uo.Print('Собираем координаты деревьев в округе...') repeat clicks=0 flag=0 uo.DeleteJournal() ####################### ### Кликаем на тайл ### ####################### uo.UseObject('Pickaxe') waitForTarget() uo.DeleteJournal() WaitForTryRock() ############################### ### Проверяем дерево ли это ### ############################### flag=0 for k=0 to 28 if uo.LastTile(0)==TreeTile[k]+1 then flag=2 endif next if flag==0 then for k=0 to 28 if uo.LastTile(0)==TreeTile[k] then flag=1 endif next endif if uo.Lasttile(1)==uo.getX() and uo.Lasttile(2)==uo.gety() then flag=3 endif ######################### ### Кликнули на ствол ### ######################### if flag==1 then flag2=0 if treeCount>0 then for ii=1 to treeCount if TreeX[ii]==uo.LastTile(1) and TreeY[ii]==uo.LastTile(2) then flag2=1 endif next endif if flag2==0 then treeCount=treeCount+1 TreeX[treeCount]=uo.LastTile(1) TreeY[treeCount]=uo.LastTile(2) TreeT[treeCount]=uo.LastTile(0) uo.Print('Найдено дерево '+str(treeCount)+' : x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2))+' '+str(treeCount)) endif endif ########################## ### Кликнули по листве ### ########################## if flag==2 then flag2=0 if treeCount>0 then for ii=1 to treeCount if TreeX[ii]==uo.LastTile(1) and TreeY[ii]==uo.LastTile(2) then flag2=1 endif next endif if flag2==0 then treeCount=treeCount+1 TreeX[treeCount]=uo.LastTile(1) TreeY[treeCount]=uo.LastTile(2) TreeT[treeCount]=uo.LastTile(0)-1 uo.print('Найдено дерево '+str(treeCount)+' : x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2))) endif endif until (Flag==3) or (treeCount==75) uo.Exec("filterspeech off") uo.Print('Анализ закончен, координаты деревьев записаны в файл C:\trees3.dat') SaveToFile(treeCount,TreeX,TreeY,TreeT) endif uo.Print('Деревьев найдено: '+str(treeCount)) wait(2000) ###################################### ### Ходим по собранным координатам ### ###################################### while 1==1 if treeCount>0 then for i=1 to treeCount ## InfoLogs()
## Если надо, то выкладываем логи if DropLogsGround==1 then droplogs() endif
if Carp==1 then Carp() endif
if uo.weight>=Maxweight then if TryRecall==1 then ToRecall() else uo.Print('Достигли предела веса, выключаем скрипт') uo.exec('terminate all') endif endif
uo.Print('Идем к дереву '+str(i)+': x='+str(TreeX[i])+' y='+str(TreeY[i])) flag=Gototile(TreeX[i],TreeY[i],1,False) if flag==1 then if TryHiding==1 then ToHide() endif GetTree(str(TreeT[i]),str(TreeX[i]),str(TreeY[i]),str(uo.GetZ())) endif next if EatingFood==1 then EatingFood() endif endif wend end sub
########################################################################################################################################### sub GetTree(Type,X,Y,Z) var i var ToporBreak="Этот предмет" uo.Print('Начинаем рубку дерева...') for i=0 to 15 if uo.Warmode()==1 then return 0 endif wait(200) CheckLag() uo.waittargettile(type,x,y,z) uo.usetype('Axe') if uo.injournal("Этот предмет") then uo.FindType('Axe','-1',ToporChest) if uo.FindCount()>0 then uo.useobject('finditem') uo.WaitTargetTile(Type,X,Y,Z) else uo.exec('terminate all') endif endif uo.DeleteJournal() if WaitForChange()==1 then return 1 endif next return 0 end sub ############################################### ########## ТЕЛЕПОРТ ############################################### sub ToRecall() RecallToHome() DropToChest() ## BankDrop() if RechargeBook==1 then RechargeBook() wait(4000) endif RecallToLumber() end sub
sub RecallToHome() uo.Print('Прыгаем Домой.') oldX=uo.getX() oldY=uo.getY() repeat uo.Exec('warmode 0') uo.exec("recall Runebook 0x1F14") time=uo.Timer() repeat wait(1000) until oldX<>uo.getX() or oldY<>uo.getY() or uo.Life==0 or uo.InJournal('В книге') or time+200<uo.Timer() uo.DeleteJournal() until oldX<>uo.getX() or oldY<>uo.getY() end sub
sub RecallToLumber() uo.Print('Прыгаем в Лес.') oldX=uo.getX() oldY=uo.getY() repeat uo.Exec('warmode 0') uo.exec("recall Runebook 0x025A") time=uo.Timer() repeat wait(1000) until oldX<>uo.getX() or oldY<>uo.getY() or uo.Life==0 or uo.InJournal('В книге') or time+200<uo.Timer() uo.DeleteJournal() until oldX<>uo.getX() or oldY<>uo.getY() end sub
sub ToHide() while not uo.Hidden() uo.Print('Пытаемся уйти в хайд...') uo.DeleteJournal() uo.UseSkill('Stealth') wait(6000) wend wait(100) end sub
################################################### ################ ОЖИДАЛКИ ###################################################
sub WaitForRecall() var Text1=uo.GetName()+": The spell fizzles." var mess='',lastX=uo.getX(),lastY=uo.getY() for var i=0 to 200 mess=uo.Journal(0) if uo.Journal(0)==Text1 then return 0 endif if uo.getX()<>lastX or uo.getY()<>LastY then return 1 endif wait(50) next return 0 end sub
sub WaitForHide() var Text1=uo.GetName()+": You have hidden yourself well" var Text2=uo.GetName()+": You can't seem to hide here." var mess for var i=0 to 200 mess=uo.Journal(0) if uo.Journal(0)==Text1 then return 1 endif if uo.Journal(0)==Text2 then return 0 endif wait(50) next return 0 end sub
sub WaitForChange() var Text1='Вы поранились топором !' var Text2='Здесь больше нечего рубить' var Text3='Это слишком далеко' var Text4='Здесь нечего рубить' var Text5='Вы сломали axe' var mess for var i=0 to 20000 mess=uo.journal(0) if uo.inJournal(Text2) OR uo.inJournal(Text3) OR uo.inJournal(Text4) then return 1 endif if uo.inJournal(Text1) OR uo.inJournal("Вы сломали") or uo.injournal("Этот предмет") then return 0 endif wait(500) next return 0 end sub
sub WaitForTryRock() var Text1="Слишком далеко" var Text2="Вы не можете добывать здесь" var Text3="There is no ore here to mine." var Text4="You have no line of sight to that location" var Text5="You can't see the target" for var i=0 to 50 if uo.Journal(0)==Text1 OR uo.Journal(0)==Text2 OR uo.Journal(0)==Text3 OR uo.Journal(0)==Text4 OR uo.Journal(0)==Text5 then return 1 endif wait(200) next return 0 end sub
sub WaitForTarget() for var i=0 to 50 if uo.Targeting()==1 then return 1 endif wait(200) next return 0 end sub
sub WaitForChangeXY(myX,myY,lastX,lastY) for var i=1 to 50 if lastX<>myX or lastY<>myY then return 1 endif wait(200) next return 0 end sub
Sub GoToTile( OX, OY, N, S ) VAR myx, myy, MD, J VAR Lx1, Ly1 VAR Lx2, Ly2 VAR Sx, Sy VAR T VAR Des = N VAR MoveDelay = 300 J = 1 MD = MoveDelay * 1.5 myx = uo.getx() myy = uo.gety() MoveOnce( GetDir( uo.getx(), uo.gety(), ox, oy), MD, False) Sx = 0 Sy = 0 Lx1 = uo.getx() / 2 Ly1 = uo.gety() / 2 Lx2 = Lx1 / 2 Ly2 = Ly1 / 2 T = UO.Timer() If (GetDistance(ox, oy) <> N) OR ( (NOT S) AND GetDistance(ox, oy) > N ) Then UO.Exec('exec PermResend') EndIf While ( (GetDistance(ox, oy) <> N) OR ((NOT S) and GetDistance(ox, oy) > N) ) and ( OX >= 0 ) and ( OY >= 0 ) If ( (UO.Timer() - T) * 15 > MoveDelay ) Then T = UO.Timer() Lx2 = Lx1 Ly2 = Ly1 Lx1 = myx Ly1 = myy myx = uo.getx() myy = uo.gety() endIf MD=MoveDelay If ((OX-uo.getx())*(OX-uo.getx())+(OY-uo.gety())*(OY-uo.gety())>0) Then MD = MD * 3 / GetDistance( ox, oy ) EndIf wait(MD) If GetDistance( OX, OY ) > Des Then MoveOnce(GetDir(uo.GetX(),uo.GetY(),ox,oy),MD,False) Else If S Then If GetDistance(OX,OY)<Des Then If GetDistance(OX,OY)<>0 Then MoveOnce(GetDir(ox,oy,uo.GetX(),uo.GetY()),MD,False) Else MoveOnce(GetDir(uo.GetX(),uo.GetY(),Lx2,Ly2),MD,False) EndIf EndIf EndIf EndIf If GetDistance(OX,OY)<>Des Then If (Lx2==uo.getx()) and (Ly2==uo.gety()) Then If (Sx<>uo.getx()) or (Sy<>uo.gety()) Then J=1 EndIf J=J+1 UO.Resend() Sx = uo.getx() Sy = uo.gety() Stun(ox,oy,J) EndIf EndIf Wend UO.Exec( 'terminate PermResend' ) return 1 end sub ; ; ============ MOVEONCE === ; Процедура MoveOnce - хождение в определённую сторону ; Направления: ; Система направлений по клавишам Нумпада ; 8 = 1 | 2 = -1 ; 9 = 2 | 1 = -2 ; 6 = 3 | 4 = -3 ; 3 = 4 | 7 = -4 ; ; Такая система позволяет с лёгкостью получать направление, обратное ; данному... ; Sub MoveOnce( Dir, Del, Rev ) VAR Num Var MoveNumber = 1 If Rev Then Num = MoveNumber + 1 Else Num = MoveNumber EndIf If ( Num > 0 ) and ( Dir <> 0 ) Then If Dir == 1 Then UO.Press( 38, Num, Del ) EndIf If Dir == 2 Then UO.Press( 33, Num, Del ) EndIf If Dir == 3 Then UO.Press( 39, Num, Del ) EndIf If Dir == 4 Then UO.Press( 34, Num, Del ) EndIf If Dir == -1 Then UO.Press( 40, Num-1, Del ) EndIf If Dir == -2 Then UO.Press( 35, Num, Del ) EndIf If Dir == -3 Then UO.Press( 37, Num, Del ) EndIf If Dir == -4 Then UO.Press( 36, Num, Del ) EndIf If Rev Then If Dir <> -1 Then UO.Press( 40, 1, Del ) EndIf EndIf EndIf end sub ; ; ============== GETDIR === ; Функция GetDir возвращает направление, по которому надо идти ; к координате ; Sub GetDir( myx, myy, ox, oy ) VAR I, J J = 0 VAR X = ox - myx VAR Y = oy - myy I = GetQDir( Abs(X), Abs(Y) ) If X >= 0 Then If Y >= 0 Then If I == 1 Then J = -2 Else If I == 2 Then J = -1 Else If I == 3 Then J = 4 EndIf EndIf EndIf Else If I == 1 Then J = 2 Else If I == 2 Then J = 3 Else If I == 3 Then J = 4 EndIf EndIf EndIf EndIf Else If Y >= 0 Then If I == 1 Then J = -2 Else If I == 2 Then J = -3 Else If I == 3 Then J = -4 EndIf EndIf EndIf Else If I == 1 Then J = 2 Else If I == 2 Then J = 1 Else If I == 3 Then J = -4 EndIf EndIf EndIf EndIf EndIf RETURN J end sub ; ; =============== GETQDIR === ; ; Sub GetQDir( x, y ) VAR Ep = 0.172 VAR J = 0 If X == 0 Then J = 1 Else If ( Y / X ) < Ep Then J = 3 Else If ( X / Y ) < Ep Then J = 1 Else J = 2 EndIf EndIf EndIf RETURN J end sub ; ; ============== GETDISTANCE === ; Функция GetDistance возвращает расстояние до координат ; (как UO.GetDistance - до объекта) ; ; Почему так - потому что учим математику :) ; Sub GetDistance( X, Y ) VAR A, B, C A = abs( X - UO.GetX() ) B = abs( Y - UO.GetY() ) If A > B Then C = A Else C = B EndIf Return C end sub ; ; ============= PERP === ; Функция Perp возвращает направление, перпендикулярное введённому ; Sub Perp( Dir ) VAR D = Dir If Dir == 1 Then D = 3 EndIf If Dir == 2 Then D = 4 EndIf If Dir == 3 Then D = -1 EndIf If Dir == 4 Then D = -2 EndIf If Dir == -1 Then D = -3 EndIf If Dir == -2 Then D = -4 EndIf If Dir == -3 Then D = 1 EndIf If Dir == -4 Then D = 2 EndIf RETURN D end sub ; ; =============== STUN === ; Обход препятствий ; Sub Stun( X, Y, N ) VAR I VAR myx VAR myy VAR MoveDelay = 100 myx = uo.getx() myy = uo.gety() For I=1 to N MoveOnce(perp(GetDir(myx,myy,x,y)),MoveDelay,False) Next Wait(MoveDelay) UO.Resend() If (myx==uo.getx()) and (myy==uo.gety()) Then For I=1 to N MoveOnce(-perp(GetDir(myx,myy,x,y)),MoveDelay,False) Next Wait(MoveDelay) UO.Resend() EndIf If (myx==uo.getx()) and (myy==uo.gety()) Then For I=1 to N MoveOnce(-GetDir(myx,myy,x,y),MoveDelay,False) Next Wait(MoveDelay) Stun(x,y,N) EndIf end sub ; ; ============= ABS === ; Убирает знак минуса в отрицательных числах ; Sub abs( a ) VAR b If a < 0 Then b = -a Else b = a endif return b end sub ; ; ============== PERMRESEND === ; Sub PermResend() Var Mn = 9 VAR MoveDelay = 100 Repeat UO.Resend() Wait( MoveDelay * Mn ) Until ( 1 > 2 ) End sub
############################################## ####### СОХРАНЕНИЕ В ФАЙЛ ##############################################
sub SaveToFile(treeCount,TreeX,TreeY,TreeT) var f=file("C:\trees3.dat") var s=0,i=0 f.open() f.create() s=safe call f.writeln(treeCount) for i=1 to treeCount s=safe call f.writeln(str(TreeT[i])+' '+str(TreeX[i])+' '+str(TreeY[i])) next f.close() end sub
################################################# ########### ВЫБРАСЫВАЕМ ЛОГИ #################################################
sub DropLogs() ####ToHide() if uo.Waiting() then uo.CancelTarget() endif var a,Exit dim CLogs[3] CLogs[1]='0x0000' ; log CLogs[2]='0x01BF' ; good log CLogs[3]='0x0602' ; hard log # CLogs[4]='0x0455' ; excellent log uo.Print('Выкладываем Логи по цвету.') wait(500) for a=1 to 3 Exit=0 repeat UO.FindType('0x1BDD',CLogs[a],'backpack') if uo.GetQuantity('finditem')>0 then uo.exec("drop 0 0 0 0 finditem") wait(1500) else Exit=1 endif until Exit==1 next uo.Print('Логи Выложены.') end sub
sub Bankdrop() uo.useobject(Banker) var a,Exit wait(1000) uo.lclick(47,112) wait(5000) uo.setreceivingcontainer(BankingChest) dim Logs[1] Logs[0]=0x1BD7 uo.Print('Выкладываем доски.') wait(500) for a=0 to 0 Exit=0 repeat uo.FindType(Logs[a]) if uo.GetQuantity('finditem')>0 then uo.grab('0','finditem') wait(1500) else Exit=1 endif until Exit==1 next uo.Print('Доски Выложены.') uo.unsetreceivingcontainer(BankingChest) end sub
sub DropToChest() var a,Exit uo.setreceivingcontainer(Sunduk) dim Doski[1] Doski[0]=0x1BD7 uo.Print('Выкладываем доски.') wait(500) for a=0 to 0 Exit=0 repeat uo.FindType(Doski[a]) if uo.GetQuantity('finditem')>0 then uo.grab('0','finditem') wait(1500) else Exit=1 endif until Exit==1 next uo.Print('Доски Выложены.') uo.unsetreceivingcontainer(Sunduk) end sub
sub InfoLogs() uo.Print('У вас всего '+str(uo.Count('0x1BDD'))+' логов в сумке') uo.Print('Из них '+str(uo.Count('0x1BDD','0x0000'))+' простых и ' +str(uo.Count('0x1BDD')-uo.Count('0x1BDD','0x0000'))+' цветных') end sub
sub RechargeBook() ToRecharge() DropScrolls() end sub
sub ToRecharge() uo.SetReceivingContainer('backpack') Open(Sunduk2) uo.FindType('0x1F4C','-1',Sunduk2) uo.Grab('10','finditem') wait(500) Checklag() uo.UnsetReceivingContainer() uo.setreceivingcontainer('Runebook') uo.FindType('0x1F4C','-1','backpack') uo.Grab('10','finditem') uo.UnsetReceivingContainer() end sub
sub DropScrolls() if uo.Waiting() then uo.CancelTarget() endif uo.SetReceivingContainer(Sunduk2) uo.FindType('0x1F4C','-1','backpack') if uo.GetQuantity('finditem')>0 then uo.Grab('-1','finditem') wait(1500) else return 0 endif uo.UnSetReceivingContainer(Sunduk2) end sub
sub Open(Container) uo.DeleteJournal() uo.UseObject(Container) repeat wait(500) until uo.InJournal('Contains') end sub
sub EatingFood() repeat Checklag() uo.FindType(TypeFood) if uo.GetQuantity('finditem')>0 then uo.UseType(TypeFood) wait(1000) else EatingFood=0 wait(1000) return 1 endif until uo.InJournal("Вы сыты и довольны") or uo.injournal("Вы переели") end sub
sub carp() if uo.Waiting() then uo.CancelTarget() endif var a,Exit, time time=0 dim Logs[1] Logs[0]=0x1BDD uo.Print('Делаем доски.') wait(500) for a=0 to 0 Exit=0 repeat uo.FindType(Logs[a]) if uo.GetQuantity('finditem')>0 then uo.deletejournal() uo.waittargettype('0x1BDD') uo.exec("recall Rubanok 0x0401") repeat wait(1000) time=time+1 until uo.injournal("Вы закончили") or time==60 or uo.InJournal("Вы уничтожили") else Exit=1 endif until Exit==1 next time=0 uo.Print('Доски сделаны.') end sub
sub Reconnect() var ReconnectTime,rFlag ReconnectTime='0' rFlag=1 repeat while (uo.ObjAtLayer('Bpack')=='') if rFlag then ReconnectTime=MakeTime() 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) and (ReconnectTime<>'0') then 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
sub Terminate() uo.Print('Все функции скрипта выключены!') uo.DeleteJournal() uo.Exec('terminate all') wait(100) uo.Exec('terminate all') wait(100) uo.Exec('terminate all') wait(100) end sub
sub CheckLag() if uo.Waiting()>0 then uo.Exec('canceltarget') endif uo.DeleteJournal() uo.Click('backpack') repeat wait(50) until uo.InJournal('backpack') end sub
|