Page 1 of 1
Возможно ли сделать так.....
Posted: 2004-04-19 18:01:04
by ИгорьАлек
Есть скрипт на лесорубство.
выглядит так:
Code: Select all
sub main()
rub(тут координаты деревьев)
rub(...,...,...,...)
rub(...,...,...,...)
.......
end sub
sub rub()
.......
end sub
Так вот, можно ли как нить сделать, чтоб в зависимости от того где стоит чар, он начинал скрипт с с того дерева, которое к нему ближе (по списку) и продалжал дальше по списку?
Можно.
Posted: 2004-04-19 18:24:32
by totus
Делаем массив с координатами деревьев и перебором находим нужные нам деревья.
Или сортируем массив соотв. образом.
Искренне Ваш, Тотус Маньяковски.
Re: Возможно ли сделать так.....
Posted: 2004-04-19 18:44:26
by necron
ИгорьАлек wrote:Есть скрипт на лесорубство.
выглядит так:
Code: Select all
sub main()
rub(тут координаты деревьев)
rub(...,...,...,...)
rub(...,...,...,...)
.......
end sub
sub rub()
.......
end sub
Так вот, можно ли как нить сделать, чтоб в зависимости от того где стоит чар, он начинал скрипт с с того дерева, которое к нему ближе (по списку) и продалжал дальше по списку?
качай старый форум там уже были такие скрипты
Posted: 2004-04-20 16:17:24
by ИгорьАлек
Скрипт мне не нужен, у меня есть и все прекрасно работает. Что то в старом форуме не нашел подобного.
Мне надо как нить замутить, чтоб рубить он начинал не с начала списка деревьев, а определив свое положение, выбирал ближайшее к нему дерево, и начинал с него рубить и шел дальше по списку.
Posted: 2004-04-21 19:51:34
by ИгорьАлек
Неужели никто не знает как такое можно замутить?
Может как нить и что нить писать в файл какой нить индентификатор дерева и потом при запуске скрипта читать этот файл найти индентификатор и с него начать.
Я же уже отвечал.
Posted: 2004-04-21 20:01:07
by totus
Делай массив деревьев и сортируй его.
А потом ходи рубить по сортированному массиву.
Искренне Ваш, Тотус Маньяковски.
T
Posted: 2004-04-21 20:36:46
by Sergiusis
Навскидку, с использованием моей системы (чтение из файла):
Code: Select all
Sub SeekNear(FileName)
Var F=File(FileName)
Var T,R,A,B
R=Trim(safecall F.Readln())
A=Abs(UO.GetX()-GetNumb(R,1))+Abs(UO.GetY()-GetNumb(R,2))
While not (F.Eof() or (T=='File read error'))
T=Trim(safecall F.Readln())
B=Abs(UO.GetX()-GetNumb(T,1))+Abs(UO.GetY()-GetNumb(T,2))
If B<A Then
R=T
A=B
EndIf
Wend
Return R
EndSub
+ процедуры GetNumb и Abs отсюда
http://yokoinjection.narod.ru/scripts/AllUnit.sc