Yoko

All sides of Injection
It is currently 2024-03-28 22:37:56

All times are UTC+02:00




Post new topic  Reply to topic  [ 1 post ] 
Author Message
PostPosted: 2011-06-13 19:52:47 
Offline

Joined: 2011-06-13 19:41:44
Posts: 6
вот нашел у вас скрипт который мне в принципе подходит.
НО на Абисе нельзя марчить руны прям в шахтах...поэтому можете сюда пожалуйста воткнуть функцию рекола по 2-3 рунам из банке+ доход до самой пещеры при рунах прямо напротив входа+ рекол домой\разгруз в банк. т.к. какие пещеры и куда идти вы не знаете - лучше обьясните мне как сюда воткнуть ходьбу по прямой сразу после рекола...)
тоесть в итоге должно получится что-то типа "рекол по руне из банка к шахте - доход до пещеры - весь этот скрипт хождения и копания - рекол домой и разгрузка"
заранее благодарен




# 1) Запускаем функцию sub record_path()
# 2) Медленно при помощи клавиатуры ходим по желаемому маршруту копания
# 3) При прохождении всего маршрута (желательно вернуться на исходную позицию... И желательно запомнить ее расположение) пишем просто слово stop
# 4) Появится окошко ТЕКСТ. Там вы увидите набор примерно такого вида 9s9d8e4k6g
# 5) Копируем его и вставляем в кавычки в поля var path="ТУТ ВСТАВИТЬ" в функции main().
# 6) В функции sub record_path() поле var path="" оставить без изменений (пустым)
# 7) В обжект тайпах прописать тип pickaxe на кирку. Либо, у кого дойдут руки, отредактировать этот скрипт и вставить запрос на кирку прямо в клиенте (прим. ВЕТЕРАН).
# 8) Скрипт писал не я.
###########################################################
# Main Mining Function! Conf. Needed (look above)
############################################################
sub go_mining()
var cycle=1 # 1 - зациклировать, 0 - нет
var path="9s2sl9n3no9snio9niki" # все в кавычках очистить вначале скрипта
var test=0
var i=0
var j
UO.SetCatchBag("oresBag")
UO.DeleteJournal()

While i<LEN(path)
if VAL(path[i]) then
j=VAL(path[i])
i=i+1
else
j=1
endif

Repeat
if test<>1 then
UO.DeleteJournal()
mine_spot()
end if

UO.Print("New Location!")
if not make_step(path[i]) then
UO.Print("Probably Stuck!")
UO.Print("Hope it is a Worldsave")
endif
j=j-1
Until j==0

i = i + 1
if cycle && i==LEN(path) then
i=0
endif
Wend
end sub

############################################################
# Auxilliar Function. Little mod needed (look above)
############################################################
sub mine_spot()
var maxMineTime=1000
var times=0
var timeout=0
While UO.InJournal("You stop")==0
UO.Print("Mining time!")
UO.DeleteJournal()
UO.WaitTargetTile("1339",STR(UO.GetX()),STR(UO.GetY()),"0")
UO.UseType("pickaxe")
timeout=0
times = times +1
if times>20 then
wait(maxMineTime)
times = 0
endif
Repeat
timeout=timeout+200
Wait(200)
#UO.Print("Waiting...")
Until UO.InJournal("You put") OR UO.InJournal("There is no") OR timeout>maxMineTime
Wend
return 0
end sub

############################################################
# Main Path-Recording function!
############################################################
sub record_path()
var x
var y
var path=""
UO.DeleteJournal()
Repeat
x=UO.GetX()
y=UO.GetY()
if waitNewPos(x,y) then
path=path+extract_dir(x,y,UO.GetX(),UO.GetY())
endif
Until UO.InJournal("stop")
path = compressPath(path)
UO.TextClear()
UO.TextOpen()
UO.TextPrint("Your path is:")
UO.TextPrint(path)
end sub

############################################################
# Auxilliar sub.
############################################################
sub send_step(keycode,dir)
var x = UO.GetX()
var y = UO.GetY()
var timeout = 0
if UO.GetDir()<>dir then
UO.Press(keycode)
Repeat
wait(50)
Until UO.GetDir()==dir
endif
UO.Press(keycode)
Repeat
timeout=timeout+50
wait(50)
Until x<>UO.GetX() || y<>UO.GetY() || timeout>2000
if timeout>2000 then
return 0
endif
return 1
end sub

############################################################
# Bunch of auxilliar subs. No need to change anything!
############################################################
sub waitNewPos(x,y)
while x==UO.GetX() && y==UO.GetY()
if UO.InJournal("stop") then
return 0
endif
wend
return 1
end sub

sub compressPath(path)
Var i=0
Var j=0
Var newPath=""
while i<LEN(path)
j=1
while path[i]==path[i+1] AND j<9
i=i+1
j=j+1
wend
if j==1 then
newPath=newPath+path[i]
else
newPath=newPath+STR(j)+path[i]
endif
i=i+1
wend
return newPath
end sub

sub extract_dir(x,y,a,b)
if x>a then
if y==b then
return "i"
else
if y>b then
return "n"
else
return "w"
endif
endif
else
if x<a then
if y==b then
return "l"
else
if y>b then
return "e"
else
return "s"
endif
endif
else
if y>b then
return "o"
else
return "k"
endif
endif
endif
end sub

sub make_step(dir)
if dir=="e" then
send_step(39,1)
return 1
endif
if dir=="l" then
send_step(34,2)
return 1
endif
if dir=="s" then
send_step(40,3)
return 1
endif
if dir=="k" then
send_step(35,4)
return 1
endif
if dir=="w" then
send_step(37,5)
return 1
endif
if dir=="i" then
send_step(36,6)
return 1
endif
if dir=="n" then
send_step(38,7)
return 1
endif
if dir=="o" then
send_step(33,0)
return 1
endif
if dir=="d" then
While UO.Count("0x19b9")
UO.Drop("0x19b9")
wait(1000)
Wend
wait(200)
return 1
endif
UO.Print("Recall Time!")
return 0
end sub

Скрипт нужно оформлять по правилам и в нужном разделе форума © Mirage


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 14 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