Скупка с элементами ходилки
Moderators: Murderator+, Murderator
Скупка с элементами ходилки
У меня 2 руны одна к вендорам, вторая домой.
По реколу к вендорам я начинаю обходить всех вендоров(там их порядком 15) и скупаю бланк скролы(по возможности и реги), на пути к вендорам разные приграды(Стойки, фонари, входы в дома), по окончанию скупки чар летит домой и складывает бланки(и реги), ждёт и летит опять скупать бланк скролы
Кучу скриптов находил, но не один не удалось реализовать(поиск).
Шард Оском.
Заранее благодарю.
По реколу к вендорам я начинаю обходить всех вендоров(там их порядком 15) и скупаю бланк скролы(по возможности и реги), на пути к вендорам разные приграды(Стойки, фонари, входы в дома), по окончанию скупки чар летит домой и складывает бланки(и реги), ждёт и летит опять скупать бланк скролы
Кучу скриптов находил, но не один не удалось реализовать(поиск).
Шард Оском.
Заранее благодарю.
ок, вижу, что с такой просьбой мне мало кто ответит.
Выкладываю один скрипт, который я пытался переделать под себя.
Здесь прописал руну.
Здесь вендора/вендоров через "."
Бай лист заполнил по следующей системе
Чар летит по руне и скупать бланк скролы отказывается, так же как и ходить
Помогите пожалуйста
Выкладываю один скрипт, который я пытался переделать под себя.
Code: Select all
#####################################################
# NOVA #
# Dungeon [*HiCk*] © 2005 #
# (http://nova-uo.com) #
#####################################################
###################################
# Использована Саваджевская ходилка
###################################
# Список регов составляется во вкладке Buy/Sell страницы Main инжекта
# и обзывается непотребным словом "test"
# также для скупки рекол роегов юзаем списки покупки "bp", "mr", "bm"
# В скрипте можно уберать руны из прохода т.к. на Нове цены в города зависят от фракций
# Есть выкладывалка в банк регов и автоматическая докупалка их у вендоров.
# К каждой руне моэжет быть привязано сколько угодно вендоров.
# Хз что вам еще может понадобится )
# Думаю что соображающий пользователь вполне разберется с настройкой.
# Сделано на основе какого-то макроса с форума Yako
# Закидываем в себя чек на кучу денег и вперед по магазинам ) за ноч скупается немеренно регов )
# Version 1.0 RC0
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]='0x4013D69B'
rune[2]='0x4013D677'
rune[3]='0x4013D53E'
rune[4]='0x4013D5A3'
rune[5]='0x4013D6C7'
rune[6]='0x4013D56D'
rune[7]='0x4013D63D'
rune[8]='0x4013D616'
rune[9]='0x4013D70F'
rune[10]='0x4013D591'
rune[11]='0x4013D6EE'
rune[12]='0x4015C288'
ven[1]='0x00002D37,0x00002D38' #Britain
ven[2]='0x00002081,0x00002082' #Britain
ven[3]='0x00002D14,0x00002D11' #Britain
ven[4]='0x000020A3,0x000020A4' #Vesper
ven[5]='0x0000209B,0x00002099' #Vesper
ven[6]='0x00018979,0x0001897A' #Maginciya
ven[7]='0x00002A54,0x00002A36' #Moonglow
ven[8]='0x00002FD8,0x00002FE4' #Moonglow
ven[9]='0x00002EA4,0x00002EC6' #Jelom
ven[10]='0x0000C593' #Jelom
ven[11]='0x00002DF0,0x00002DFE' #Skara bra
ven[12]='0x00002E39,0x00002E38' #Skara bra
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.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
Code: Select all
var i, n, j, m, recallNext, h, amoun
var runeBank = '0x4013D73A';
rune[1]='0x4013D69B'
rune[2]='0x4013D677'
rune[3]='0x4013D53E'
rune[4]='0x4013D5A3'
rune[5]='0x4013D6C7'
rune[6]='0x4013D56D'
rune[7]='0x4013D63D'
rune[8]='0x4013D616'
rune[9]='0x4013D70F'
rune[10]='0x4013D591'
rune[11]='0x4013D6EE'
rune[12]='0x4015C288'
ven[1]='0x00002D37,0x00002D38' #Britain
ven[2]='0x00002081,0x00002082' #Britain
ven[3]='0x00002D14,0x00002D11' #Britain
ven[4]='0x000020A3,0x000020A4' #Vesper
ven[5]='0x0000209B,0x00002099' #Vesper
ven[6]='0x00018979,0x0001897A' #Maginciya
ven[7]='0x00002A54,0x00002A36' #Moonglow
ven[8]='0x00002FD8,0x00002FE4' #Moonglow
ven[9]='0x00002EA4,0x00002EC6' #Jelom
ven[10]='0x0000C593' #Jelom
ven[11]='0x00002DF0,0x00002DFE' #Skara bra
ven[12]='0x00002E39,0x00002E38' #Skara bra
Code: Select all
rune[1]='0x4013D69B'
Здесь прописал руну.
Code: Select all
ven[1]='0x00002D37,0x00002D38' #Britain
Здесь вендора/вендоров через "."
Бай лист заполнил по следующей системе
##########################
#Как сделать список покупки
##########################
#1-подходи к вендору
#2-в настройках инжекта(закладка Main) жмем кнопку Buy/Sell
#3-в поле Name пишем test жмем Create
#4-в игре говорим вендору buy
#5-идем опять в инжект и в окне Shoping list выбираем товар и жмем
#Add можно сразу добавить несколько товаров
#6-далее жмем Done и еще раз Done
##########################
Чар летит по руне и скупать бланк скролы отказывается, так же как и ходить
Помогите пожалуйста
Anghram wrote:Если ты надеешься на ответ, то задай вопрос корректно. Что такое чар отказывается покупать? Он говорит: "Ни хачу!"?
Если бы кто нибудь заинтересовался и спросил уточнение, я мог бы выложить всё, вплоть до скриншотов. Просто наверное из за того, что УО старая игрушка и умельцев новых нет. Поэтому так много постов неотвеченых. Я понимаю, что мне никто ничего не должен, но как бы хотя бы маленький ответ хотелось бы получить
По поводу твоего вопроса. Чар просто стоит, ошибки не вылетают
-
- Posts: 247
- Joined: 2008-09-12 05:07:34
попробую изобразить на основе твоей ходилки
типа упрощённый вариант, рунки сам не марчит и за регами не следит, что покупать, так же, забиваешь в бай-лист под названием test
Code: Select all
sub Skupka()
var i
uo.set('buydelay','1000')
var rune_vendors='ID рунки к веникам'
var rune_home='ID соответственно рунки домой'
dim vendor[15]
vendor[0]='ID вендора1' ;тут в массив забиваешь серийники всех 15 веников
.
.
vendor[14]='ID вендора 15'
while not uo.dead()
recall(rune_vendors)
for i=0 to 14
walkn(0,0,vendor[i])
uo.buy('test',uo.getname(vendor[i]))
wait(2000)
checklag()
next
recall(rune_home);тут вываливаешь, что накупил
; это тебе уже самому под свой дом делать, что-то типа
uo.useobject('ID сундука дома')
wait(1000)
checklag()
while uo.count('тип бланк-скроллов')
uo.findtype('тип бланк-скролла','цвет бланк-скролла','2')
uo.moveitem('finditem','0','ID сундука дома')
wait(1000)
checklag()
wend
;и так для каждой фигни, которую ты будешь покупать
wend
endsub
sub Recall(runa)
var oldx,oldy
if uo.mana<uo.int then
repeat
uo.deletejournal()
uo.useskill('Meditation')
repeat
wait(1000)
checklag()
until uo.injournal('You lose your concentration') or uo.mana==uo.int
until uo.mana==uo.int
endif
oldx=uo.getx('self')
oldy=uo.gety('self')
uo.deletejournal()
repeat
uo.cast('Recall',runa)
repeat
wait(300)
until uo.injournal('fizzles') or uo.getx('self')<>oldx or uo.gety('self')<>oldy
until uo.getx('self')<>oldx or uo.gety('self')<>oldy
endsub
Sub Checklag()
deljournal('a backpack')
uo.click('backpack')
repeat
wait(50)
until uo.injournal('a backpack')
endsub
Sub deljournal(msg)
while uo.injournal(msg)
uo.setjournalline(uo.injournal(msg)-1,"")
wend
endsub
##############################
# 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
типа упрощённый вариант, рунки сам не марчит и за регами не следит, что покупать, так же, забиваешь в бай-лист под названием test
Спасибо большое!
Но тут же возникли следующие проблемы!
http://img17.imageshack.us/img17/2103/22820912.jpg
http://img17.imageshack.us/img17/9954/62186374.jpg
и т.д
Но тут же возникли следующие проблемы!
http://img17.imageshack.us/img17/2103/22820912.jpg
http://img17.imageshack.us/img17/9954/62186374.jpg
и т.д
-
- Posts: 247
- Joined: 2008-09-12 05:07:34
Я почему-то решил, что веники покомпактнее расположены, а они хрен знает где друг от друга, в разных помещениях, ходилка не справляется. Там где вендоры в одном помещении, там можно просто ходилкой от одного веника к другому бегать, а в другие помещения надо тогда рунками подлетать или в ходилке явно координаты указывать
Millerbeer wrote:Я почему-то решил, что веники покомпактнее расположены, а они хрен знает где друг от друга, в разных помещениях, ходилка не справляется. Там где вендоры в одном помещении, там можно просто ходилкой от одного веника к другому бегать, а в другие помещения надо тогда рунками подлетать или в ходилке явно координаты указывать
Можешь в скрипт массив рун добавить, а так же ожидание после того как все скупит чар(просто он сразу по второму кругу летит, а там пока банки не появились!)
-
- Posts: 247
- Joined: 2008-09-12 05:07:34
Спасибо Millerbeer за выше указаный скрипт
Но нужен немного другой скрипт, с ходилкой в указаные коррдинаты.
Ситуация следующая, поляна, на поляне ходят 4 вендора, так эже на этой поляне 6 домиков, перс скупает на паляне, топает по определённым координатам в один домк, ищет веников , скупает и шурует в другой!
Но нужен немного другой скрипт, с ходилкой в указаные коррдинаты.
Ситуация следующая, поляна, на поляне ходят 4 вендора, так эже на этой поляне 6 домиков, перс скупает на паляне, топает по определённым координатам в один домк, ищет веников , скупает и шурует в другой!