скупка товаров под дрв

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

скупка товаров под дрв

Post by uisran »

подскажите, почему скрипт не пашет(скупает только у первого вендора и стоит тупит) никак не могу разобраться..

Code: Select all

sub main() 
DIM rune[6] 
DIM ven[6] 
var i, n 
rune[1]='0x4005BFB5' ;moonglow  ╤■фр тэюё Єё  IP Ёєэ ъ тхэфюЁрь 
rune[2]='0x4005BFC5' ;moonglow2 6 °Єєъ, ьюцэю ёъюы№ъю єуюфэю 
rune[3]='0x4005BFAC' ;Jhelom яЁюёЄю тёх °хёЄхЁъш т ёъЁшяЄх 
rune[4]='0x4005C008' ;BucDen чрьхэ ■Єё  эр эєцэє■ ЎшЇЁє 
rune[5]='0x4005BFD6' ;Shakra 
rune[6]='0x4005BFD9' ;nuj 
;rune[7]='0x40FA2AB3'
;rune[8]='0x40F0053F'
;rune[9]='0x40E01B62'

ven[1]='0x003E160A' ; moonglow1 IP тхэфюЁют є ъюЄюЁ√ї ёъєяр■Єё  Ёхуш 
ven[2]='0x00403929' ; moonglow2
ven[3]='0x00371C8F' ; Jhelom
ven[4]='0x0013D20C' ; BucDen
ven[5]='0x0018EA59' ; Shakra
ven[6]='0x001E4E54' ;nuj
;ven[7]='0x00F7F78E'
;ven[8]='0x00FE4D67'
;ven[9]='0x00FE0F71'

repeat 
for i=1 to 6 
recall(i,rune) 
WalkN(0,0,ven[i]) 
UO.buy('regs','vendor') 
wait(500) 
UO.Say("bye") 
UO.DeleteJournal() 
UO.Click(rune[i]) 
repeat 
wait(500) 
until UO.InJournal('jumps left') 
takenum() 
if res < 10 then ; юёЄрЄюъ чрЁ фют эр Ёєэх 
Mark(i,rune) 
endif 
med() 
next 
until UO.Dead() 
end sub 
##################################### 
sub takenum() 
var ns, j, i, n 
var str, num 
num='' 
ns=0 
n=uo.InJournal('jumps left')-1 
str=uo.Journal(n) 
UO.Print(str) 
j = len( str ) - 1 
for i = 0 to j 

if ns==1 and str[i]<>' ' then 
num=num+str[i] 
else 
ns=0 
endif 
if str[i] =='(' then 
ns=1 
endif 
next 
res = val(num) 
UO.Print(str(res)) 
end sub 
##################################### 
sub Recall(i,rune) 
var b 
uo.print('Recoll Rune '+str(i)) 
for b=1 to 10 
uo.deletejournal() 
uo.waittargetobject(rune[i]) 
uo.cast('Recall',rune[i]) 
if WaitForRecall()==1 then 
return 1 
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=uo.getname()+": The spell fizzles." 
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<60 
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 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('Backpack') 
end sub
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Re: скупка товаров под дрв

Post by Sfagnum »

uisran wrote:подскажите, почему скрипт не пашет(скупает только у первого вендора и стоит тупит) никак не могу разобраться..
нууу... каков скрипт... того и делает :roll:

ЗЫ проще занового написать... быстрее чем этот выполоть...
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Re: скупка товаров под дрв

Post by uisran »

Sfagnum wrote:
uisran wrote:подскажите, почему скрипт не пашет(скупает только у первого вендора и стоит тупит) никак не могу разобраться..
нууу... каков скрипт... того и делает :roll:

ЗЫ проще занового написать... быстрее чем этот выполоть...
поможешь?
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Re: скупка товаров под дрв

Post by Sfagnum »

uisran wrote:поможешь?
если именно помочь - помогу, а если переписать - слушаю ваши предложения.
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Re: скупка товаров под дрв

Post by uisran »

Sfagnum wrote:
uisran wrote:поможешь?
если именно помочь - помогу, а если переписать - слушаю ваши предложения.
я не прошу написать мне скрипт, я прошу помочь, навыки программирования есть, мне лишь нужно обьяснить принцип действия, и немного подсказать с семантикой..
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Re: скупка товаров под дрв

