Yoko

All sides of Injection
It is currently 2025-12-21 20:30:39

All times are UTC+02:00




Post new topic  Reply to topic  [ 1 post ] 
Author Message
PostPosted: 2008-03-02 16:49:31 
Offline

Joined: 2008-01-23 22:33:11
Posts: 8
Так столкнулся с проблемой , прилитает по 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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 1 post ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited