Page 1 of 1

Скупка вещей

Posted: 2005-03-27 17:28:05
by Night Wolf
Поможите люди сами мы не местные ...

А теперь ближе к делу. Кто-нибудь может скинуть скрипт на скупку вещей. Шард ДрВ. Под вещью понимается как регов или материи, которые складываются в одну кучку, так и бланки мапы для картографии.

З.Ы. Если есть скрипт просто на скупку регов и сброс их в сундук при достижении определенного веса, то тоже не откажусь :roll:

Заранее благодарен.


Попробовал настроить этот скрипт, но он прилетает к вендору и просто стоит.

Code: Select all

###################################
# Revenant \ Antares 
# auo.ru 
################################### 
  
var res 

sub main() 
DIM rune[6] 
DIM ven[6] 
var i, n 
rune[1]='0x40DA894A' ; 
rune[2]='0x40F0A772' ; 
rune[3]='0x40F083BE' ; 
rune[4]='0x40F0A773' ; 
rune[5]='0x40F083BC' ; 
rune[6]='0x40F0A771' ; 

ven[1]='0x00FE4E27' ; 
ven[2]='0x00FE5702' ; 
ven[3]='0x00FE37AC' ; 
ven[4]='0x00FE0A83' 
ven[5]='0x00F7F766' 
ven[6]='0x00FE83E0' 

repeat 
for i=1 to 6 
recall(i,rune) 
WalkN(0,0,ven[i]) 
UO.buy('sp','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<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 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  

Гы =)))

Posted: 2005-03-27 22:07:15
by Badb
В инжекте, в закладке "Main" есть такая кнопочка, "Buy/Sell" называется.

Re: Гы =)))

Posted: 2005-03-27 22:38:20
by SAMURAI
Badb wrote:В инжекте, в закладке "Main" есть такая кнопочка, "Buy/Sell" называется.
ТУТ я задал подобный вопрос и у меня было всё насторено, таже трабла. У других он скупает у первого вендра и дальше ступор.
Кому не лень просу покопатся :roll:

Posted: 2005-03-28 06:04:16
by Edred
Расставь по скрипту команды UO.Print( '1' ) - цифру меняй, расставь через каждые 2-3 строки, потом запусти. Следи на какой цифре остановится. Потом уже в нужном месте натыркай команд после каждой строки, опять запусти. Когда определишься на каком месте скрипт встает - пости сюда.

Re: Гы =)))

Posted: 2005-03-28 17:30:35
by Night Wolf
Badb wrote:В инжекте, в закладке "Main" есть такая кнопочка, "Buy/Sell" называется.
Это уже пройденный этап. Хочется чего-нибудь новенькое. В идеале сделать скрипт такой, чтобы он сначала слетал за регами, потом за материей и за бланками для картографии :)

Posted: 2005-03-28 17:50:26
by Night Wolf
и еще ... в этом скрипте чар не выкладывает реги в сундук=> его одного надолго не оставишь :(

Posted: 2005-03-28 18:31:46
by SAMURAI
Edred wrote:Расставь по скрипту команды UO.Print( '1' ) - цифру меняй, расставь через каждые 2-3 строки, потом запусти. Следи на какой цифре остановится. Потом уже в нужном месте натыркай команд после каждой строки, опять запусти. Когда определишься на каком месте скрипт встает - пости сюда.
Вот что я нашёл

Code: Select all

UO.Click(rune[i]) 
UO.Print( '1' )
repeat 
UO.Print( '2' )
wait(500) 
UO.Print( '3' )
until UO.InJournal('jumps left') 
UO.Print( '4' )
takenum() 
UO.Print( '5' )
if res < 10 then ; ??????? ??????? ?? ???? 
UO.Print( '6' )
После того как он прилетает, подходит к вендору и стоит, зацикливается повторение 3, 2, 3, 2, 3, 2 и тд...

Posted: 2005-03-28 22:06:46
by Darkus
а ты попробуй вместо 1 2 3 написать buy =)

Posted: 2005-03-28 22:58:50
by SAMURAI
Darkus wrote:а ты попробуй вместо 1 2 3 написать buy =)
Эмм сам понял что сказал? (с) :?
UO.Print - читайте внимательнее уважаемый :lol:

Posted: 2005-03-30 20:30:58
by Night Wolf
Мдя ... колличество просмотров увеличивается, а помочь никто не может :cry:

Posted: 2005-03-30 21:51:22
by $oK0JI
народ а у меня проблема другая он реколится затем идёт к вендора и пока не зайдёт "в него" не покупает соответственно после первого вендора стамина уменьшается и он не может зайти во второго

Posted: 2005-03-30 22:00:40
by Sfagnum
$oK0JI wrote:народ а у меня проблема другая он реколится затем идёт к вендора и пока не зайдёт "в него" не покупает соответственно после первого вендора стамина уменьшается и он не может зайти во второго
не жадничай ;)

Posted: 2005-03-30 22:03:02
by $oK0JI
Sfagnum wrote:
$oK0JI wrote:народ а у меня проблема другая он реколится затем идёт к вендора и пока не зайдёт "в него" не покупает соответственно после первого вендора стамина уменьшается и он не может зайти во второго
не жадничай ;)
:cry: нш-а хоттца по 3гп :D

Posted: 2005-03-30 22:04:19
by $oK0JI
Народ ну помогите что надо подправить что бы он покупал РЯДОМ с вендором а не В НЁМ??? :oops: :roll: :?: :?: :?:

Posted: 2005-03-30 23:41:27
by $oK0JI
в морге и то повеселее :evil:

Posted: 2005-03-31 08:10:31
by Sfagnum
$oK0JI wrote: :cry: нш-а хоттца по 3гп :D
в смысле не набирай до перегруза ;)

Posted: 2005-03-31 11:20:16
by $oK0JI
Не ну реально помогите народ как сделать так что бы он покупал Р-Я-Д-О-М пожааааллуууйййссссттоооо :?: :cry:

Posted: 2005-04-02 17:53:18
by CErebrus
просто делай поиск вендоров по типу на земле и если нашел говори buy а в макросе на подход к нему в тех строках поставь -1 к координатам Х и У чтобы он не вставал на вендора

Posted: 2005-04-02 19:43:29
by Sfagnum
CErebrus wrote:просто делай поиск вендоров по типу на земле и если нашел говори buy а в макросе на подход к нему в тех строках поставь -1 к координатам Х и У чтобы он не вставал на вендора
и моли бога чтоб он не портнулся с того места слишком далеко...