Делал кому то под антарес, только там не шерсть а кустики хлопка собирает из овцы. Поменяете тип заместо кустика - шерсть и вперед с песней.
Code: var Stoplocation ; Переменная отслеживает остановку чара var nogik = '0x0f51' ; тип ножа для резки var Box = '0x40079d3a' ; бокс откуда брать и куда складывать кустики var Derevo = '0x0c4f' ; Кустик var hаvka = '0x09f2' ; еда var dich = '0x00cf' ; Овца var paus = 300
sub pvm() nac: repeat warka() uo.print('ishem') until uo.life == 0 ; or uo.count(nogik) == 0 go_bank() ; бежим к банку if uo.Life ==0 then ; Если мы прибежали к банку по причине смерти то бежим чуть далее до креста uo.print('umer') uo.warmode(1) gotoxy(634,851,1) ; забегаем gotoxy(635,824,1) ; к двери скрестом gotoxy(635,817,1) uo.usefromground('0x0005') gotoxy(635,824,1) ; к двери скрестом uo.opendoor() ; открываем ее gotoxy(634,855,1) ; к двери наружной uo.opendoor() ; открываем ее gotoxy(634,857,1) ; выходим end if GrKust() ; Скидываем кустики GrNog() ; Берем ножи havaem() ; хаваем go_past() ; бежим к пастбищу goto nac ; к началу скрипта end sub
Sub GrKust() ; Скидываем кусты если они есть repeat uo.say("BANK") wait(500) uo.useobject(Box) uo.findtype(Derevo) #Derevo uo.moveitem('finditem','0',Box,1,1,1) ; выкидываем в аккуратную стопочку все кустики wait(500) until not uo.count(Derevo) end sub
Sub GrNog() ; берем нож uo.deletejournal() uo.print('Berem nog') wait(1000) if uo.count(nogik) < 1 then uo.findtype(nogik,'-1',Box) UO.grab('1','finditem') Wait(1200) end if end sub
Sub havaem() var h uo.deletejournal() uo.print('Berem edu') wait(3000) if uo.count(hаvka) < 5 then uo.findtype(hаvka,'-1',Box) UO.grab('5','finditem') Wait(1200) end if for h = 1 to 5 uo.usetype(hаvka) ; пытемся сожрать еду wait(500) next uo.findtype(hаvka) uo.moveitem('finditem','0',Box,1,1,1) ; выкидываем обратно еду если что осталось wait(500) end sub
sub warka() var dx,dy, obj, i, obj2 if Stoplocation == 1 then ; если застряли то отбежим в средину пастбища gotoxy(570,1099,1) end if
UO.Set('finddistance',40) ; дистанция для поиска UO.FindType(Dich, '-1', '1') ; Ищем животное wait(paus) If UO.FindCount() > 0 Then ; если нашли obj = UO.GetSerial("finditem") ; запоминаем его dx=UO.GetX(obj) ; находим координаты dy=UO.GetY(obj) uo.warmode(1) ; входим в вармод wait(paus) Gotoxy(dx,dy,1) ; подходим поближе uo.attack(obj) ; атакуем repeat wait(200) ; чуть подождем пока убьет жертву, или если промахнулись То дальще until uo.GetHP(obj) == 0 or uo.GetDistance(obj) > 1 UO.Set('finddistance',2) ; дистанция для поиска wait(200) UO.FindType('0x2006', '-1', '1') ; Ищем на земле труп uo.print('poisk trupa') wait(200)
if uo.findcount() > 0 then ; если находим то далее режем и т.д. obj2 = UO.GetSerial("finditem") uo.warmode(0) ; выходим из вармод uo.print('vihod iz wara') wait(paus) uo.waittargetobject(obj2) ; установить прицел на труп wait(paus) UO.usetype('0x0f51') ; Использовать нож на прицеле wait(paus) ; UO.FindType('0x0c4f', '-1', obj2) ; Искать ростки UO.FindType('0x09f1', '-1', obj2) ; Искать ростки uo.print('poisk rostkov') wait(500) if uo.findcount() > 0 then ; если находим ростки то UO.Grab( 100, 'finditem' ) ; грабим wait(paus) uo.print("Vziali") else uo.print("Pusto") end if uo.ignore(obj2) ; игнорировать обьект в дальнейшем uo.disarm() ; разоружаемся wait(paus) end if end if end sub
Sub gotoxy(x,y,prec) VAR ld=0,ldc=0 VAR dx,dy VAR mx,my VAR ox,oy,mk,k
start: mx=Uo.GetX() my=Uo.GetY() dx=mx-x IF dx<0 then dx=0-dx endIF dy=my-y IF dy<0 then dy=0-dy endIF IF dy>dx then dx=dy End IF IF dx<=prec then return End IF IF dx<3 then mk=70 else mk=15 End IF ox=mx oy=my for k=1 to mk mx=Uo.GetX() my=Uo.GetY() IF mx<>ox or my<>oy then goto sdidapl End IF wait(10) next sdidapl: mx=Uo.GetX() my=Uo.GetY() dx=mx-x IF dx<0 then dx=0-dx endIF dy=my-y IF dy<0 then dy=0-dy endIF IF dy>dx then dx=dy End IF IF dx<=prec then return End IF IF ld==dx then ldc=ldc+1 IF ldc>50 then Uo.print("Zastrial!"+"***"+" "+Time()) Stoplocation = 1 return End IF else ld=dx End IF IF mx==x then IF my==y then return endIF IF my>y then Uo.Press(33) goto start endIF Uo.Press(35) goto start End IF IF mx<x then IF my>y then Uo.Press(39) goto start endIF IF my==y then Uo.Press(34) goto start endIF Uo.Press(40) goto start End IF IF my<y then Uo.Press(37) goto start endIF IF my==y then Uo.Press(36) goto start endIF Uo.Press(38) goto start
end sub
#++++++++++++++++++++++++++++++++ Sub Time() VAR Date,nTime,uTime,i uTime=str(Uo.Time()) nTime="" for i=0 to Len(uTime) nTime=uTime[Len(uTime)-i]+nTime IF (i==2) or (i==4) then nTime=":"+nTime End IF next uTime=str(Uo.Date()) Date="" for i=0 to Len(uTime) Date=uTime[Len(uTime)-i]+Date IF (i==2) or (i==4) then Date="."+Date End IF next uTime=nTime+" @ "+Date return uTime end sub #++++++++++++++++++++++++++++++++ Sub GetNumb(C,I) VAR J,T,K J=0 K=1 While K>0 J=J+1 IF (Mid(C,J,1)==" ") Or (J>=Len(C)-1) Then IF I==0 Then T=Val(Left(C,J)) Else T=GetNumb(Right(C,Len(C)-J-1),I-1) EndIF K=0 EndIF wend return T end sub
sub go_bank() ; Бег к банку gotoxy(561,1110,1) ; бежим ближе к выходу uo.opendoor() ; открываем двери uo.print('1 точка') GotoXY(563,1126,1) uo.print('4 точка') GotoXY(542,1133,1) uo.print('5 точка') GotoXY(539,1114,1) uo.print('6 точка') GotoXY(538,1085,1) uo.print('7 точка') GotoXY(551,1067,1) uo.print('8 точка') GotoXY(549,1039,1) uo.print('9 точка') GotoXY(554,1005,1) uo.print('10 точка') GotoXY(590,995,1) uo.print('11 точка') GotoXY(612,997,1) uo.print('15 точка') GotoXY(631,970,1) uo.print('16 точка') GotoXY(631,962,1) uo.print('17 точка') GotoXY(633,933,1) uo.print('18 точка') GotoXY(637,915,1) uo.print('19 точка') GotoXY(646,915,1) uo.print('20 точка') GotoXY(649,900,1) uo.print('21 точка') GotoXY(640,892,1) uo.print('22 точка') GotoXY(635,875,1) uo.print('23 точка') GotoXY(634,856,1) end sub
sub go_past() ; бег к пастбищу uo.print('1 точка') GotoXY(635,864,1) uo.print('2 точка') GotoXY(639,890,1) uo.print('3 точка') GotoXY(648,899,1) uo.print('4 точка') GotoXY(647,911,1) uo.print('5 точка') GotoXY(633,916,1) uo.print('6 точка') GotoXY(625,922,1) uo.print('6_1 точка') GotoXY(606,933,1) uo.print('7 точка') GotoXY(634,961,1) uo.print('8 точка') GotoXY(646,981,1) uo.print('9 точка') GotoXY(612,997,1) uo.print('10 точка') GotoXY(590,995,1) uo.print('11 точка') GotoXY(554,1005,1) uo.print('12 точка') GotoXY(549,1039,1) uo.print('13 точка') GotoXY(551,1067,1) uo.print('14 точка') GotoXY(538,1085,1) uo.print('15 точка') GotoXY(539,1114,1) uo.print('16 точка') GotoXY(542,1133,1) uo.print('17 точка') GotoXY(556,1145,1) uo.print('19 точка') GotoXY(563,1126,1) uo.print('20 точка') GotoXY(562,1112,0) uo.opendoor() ; открываем ворота gotoxy(562,1109,0) ; забегаем внутрь end sub ; ---- Вспомоагтельные сабы, для сбора тайлов и для сбора ид обьектов sub Metka() # repeat uo.infotile() wait(3000) until false end sub
sub ukazka_boxa() ; это не нужная утилита uo.Exec('addobject Box') while uo.Targeting() wait(100) wend end sub
|