| Yoko http://forum.yoko.com.ua/ |
|
| Begging ( поправте ) http://forum.yoko.com.ua/viewtopic.php?f=17&t=13326 |
Page 1 of 1 |
| Author: | Toxa_ [ 2008-03-02 16:49:31 ] |
| Post subject: | Begging ( поправте ) |
Так столкнулся с проблемой , прилитает по 1 рунке и не делает бегинг и не покупает реги! Но до этого работало когда было 1 одна руна прописана прописал 12 и 12 вендоров, в итоге он летит и не чего не делает ! помогите где я ошибся. sub main() var maxRune = 12; # Размерность масива rune var maxVendors = 12; # Размерность масива vendors var maxRegs = 1; # Кол-ва покупаемых регов var res; DIM rune[12] DIM ven[12] DIM RegsToBuy[1] #Типы регов которые вы покупаете для выкладывания в банк var useAll = true; # Если не надо отменять никакие руны поставте true var maxNoBuy = 2; # Размерность масива NoBuy DIM NoBuy[10] #Масив для пометки рун по которым ненужно реколится var i, n, j, m, recallNext, h, amoun var runeBank = '0x4013D73A'; rune[1]='0x40107D88' rune[2]='0x40107D8C' rune[3]='0x40107D89' rune[4]='0x40107D87' rune[5]='0x40107D8B' rune[6]='0x40107D8A' rune[7]='0x40107D86' rune[8]='0x401080AF' rune[9]='0x401080AD' rune[10]='0x401080B2' rune[11]='0x401080AE' rune[12]='0x401080B4' ven[1]='0x0003B8E7' #Vesper ven[2]='0x0003F021' #Vesper ven[3]='0x00038D3A' #Vesper ven[4]='0x0003AE16' #Vesper ven[5]='0x0003FB76' #Vesper ven[6]='0x0004173E' #Vesper ven[7]='0x0003FB9A' #Vesper ven[8]='0x0003D147' #Vesper ven[9]='0x0003ED7D' #Vesper ven[10]='0x0003D8E0' #Vesper ven[11]='0x00035041' #Vesper ven[12]='0x0003E9A3' #Vesper NoBuy[1] = 6; NoBuy[2] = 7; RegsToBuy[1] = '0x0F88' repeat for i=1 to maxRune recallNext = true; if useAll == false then for m = 1 to maxNoBuy if i == NoBuy[m] then recallNext = false; endif next endif if recallNext == true then if UO.Weight>300 then recall(-1,runeBank) UO.Say("bank guards") wait(600); for h=1 to maxRegs uo.findtype(RegsToBuy[h],-1,"Bpack") amoun = uo.GetQuantity("finditem")-30 if amoun > 0 then uo.moveitem("finditem",amoun,"lastcontainer") endif wait(600) next endif recall(i,rune) for j=1 to GetAmountVendors( ven[i] ) uo.Print(STR(GetVendor( ven[i], j ))) WalkN(0,0,GetVendor( ven[i], j )) UO.WaitTargetObject(ven[i]) UO.Useskill('Begging') wait(3000) UO.buy('test','vendor') wait(500) UO.Say( uo.GetName(GetVendor( ven[i], j )) + " buy") UO.DeleteJournal() if UO.BM<30 || UO.BP<30 || UO.MR<30 then BuyRegs( uo.GetName(GetVendor( ven[i], j )) ) end if next UO.Click(rune[i]) repeat wait(500) until UO.InJournal('Recalls Remaining') res = takenum() if res < 10 then Mark(i,rune) endif med() endif next waitNext(); until UO.Dead() end sub sub BuyRegs( VendorName ) if UO.BM<30 then UO.buy('bm','vendor') wait(500) UO.Say( VendorName + " buy") UO.DeleteJournal() end if if UO.BP<30 then UO.buy('bp','vendor') wait(500) UO.Say( VendorName + " buy") UO.DeleteJournal() end if if UO.MR<30 then UO.buy('mr','vendor') wait(500) UO.Say( VendorName + " buy") UO.DeleteJournal() end if end sub sub GetVendor( str, j ) var lstr, ven, venID, i if GetAmountVendors( str ) < j then j = GetAmountVendors( str ); endif lstr = len( str ) ven = 1; venID = '' for i = 0 to lstr if str[i]==',' then if ven == j then return venID else venID = '' ven = ven + 1 endif else venID = venID+str[i]; endif next return venID end sub sub waitNext() var i; for i = 0 to 80 uo.Say("guards Bank") wait(4000) next end sub sub GetAmountVendors( str ) var j, num, i j = len( str ) - 1 num=1; for i = 0 to j if str[i]==',' then num=num+1 endif next return num; end sub sub takenum() var ns, j, i, n var str, num num='' n=uo.InJournal('Recalls Remaining')-1 str=uo.Journal(n) UO.Print(str) j = len( str ) - 1 for i = 0 to j if str[i]<>' ' then num=num+str[i] else return val(num) endif next return val(num) end sub sub Recall(i,rune) var b if i <> -1 then uo.print('Recoll Rune '+str(i)) endif for b=1 to 10 if i == -1 then uo.deletejournal() uo.waittargetobject(rune) uo.cast('Recall',rune) if WaitForRecall()==1 then return 1 end if else uo.deletejournal() uo.waittargetobject(rune[i]) uo.cast('Recall',rune[i]) if WaitForRecall()==1 then return 1 end if end if next return 0 end sub sub Mark(i,rune) uo.waittargetobject(rune[i]) uo.cast('Mark',rune[i]) end sub sub WaitForRecall() var Text1="cliloc# 0xAB68" var mess='',lastX=uo.getX(),lastY=uo.getY() for var v=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 med() VAR LastTimer while UO.Mana<UO.Int LastTimer=UO.Timer() UO.UseSkill('Meditation') repeat wait(100) until UO.InJournal("You are") OR UO.InJournal("You lose") OR UO.Timer()>LastTimer+200 UO.DeleteJournal() wait(200) wend 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! # serial - Serial of target or "" - string # walkwait - delay after keypress # Example: # WalkN(2080,2113,'') - go to coordinates # WalkN(0,0,'0x12345678') - go to target position #-------------------------------------------------------------- sub WalkN(x,y,Target) VAR i,StepSucess VAR dx,dy,Exit=0 While Exit<>1 If Target<>"" Then dx=UO.GetX(Target)-UO.GetX() dy=UO.GetY(Target)-UO.GetY() 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 Target<>"" AND uo.GetDistance(Target)<=3 then Exit=1 endif If dx<>0 AND dy<>0 Then If dx>0 AND dy>0 Then StepSucess=Go(3,40,300) ;SE - DownArrow If StepSucess==-1 Then StepSucess=Go(7,38,300) ;WN - UpArrow StepSucess=Go(1,39,300) ;NE - RightArrow If StepSucess==-1 Then StepSucess=Go(5,37,300) ;SW - LeftArrow Endif Endif Endif If dx>0 AND dy<0 Then StepSucess=Go(1,39,300) ;NE - RightArrow If StepSucess==-1 Then StepSucess=Go(5,37,300) ;SW - LeftArrow StepSucess=Go(3,40,300) ;SE - DownArrow If StepSucess==-1 Then StepSucess=Go(7,38,300) ;WN - UpArrow Endif Endif Endif If dx<0 AND dy>0 Then StepSucess=Go(5,37,300) ;SW - LeftArrow If StepSucess==-1 Then StepSucess=Go(1,39,300) ;NE - RightArrow StepSucess=Go(7,38,300) ;WN - UpArrow If StepSucess==-1 Then StepSucess=Go(3,40,300) ;SE - DownArrow Endif Endif Endif If dx<0 AND dy<0 Then StepSucess=Go(7,38,300) ;WN - UpArrow If StepSucess==-1 Then StepSucess=Go(3,40,300) ;SE - DownArrow StepSucess=Go(5,37,300) ;SW - LeftArrow If StepSucess==-1 Then StepSucess=Go(1,39,300) ;NE - RightArrow Endif Endif Endif Endif If dx<>0 AND dy==0 Then If dx>0 Then StepSucess=Go(2,34,300) ;E - PgDown If StepSucess==-1 Then StepSucess=Go(3,40,300) ;SE - DownArrow If StepSucess==-1 Then StepSucess=Go(1,39,300) ;NE - RightArrow Endif StepSucess=Go(2,34,300) ;E - PgDown Endif Endif If dx<0 Then StepSucess=Go(6,36,300) ;W - Home If StepSucess==-1 Then StepSucess=Go(7,38,300) ;WN - UpArrow If StepSucess==-1 Then StepSucess=Go(5,37,300) ;SW - LeftArrow Endif StepSucess=Go(6,36,300) ;W - Home Endif Endif Endif If dx==0 AND dy<>0 Then If dy>0 Then StepSucess=Go(4,35,300) ;S - End If StepSucess==-1 Then StepSucess=Go(3,40,300) ;SE - DownArrow If StepSucess==-1 Then StepSucess=Go(5,37,300) ;SW - LeftArrow Endif StepSucess=Go(4,35,300) ;S - End Endif Endif If dy<0 Then StepSucess=Go(0,33,300) ;N - PgUp If StepSucess==-1 Then StepSucess=Go(1,39,300) ;NE - RightArrow If StepSucess==-1 Then StepSucess=Go(7,38,300) ;WN - UpArrow Endif StepSucess=Go(0,33,300) ;N - PgUp Endif Endif Endif Wend end sub sub Go(dir,key,walkwait) VAR x,y, OldDir x=UO.GetX() y=UO.GetY() OldDir=UO.GetDir() 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() Endif If x==UO.GetX() AND y==UO.GetY() AND OldDir<>UO.GetDir() Then UO.Press(key) wait(walkwait) Endif If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If x==UO.GetX() AND y==UO.GetY() Then UO.Print("Zasada!") return -1 Else return 1 Endif end sub sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(500) until UO.InJournal('cliloc# 0x9ED5') end sub |
|
| Page 1 of 1 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|