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