Shrad 0 Жалоба Опубликовано 21 сентября, 2006 Вот рабутующий скрипт на ламберт! Ток он из за смены времён года работает тока кода листва есть!или осенью тож чёт не пашет хотя ща я ещё не проверял! на ме2 бегал 100% рабочий! Как пользоватся?-берём кирку и включам ламберт он начинаеет таргет выдавать этим таргетом марчис деревья! Обязательно потом сохраните намарченные деревья в отдельный фал потомучто так проще малоли всё сотрётся!дальше запускаем рубить с варом!ну при этом обязательно в варе стоять,очень удобно одбиватся!Берём хачер а вторым оружие сворд или крис какойнить!и рубить! кароче Ламберт!!-это марчить Ламберт с варом-рубить!обязательно включи вар!инче рубить не будет! -------------------------------------------------------------------------------- Маркать ########### ### Код ### ########### 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.Print('Выбери Топор: ') uo.Exec('addobject Axe') while uo.Targeting() wait(100) wend if TryRecall==25 then uo.Print('Выбери PунБук: ') uo.Exec('addobject Runebook') while uo.Targeting() wait(100) wend end if if ControlOfDanger==1 then uo.Exec('exec ControlOfDanger') end if if Reconnect==1 then uo.Exec('exec Reconnect') end if if RecallLumber==1 then uo.Exec('exec RecallToLumber') wait(9000) end if ##################################### ### Загружаем координаты из файла ### ##################################### if GetFromFile==1 then uo.Print('Загружаем координаты из файла...') f.open() treeCount=safe call f.ReadNumber() for i=1 to treeCount TreeT=safe call f.ReadNumber() TreeX=safe call f.ReadNumber() TreeY=safe call f.ReadNumber() next f.close() else ###################################### ### Собираем координаты из клиента ### ###################################### uo.Print('Выбери Кирку: ') 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 end if next if flag==0 then for k=0 to 28 if uo.LastTile(0)==TreeTile[k] then flag=1 end if next end if if uo.Lasttile(1)==uo.GetX() and uo.Lasttile(2)==uo.GetY() then flag=3 end if ######################### ### Кликнули на ствол ### ######################### 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 end if next end if 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))) end if end if ########################## ### Кликнули по листве ### ########################## 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 end if next end if 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))) end if end if until (flag==3) or (treeCount==5000) uo.Exec("filterspeech off") uo.Print('Анализ закончен, координаты деревьев записаны в файл C:\trees3.dat') SaveToFile(treeCount,TreeX,TreeY,TreeT) end if uo.Print('Деревьев найдено: '+str(treeCount)) wait(2000) ###################################### ### Ходим по собранным координатам ### ###################################### while 1==1 if treeCount>0 then for i=1 to treeCount uo.Print('Идем к дереву номер '+str(i)+': x='+str(TreeX)+' y='+str(TreeY)) InfoLogs() flag=GotoXY(TreeX,TreeY) if flag==1 then if TryHiding==1 then ToHide() end if GetTree(str(TreeT),str(TreeX),str(TreeY),str(uo.GetZ())) end if next end if wend end sub sub GetTree(Type,X,Y,Z) var i uo.Print('Начинаем рубку дерева...') for i=0 to Quant if uo.Warmode()==0 then return 0 end if wait(200) uo.DeleteJournal() uo.WaitTargetTile(Type,X,Y,Z) uo.UseObject('Axe') if WaitForChange()==1 then return 1 end if next return 0 end sub sub ToRecall() RecallToHome() DropLogs() InfoLogs() if RechargeBook==25 then RechargeBook() wait(4000) end if if EatingFood==25 then EatingFood() end if wait(3000) RecallToLumber() end sub sub RecallToHome() uo.Print('Прыгаем Домой.') RunebookRecall(RuneToHome) end sub sub RecallToLumber() uo.Print('Прыгаем в Лес.') RunebookRecall(RuneToLumber) end sub sub ToHide() while not uo.Hidden() uo.Print('Пытаемся уйти в хайд...') uo.DeleteJournal() uo.UseSkill('Stealth') wait(4100) 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 end if if uo.GetX()<>LastX or uo.GetY()<>LastY then return 1 end if 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 end if if uo.Journal(0)==Text2 then return 0 end if wait(50) next return 0 end sub sub WaitForChange() var Text1=uo.GetName()+': You hack at the tree for a while, but fail to produce any useable wood.' var Text2='There are no logs here to chop.' var Text3="You can't reach this." var Text4='That is too far away.' var Text5="You can't do much in your current state." var mess for var i=0 to 200 mess=uo.Journal(0) if uo.Journal(0)==Text2 or uo.Journal(0)==Text3 or uo.Journal(0)==Text4 then return 1 end if if uo.Journal(0)==Text1 then return 0 end if if mess[0]=='Y' and mess[1]=='o' and mess[2]=='u' and mess[4]=='p' and mess[5]=='u' and mess[6]=='t' then return 0 end if wait(50) next return 0 end sub sub WaitForTryRock() var Text1='That is too far away.' var Text2='Try mining in rock.' 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 end if wait(200) next return 0 end sub sub WaitForTarget() for var i=0 to 50 if uo.Targeting()==1 then return 1 end if 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 end if wait(200) next return 0 end sub sub GotoXY(x,y) var myX,myY,LastX=0,LastY=0,i,halt=0,z,r=0 for i=1 to 60 myX=uo.GetX() myY=uo.GetY() if LastX==myX and LastY==myY then halt=halt+1 else halt=0 end if if halt>=10 then if uo.GetDir()==1 then for z=0 to 8 uo.Press(40) next end if if uo.GetDir()==3 then for z=0 to 8 uo.Press(37) next end if if uo.GetDir()==5 then for z=0 to 8 uo.Press(38) next end if if uo.GetDir()==7 then for z=0 to 8 uo.Press(39) next end if halt=15 end if if Numb(x-myX)<=1 and Numb(y-myY)<=2 then return 1 end if if x<=myX then if y<=myY then for z=0 to 3 uo.Press(38) next else for z=0 to 3 uo.Press(37) next end if else if y<=myY then for z=0 to 3 uo.Press(39) next else for z=0 to 3 uo.Press(40) next end if end if LastX=myX LastY=myY wait(200) next return 0 end sub sub Numb(num) if num>=0 then return num else return num*(-1) end if 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)+' '+str(TreeX)+' '+str(TreeY)) next f.close() end sub sub DropLogs() var Time,Space Time=Time() Space=' ' uo.TextOpen() uo.TextPrint("Выкладываем логи - " +Space +Time) ToHide() var a,Exit dim Logs[1] Logs[0]=0x1BDD uo.Print('Выкладываем Логи.') for a=0 to 0 MovingItems(Logs[a],'-1',-1,0) next uo.Print('Логи Выложены.') 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 RunebookRecall(n) OldX=uo.GetX() OldY=uo.GetY() repeat uo.Exec('warmode 0') uo.UseObject('Runebook') CheckLag() uo.LClick(135, n*15+55) CheckLag() time=uo.Timer() repeat wait(500) until OldX<>uo.GetX() or OldY<>uo.GetY() or uo.Dead() or uo.InJournal('needs') or uo.InJournal('fizzles') or time+200<uo.Timer() until OldX<>uo.GetX() or OldY<>uo.GetY() or uo.Dead() or uo.InJournal('needs') end sub sub Open(Container) uo.DeleteJournal() uo.UseObject(Container) repeat wait(500) until uo.InJournal('Contains') end sub sub MovingItems(tItem,cItem,qItem,FromBackPack) var idResivCont var idSendCont if FromBackPack==1 then idResivCont=uo.GetSerial('backpack') idSendCont=Chest else idSendCont=uo.GetSerial('backpack') idResivCont=Chest end if CheckLag() uo.FindType(tItem,cItem,idSendCont) while uo.GetQuantity('finditem')>0 uo.MoveItem('finditem',qItem,idResivCont) wait(1000) CheckLag() if qItem>0 then return end if uo.FindType(tItem,cItem,idSendCont) wend end sub sub RechargeBook() var Time,Space Time=Time() Space=' ' uo.TextOpen() uo.TextPrint("Речарим рунбуку - " +Space +Time) repeat MovingItems('0x1F4C','-1',-1,1) uo.UseObject('Runebook') wait(1000) Checklag() uo.Lclick(296,91) wait(1000) until uo.InJournal('charges are 50') or uo.InJournal('fully') while uo.Count('0x1F4C')>0 MovingItems('0x1F4C','-1',-1,0) end sub sub EatingFood() var Time,Space Time=Time() Space=' ' uo.TextOpen() uo.TextPrint("Кушаем - " +Space +Time) MovingItems(TypeFood,'-1',20,1) repeat CheckLag() uo.UseType(TypeFood) while not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not uo.Dead() wait(100) wend until uo.InJournal('too full') or uo.Dead() MovingItems(TypeFood,'-1',-1,0) end sub sub WriteNames() var Time,Space Time=Time() Space=' ' uo.GetStatus("uo.JournalSerial(0)") uo.SetGlobal("name",uo.GetName(uo.JournalSerial(0))) uo.TextOpen() uo.TextPrint("Вас атаковал - "+uo.GetName(uo.JournalSerial(0)) +Space +Time) end sub sub ControlOfDanger() uo.DeleteJournal() var Enemy='0x00000000' repeat if uo.InJournal('is attacking you') or uo.InJournal('OOPS !!!') or uo.InJournal('Wis Quas') then WriteNames() uo.Exec('terminate Lumberjacking') Enemy=uo.JournalSerial(uo.InJournal('is attacking you')-1) uo.PlayWav(LumberSound) if CastAtAttack==1 then uo.Cast('Magic Arrow',Enemy) end if uo.DeleteJournal() RecallAtDanger() end if wait(1000) until false end sub sub RecallAtDanger() var mX,mY reccal: uo.DeleteJournal() if uo.Waiting() then uo.CancelTarget() end if mX=uo.GetX("self") mY=uo.GetY("self") uo.DeleteJournal() uo.FindType('0x1F14',-1,'mY') uo.Cast('Recall','finditem') uo.TextOpen() uo.TextPrint("Пытаемся сбежать!") uo.SayU('This script coded by Cooler!') uo.SayU('*** your self!') wait(4000) if not uo.GetX("self")<>mX and not uo.GetY("self")<>mY then goto reccal end if uo.TextOpen() uo.TextPrint("Сбежали удачно!") if RecallDrop==1 then RecallToHome() DropLogs() InfoLogs() end if Terminate() end sub sub Reconnect() var ReconnectTime,rFlag ReconnectTime='0' rFlag=1 repeat while (uo.ObjAtLayer('Bpack')=='') if rFlag then ReconnectTime=MakeTime() rFlag=0 end if 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' end if 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 end if 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 end if next ret=t+" @ "+d return ret end sub sub Time() var hh,mm,ss,hms,t=str(uo.Time()) if len(t)<=2 then hh="0" mm="0" ss=t endif if len(t)==3 then hh="0" mm=left(t,len(t)-2) ss=right(t,len(t)-1) endif if len(t)==4 then hh="0" mm=left(t,len(t)-2) ss=right(t,len(t)-2) endif if len(t)==5 then hh=left(t,len(t)-4) hms=left(t,len(t)-2) mm=right(hms,len(hms)-1) ss=right(t,len(t)-3) endif if len(t)==6 then hh=left(t,len(t)-4) hms=left(t,len(t)-2) mm=right(hms,len(hms)-2) ss=right(t,len(t)-4) endif return hh+":"+mm+":"+ss 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') end if uo.DeleteJournal() uo.Click('backpack') repeat wait(50) until uo.InJournal('backpack') end sub Ламберт с варом ########### ### Код ### ########### 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.Print('Выбери Топор: ') uo.Exec('addobject Axe') while uo.Targeting() wait(100) wend if TryRecall==25 then uo.Print('Выбери PунБук: ') uo.Exec('addobject Runebook') while uo.Targeting() wait(100) wend end if if ControlOfDanger==1 then uo.Exec('exec ControlOfDanger') end if if Reconnect==1 then uo.Exec('exec Reconnect') end if if RecallLumber==1 then uo.Exec('exec RecallToLumber') wait(9000) end if ##################################### ### Загружаем координаты из файла ### ##################################### if GetFromFile==1 then uo.Print('Загружаем координаты из файла...') f.open() treeCount=safe call f.ReadNumber() for i=1 to treeCount TreeT=safe call f.ReadNumber() TreeX=safe call f.ReadNumber() TreeY=safe call f.ReadNumber() next f.close() else ###################################### ### Собираем координаты из клиента ### ###################################### uo.Print('Выбери Кирку: ') 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 end if next if flag==0 then for k=0 to 28 if uo.LastTile(0)==TreeTile[k] then flag=1 end if next end if if uo.Lasttile(1)==uo.GetX() and uo.Lasttile(2)==uo.GetY() then flag=3 end if ######################### ### Кликнули на ствол ### ######################### 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 end if next end if 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))) end if end if ########################## ### Кликнули по листве ### ########################## 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 end if next end if 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))) end if end if until (flag==3) or (treeCount==5000) uo.Exec("filterspeech off") uo.Print('Анализ закончен, координаты деревьев записаны в файл C:\trees3.dat') SaveToFile(treeCount,TreeX,TreeY,TreeT) end if uo.Print('Деревьев найдено: '+str(treeCount)) wait(2000) ###################################### ### Ходим по собранным координатам ### ###################################### while 1==1 if treeCount>0 then for i=1 to treeCount uo.Print('Идем к дереву номер '+str(i)+': x='+str(TreeX)+' y='+str(TreeY)) InfoLogs() flag=GotoXY(TreeX,TreeY) if flag==1 then if TryHiding==1 then ToHide() end if GetTree(str(TreeT),str(TreeX),str(TreeY),str(uo.GetZ())) end if next end if wend end sub sub GetTree(Type,X,Y,Z) var i uo.Print('Начинаем рубку дерева...') for i=0 to Quant if uo.Warmode()==1 then return 0 end if wait(200) uo.DeleteJournal() uo.WaitTargetTile(Type,X,Y,Z) uo.UseObject('Axe') if WaitForChange()==1 then return 1 end if next return 0 end sub sub ToRecall() RecallToHome() DropLogs() InfoLogs() if RechargeBook==25 then RechargeBook() wait(4000) end if if EatingFood==25 then EatingFood() end if wait(3000) RecallToLumber() end sub sub RecallToHome() uo.Print('Прыгаем Домой.') RunebookRecall(RuneToHome) end sub sub RecallToLumber() uo.Print('Прыгаем в Лес.') RunebookRecall(RuneToLumber) end sub sub ToHide() while not uo.Hidden() uo.Print('Пытаемся уйти в хайд...') uo.DeleteJournal() uo.UseSkill('Stealth') wait(4100) 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 end if if uo.GetX()<>LastX or uo.GetY()<>LastY then return 1 end if 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 end if if uo.Journal(0)==Text2 then return 0 end if wait(50) next return 0 end sub sub WaitForChange() var Text1=uo.GetName()+': You hack at the tree for a while, but fail to produce any useable wood.' var Text2='There are no logs here to chop.' var Text3="You can't reach this." var Text4='That is too far away.' var Text5="You can't do much in your current state." var mess for var i=0 to 200 mess=uo.Journal(0) if uo.Journal(0)==Text2 or uo.Journal(0)==Text3 or uo.Journal(0)==Text4 then return 1 end if if uo.Journal(0)==Text1 then return 0 end if if mess[0]=='Y' and mess[1]=='o' and mess[2]=='u' and mess[4]=='p' and mess[5]=='u' and mess[6]=='t' then return 0 end if wait(50) next return 0 end sub sub WaitForTryRock() var Text1='That is too far away.' var Text2='Try mining in rock.' 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 end if wait(200) next return 0 end sub sub WaitForTarget() for var i=0 to 50 if uo.Targeting()==1 then return 1 end if 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 end if wait(200) next return 0 end sub sub GotoXY(x,y) var myX,myY,LastX=0,LastY=0,i,halt=0,z,r=0 for i=1 to 60 myX=uo.GetX() myY=uo.GetY() if LastX==myX and LastY==myY then halt=halt+1 else halt=0 end if if halt>=10 then if uo.GetDir()==1 then for z=0 to 8 uo.Press(40) next end if if uo.GetDir()==3 then for z=0 to 8 uo.Press(37) next end if if uo.GetDir()==5 then for z=0 to 8 uo.Press(38) next end if if uo.GetDir()==7 then for z=0 to 8 uo.Press(39) next end if halt=15 end if if Numb(x-myX)<=1 and Numb(y-myY)<=2 then return 1 end if if x<=myX then if y<=myY then for z=0 to 3 uo.Press(38) next else for z=0 to 3 uo.Press(37) next end if else if y<=myY then for z=0 to 3 uo.Press(39) next else for z=0 to 3 uo.Press(40) next end if end if LastX=myX LastY=myY wait(200) next return 0 end sub sub Numb(num) if num>=0 then return num else return num*(-1) end if 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)+' '+str(TreeX)+' '+str(TreeY)) next f.close() end sub sub DropLogs() var Time,Space Time=Time() Space=' ' uo.TextOpen() uo.TextPrint("Выкладываем логи - " +Space +Time) ToHide() var a,Exit dim Logs[1] Logs[0]=0x1BDD uo.Print('Выкладываем Логи.') for a=0 to 0 MovingItems(Logs[a],'-1',-1,0) next uo.Print('Логи Выложены.') 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 RunebookRecall(n) OldX=uo.GetX() OldY=uo.GetY() repeat uo.Exec('warmode 0') uo.UseObject('Runebook') CheckLag() uo.LClick(135, n*15+55) CheckLag() time=uo.Timer() repeat wait(500) until OldX<>uo.GetX() or OldY<>uo.GetY() or uo.Dead() or uo.InJournal('needs') or uo.InJournal('fizzles') or time+200<uo.Timer() until OldX<>uo.GetX() or OldY<>uo.GetY() or uo.Dead() or uo.InJournal('needs') end sub sub Open(Container) uo.DeleteJournal() uo.UseObject(Container) repeat wait(500) until uo.InJournal('Contains') end sub sub MovingItems(tItem,cItem,qItem,FromBackPack) var idResivCont var idSendCont if FromBackPack==1 then idResivCont=uo.GetSerial('backpack') idSendCont=Chest else idSendCont=uo.GetSerial('backpack') idResivCont=Chest end if CheckLag() uo.FindType(tItem,cItem,idSendCont) while uo.GetQuantity('finditem')>0 uo.MoveItem('finditem',qItem,idResivCont) wait(1000) CheckLag() if qItem>0 then return end if uo.FindType(tItem,cItem,idSendCont) wend end sub sub RechargeBook() var Time,Space Time=Time() Space=' ' uo.TextOpen() uo.TextPrint("Речарим рунбуку - " +Space +Time) repeat MovingItems('0x1F4C','-1',-1,1) uo.UseObject('Runebook') wait(1000) Checklag() uo.Lclick(296,91) wait(1000) until uo.InJournal('charges are 50') or uo.InJournal('fully') while uo.Count('0x1F4C')>0 MovingItems('0x1F4C','-1',-1,0) end sub sub EatingFood() var Time,Space Time=Time() Space=' ' uo.TextOpen() uo.TextPrint("Кушаем - " +Space +Time) MovingItems(TypeFood,'-1',20,1) repeat CheckLag() uo.UseType(TypeFood) while not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not uo.Dead() wait(100) wend until uo.InJournal('too full') or uo.Dead() MovingItems(TypeFood,'-1',-1,0) end sub sub WriteNames() var Time,Space Time=Time() Space=' ' uo.GetStatus("uo.JournalSerial(0)") uo.SetGlobal("name",uo.GetName(uo.JournalSerial(0))) uo.TextOpen() uo.TextPrint("Вас атаковал - "+uo.GetName(uo.JournalSerial(0)) +Space +Time) end sub sub ControlOfDanger() uo.DeleteJournal() var Enemy='0x00000000' repeat if uo.InJournal('is attacking you') or uo.InJournal('OOPS !!!') or uo.InJournal('Wis Quas') then WriteNames() uo.Exec('terminate Lumberjacking') Enemy=uo.JournalSerial(uo.InJournal('is attacking you')-1) uo.PlayWav(LumberSound) if CastAtAttack==1 then uo.Cast('Magic Arrow',Enemy) end if uo.DeleteJournal() RecallAtDanger() end if wait(1000) until false end sub sub RecallAtDanger() var mX,mY reccal: uo.DeleteJournal() if uo.Waiting() then uo.CancelTarget() end if mX=uo.GetX("self") mY=uo.GetY("self") uo.DeleteJournal() uo.FindType('0x1F14',-1,'mY') uo.Cast('Recall','finditem') uo.TextOpen() uo.TextPrint("Пытаемся сбежать!") uo.SayU('This script coded by Cooler!') uo.SayU('*** your self!') wait(4000) if not uo.GetX("self")<>mX and not uo.GetY("self")<>mY then goto reccal end if uo.TextOpen() uo.TextPrint("Сбежали удачно!") if RecallDrop==1 then RecallToHome() DropLogs() InfoLogs() end if Terminate() end sub sub Reconnect() var ReconnectTime,rFlag ReconnectTime='0' rFlag=1 repeat while (uo.ObjAtLayer('Bpack')=='') if rFlag then ReconnectTime=MakeTime() rFlag=0 end if 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' end if 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 end if 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 end if next ret=t+" @ "+d return ret end sub sub Time() var hh,mm,ss,hms,t=str(uo.Time()) if len(t)<=2 then hh="0" mm="0" ss=t endif if len(t)==3 then hh="0" mm=left(t,len(t)-2) ss=right(t,len(t)-1) endif if len(t)==4 then hh="0" mm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
YariK™© 0 Жалоба Опубликовано 21 сентября, 2006 Таких скриптов на уoko форуме много-)Надо будет потестить, в свое время из-за времен года он вообще не работал. И в нем нет пояснений,даже человек который шарит в етом глаза сломает. До кучи скрипт на бланк-скролыы(blankscroll): В сумке иметь: -набор тинкера -логи простые -хавку(жаренную рыбу) sub main() havka() craft() if UO.Injournal("You destroy some material.") then UO.deletejournal() vky4y() craft() else uo.deletejournal() repeat wait(100) until uo.injournal("You create|You make") endif if UO.Injournal("You don't have") then vky4y() wait(3000) uo.exec("terminate all") else main() endif end sub sub havka() if UO.Count("0x097B")>0 then UO.usetype ("0x097B") Wait(1000) else UO.Print("Еда закончилась……помру-)") end if end sub sub vky4y() UO.Exec("waittargettype 0x0E75") uo.exec("emptycontainer 1") wait(1000) end sub sub craft() UO.Exec("waitmenu 'Select' 'Paper items' 'Choose' 'Blank Scroll'") UO.Exec("waittargettype '0x1BDD'") UO.Exec("usetype 0x1EBC") wait(1000) end sub Как кончиться дерево -скрипт прекратиться-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
YariK™© 0 Жалоба Опубликовано 22 сентября, 2006 Ламбер-) скрипт рабочий.Проверялась непосредственно рубка -на версии инжетка 505.18 -пропатченной вердате,пеньки вместо деревьев (| патч тут |) Остальное еще не проверял. ########################################################## ### Lumberjacking / Рубка деревьев v8.7 Full ### ########################################################## ### ################################### ### Режимы работы скрипта ### ################################### ### Работает в 2х режимах: ### ### 1)Маркировка ### ### 2)Рубка ### ################################### ### Режим Первый - "Маркировка" ### ################################### ### Этот режим отвечает за Маркирование(записывание координат) деревьев. ### Включается переменной var GetFromFile=0 ## 1 - координаты деревьев будут считыватся из файла, 0 - собиратся из клиента. ### То есть если GetFromFile=0 координаты деревьев собиратся из клиента. ### ### Маркировка происходит так: ### Поставте переменную GetFromFile равную 0 (GetFromFile=0). ### Положите к себе в сумку Топор, Рунбук(с рунами домой и в лес), Руну(в безопасное место) и Кирку. ### Идите в лес в котором вы хотите рубить. ### Запустите Скрипт Lumberjacking(), инжект попросит вас указать Топор ### (появится прицел,прицелом на топор который вы с собой взяли), ### потом инжект попросит вас указать Рунбук(появится прицел,прицелом на него) и Руну в безопасное место(прицелом на нее). ### Инжект сообщит вам что ('Собираем координаты деревьев в округе...'). ### Инжект попросит вас указать Кирку(появится прицел,прицелом на неё). ### Теперь вы должны в любом порядке сами прицелом указать координаты(достаточно просто нажать прицелом на дерево). ### Если вы не промахнулись и "нажали" на дерево, то инжект сообщит вам об этом(Найдено дерево "координаты дерева"). ### Причем что если даже вы нажмете два раза на одно дерево то он не "запомнит" его повторно. ### Ходите по лесу и марчите деревья. ### Для того чтобы остановить марк нажмите таргетом на себя. ### Инжект напишет вам сообщение ('Анализ закончен, координаты деревьев записаны в файл' +FileName) и создаст файл на диске ### С:\ куда запишет координаты деревьев. ### После этого чар пойдет по координатам и будет вырубать деревья. ### ############################## ### Режим Второй - "Рубка" ### ############################## ### Этот режим соответственно отвечает за рубку. ### Включается переменной var GetFromFile=1 ## 1 - координаты деревьев будут считыватся из файла, 0 - собиратся из клиента ### То есть если GetFromFile=1 координаты деревьев будут считыватся из файла. ### И вам не надо будет сново марчить деревья. ### ### Рубка происходит так: ### Поставте переменную GetFromFile равную 1 (GetFromFile=1). ### Положите к себе в сумку Топор и Рунбук(с рунами домой и в лес). ### ]![ Внимание руны в рунбуке вы можете указать в переменных RuneToHome=4 и RuneToForest=5(вместо 4 и 5 номера ваших рун). ]![ ### После установок рун в рунбук. ### ]![ Внимание в скрипте система рекола по рунбуке настроена под ДРВ шард. ]![ ### ######################################### ### Дополнительные функции скрипта ### ######################################### ### В скрипте 4е доп. функции: ### ### 1)Речарж Рунбуки ### ### 2)Употребление Пищи ### ### 3)Рекол при Атаке ### ### 4)Реконнект ### ######################################### ### Функция Первая - "Речарж Рунбуки" ### ######################################### ### Этот режим соответственно отвечает за Речарж(заполнение скролами) Рунбуки. ### Включается переменной var RechargeBook=1 ## 1 - Включить речарж рунбуки, 0 - отключить речарж. ### То есть если RechargeBook=1 чар будет речаржить рунбуку. ### ### Речарж происходит так: ### Поставте переменную RechargeBook равную 1 (RechargeBooks=1). ### Положите в сундук, в который будут выгручаться логи, реколы. ### Чар берет 50 реколов из сундука, речаржет рунбуку, оставшиеся кладет обратно в сундук. ### ############################################ ### Функция Вторая - "Употребление Пищи" ### ############################################ ### Этот режим соответственно отвечает за Употребление Пищи. ### Включается переменной var EatingFood=1 ## 1 - Будем есть, 0 - нет. ### То есть если EatingFood=1 чар будет кушать. ### ### Употребление Пищи происходит так: ### Поставте переменную EatingFood равную 1 (EatingFood=1). ### Положите в сундук куда будут выгружаться логи и где лежат реколы - еду, ### тип которой вы указали тут var TypeFood='0x097B' ## - Тип еды которую будем кушать.(сейчас фиштейки) ### После того как чар выложит логи и речаржнет рунбуку, будет кушать. ### Он берет 20 единиц еды и кушает, что осталось выгружает обратно в сундук. ### ########################################## ### Функция Третья - "Рекол при Атаке" ### ########################################## ### Этот режим соответственно отвечает за Рекол при атаке ентов и не только(также стоит проверка на ПК и Криминалов). ### Включается переменной var ControlOfDanger=1 ## 1 - Включить рекол по руне(в паке) при атаке, 0 - отключить рекол. ### То есть если ControlOfDanger=1 чар будет реколиться при атаке. ### ### Побег происходит так: ### Поставте переменную ControlOfDanger равную 1 (ControlOfDanger=1). ### Замарчите Руну в безопасном месте. ### Положите к себе в сумку ### Руну(которую замарчили в безопасном месте), Реагенты(Black Pearls,Blood Moss,Mandrake Root.) ### и Бутылки расчитывая на то сколько вы хотите рубить.(Invizible Potion,Mana Potion,Heal Potion). ### При атаке, появлении ПК или криминала вы выпиваете Invizible Potion, автоматически телепортитесь на то место, ### где замаркана руна(в бакпаке). ### В это время записывается имя того кто вас атачил. ### После рекола руна маркается и проверяется ваша мана и здоровье, если чегото меньше, ### чар выпивает Mana Potion или Heal Potion в зависимости от надобности. ### ###################################### ### Вариант Первый - "Цыкличность" ### ###################################### ### Есди вы хотите чтобы скрипт не прекращал свою работу, то поставьте переменную CycleScript раную 1 (CycleScript=1), ### затем после указания предметов таргетом задите в "Edit current script"(в окно редактирования скрипта) и ### поставьте переменную AddObject равную 0 (AddObject=0). ### Теперь после рекола скрипт не будет выключаться, а будет ждать указанное время(DangerousTime) и затем ### реколиться домой, речаржить рунбуку, есть и опять реколиться на место рубки и рубить. ### ##################################### ### Вариант Второй - "Выключение" ### ##################################### ### Есди вы хотите чтобы скрипт не прекращал свою работу, то поставьте переменную CycleScript раную 0 (CycleScript=0), ### Теперь после рекола скрипт выключится и закроет окно UO. ### ####################################### ### Функция Четвертая - "Реконнект" ### ####################################### ### Этот режим соответственно отвечает за Реконнект при выкидывании с сервера. ### Включается переменной var Reconnect=0 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект. ### То есть если Reconnect=1 чар будет реколиться при атаке. ### ### Реконнект происходит так: ### Поставте переменную Reconnect равную 1 (Reconnect=1). ### Если вдруг повиснет игровая сфера или вас выкинет по любой другой причине ### реконнектор законнектит вас на сервер автоматически. ### Пишется время дисконнекта и коннекта на сервер. ### ### ]![ Настройте скрипт под себя при помощи переменных. ]![ ### ################## ### Переменные ### ################## ################################################################################ ################################## ### var FileName=('C:\trees3.dat') ## - Путь к файлу в котором будут хранится координаты деревьев. ### var TryHiding=0 ## 0 - Перед тем как рубить дерево, будет пытаться уйти в хайд, 0 - не будет . ### var TryRecall=0 ## 0 - После того как соберет LogsQty логов, будет пытаться реколиться домой, ### складывать логи в сундук и реколиться обратно , 0 - не будет. ### var RuneToHome=4 ## - Номер руны Домой,по счёту в рунбуке.(сейчас в 4ом слоте,можно менять от 1-9) ### var RuneToForest=5 ## - Номер руны в Лес,по счёту в рунбуке.(сейчас в 5ом слоте,можно менять от 1-9) ### var RechargeBook=0 ## 1 - Включить речарж рунбуки, 0 - отключить речарж. ### var GetFromFile=1 ## 1 - Координаты деревьев будут считыватся из файла, 0 - собиратся из клиента ### (сначала соберите а потом считывайте из файла). ### var LogsQty=3700 ## - Количество логов, добыв которое надо реколиться домой. ### var QuantityImpact=10 ## - Сколько раз чар будет ударять по дереву, прежде чем перейдет к другому.(стандарт - 15) ### var ControlOfDanger=0 ## 1 - Включить рекол по руне(в паке) при атаке, 0 - отключить рекол. ### var PhysicalDanger=0 ## 1 - влючить рекол при физической атаке, 0 - отключить рекол. ### var SeenDanger=0 ## 1 - влючить рекол при появлении рядом ПК ил криминала, 0 - отключить рекол. ### var RecallFromAll=0 ## 1 - включить рекол при появлении рядом любово чара, 0 - отключить рекол. ### var DisturbingSound=('C:\Warning.wav') ## - Звук которы будет пригран при атаке.(замените на свой) ### var DangerousTime=50000 ## - Время которое чар будет ждать(после рекола) пока уйдет ПК или Ент.(сейчас 50 секунд) ### var CycleScript=1 ## 1 - Скрипт не отключается после рекола от атакующего, 0 - отключаетсяи закрывает UO. ### var EatingFood=0 ## 1 - Будем есть, 0 - нет. ### var TypeFood='0x097B' ## - Тип еды которую будем кушать.(сейчас фиштейки) ### var Reconnect=0 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект. ### var Chest='0x40203CC2' ## - ID сундука куда будут выгружаться логи, где должны лежать реколы и еда. ### var AddObject=1 ## 1 - Если надо добавить обьекты, 0 - не надо. ### ################################################################################ ################################## ### ### После настройки: ### Идите в лес в котором вы хотите рубить. ### Запустите cкрипт Lumberjacking(), Инжект попросит вас указать Топор ### (появится прицел, прицелом на топор который вы с собой взяли), ### затем инжект попросит вас указать Рунбук(появится прицел, прицелом на него) и Руну(прицелом на неё). ### После этого чар пойдет по координатам и будет вырубать деревья. ########### ### Код ### ########### sub Lumberjacking() var i=0,j=0,k=0,r=0,q=0,ii,jj,f 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 if AddObject==1 then uo.FilterSpeech('on') uo.FilterSpeech('add', 'Where do you want to use the pickaxe?') uo.Print('Выбери Топор: ') uo.Exec('addobject Axe') while uo.Targeting() wait(100) wend if TryRecall==1 then uo.Print('Выбери PунБук: ') uo.Exec('addobject Runebook') while uo.Targeting() wait(100) wend end if if ControlOfDanger==1 then uo.Print('Выбери Руну: ') uo.Exec('addobject Rune') while uo.Targeting() wait(100) wend end if end if if ControlOfDanger==1 then uo.Exec('exec ControlOfDanger') end if if Reconnect==1 then uo.Exec('exec Reconnect') end if ##################################### ### Загружаем координаты из файла ### ##################################### if GetFromFile==1 then uo.Print('Загружаем координаты из файла...') f=file(FileName) 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 ###################################### ### Собираем координаты из клиента ### ###################################### if AddObject==1 then uo.Print('Выбери Кирку: ') uo.Exec('addobject Pickaxe') while uo.Targeting() wait(100) wend end if 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 end if next if flag==0 then for k=0 to 28 if uo.LastTile(0)==TreeTile[k] then flag=1 end if next end if if uo.Lasttile(1)==uo.GetX() and uo.Lasttile(2)==uo.GetY() then flag=3 end if ######################### ### Кликнули на ствол ### ######################### 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 end if next end if 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))) end if end if ########################## ### Кликнули по листве ### ########################## 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 end if next end if 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))) end if end if until (flag==3) or (TreeCount==5000) uo.FilterSpeech('off') uo.Print('Анализ закончен, координаты деревьев записаны в файл ' + FileName) SaveToFile(TreeCount,TreeX,TreeY,TreeT) end if uo.Print('Деревьев найдено: '+str(TreeCount)) wait(2000) ###################################### ### Ходим по собранным координатам ### ###################################### while 1==1 if TreeCount>0 then for i=1 to TreeCount if TryRecall==1 and uo.Count('ZLK')>=LogsQty or uo.Weight>=uo.STR*4+20 then ToRecall() end if uo.Print('Идем к дереву номер '+str(i)+': x='+str(TreeX[i])+' y='+str(TreeY[i])) InfoLogs() flag=GotoXY(TreeX[i],TreeY[i]) if flag==1 then if TryHiding==1 then ToHide() end if GetTree(str(TreeT[i]),str(TreeX[i]),str(TreeY[i]),str(uo.GetZ())) end if next end if wend end sub sub SaveToFile(TreeCount,TreeX,TreeY,TreeT) var s=0,i=0,f f=file(FileName) 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 GetTree(Type,X,Y,Z) var i uo.Print('Начинаем рубку дерева...') for i=0 to QuantityImpact if uo.Warmode()==1 then return 0 end if wait(200) uo.DeleteJournal() uo.WaitTargetTile(Type,X,Y,Z) uo.UseObject('Axe') if WaitForChange()==1 then return 1 end if next return 0 end sub sub WaitForRecall() var Text1=uo.GetName()+': The spell fizzles.' var LastX=uo.GetX() var LastY=uo.GetY() var mess='' for var i=0 to 200 mess=uo.Journal(0) if uo.Journal(0)==Text1 then return 0 end if if uo.GetX()<>LastX or uo.GetY()<>LastY then return 1 end if 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 end if if uo.Journal(0)==Text2 then return 0 end if wait(50) next return 0 end sub sub WaitForChange() var Text1=uo.GetName()+': You hack at the tree for a while, but fail to produce any useable wood.' var Text2="There's not enough wood here to chop." var Text3="You can't reach this." var Text4='That is too far away.' var Text5="You can't do much in your current state." var mess for var i=0 to 200 mess=uo.Journal(0) if uo.Journal(0)==Text2 or uo.Journal(0)==Text3 or uo.Journal(0)==Text4 then return 1 end if if uo.Journal(0)==Text1 then return 0 end if if mess[0]=='Y' and mess[1]=='o' and mess[2]=='u' and mess[4]=='p' and mess[5]=='u' and mess[6]=='t' then return 0 end if wait(50) next return 0 end sub sub WaitForTryRock() var Text1='That is too far away.' var Text2='Try mining in rock.' 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 end if wait(200) next return 0 end sub sub WaitForTarget() for var i=0 to 50 if uo.Targeting()==1 then return 1 end if 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 end if wait(200) next return 0 end sub sub MovingItems(tItem,cItem,qItem,FromBackPack) var idResivCont,idSendCont Open(Chest) uo.UseObject('backpack') if FromBackPack==1 then idResivCont=uo.GetSerial('backpack') idSendCont=Chest else idSendCont=uo.GetSerial('backpack') idResivCont=Chest end if CheckLag() uo.Findtype(tItem,cItem,idSendCont) while uo.GetQuantity('finditem')>0 uo.MoveItem('finditem',str(qItem),idResivCont) wait(1000) CheckLag() if qItem>0 then return end if uo.FindType(tItem,cItem,idSendCont) wend end sub sub InfoTrees(sNum,fStr,lStr,Sort) var n=VAL(Right(sNum,1)) if n==0 then if Sort==0 then uo.Print(fStr+'а'+lStr) else uo.Print(fStr+lStr) end if return end if if n<5 then uo.Print(fStr+'а'+lStr) return end if if Sort==0 then uo.Print(fStr+'ев'+lStr) else uo.Print(fStr+'ов'+lStr) end if end sub sub Open(Container) uo.DeleteJournal() uo.UseObject(Container) repeat wait(500) until uo.InJournal('Contains') end sub sub GotoXY(x,y) var myX,myY,LastX=0,LastY=0,i,halt=0,z,r=0 for i=1 to 60 myX=uo.GetX() myY=uo.GetY() if LastX==myX and LastY==myY then halt=halt+1 else halt=0 end if if halt>=10 then if uo.GetDir()==1 then for z=0 to 8 uo.Press(40) next end if if uo.GetDir()==3 then for z=0 to 8 uo.Press(37) next end if if uo.GetDir()==5 then for z=0 to 8 uo.Press(38) next end if if uo.GetDir()==7 then for z=0 to 8 uo.Press(39) next end if halt=15 end if if Numb(x-myX)<=1 and Numb(y-myY)<=2 then return 1 end if if x<=myX then if y<=myY then for z=0 to 3 uo.Press(38) next else for z=0 to 3 uo.Press(37) next end if else if y<=myY then for z=0 to 3 uo.Press(39) next else for z=0 to 3 uo.Press(40) next end if end if LastX=myX LastY=myY wait(200) next return 0 end sub sub Numb(num) if num>=0 then return num else return num*(-1) end if 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 ToHide() while not uo.Hidden() uo.Print('Пытаемся уйти в хайд...') uo.DeleteJournal() uo.Exec('warmode 0') uo.UseSkill('Stealth') wait(4100) wend wait(100) end sub sub ToRecall() uo.Exec('terminate ControlOfDanger') RecallToHome() DropLogs() InfoLogs() if RechargeBook==1 then RechargeBook() wait(4000) end if if EatingFood==1 then EatingFood() end if wait(3000) RecallToLumber() uo.Exec('exec ControlOfDanger') end sub sub RecallToHome() uo.Print('Прыгаем Домой.') RuneBookRecall(RuneToHome) end sub sub RecallToLumber() uo.Print('Прыгаем в Лес.') RuneBookRecall(RuneToForest) end sub sub RuneBookRecall(n) var OldX=uo.GetX() var OldY=uo.GetY() var Time repeat uo.Exec('warmode 0') uo.UseObject('Runebook') CheckLag() uo.Lclick(135, n*15+55) CheckLag() Time=uo.Timer() repeat wait(500) until OldX<>uo.GetX() or OldY<>uo.GetY() or uo.Dead() or uo.InJournal('needs') or uo.InJournal('fizzles') or Time+200<uo.Timer() uo.DeleteJournal() until OldX<>uo.GetX() or OldY<>uo.GetY() or uo.Dead() or uo.InJournal('needs') end sub sub DropLogs() var Time,Space Time=Time() Space=' ' uo.TextOpen() uo.TextPrint('Выкладываем логи - ' +Space +Time) ToHide() var a,Exit dim Logs[1] Logs[0]=0x1BDD uo.Print('Выкладываем Логи.') for a=0 to 0 MovingItems(Logs[a],'-1',-1,0) next uo.Print('Логи Выложены.') end sub sub RechargeBook() var Time,Space Time=Time() Space=' ' uo.TextOpen() uo.TextPrint('Речарим рунбуку - ' +Space +Time) repeat MovingItems('0x1F4C','-1',50,1) uo.UseObject('Runebook') wait(1000) Checklag() uo.Lclick(296,91) wait(1000) until uo.InJournal('charges are 50') or uo.InJournal('fully') or uo.InJournal('You need a Recall Scroll') or uo.Dead() while uo.Count('0x1F4C')>0 MovingItems('0x1F4C','-1',-1,0) wend end sub sub EatingFood() var Time,Space Time=Time() Space=' ' uo.TextOpen() uo.TextPrint('Кушаем - ' +Space +Time) MovingItems(TypeFood,'-1',20,1) repeat CheckLag() if uo.Count(TypeFood)<=0 then uo.Exec('terminate EatingFood') end if uo.UseType(TypeFood) while not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not uo.Dead() wait(100) wend until uo.InJournal('too full') or uo.Dead() while uo.Count(TypeFood)>0 MovingItems(TypeFood,'-1',-1,0) wend end sub sub ControlOfDanger() var Time,danger,Space Time=Time() Space=' ' while 1 uo.DeleteJournal() while not uo.InJournal(':') wait(100) wend danger=uo.GetNotoriety(uo.JournalSerial(0)) if PhysicalDanger==1 then if uo.InJournal('OOPS') then uo.TextOpen() uo.TextPrint('Был вырублен Ент ' +Space +Time) uo.Exec('exec RecallRune') end if if uo.InJournal('attacking you') then uo.GetStatus('uo.JournalSerial(0)') uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0))) uo.TextOpen() uo.TextPrint('Вы были атакованы - '+uo.GetName(uo.JournalSerial(0)) +Space +Time) uo.Exec('exec RecallRune') end if end if if SeenDanger==1 then if Danger==6 and UO.JournalSerial(0) <> UO.GetSerial() then uo.GetStatus('uo.JournalSerial(0)') uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0))) uo.TextOpen() uo.TextPrint('Рядом оказался ПК - '+uo.GetName(uo.JournalSerial(0)) +Space +Time) uo.Exec('exec RecallRune') end if if Danger==4 and UO.JournalSerial(0) <> UO.GetSerial() then uo.GetStatus('uo.JournalSerial(0)') uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0))) uo.TextOpen() uo.TextPrint('Рядом оказался криминал - '+uo.GetName(uo.JournalSerial(0)) +Space +Time) uo.Exec('exec RecallRune') end if if RecallFromAll==1 then if Danger==1 and UO.JournalSerial(0) <> UO.GetSerial() then uo.GetStatus('uo.JournalSerial(0)') uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0))) uo.TextOpen() uo.TextPrint('Рядом оказался чар - '+uo.GetName(uo.JournalSerial(0)) +Space +Time) uo.Exec('exec RecallRune') end if end if end if wend end sub sub RecallRune() Terminate() uo.PlayWav(DisturbingSound) uo.UseType('0x0F0E','0x0631') wait(100) repeat uo.WaitTargetObject('Rune') uo.Exec('warmode 0') uo.Cast('Recall') wait(3000) until not uo.InJournal('spell fizzles') repeat uo.DeleteJournal() uo.WaitTargetObject('Rune') wait(100) uo.Cast('Mark') if uo.InJournal('mana for this spell') then ManaUp('Bottle') wait(100) end if wait(3000) until not uo.InJournal('spell fizzles') if uo.Life<uo.STR then LifeUp('Bottle') wait(100) end if if CycleScript==1 then uo.Exec('exec DangerWait') end if if CycleScript==0 then uo.Exec('exec ExitUO') end if end sub sub DisturbingSound(amount) var i for i=1 to amount uo.PlayWav(DisturbingSound) wait(1500) next end sub sub DangerWait() wait(DangerousTime) ToRecall() uo.Exec('exec Lumberjacking') end sub sub ExitUO() wait(3000) uo.CloseUO() end sub sub LifeUp(Mode) if Mode=='Healing' then while uo.Life<uo.STR uo.Exec('bandageself') wait(4000) wend end if if Mode=='Bottle' then if uo.Life<uo.STR then uo.UseType('0x0F0E','0x09BB') wait(100) end if end if end sub sub ManaUp(Mode) if Mode=='Meditation' then while uo.Mana<uo.INT uo.Exec('useskill Meditation') wait(4000) wend end if if Mode=='Bottle' then if uo.Mana<uo.INT then uo.UseType('0x0F0E','0x09DF') wait(100) end if end if end sub sub Reconnect() var ReconnectTime,rflag ReconnectTime='0' rflag=1 repeat while (uo.ObjAtLayer('Bpack')=='') if rflag then ReconnectTime=Time() rflag=0 end if 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' end if until false 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 Terminate() uo.Exec('terminate Lumberjacking') uo.Exec('terminate ControlOfDanger') uo.Exec('terminate Reconnect') end sub sub CheckLag() if uo.Waiting()>0 then uo.Exec('canceltarget') end if uo.DeleteJournal() uo.Click('backpack') repeat wait(50) until uo.InJournal('backpack') end sub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Anarchy 0 Жалоба Опубликовано 22 сентября, 2006 sub tailoring() WHILE not UO.dead() UO.Exec("waitmenu 'Choose' 'misc' 'What' 'Large Pillow - takes 15 cloth'") UO.Exec("waittargetobject '~0x1766'") UO.Exec("usetype 0x0F9D") wait(4000) UO.Exec("waittargettype 0x163A") UO.Exec("usetype 0x0F9E") wait(800) UO.Exec("useobject '^0x097B'") wait(200) wend Народ у меня имеетса такой скриптик на тейлор (делает подушки и режит их на такань) ткань берёт с пола! его надо дополнить так чтоб при нехватки ткани на полу он дропал ту ткань каторая в паке ! Заранее спасибо ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
comatoza 0 Жалоба Опубликовано 22 сентября, 2006 написал следующую бодягу - определяет все не идентифицированные бутыли в бэке... единственное неучтённое - это white potion который не определяется sub TasteID() uo.findtype('0x0f09', 'back', 'my') while uo.findcount()>0 uo.waittargettype('0x0f09') uo.useskill('Tas') wait(11000) uo.findtype('0x0f09', 'back', 'my') wend end sub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
comatoza 0 Жалоба Опубликовано 23 сентября, 2006 У меян вот вопрос такой - скрипт на автохил нужен, но особенный) Вообщем надо чтобы во время хилинга чар при касте боевой магии не шмалял в себя. А то хилишься - начинаешь кастовать, а он в себя бьет.... обломно. НЕ судите строго - я нуб) uo.canceltarget() uo.waittargetself() uo.cast('Gre') наверно так примерно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
comatoza 0 Жалоба Опубликовано 24 сентября, 2006 Fast recall без регов Код sub tel() UO.Exec("disarm") UO.Exec("usetype '0x0EFA'") Wait(100) UO.LClick(65,81) #координата руны в буке(определяеться в окне редактирование скрипта в инже-кнопкой сверху) wait(100) UO.LClick(65,81) UO.Say("In Vas Por") UO.Say("Wis Qas") end sub небольшое уточнение скрипт может сбиться когда бежишь.... правильнее будет использовать либо ongump либо recall принцип примерно следующий ,recall xxxxxxxxxx yyyyyy где xxxxxxxxx - серийник объекта рунбуки yyyyyy - серийник кнопки рунбуки который получаем следующим путём - запускаем рунбуку и давим кнопку напротив руны, после пишем в клиенте ,infogump получаем что-то вроде infogump_______ serial 0x01380a8a gumpid 0x002dd8de X 0 Y 0 15101 packet size 23 reply packet size Buttons: ________ page 1 1 [ 900] image=0x09A9 at 55:10 2 [ 800] image=0x09A9 at 230:10 3 [ 800] image=0x08BC at 320:8 4 [ 1] image=0x099D at 142:200 5 [ 601] image=0x0845 at 56:62 6 [ 602] image=0x0845 at 5 .................................................... 70] Drop Rune Reply: ___________ [0259] primary reply Checks&Radios (0) Entryes (0) где нас и Ынтересует - serial(сериал рунбуки) и primary reply(cериал кнопки в HEX, перевести в DEC в виндосном калке я думаю смогут все) NB! сериал рунбуки оставляем как есть, сериал руны - переводим в DEC! таким образом получаем: ,recall 0x01380a8a 601 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Жмых 0 Жалоба Опубликовано 24 сентября, 2006 uo.canceltarget() uo.waittargetself() uo.cast('Gre') наверно так примерно А вот как именно? В скриптинге совсем не шарю - народ - елси можно поделитесь или напишите скрипт) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Зёма 0 Жалоба Опубликовано 25 сентября, 2006 со старого форума: в инжекте создаешь объект с именем например jjj в закладке Object жмакаешь кнопку FromTarget и таргетом на буку с нужной руной потом в инжекте на Save дальше в уо пишеш ,set norbcheck 1 ,set norbcalc 1 и биндуеш на кнопку say ,recall jjj 601 (601-если нужна 1-я руна, 602 - если 2-я и т.д.) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
:::Krem::: 0 Жалоба Опубликовано 28 сентября, 2006 Есть вот такой скрипт на тинкер: sub tinker() while true UO.Exec("waitmenu 'Select' 'Metal Items' 'Select' 'Shovel'") Wait(8000) UO.Exec("waittargettype ENK") Wait(1000) UO.Exec("usetype GTL") Wait(6000) wend end sub подправте его плз, чтоб "Blank Map" делал. Заранее Благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KarlSohn 0 Жалоба Опубликовано 28 сентября, 2006 Вот тебе на бланки sub main() havka() craft() if UO.Injournal("You destroy some material.") then UO.deletejournal() vky4y() craft() else uo.deletejournal() repeat wait(100) until uo.injournal("You create|You make") endif if UO.Injournal("You don't have") then vky4y() wait(3000) uo.exec("terminate all") else main() endif end sub sub havka() if UO.Count("0x097B")>0 then UO.usetype ("0x097B") Wait(1000) else UO.Print("Еда закончилась……помру-)") end if end sub sub vky4y() UO.Exec("waittargettype 0x0E75") uo.exec("emptycontainer 1") wait(1000) end sub sub craft() UO.Exec("waitmenu 'Select' 'Paper items' 'Choose' 'Blank Scroll'") UO.Exec("waittargettype '0x1BDD'") UO.Exec("usetype 0x1EBC") wait(1000) end sub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
comatoza 0 Жалоба Опубликовано 29 сентября, 2006 написал таки скрипт без "попсы" трэкинг без клика для закрытия меню sub tracking() uo.exec("automenu creature cancel") while not uo.dead() uo.useskill('Track') wait(11000) wend uo.cancelmenu() end sub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
:::Krem::: 0 Жалоба Опубликовано 29 сентября, 2006 Вот тебе на бланки Цитата sub main() havka() craft() if UO.Injournal("You destroy some material.") then UO.deletejournal() vky4y() craft() else uo.deletejournal() repeat wait(100) until uo.injournal("You create|You make") endif if UO.Injournal("You don't have") then vky4y() wait(3000) uo.exec("terminate all") else main() endif end sub sub havka() if UO.Count("0x097B")>0 then UO.usetype ("0x097B") Wait(1000) else UO.Print("Еда закончилась……помру-)") end if end sub sub vky4y() UO.Exec("waittargettype 0x0E75") uo.exec("emptycontainer 1") wait(1000) end sub sub craft() UO.Exec("waitmenu 'Select' 'Paper items' 'Choose' 'Blank Scroll'") UO.Exec("waittargettype '0x1BDD'") UO.Exec("usetype 0x1EBC") wait(1000) end sub ----------------------------------------------- немогу разобраться (я в скриптач Дуб). Мне надо его упростить. Можешь сделать, чтоб он просто делал Blank Scrolli и складывал их вкучу, чтобы весь процесс происходил в Backpake, без складывания в контейнер. Кароч мне нужен простейший скрипт на Blan Scrolli. Прошу прощения за тофталогию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
:::Krem::: 0 Жалоба Опубликовано 29 сентября, 2006 Домик есть. Я слежу за чаром, так что на еду, на перепонение Бекпака и на лаги мне ненадо, прошу лишь дополнить его-складыванием в кучу Скролов, и я был бы рад. Я сделал так: sub craft() while not uo.dead() UO.Exec("waitmenu 'Select' 'Paper items' 'Choose' 'Blank Map'") UO.Exec("waittargettype '0x1BDD'") UO.Exec("usetype 0x1EBC") wait(1000) wend end sub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mendot 0 Жалоба Опубликовано 29 сентября, 2006 sub craft111() while not uo.dead() UO.Exec("waitmenu 'Select' 'Paper items' 'Choose' 'Blank Map'") UO.Exec("waittargettype '0x1BDD'") UO.Exec("usetype 0x1EBC") wait(11000) UO.Exec("emptycontainer 1 backpack") wend end sub чё-то в этом духе но всё же настоятельно рекомендовал бы вставить еду, задержку на лаг и сейв, проверку на логи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nepret 0 Жалоба Опубликовано 30 сентября, 2006 sub craft111() while not uo.dead() UO.Exec("waitmenu 'Select' 'Paper items' 'Choose' 'Blank Map'") UO.Exec("waittargettype '0x1BDD'") UO.Exec("usetype 0x1EBC") wait(11000) UO.Exec("emptycontainer 1 backpack") wend end sub чё-то в этом духе но всё же настоятельно рекомендовал бы вставить еду, задержку на лаг и сейв, проверку на логи помоему "1" надо убрать... (но могу и ошибаться) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Гость Evil's Knight Жалоба Опубликовано 8 октября, 2006 скрипт на Blank Scroll sub main() While UO.Life>0 UO.Exec("waitmenu 'Select' 'Paper items' 'Choose' 'Blank Scroll'") UO.Exec("waittargetobject '^0x1bdd'") UO.Exec("useobject '^0x1ebc'") wait(10000) UO.Exec("useobject '^0x103b'") хавчик wait(700) wend end sub скрипт на прокачку бс с переплавкой sub main() while uo.count('0x1bf2s') >= 10 количество ингов для изготовления uo.waitmenu('What do you wish to make?','Armor','Select armor','Chainmail','Select item','Chainmail Coif') uo.usetype('0x13e3') молот uo.waittargettype('0x1bf2') инги wait(11000) while uo.count('0x13bb') > 0 графика того что плавить uo.usetype('0x0fbb') тонги uo.waittargettype('0x13bb') графика того что плавить wait(5000) wend wend end sub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mendot 0 Жалоба Опубликовано 12 октября, 2006 дайде скрипт на фас рекал чтоб срегами телепортился если есть такой открыть нужную рунбуку, долистать до нужной руны, нажать зелёную кнопку Set Default на закладке инжекта Objects в поле Name написать runebook нажать кнопку From Target указать прицелом нужную рунбуку, затем нажать Save sub FastRecall() if UO.bp and UO.mr and UO.bm and UO.mana>10 then UO.disarm() UO.exec("cast 'Recall' runebook") UO.ServerPrint("Attention please!") UO.ServerPrint("Now you can see how to use") UO.ServerPrint("FastRecall with regs") else UO.print("регами нуна было запастись и ману беречь, а теперь сам спасай свою задницу!!!") end if end sub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
comatoza 0 Жалоба Опубликовано 12 октября, 2006 sub fast_recall() var i DIM Regs[3] Regs[0]='0x0F7A' ; Black Pearl Regs[1]='0x0F7B' ; Bood Moss Regs[2]='0x0F86' ; Mandrake Root for i=0 to 2 uo.findtype(Regs[i], 'my', 'back') if uo.count(Regs[i])<1 then uo.disarm() uo.recall(0x603d144c, 601) endif next if uo.mana<11 then uo.disarm() uo.recall(0x603d144c, 601) else uo.disarm() uo.cast('Recall',0x603d144c) endif endsub вот такой скриптик нет правда проверки на физзл и проверки на наличие зарядов рунбуки... но проверяет наличие регов и маны Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mendot 0 Жалоба Опубликовано 12 октября, 2006 sub fast_recall() var i DIM Regs[3] Regs[0]='0x0F7A' ; Black Pearl Regs[1]='0x0F7B' ; Bood Moss Regs[2]='0x0F86' ; Mandrake Root for i=0 to 2 uo.findtype(Regs[i], 'my', 'back') if uo.count(Regs[i])<1 then uo.disarm() uo.recall(0x603d144c, 601) endif next if uo.mana<11 then uo.disarm() uo.recall(0x603d144c, 601) else uo.disarm() uo.cast('Recall',0x603d144c) endif endsub вот такой скриптик нет правда проверки на физзл и проверки на наличие зарядов рунбуки... но проверяет наличие регов и маны по-моему, он у тя 4 раза запускает реколл , если нет регов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
comatoza 0 Жалоба Опубликовано 13 октября, 2006 comatoza спасибо тебе за скрит вот тока я не магу врубится где там прописавать рунку там рунбука с первой рункой установленной как дефолт и эта рунка и есть домой... тебе на рунку нада? Нужен скрипт на картографи.Ну соответсвенно сначала на бланк мап. И еще вопрос. А готовые карты можно продавать вендорам или тока в трешь? насчёт продажи не знаю.... макря вот sub main() var i Dim MaxSkillVal[3] MaxSkillVal[1] = 550 MaxSkillVal[2] = 800 MaxSkillVal[3] = 1000 Dim MapType[3] Maptype[1] = 'Local Map' Maptype[2] = 'Regional Map' Maptype[3] = 'World Map' while uo.count('0x14EB')<>0 for i=1 to 3 uo.automenu('What you you want to create?', maptype[i]) while uo.SkillVal('Cartography')<MaxSkillVal[i] uo.deletejournal() uo.usetype('0x14EB') while not (uo.injournal('You carefully scribe') or uo.injournal('You are not familiar')) wait(100) wend while not uo.injournal('You are full') uo.usetype('0x097B') wait(1000) wend wend uo.cancelmenu() next wend end sub сразу кэтЧбэк на урну... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
korish 0 Жалоба Опубликовано 14 октября, 2006 sub FastRecall() if UO.bp and UO.mr and UO.bm and UO.mana>10 then UO.disarm() UO.exec("cast 'Recall' lasttarget") UO.ServerPrint("o") UO.ServerPrint("A") UO.ServerPrint("b") else UO.print("регами нуна было запастись и ману беречь, а теперь сам спасай свою задницу!!!") end if end sub вот так у меня работает ) тока ласт таргет на книгу надо делать ( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
korish 0 Жалоба Опубликовано 14 октября, 2006 народ почему этот скрипт не пашет ?? он 1 раз кастуит и всё sub main() Var i While UO.Life>0 havka() If UO.Life<UO.STR Then UO.Exec("bandageself") Wait(3000) Else sv() UO.Exec("waittargetself") UO.say(".cast icestrike ") wait(3000) if uo.injournal("The spell fizzles") then main() else uo.deletejournal() repeat until uo.injournal("The victim") end if wait(3000) while UO.Life>0 if UO.MANA < UO.INT then sv() UO.UseSkill("Meditation"); wait(10000) else main() end if wend end if end sub sub havka() if UO.Count("0x097B")>0 then UO.usetype ("0x097B") Wait(700) else UO.Print("Еда закончилась……помру-)") end if end sub sub sv() if uo.injournal("Saving World State") then uo.deletejournal() repeat wait(5000) until uo.injournal("Saving World State complete") UO.Print("Сохранение кончилось продолжаю скрипт") else end if end sub Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
comatoza 0 Жалоба Опубликовано 14 октября, 2006 народ почему этот скрипт не пашет ?? он 1 раз кастуит и всё sub main() Var i While UO.Life>0 havka() If UO.Life<UO.STR Then UO.Exec("bandageself") Wait(3000) Else sv() UO.Exec("waittargetself") UO.say(".cast icestrike ") wait(3000) if uo.injournal("The spell fizzles") then main() else uo.deletejournal() repeat until uo.injournal("The victim") end if wait(3000) while UO.Life>0 if UO.MANA < UO.INT then sv() UO.UseSkill("Meditation"); wait(10000) else main() end if wend end if end sub sub havka() if UO.Count("0x097B")>0 then UO.usetype ("0x097B") Wait(700) else UO.Print("Еда закончилась……помру-)") end if end sub sub sv() if uo.injournal("Saving World State") then uo.deletejournal() repeat wait(5000) until uo.injournal("Saving World State complete") UO.Print("Сохранение кончилось продолжаю скрипт") else end if end sub во-первых выкладывай скрипты в теге... а во-вторых попробуй сам проставить для себя коменты к каждой строчке и поймёшь сразу почему он не пашет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GERA 0 Жалоба Опубликовано 21 октября, 2006 Кому как а мне показалось что при скиле БСа 86,0 ковать Coifы геморно =) Лично я делал Dwarven Platemail Breastplate sub main() while uo.count('0x1BF2')>10 UO.Exec("waitmenu 'What do you wish to make?' 'Armor' 'Select armor' 'Platemail' 'Select item' 'Dwarven Platemail Breastplate'") UO.Exec("waittargetobject '^0x1BF2'") UO.Exec("useobject '^0x13E3'") wait(8000) UO.Exec("waittargetobject '^0x1416'") Wait (500) UO.Exec("useobject '^0x0FBB'") Wait (3000) wend end sub Кует и плавит ( кстать показалось что скил летит ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты