Люди добрые помогите плз,замучался!Искал ни где не нашел!Чтоб чар доставал руны из книги,реколился,ложил обратно и сли заряды кончаются маркал!Есть скрипт ВЕТЕРАНА,но он нехочет работать,но он по рунам!
ВОТ СКРИПТ
Code: #################################### #### Скрипт на торговлю 2.2 ######## #################################### Var rune = '0x1F14' # тип рунок #################################### # ОГРОМНАЯ ПРОЗЬБА ШАПКУ НЕ ВЫРЕЗАТЬ ! НЕ ВСЕ ШАРЮТ В СКРИПТАХ И МОГУТ ПОНЯТЬ ЧТО НАДА ЗАПУСКАТЬ!. ##################################################################### # Запускается Сначала скрипт options ,этот скрипт запомнит все что вам нужно для скрипта. # Потом постоянно скрипт Starter. Если надо что то поменять то запустите Options еще раз. # Встаньте "дома" перед сундуком для покупок. В сундуке должна быть сумка куда скидывать покупки. # В паке - сумка с рунками по магазинам( достаточно по 1 руне в магаз ), сумка пустая , сумка с бланк рунками, # Замарченую рунку с марком у сундука ( в упор !). Ну и мешочек с регами для рекола и для марка.рмально. # Скрипт летает по рункам из сумки с рунками , если мало зарядов перемарчивает рунки. При весе в 450 стоунов, # летит домой и выгружается. ВЫгрузка происходит автоматом ВСЕГО что в паке, потом добор из масива обратно вещей. # Для безопастности имейте в паке рунбук с рунками на всякий случай и Кейринг с ключами. А то вдруг убьют. # Скрипт написан ВЕТЕРАНом. # Не мои модули - ходилка , система речарджа рун, система рекола. # # ################## ПЕРЕМЕННЫЕ которые нужно править################## ##################################################################### var BuyListName = 'Reg' ;название листа продажи (щас Reg) var Whtime = 180 ;сколько ждать сек после разгрузки. (ждет 180 сек) var CheckStam=0 ; Модуль проверки стамины ( если мало будет стоять ) var RuneB, RuneB2, RuneBag, RuneH, StoreBAG, Nrune ### По вопросам и предложениям обращаться сюда: ### ICQ: 233461603 (ВЕТЕРАН) ##################################################################### # 2007-2009 #
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("Укажите Сумку с Замарчеными рунками в вашем вещь-мешке.") UO.AddObject('RuneB') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig()
UO.Say("Укажите ПУСТУЮ Сумку в паке (Для переброса рунок).") UO.AddObject('RuneB2') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig()
UO.Say("Укажите Сумку в паке с кучей пустых рунок.") UO.AddObject('RuneBag') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig()
UO.Say("Укажите Рунку ДОМ( положите ее отдельно в пак ).") UO.AddObject('RuneH') 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)
UO.Print("Поехали по магазинам.") wait(2000)
repeat uo.findtype('rune','-1','RuneB')
while uo.FindCount()
uo.findtype('rune','-1','RuneB')
Nrune=uo.GetSerial('finditem')
RecallRune(Nrune) ContCharges() BuyPRG()
#uo.moveitem('Nrune','-1','RuneB2')
UO.MoveItem(Nrune, 0, RuneB2)
Nrune = 0
if uo.weight > 450 then RecallRune(RuneH) ContChargesH() Loot() endif
uo.findtype('rune','-1','RuneB')
wend
uo.findtype('rune','-1','RuneB2') wait(100) while uo.findcount()>0 uo.MoveItem('finditem',-1,'RuneB') wait(1000) uo.findtype('rune','-1','RuneB') wait(100) wend
until uo.dead()
end sub
Sub ContCharges() var rID uo.Print("проверка количества зарядов...") wait(1000) uo.DeleteJournal() uo.click('Nrune') wait(2000) if Uo.Injournal("(2 charges)") OR Uo.Injournal("(1 charges)") then rID = uo.GetSerial('Nrune') Mark(rID,0) end if end sub
Sub ContChargesH() var rID uo.Print("проверка количества зарядов...") wait(1000) uo.DeleteJournal() uo.click('RuneH') wait(2000) if Uo.Injournal("(2 charges)") OR Uo.Injournal("(1 charges)") then rID = uo.GetSerial('RuneH') Mark(rID,1) end if end sub
Sub Mark(RuneID,Place)
var mark_key = 0
uo.Print("Выбрасываем старую рунку... ") uo.drophere(RuneID)
Uo.UseObject(RuneBag)
wait(500) uo.findtype(rune,'-1',RuneBag) if uo.FindCount() then uo.moveitem("finditem",'-1','backpack') wait(700)
else
var Emsg = "Нет пустых рунок!!" FatalError(Emsg) end if
while mark_key == 0
If Uo.Mana < 50 then while Uo.Mana < Uo.Int Uo.Useskill("Meditation") wait(5000) wend endif Uo.DeleteJournal() wait(500) Uo.Cast("Mark",'finditem') wait(10000) mark_key = 1 if Uo.Injournal("spell") then mark_key = 0 endif wend
mark_key = 0
Uo.WaitTargetObject('finditem')
if Place == 0 then
uo.Exec('addobject Nrune') wait(1500)
else
uo.Exec('addobject RuneH')
wait(1500) endif end sub
################################################### Sub FatalError(Emsg) while not uo.Dead() uo.Print("Продолжение работы скрипта невозможно") uo.Print("Причина : " + Emsg) wait(5000) wend end sub
Sub RecallRune(nowrune) wait(1000) uo.Print("улетаем по руне") var oldX,oldY oldX = Uo.GetX() oldY = Uo.GetY() Uo.Useskill("Meditation") wait(5000) Repeat If Uo.Mana < 30 then while Uo.Mana < Uo.Int Uo.Useskill("Meditation") wait(5000) wend endif Uo.Cast("Recall",nowrune) wait(8000) Until oldX<>UO.GetX() AND oldY<>UO.GetY() 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("Начанаем Закупку!")
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
###################### 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.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
|