Post by Sfagnum »

uisran wrote:я не прошу написать мне скрипт, я прошу помочь, навыки программирования есть, мне лишь нужно обьяснить принцип действия, и немного подсказать с семантикой..
я весь внимание.
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

Code: Select all

sub main() 
DIM rune[6] 
DIM ven[6] 
var i, n 
rune[1]='0x4005BFB5' ;moonglow  ╤■фр тэюё Єё  IP Ёєэ ъ тхэфюЁрь 
rune[2]='0x4005BFC5' ;moonglow2 6 °Єєъ, ьюцэю ёъюы№ъю єуюфэю 
rune[3]='0x4005BFAC' ;Jhelom яЁюёЄю тёх °хёЄхЁъш т ёъЁшяЄх 
rune[4]='0x4005C008' ;BucDen чрьхэ ■Єё  эр эєцэє■ ЎшЇЁє 
rune[5]='0x4005BFD6' ;Shakra 
rune[6]='0x4005BFD9' ;nuj 
;rune[7]='0x40FA2AB3' 
;rune[8]='0x40F0053F' 
;rune[9]='0x40E01B62' 

ven[1]='0x003E160A' ; moonglow1 IP тхэфюЁют є ъюЄюЁ√ї ёъєяр■Єё  Ёхуш 
ven[2]='0x00403929' ; moonglow2 
ven[3]='0x00371C8F' ; Jhelom 
ven[4]='0x0013D20C' ; BucDen 
ven[5]='0x0018EA59' ; Shakra 
ven[6]='0x001E4E54' ;nuj 
;ven[7]='0x00F7F78E' 
;ven[8]='0x00FE4D67' 
;ven[9]='0x00FE0F71' 

repeat 
for i=1 to 6 
recalld(rune[i]) 
WalkN(0,0,ven[i]) 
UO.buy('regs','vendor') 
wait(500) 
UO.Say("bye") 
UO.DeleteJournal() 
UO.Click(rune[i]) 
repeat 
wait(500) 
until UO.InJournal('jumps left') 
takenum() 
if res < 10 then ; юёЄрЄюъ чрЁ фют эр Ёєэх 
Markd(rune[i]) 
endif 
med() 
next 
until UO.Dead() 
end sub 
##################################### 
sub takenum() 
var ns, j, i, n 
var str, num 
num='' 
ns=0 
n=uo.InJournal('jumps left')-1 
str=uo.Journal(n) 
UO.Print(str) 
j = len( str ) - 1 
for i = 0 to j 

if ns==1 and str[i]<>' ' then 
num=num+str[i] 
else 
ns=0 
endif 
if str[i] =='(' then 
ns=1 
endif 
next 
res = val(num) 
UO.Print(str(res)) 
end sub 
##################################### 
sub Recalld(m) 
var b 
uo.print('Recoll Rune '+str(i)) 
for b=1 to 10 
uo.deletejournal() 
uo.waittargetobject(m) 
uo.cast('Recall',m) 
if WaitForRecall()==1 then 
return 1 
end if 
next 
return 0 
end sub 
##################################### 
sub Markd(k) 
uo.waittargetobject(k) 
uo.cast('Mark',k) 
end sub 
##################################### 
sub WaitForRecall() 
var Text1=uo.getname()+": The spell fizzles." 
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<60 
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 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('Backpack') 
end sub
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Post by uisran »

Question wrote:
сначала ругается на переменную res(ну эт понятно ее там вообще нет),добавляем, затем на переменную i в 73 строке(вот с этим уже не справился т.к. добавляя ее появляется runtime error строкой ниже)
и что есть sub Recalld(m)

а вообще, все тоже самое... покупает только у первого вендора..
^JokeR^
Posts: 9
Joined: 2005-01-21 23:48:55

Post by ^JokeR^ »

...
Last edited by ^JokeR^ on 2006-04-05 15:48:15, edited 1 time in total.
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

он тут на форуме есть
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Post by uisran »

Question wrote:он тут на форуме есть
не нашел ((
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Post by uisran »

сенк, но не совсем то что нужно((
Post Reply