Скрипт Question`a: килл, капание, дроп, еда, подбор...
Code: ### # # ### # ## #### ##### # ## # # # # # # # # # # # ### # # # # # # ### # # # ## # # # # # v 1.00 # www.drw.ru ######################################################## # скрипт на мининг ######################################################## # добавил описание: GimFlex # авторы: (не известны) ######################################################## # скрипт чуть отредактирован мной, но авторы идеи и # основных процедур мне не известны. ######################################################## # Описание: # # Чар ходит в випке или вдоль скалы по заданным # координатам, добывает руду, потом подходит к сейфу, # скидывает туда всю руду, драгоценные камни и золото # (если есть), затем кушает и возвращается в исходную # точку(цикличность). # # Скрипт подразумевает, что у вас випка или огороженная # домами часть горы, поэтому нет проверки на пк. # # Если выкапывается елементал то скрипт встает на паузу # и чтобы его запустить надо сказать GO. Килл элемов # 100% пока не добавлен. ######################################################## # Как работает скрипт: # # Перед тем как начать, убедитесь, что у вас объявлены # все переменные(ниже), в руках у чара есть кирка # (желательно превосходного качества чтоб не ломалась), # в сейфе лежит побольше еды(однотипной). # # Дальше идете в начальную точку. ОНА ВСЕГДА ОДНА И # МЕНЯТЬ ЕЕ НЕЛЬЗЯ!!! Запускаете процедуру main и # идете учить уроки или спать =) ####################################################### # Описание процедур и настройка: # # В скрипте несколько процедур которые надо настроить; # ничего сложного в этом нету, просто внимателнее # читайте дальнейшее описание. # # Точнее настроить надо всего 3 процедуры: ###### # 1 - sub go(x,y,k,m) ###### # x - координата х куда идем # y - координата y куда идем # k - если 1 ,то капаем когда придем в (x,y), если 0, # то просто придем в координаты (x,y). # m - номер клавиши, нажимая на которую чар идет # в направлении: # Home - 36 - северо-запад # End - 35 - ю-з # PgUp - 33 - с-в # PgDn - 34 - ю-в # Этих клавиш хватим вам чтобы добраться до любых # координат(x,y) # Чтобы лучше разобраться в этом приведем пример: # чар ходит по квадрату со стороной 3 клетки и # копает в углах квадрата если k=1 или просто # ходит по квадрату если к=0 # while Not UO.Dead() # go(3920,449,33,0) # go(3917,449,36,0) # go(3917,452,35,0) # go(3920,452,34,0) # wend # Если к=1 то он будет копать в углах квадрата, # причем капает он по одной клетке!!! вокруг себя ###### # 2 - sub FollowMine() ###### # Данная процедура отвечает за хождение по координатам # в випке или вдоль скалы, причем конец всего пути # должен совпасть с положением сейфа, тоесть рядом должен # стоять сейф чтобы чар до него дотянулся и выложил оры ###### # 3 - sub GoBeg() ###### # Данная процедура отвечает за возвращение чара в # исходную точку, тоесть после того как вы выложили # все оры и покушали он от того места, где закончилась # процедура sub FollowMine(), пойдет в исходную точку # откуда вы начали копать ######################################################## # Итого: ######################################################## # Чтобы все заработало, объявите все переменные и # составьте весь маршрут пути, заполнив процедуры # GoBeg и FollowMine ######################################################## # Советы: # # Вбивайте координаты через одну клетку, а не подряд все # т.к. чар итак копает вокруг себя на одну клетку # # Если копаете в випке, то поставьте область копания # побольше в процедуре Dig() ######################################################## #ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ: ######################################################## var tShovel='0x0E85' #Тип кирки или лопаты (кирка) ######################################################## var tSeif='0x401AC056' #Йд сейфа где лежат оры и хавчик ######################################################## var tEat='0x097B' #Тип еды (фишстейки) ########################################################
sub go(x,y,k,m) while UO.GetX()<>x or UO.GetY()<>y UO.Press(k) CheckLag() wend if m==1 then Dig() end if end sub
sub main() Uo.Print("Привет О Великий Кирка!!!") while Not UO.Dead() FollowMine() UnLoad() ToEat() GoBeg() wend end sub
sub FollowMine() dig() go(2251,434,33,0) go(2250,434,36,0) go(2250,432,33,0) go(2251,432,34,1) go(2251,431,33,0) go(2251,430,33,1) go(2251,429,33,0) go(2251,428,33,0) go(2251,427,33,0) go(2252,427,34,1) go(2252,426,33,0) go(2252,425,33,0) go(2253,425,34,1) go(2253,424,33,0) go(2253,423,33,0) go(2254,423,34,1) go(2254,422,33,0) go(2254,421,33,1) go(2254,421,33,0) go(2254,419,33,1) go(2254,418,33,0) go(2254,417,33,0) go(2254,416,33,0) go(2255,416,34,1) go(2255,415,33,0) go(2255,414,33,1) go(2255,413,33,0) go(2255,412,33,1) go(2255,411,33,0) go(2255,410,33,0) go(2255,409,33,1) go(2254,409,36,0) go(2254,408,33,0) go(2254,407,33,1) go(2254,406,33,0) go(2254,405,33,1) go(2254,404,33,0) go(2254,403,33,1) go(2253,403,36,0) go(2253,402,33,0) go(2253,401,33,1) go(2253,400,33,0) go(2252,400,36,0) go(2252,399,33,1) go(2252,398,33,0) go(2253,398,34,0) go(2254,398,34,1) go(2253,398,36,0) go(2252,398,36,0) go(2252,397,33,0) go(2252,396,33,0) go(2252,395,33,1) go(2251,395,36,0) go(2250,395,36,0) go(2250,394,33,1) end sub
sub GoBeg() go(2250,395,35,0) go(2251,395,34,0) go(2252,395,34,0) go(2252,396,35,0) go(2252,397,35,0) go(2252,398,35,0) go(2252,399,35,0) go(2252,400,35,0) go(2252,401,35,0) go(2252,402,35,0) go(2252,403,35,0) go(2252,404,35,0) go(2252,405,35,0) go(2252,406,35,0) go(2252,407,35,0) go(2252,408,35,0) go(2252,409,35,0) go(2252,410,35,0) go(2252,411,35,0) go(2253,411,34,0) go(2254,411,34,0) go(2254,412,35,0) go(2254,413,35,0) go(2254,414,35,0) go(2254,415,35,0) go(2254,416,35,0) go(2254,417,35,0) go(2254,418,35,0) go(2254,419,35,0) go(2254,420,35,0) go(2254,421,35,0) go(2253,421,36,0) go(2252,421,36,0) go(2251,421,36,0) go(2250,421,36,0) go(2250,422,35,0) go(2250,423,35,0) go(2250,424,35,0) go(2250,425,35,0) go(2250,426,35,0) go(2250,427,35,0) go(2250,428,35,0) go(2250,429,35,0) go(2250,430,35,0) go(2250,431,35,0) go(2250,432,35,0) go(2250,433,35,0) go(2250,434,35,0) go(2251,434,34,0) end sub
sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(50) until UO.InJournal('backpack') end sub
sub tohide() while NOT UO.Hidden() UO.DeleteJournal() UO.Warmode('0') UO.UseSkill('Hiding') repeat wait(50) until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied') or UO.Dead() wend end sub
sub UnLoad() var i DIM Item[13] ###################################### #Типы оров, драгоценных камней, золота ###################################### Item[1]=0x19B9 ; >3 ore Item[2]=0x19B7 ; 1 ore Item[3]=0x19BA ; 2 ore Item[4]=0x19B8 ; 3 ore Item[5]=0x0F11 ; saphires Item[6]=0x0F16 ; amethysts Item[7]=0x0F18 ; tourmalines Item[8]=0x0F15 ; citrines Item[9]=0x0F10 ; emeralds Item[10]=0x0F0F ; star sapphires Item[11]=0x0F26 ; diamonds Item[12]=0x0EED ; gold ###################################### for i = 1 to 12 UO.FindType(Item[i], '-1', 'backpack') while UO.GetQuantity('finditem') > 0 UO.MoveItem('finditem','-1',tSeif) Wait(1000) CheckLag() UO.FindType(Item[i],'-1','backpack') wend next end sub
sub ToEat() UO.UseObject(tSeif) UO.FindType(tEat,'0x0000',tSeif) if UO.FindCount() > 0 then UO.MoveItem('finditem','20','backpack') else return end if repeat CheckLag() uo.UseType(tEat) while not uo.InJournal("can't") and 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() UO.FindType(tEat, '0x0000','backpack') if UO.FindCount() > 0 then UO.MoveItem('finditem','20',tSeif) end if end sub
sub Dig() var xelem,yelem var mx = UO.GetX("self"), my = UO.GetY("self"), mz = UO.GetZ("self"),TileNum='1339', t=0 var i,j if UO.Dead() then UO.CloseUO() end if for i = mx-1 to mx+1 for j = my-1 to my+1 tohide() while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") tohide() CheckLag() UO.Waittargettile("1341", str(i), str(j), str(mz)) UO.Exec("usetype " + tShovel) while not UO.InJournal("You put") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("OOPS") and not UO.InJournal("attacking you") wait(500) wend if UO.InJournal('something with ore') OR UO.InJournal("attacking you") then t=1 end if if UO.InJournal("but fail") then wait(1000) end if wend UO.DeleteJournal() next next if t == 1 then xelem=UO.GetX("self") yelem=UO.GetY("self") wait(100) killelem() wait(10000) walkn(xelem,yelem,"") wait(10000) UO.Cast('Dispel','self') wait(5000) UO.Cast('Dispel','self') wait(5000) end if return 1 end sub
sub Pause() UO.DeleteJournal() REPEAT WAIT(3000) UO.Print("!!!Skript na payze!!!!") UNTIL UO.InJournal('GO') UO.Print("!!!Skript prodolgen!!!!") end sub
sub killelem() VAR Count, LastTimer, Elem UO.UseType('0x0F0E','0x0631') ; inviz potion While UO.STR<201 ; U'r not morfed char max Strength + 1 If UO.Mana>=50 then UO.WaitMenu('What','Daemon') UO.Cast('Polymorph') wait(8000) else UO.UseType('0x0F0E','0x09DF') ; total mana potion wait(3000) endif Wend
LastTimer=UO.Timer()
repeat UO.BandageSelf() wait(4000) until UO.Life==UO.STR OR LastTimer+300<UO.Timer()
UO.UseType(0x1B76) ; heater shield UO.UseType(0x1413) ; platemail gorget UO.DeleteJournal() UO.Exec('warmode 1')
UO.FindType('0x0010',-1,'ground') Elem=UO.GetSerial('finditem')
UO.Attack(Elem) repeat wait(1000) If UO.Life<100 Then UO.UseType('0x0F0E','0x09BB') ;GH Endif
If UO.GetDistance(Elem)>1 Then walkn(0,0,Elem) Endif If UO.Life<100 Then UO.UseType('0x0F0E','0x0631') ; inviz potion wait(1000) repeat UO.BandageSelf() wait(4000) until UO.Life==UO.STR UO.UseType(0x1B76) ; heater shield wait(1000) uo.sayu("Я вернулся!!!") Endif
until UO.IsNPC(Elem)==0 wait(3000) grabelem()
UO.FindType('0x0010',-1,'ground') If UO.GetQuantity('finditem')>0 Then KillElem() grabelem() Endif
UO.Exec('warmode 0') wait(1000)
UO.Print("Sdoh skotina!")
LastTimer=UO.Timer() if UO.Life<200 then ; U'r max HP repeat UO.BandageSelf() wait(4000) until UO.Life>200 OR LastTimer+300<UO.Timer() endif UO.DeleteJournal()
end sub
;---------------- ходилка ----------------------- sub GoW() VAR walkwait=300 VAR x,y,dir=6 VAR key=36 ; Home key x=UO.GetX() y=UO.GetY() while UO.GetDir()<>dir UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif wend UO.Press(key)
wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetX()+1==x Then return -1 Else return 1 Endif end sub
sub GoN() VAR walkwait=300 VAR x,y,dir=0 VAR key=33 ; PgUp x=UO.GetX() y=UO.GetY() while UO.GetDir()<>dir UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif wend UO.Press(key)
wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetY()+1==y Then return -1 Else return 1 Endif end sub
sub GoE() VAR walkwait=300 VAR x,y,dir=2 VAR key=34 ; PgDown x=UO.GetX() y=UO.GetY() while UO.GetDir()<>dir UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif wend UO.Press(key)
wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetX()-1==x Then return -1 Else return 1 Endif end sub
sub GoS() VAR walkwait=300 VAR x,y,dir=4 VAR key=35 ; End x=UO.GetX() y=UO.GetY() while UO.GetDir()<>dir UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif wend UO.Press(key)
wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetY()-1==y Then return -1 Else return 1 Endif end sub
sub GoWN() VAR walkwait=300 VAR x,y,dir=7 VAR key=38 ; UpArrow x=UO.GetX() y=UO.GetY()
If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif
If UO.GetDir()==dir Then UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetDir()==dir Then return -1 Else return UO.GetDir() Endif Else return UO.GetDir() Endif end sub
sub GoNE() VAR walkwait=300 VAR x,y,dir=1 VAR key=39 ; RightArrow x=UO.GetX() y=UO.GetY()
If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif
If UO.GetDir()==dir Then UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetDir()==dir Then return -1 Else return UO.GetDir() Endif Else return UO.GetDir() Endif end sub
sub GoSE() VAR walkwait=300 VAR x,y,dir=3 VAR key=40 ; DownArrow x=UO.GetX() y=UO.GetY()
If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif
If UO.GetDir()==dir Then UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetDir()==dir Then return -1 Else return UO.GetDir() Endif Else return UO.GetDir() Endif end sub
sub GoSW() VAR walkwait=300 VAR x,y,dir=5 VAR key=37 ; LeftArrow x=UO.GetX() y=UO.GetY()
If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif
If UO.GetDir()==dir Then UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetDir()==dir Then return -1 Else return UO.GetDir() Endif Else return UO.GetDir() Endif end sub
#============================================================== # WalkN(X,Y,Serial) - char is walking by dX and dY step # sub using Home, End, PgUp, PgDown keys # d'not rebind this key from default action! # walkwait - delay after keypress #-------------------------------------------------------------- sub WalkN(x,y,Target) VAR i VAR dx,dy,Exit=0 While Exit<>1 If Target<>"" Then dx=UO.GetX(Target)-UO.GetX() dy=UO.GetY(Target)-UO.GetY() ; UO.Print("Target locked!") If UO.GetDistance(Target)<2 Then Exit=1 Endif Else dx=x-UO.GetX() dy=y-UO.GetY() If dx==0 AND dy==0 Then Exit=1 Endif
Endif If dx<>0 AND dy<>0 Then If dx>0 AND dy>0 Then GoSE() Endif
If dx>0 AND dy<0 Then GoNE() Endif
If dx<0 AND dy>0 Then GoSW() Endif
If dx<0 AND dy<0 Then GoWN() Endif
Endif If dx<>0 AND dy==0 Then If dx>0 Then GoE() Endif If dx<0 Then GoW() Endif Endif
If dx==0 AND dy<>0 Then If dy>0 Then GoS() Endif If dy<0 Then GoN() Endif Endif Wend end sub
sub grabelem() var i DIM Item[6] ###################################### Item[1]=0x19B9 ; >3 ore Item[2]=0x19B7 ; 1 ore Item[3]=0x19BA ; 2 ore Item[4]=0x19B8 ; 3 ore Item[5]=0x0EED ; gold ###################################### for i = 1 to 5 UO.FindType(Item[i], '-1', 'ground') UO.MoveItem('finditem','-1','backpack') Wait(1000) CheckLag() next end sub
|