Page 1 of 1

обход шахты

Posted: 06.08.2011 16:30
by Alex
поделитесь алгоритмом который достает из GetStaticTilesArray координаты тайлов шахты а потом бегает по шахте обкапывая 25 точек вокруг, не хочется забегать в каждую точку, хочется обкапывать вокруг перса

Re: обход шахты

Posted: 09.08.2011 1:21
by wax
А зачем, если не секрет? Есть WaitTargetXYZ, запихнуть в двойной for и дело с концом.

Re: обход шахты

Posted: 09.08.2011 13:40
by Alex
не хочется забегать в каждую точку и не хочется в скрипт забивать координаты руками, есть функция, которая возвращает координаты всех тайлов в шахте, остается вопрос - как разделить координаты на те в которые бегать и те которые копать

Re: обход шахты

Posted: 10.08.2011 11:24
by wax
Потратишь на алгоритм больше времени, чем руками пометить себе 10 точек, в которые можно стать, и обкопаться в ±3 тайла.

Re: обход шахты

Posted: 10.08.2011 12:42
by Alex
по этому я не трачу, а спрашиваю, мож кто заморачивался уже))

Re: обход шахты

Posted: 10.08.2011 13:01
by Vizit0r
в одном из топик грюндик выкладывал скрипт на поиск деревьев. выдери нужный кусок оттуда.
вроде как там же выкладывали список возможных тайлов в пещерах. если нет - пни меня, достану из ПОЛа или РанУО список тайлов.

а такой скрипт на майнинг точно кто-то писал, в асе обсуждали, но логи аси по весну включительно отсутствуют, так что увы :(

Re: обход шахты

Posted: 10.08.2011 13:07
by Alex
список тайлов есть, спасиб, поищу этот скрипт, кстати а не так уж и сложно выделить точки для хождения, примерно даже вижу алгоритм

Re: обход шахты

Posted: 10.08.2011 14:28
by Alex

Code: Select all

all_tiles = []
for tile in tiles_nums:
    all_tiles = all_tiles + GetStaticTalesArray(bla, bla, tile)

dict_of_tiles = {}

for tile in all_tiles:
    dict_of_tiles[tile]=tile

go_tiles = {}

while len(dict_of_tiles)>0:
    cur_tile,(t,cx,cy,cz)=dict_of_tiles.popitem()
    is_go_tile=True
    for go_tile in go_tiles:
        t,gx,gy,gz=go_tile
        if Dist(cx,cy,gx,gy)<=4:
            is_go_tile=False
            if Dist(cx,cy,gx,gy)<=2:
                go_tiles[go_tile].append(cur_tile)
            else:
                dict_of_tiles[cur_tile]=cur_tile
            break
    if is_go_tile:
        go_tiles[cur_tile] = []
вот даже реализация) правда не тестил еще в стелсе

Re: обход шахты

Posted: 10.08.2011 14:30
by Vizit0r
а, питон...

Re: обход шахты

Posted: 12.08.2011 1:03
by grundick
кмк, самое простое - для каждой пещеры создать списки точек, по которым ходить , и не мучать свою задницу и комп алгоритмами...

Re: обход шахты

Posted: 12.08.2011 1:21
by MuDaCk