Yoko

All sides of Injection
It is currently 2025-10-16 18:29:06

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 2010-04-15 08:39:46 
Offline

Joined: 2010-04-14 00:56:38
Posts: 11
подскажите,что надо переделать чтоб при натыкании на стену чар не тупо стоял и ковырялся а бродил в разных направлениях или по кругу....
в данном скрипте чар делает шаг наискосокк\вниз\лево,окапывается,затем топает вниз примерно 10 тайлов и при этом после шага окапывается,все ето он повторяет пока не упрется в ниж стену,а хотелось бы,чтоб он бродил хаотично и при натыкании на что-либо или кого-либо поворачивал куди нить и топал дальше пока не упрется....
как то был у меня такой скрипт,но после чистки компа(all) немогу его найти,или что либо на подобие....
вот скрипт что есть :
Quote:
    sub main()
    go_mining()
    end sub

    sub go_mining()
    var cycle=1
    var path="6ik7ls9i2ik9l4lk9iik9l2lk9i7ik9l8lk9i9ik6lk7lk9i4ik9l3lk9i3ik9l3lk9i4ik7lk7ik6lk6ik4lk4ik3lk5ik2l7e2o9e6o"
    var test=0
    var i=0
    var j
    UO.DeleteJournal()

    While i<LEN(path)
    if VAL(path[i]) then
    j=VAL(path[i])
    i=i+1
    else
    j=1
    endif

    Repeat
    if test<>1 then
    UO.DeleteJournal()
    mine_spot()
    end if

    UO.Print("New Location!")
    if uo.stamina < 10 Then
    uo.usetype('stamina')
    end if

    if not make_step(path[i]) then
    endif
    j=j-1
    Until j==0

    i = i + 1
    if cycle && i==LEN(path) then
    i=0
    endif
    Wend
    end sub

    sub mine_spot()
    var maxMineTime=30000
    var times=0
    var timeout=0
    While UO.InJournal("You stop")==0
    UO.DeleteJournal()
    UO.WaitTargetTile("1339",STR(UO.GetX()),STR(UO.GetY()),"0")
    UO.UseType("0x0E85")
    timeout=0
    times = times +1
    if times>20 then
    wait(maxMineTime)
    times = 0
    endif
    Repeat
    timeout=timeout+200
    Wait(200)
    #UO.Print("Waiting...")
    Until UO.InJournal("You put") OR UO.InJournal("You stop") OR timeout>maxMineTime
    Wend
    return 0
    end sub

    sub send_step(keycode,dir)
    var x = UO.GetX()
    var y = UO.GetY()
    var timeout = 0
    if UO.GetDir()<>dir then
    UO.Press(keycode)
    Repeat
    wait(50)
    Until UO.GetDir()==dir
    endif
    UO.Press(keycode)
    Repeat
    timeout=timeout+50
    wait(50)
    Until x<>UO.GetX() || y<>UO.GetY() || timeout>2000
    if timeout>2000 then
    return 0
    endif
    return 1
    end sub

    sub waitNewPos(x,y)
    while x==UO.GetX() && y==UO.GetY()
    if UO.InJournal("stop") then
    return 0
    endif
    wend
    return 1
    end sub

    sub compressPath(path)
    Var i=0
    Var j=0
    Var newPath=""
    while i<LEN(path)
    j=1
    while path[i]==path[i+1] AND j<9
    i=i+1
    j=j+1
    wend
    if j==1 then
    newPath=newPath+path[i]
    else
    newPath=newPath+STR(j)+path[i]
    endif
    i=i+1
    wend
    return newPath
    end sub

    sub extract_dir(x,y,a,b)
    if x>a then
    if y==b then
    return "i"
    else
    if y>b then
    return "n"
    else
    return "w"
    endif
    endif
    else
    if x<a then
    if y==b then
    return "l"
    else
    if y>b then
    return "e"
    else
    return "s"
    endif
    endif
    else
    if y>b then
    return "o"
    else
    return "k"
    endif
    endif
    endif
    end sub

    sub make_step(dir)
    if dir=="e" then
    send_step(39,1)
    return 1
    endif
    if dir=="l" then
    send_step(34,2)
    return 1
    endif
    if dir=="s" then
    send_step(40,3)
    return 1
    endif
    if dir=="k" then
    send_step(35,4)
    return 1
    endif
    if dir=="w" then
    send_step(37,5)
    return 1
    endif


Top
   
PostPosted: 2010-04-15 14:05:25 
Offline
User avatar

Joined: 2009-03-06 21:52:25
Posts: 89
Честно сказать я не понял что хочеш, у тебя не вопрос, а набор слов. :?


Top
   
PostPosted: 2010-04-15 14:49:52 
Offline
Expert!
User avatar

Joined: 2005-04-23 10:19:43
Posts: 388
Просто человеку отказались писать скрипт на заказ в старой теме, и он решил перефразировать вопрос в надежде что кто-то ему всё-же его напишет...


Top
   
PostPosted: 2010-04-19 12:09:27 
Offline

Joined: 2010-04-14 00:56:38
Posts: 11
1.почему набор слов????
2.я не хочу чтоб мне писали скрипт.....просто я знаю что такие скрипты есть или просто хочу чтоб помогли исправить данный скрипт


Top
   
PostPosted: 2010-04-19 15:08:03 
Offline
Expert!
User avatar

Joined: 2005-04-23 10:19:43
Posts: 388
Насколько я вижу, этот скрипт следует заранее указанному маршруту. Если его сбить с маршрута - он больше не сможет по нему следовать. Соответственно твоя просьба звучит примерно так-же как если-бы ты попросил переделать поезд так, чтобы он мог обьезжать препятствия на путях...


Top
   
PostPosted: 2010-05-21 17:03:33 
Offline

Joined: 2010-04-14 00:56:38
Posts: 11
Beyonder wrote:
Насколько я вижу, этот скрипт следует заранее указанному маршруту. Если его сбить с маршрута - он больше не сможет по нему следовать. Соответственно твоя просьба звучит примерно так-же как если-бы ты попросил переделать поезд так, чтобы он мог обьезжать препятствия на путях...

как тогда задать в этом скрипте определенные координаты,какие мне надо,


sub make_step(dir)
if dir=="e" then
send_step(39,1) <== как узнать эту координату ( команда)
return 1
endif
if dir=="l" then
send_step(34,2)
return 1
endif
if dir=="s" then
send_step(40,3)
return 1
endif
if dir=="k" then
send_step(35,4)
return 1
endif
if dir=="w" then
send_step(37,5)
return 1
endif

ЗЫ: пользуюсь клиентом "200d" проходит сквозь людей


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited