Ув. Destruction, что не так в вашем скрипте?

Ask for help

Moderators: Murderator+, Murderator

Post Reply
GrandMaster Ranger
Posts: 73
Joined: 2005-01-14 13:41:05
Location: Одесса - мама
Contact:

Ув. Destruction, что не так в вашем скрипте?

Post by GrandMaster Ranger »

А конкретнее с этим

Code: Select all

; Получение направление хождения 
; v1.1 (c) 2006, Destruction.
; x = координата X точки - uo.getX();
; y = координата Y точки - uo.getY();
; type = 0 - получение кода клавиши, чтобы пойти.
; type = 1 - получение направления в котором идти (см. uo.getDir).
; walk = 0 - направление, чтобы подойти
; walk = 1 - обратно направление (чтобы отойти в противоположную сторону)

:?: :oops: я его даже не сливаю с другими скриптами, я элементарно пытаюсь проверить его на работоспособность

Code: Select all

sub main()
getWalkDir(2574, 467, 1, 0)
end sub

вот таким образом. Ставил все варианты комбинаций флагов тайп и волк. Он не рыпается в сторону заданных координат в любом случае. Не пойму, что я делаю не так?
GrandMaster Ranger
Posts: 73
Joined: 2005-01-14 13:41:05
Location: Одесса - мама
Contact:

Post by GrandMaster Ranger »

Стало еще интереснее. Увидел фишку с относительными координатами. Заменил на относительные, по формуле написаной в начале скрипта. Все равно не рыпается.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Ф-ция не нажимает клавиши, функция возвращает циферки..

Предназначется для тех, кто пишет ходилки. Простейшее хождение без обхода препятствий с использованием этой функции - пара строчек :)

Например:

Code: Select all

Sub walker( x, y )
    var cx, cy, p, c
    while not uo.getX() == x || uo.getY() == y
        cx = uo.getX()
        cy = uo.getY()
        p = 1
        if not uo.getDir() == getWalkDir( x - cx, y - cy, 1, 0 ) then
            p = 2
        endif
        uo.press( getWalkDir( x - cx, y - cy, 0, 0 ), p )
        c = 100
        repeat
            c = c - 1
            wait( 100 )
        until not cx == uo.getX() && not cy == uo.getY() && c == 0
        if cx == uo.getX() && cy == uo.getY() then
            uo.print( "Blocked." )
            return false
        endif
    wend
endsub


Не тестировал, но теоретически - должно ходить :)

А если в последнем аргументе использовать единичку - можно написать неплохую убегалку :roll:
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
GrandMaster Ranger
Posts: 73
Joined: 2005-01-14 13:41:05
Location: Одесса - мама
Contact:

Post by GrandMaster Ranger »

Code: Select all

        uo.press( getWalkDir( x - cx, y - cy, 0, 0 ), p )
       

аха, вот значит как!
Дело в том, что как я и писал в этом топике http://forum.yoko.com.ua/viewtopic.php?t=12903
, мой мининг не должен ходить, он просто должен крутиться вокруг своей оси и выкапывать точки которые к нему лицом (я уже и скрипт такой нарыл, но он не крутится, вот буду пытаться вписать).
Значит поидеи с помощью

Code: Select all

; type = 1 - получение направления в котором идти (см. uo.getDir).
это можно реализовать, правда? :roll:
GrandMaster Ranger
Posts: 73
Joined: 2005-01-14 13:41:05
Location: Одесса - мама
Contact:

Post by GrandMaster Ranger »

Реализовал, всё прекрасно работает :D Спасибо за функцию!
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Воё!

Пожалуйста!
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Post Reply