Page 1 of 1
В стену лбом (скрипт не пойму)
Posted: 2014-11-23 13:57:37
by dubd
хело, тут у меня кое что есть ну вопросик. Скажите пожалуйста, как сделать чтобы чар не упирался в стену?
а то так оч не нравитца, хочетца ему голову срубить.
или это весьма не отвечает за уперение в стену?
вот эта - Getdistance<=2 это больще или меньше двух?
Re: В стену лбом (скрипт не пойму)
Posted: 2014-11-23 22:43:51
by Mirage
Скрипты подобного вида не очень хорошо выкладывать на общее обозрение. Цензурируй иначе будет поздно. Потом посмотрим.
Re: В стену лбом (скрипт не пойму)
Posted: 2014-11-24 12:45:49
by dubd
Вас понял капитан! Прост я тупо скопировал сюда и не предал внимания. Это скрипт скупалка, он оч длинный и наверное это тупо будет сюда его выставлять. В общем ситуация такая, что чар ходит на точке скупки слишком долго. Так же за стеной может быть другой торговец и чар пытаетца к нему тоже идти, хотя там стена и дверь. В скрипте есть дистанция, по которой чар определяет дистанцию подхождения к торговцу.
Code: Select all
sub Start()########################################## Стартер
uo.set('buydelay','5000')
UO.Set('finddistance',9)
var n = 2
var maxN = 10
var numer = 1
var maxnumer = 4
UO.Print("Поехали по магазинам.")
wait(2000)
repeat
if uo.weight > 450 then
RunebookRecalla(1)
Loot()
endif
if CheckStam==1 then
While UO.Stamina < 60
uo.Print("Low Stamina")
wait(2000)
wend
end if
if numer == 1 then
uo.Print('Реколимся Рунбука № 1, рунка № '+str(n))
RunebookRecalla(n)
end if
if numer == 2 then
uo.Print('Реколимся Рунбука № 2, рунка № '+str(n))
RunebookRecallb(n)
end if
if numer == 3 then
uo.Print('Реколимся Рунбука № 3, рунка № '+str(n))
RunebookRecallc(n)
end if
n = n + 1
if n == maxN then
n = 2
numer = numer + 1
if numer == maxnumer then
numer = 1
end if
end if
BuyPRG()
until uo.dead()
end sub
Code: Select all
UO.Exec(walkn(0,0,'finditem'))
LastTimer=UO.Timer()
If UO.GetDistance('finditem')<=2 then
UO.Print("Закупаю....")
wait(1000)
uo.Buy(BuyListName,UO.GetName('finditem'))
wait(1000)
CheckLag()
uo.say(uo.GetName('finditem')+ " bye")
else
UO.Print(uo.GetName('finditem')+ " заныкался!, В &@$#% его.")
end if
uo.ignore('finditem')
end if
until uo.FindCount()==0
next
GMStep()
######################
end sub
Code: Select all
If UO.GetDistance(Target)<2 OR LastTimer+200<UO.Timer() Then
wait(2000)
Code: Select all
If dx==0 AND dy==0 OR LastTimer+200<UO.Timer() Then
Вот, это куски кода. Остальные отвечают за полёты, выгрузку и тдтп. Скажите пожалуйста, как уменьшить дистанцию заметки вендора?
Вот не это ли?
Так же подскажите пожалуйста, как сделать, чтобы чар не шарился долго в магазине, а улетал по истечению заданного времени!
Re: В стену лбом (скрипт не пойму)
Posted: 2014-11-24 22:56:36
by Mirage
смотря какую ходилку используешь. Некоторые не могут проходить сквозь дверные проемы.
Я прыгаю сразу в дом к торговку. Если такой вариант не подходит на сервере то надо видить полный скрипт. Можно в личку.
UO.Set('finddistance',9) - дистанция поиска торговца. Если уменьшить будет искать более близких. Можно сделать чтобы поиск расходился как локатор от чара кругами с увеличением радиуса.
If dx==0 AND dy==0 OR LastTimer+200<UO.Timer() Then это всего скорее что если чар стоит не двигаясь на месте более 20 секунд то... происходит какое то событие которое ниже.
If UO.GetDistance('finditem')<=2 then
UO.Print("Закупаю....")
Если нужный вендор ближе чем 2 тайла то закупаем.
Насчет чтобы не стоять - у нас на сервере вендор после сделки пишет что то типо - "С вас 100 золотых" или "Вы ничего не купили". Ловишь эти фразы и летишь дальше без пауз.