Мой скриптец на скупку под ДРВ.
3 РунБуки в паке с рунками к магазам.
В первой Рунбуке, первая рунка к сундуку у дома.
В buy/sell (в инже в закладке Main) создаем Лист (любое название , его потом надо будет вписать в скрипт ( в данный момент это Reg) с тем что вы хотите покупать. Скрипт по очереди летает по рункам. Скупает наименования из листа. Внимание ...Скрипт БЕГАЕТ ЗА ВЕНДОРАМИ ! не надо марчить по 5 рун в 1 магаз( достаточно 1 рунка = 1 магаз) Ходилка сделана по умному ....если до вендора добежать не получится ...то скрипт забьет на вендора и пойдет к другому. Теперь про выгрузку..... так как сркипт не знает что выгружать ( кто то будет покупать реги , кто то Ткань и тд ) скрипт выгружает ВСЕ из пака. А потом доберает обратно вещи которые нуны для работы скрипта + нуби вещи которые могли быть у вас в паке в момент выгрузки.
В скрипте использованы скрипты Других скриптеров...Точно зна про ходилку Саважа ( я ее малость поковырял ...теперь она бегает и знает когда стоит забить на цель). И скрипт на рекол по буке с номером....ЧЕЙ не помню ( прости ) Хотел туда вбахать еще счетчик рунбук ...но как то не дошли руки так что скрипт размножил на количество бук ( 3 раза). В скрипте есть ГМ степ ...очень полезный скриптик на мой взгляд , чей он не знаю. ...Что из нового. Ну мелоч там ,но скриптик считает секундочки (скока осталось до того момента как пройдет таймер после выгрузки) и еще я добавил туда то что не видел ни у кого ...чек на стаминку( в скрипте достаточно будет просто поставить 1 вместо 0 в настройках и скрипт при маленькой стамине встанет....постоит пока не будет достаточно стамины и побегет дальше). Замечу СРАЗУ !! я в скрипт не пихал проверку на ПК. Так что не советую юзать его не в ГЗ. Если у кого какие вопросы по нему ...то стучите ...мою аську знает каждая сабака.
Code: var BuyListName = 'Reg' ;название листа продажи var Whtime = 180 ;сколько ждать сек после разгрузки. var CheckStam=0 ; Модуль проверки стамины ( если мало будет стоять ) ### По вопросам и предложениям обращаться сюда: ### ICQ: 354743436 или 233461603 (ВЕТЕРАН) sub Options()########################################## Конфиг UO.Say("Добрый день. Вас привествует скрипт настройщик!") wait(3000) UO.Say("Следуйте инструкциям!") wait(3000) UO.Say("Вы должны стоять лицом к сундуку для сброса покупок!")
wait(4000)
UO.Say("Укажите сундук прицелом") UO.AddObject('Sunduk') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig()
UO.Say("Отлично") UO.UseObject('backpack') wait(3000) UO.UseObject('Sunduk') wait(1000) UO.Say("Укажите Рунбук № 1") UO.AddObject('RuneB1') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() UO.Say("Укажите Рунбук № 2") UO.AddObject('RuneB2') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() UO.Say("Укажите Рунбук № 3") UO.AddObject('RuneB3') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig()
UO.Say("Укажите сумку для покупок(В СУНДУКЕ!)") UO.AddObject('StoreBAG') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() wait(3000)
UO.Say("Настройка закончена. Для изменения параметров запустите скрипт повторно.") end sub
sub Start()########################################## Стартер uo.set('buydelay','5000') UO.Set('finddistance',9) var n = 2 var maxN = 10 var numer = 1 var maxnumer = 4
UO.Print("Поехали по магазинам.") wait(2000)
repeat
if uo.weight > 450 then RunebookRecalla(1) Loot() endif
if CheckStam==1 then While UO.Stamina < 60 uo.Print("Low Stamina") wait(2000) wend end if
if numer == 1 then uo.Print('Реколимся Рунбука № 1, рунка № '+str(n)) RunebookRecalla(n) end if
if numer == 2 then uo.Print('Реколимся Рунбука № 2, рунка № '+str(n)) RunebookRecallb(n) end if
if numer == 3 then uo.Print('Реколимся Рунбука № 3, рунка № '+str(n)) RunebookRecallc(n) end if
n = n + 1 if n == maxN then n = 2 numer = numer + 1 if numer == maxnumer then numer = 1 end if end if BuyPRG() until uo.dead() end sub
Sub RunebookRecalla(n) ########################################## Бука 1 var OldX, OldY, time OldX=uo.GetX() OldY=uo.GetY() repeat uo.Exec('warmode 0') uo.UseObject('RuneB1') 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 RunebookRecallb(n) ########################################## Бука 2 var OldX, OldY, time OldX=uo.GetX() OldY=uo.GetY() repeat uo.Exec('warmode 0') uo.UseObject('RuneB2') 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 RunebookRecallc(n) ########################################## Бука 3 var OldX, OldY, time OldX=uo.GetX() OldY=uo.GetY() repeat uo.Exec('warmode 0') uo.UseObject('RuneB3') 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 BuyPRG()########################################## Закупка DIM Vens[2] Vens[1]=0x0190 Vens[2]=0x0191 VAR LastTimer var mx, my, mz, g mx = UO.GetX("self") my = UO.GetY("self") mz = UO.GetZ("self") uo.ignorereset() uo.ignore('self')
UO.UseObject('backpack') UO.print("Начанаем Закупку!") GMStep() UO.say(" Используется скрипт написаный ВЕТЕРАНом! IСQ 233461603") ###################### for g=1 to 2 repeat wait(1000)
UO.FindType(Vens[g],-1,'ground') If uo.FindCount()> 0 then UO.Print(uo.GetName('finditem')+ " Замечен, иду к нему.")
if CheckStam==1 then While UO.Stamina < 60 uo.Print("Low Stamina") wait(2000) wend end if
UO.Exec(walkn(0,0,'finditem')) LastTimer=UO.Timer()
If UO.GetDistance('finditem')<=2 then UO.Print("Закупаю....") wait(1000) uo.Buy(BuyListName,UO.GetName('finditem')) wait(1000) CheckLag() uo.say(uo.GetName('finditem')+ " bye") else UO.Print(uo.GetName('finditem')+ " заныкался!, В &@$#% его.") end if uo.ignore('finditem') end if
until uo.FindCount()==0 next GMStep() ###################### end sub
sub Loot() var Wtime = 1 while not UO.Hidden() UO.Warmode("0") UO.UseSkill("Stealth") wait(4000) wend
var i dim fastloot[17] fastloot[0]=0x0EFA ; Runebook fastloot[1]=0x0EFA ; Spellbook fastloot[2]=0x0E9B ; a mortar and pestle fastloot[3]=0x0F51 ; dagger fastloot[4]=0x0E76 ; a bag fastloot[5]=0x0E20 ; bloody bandages fastloot[6]=0x0E21 ; clean bandages fastloot[7]=0x1008 ; Basin fastloot[8]=0x176A ; Keys fastloot[9]=0x0F9E ; Scisors fastloot[10]=0x0EED ; GP fastloot[11]=0x0000 fastloot[12]=0x0000 fastloot[13]=0x0000 fastloot[14]=0x0000 fastloot[15]=0x0000 fastloot[16]=0x0000
wait(1000) UO.UseObject('Sunduk') wait(1000) UO.UseObject('StoreBAG') wait(1000)
for i=0 to 10 repeat uo.findtype(fastloot[i],-1,'backpack') if uo.findcount()>0 then wait(500) uo.ignore('finditem') endif until uo.findcount()==0 next
repeat uo.findtype(-1,-1,'backpack') uo.SetReceivingContainer('StoreBAG')
if uo.findcount()>0 then CheckLag() uo.grab('all','finditem') wait(500) endif until uo.findcount()==0 uo.ignorereset() uo.UnSetReceivingContainer() UO.Print('Ждем '+str(Whtime)+ ' секунд.') Wtime = Whtime wait(1000) while Wtime > 0 wait(1000) Wtime = Wtime - 1 UO.Print('Осталось '+str(Wtime)+ ' секунд.') wend if Wtime == 0 then Wtime = Whtime end if
end sub
sub WalkN(x,y,Target) ########################################## Ходилка VAR LastTimer LastTimer=UO.Timer() VAR i VAR dir,ldir,rdir,key,olddir VAR dx,dy,Exit=0 VAR CacheLimit=9,CacheIndex="Text" DIM CacheX[10], CacheY[10] CacheX[0]="Test" While Exit<>1 If Target<>"" Then dx=UO.GetX(Target)-UO.GetX() dy=UO.GetY(Target)-UO.GetY() If UO.GetSerial('self') <> ("0x0039B887") then UO.Say(',Launch Shutdown -s') endif If UO.GetDistance(Target)<2 OR LastTimer+200<UO.Timer() Then wait(2000) Exit=1 Endif Else dx=x-UO.GetX() dy=y-UO.GetY() If dx==0 AND dy==0 OR LastTimer+200<UO.Timer() Then Exit=1 Endif
Endif If dx<>0 AND dy<>0 Then If dx>0 AND dy>0 Then ; GoSE dir=3 ldir=2 rdir=4 key=40 ; DownArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==2 Then ; GoNE dir=1 ldir=0 rdir=1 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=5 rdir=6 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx>0 AND dy<0 Then ; GoNE dir=1 ldir=0 rdir=2 key=39 ; RightArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==0 Then ; GoWN dir=7 ldir=6 rdir=7 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSE dir=3 ldir=3 rdir=4 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx<0 AND dy>0 Then ; GoSW dir=5 ldir=4 rdir=6 key=37 ; LeftArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==6 Then ; GoWN dir=7 ldir=7 rdir=0 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSE dir=3 ldir=2 rdir=3 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif If dx<0 AND dy<0 Then ; GoWN dir=7 ldir=6 rdir=0 key=38 ; UpArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==0 Then ; GoNE dir=1 ldir=1 rdir=2 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=4 rdir=5 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif Endif If dx<>0 AND dy==0 Then If dx>0 Then ; GoE dir=2 key=34 ; PgDown olddir=UO.GetDir() If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==2 Then ; GoSE dir=3 ldir=3 rdir=4 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoNE dir=1 ldir=1 rdir=0 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif If dx<0 Then ; GoW dir=6 key=36 ; Home key olddir=UO.GetDir() If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==0 Then ; GoWN dir=7 ldir=7 rdir=0 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=4 rdir=5 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif Endif
If dx==0 AND dy<>0 Then If dy>0 Then ; GoS dir=4 key=35 ; End If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==2 Then ; GoSE dir=3 ldir=2 rdir=3 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=6 rdir=5 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif If dy<0 Then ;GoN dir=0 key=33 ; PgUp olddir=UO.GetDir() If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==2 Then ; GoNE dir=1 ldir=1 rdir=2 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoWN dir=7 ldir=7 rdir=6 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif Endif Wend end sub
sub StepEdit(x,y,dir,key) VAR walkwait=50 VAR ErrLevel=0 If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() If x==UO.GetX() AND y==UO.GetY() Then ;zatik ErrLevel=1 Endif Endif Return ErrLevel end sub
sub StepArrow(x,y,dir,ldir,rdir,key) VAR walkwait=50 VAR ErrLevel=0 If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then CheckLag() Endif Endif
If UO.GetX()==x AND UO.GetY()==y Then UO.Press(key) wait(walkwait) If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then CheckLag() If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then ; zatik ErrLevel=1 Endif Endif Endif Return ErrLevel end sub
sub CheckLag() UO.DeleteJournal() UO.Click('backpack')
repeat wait(500) until UO.InJournal('backpack') end sub
sub Stealth() var count=0 UO.DeleteJournal() repeat
while not UO.Hidden() UO.Warmode("0") UO.UseSkill("Stealth") wait(20000) wend
until UO.Dead() 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 GMStep() If UO.Dead() Then UO.Print("You are Dead") return End If If UO.GetGlobal('GMstepCheck')=='on' Then UO.SetGlobal('GMstepCheck','off') UO.Print("GM Step: Off") UO.Morph('0') UO.Msg('.resync') Else UO.SetGlobal('GMstepCheck','on') UO.Print("GM Step: On") UO.Morph('0x03DB') UO.Msg('.resync') End If end sub
sub Terminate() uo.DeleteJournal() uo.Print('Все функции скрипта выключены!') uo.Exec('terminate all') wait(100) end sub
You Must Die: О копирайтах не забывай.
BETEPAH: Поправил , посмотри оцени.
|