Yoko

All sides of Injection
It is currently 2026-02-07 11:02:12

All times are UTC+02:00




Post new topic  Reply to topic  [ 7 posts ] 
Author Message
PostPosted: 2009-02-10 21:23:01 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
В свое время довольно длительное время писал скрипты и спустя пару лет решил вернуться в уо и к скриптописанию, написал скрипт на медит, а он не работает, не хочет видеть в строку в журнале, помогите люди добрые, то ли я схожу сума, то ли синтаксис команд за 2 года сильно изменился:

проблема непосредственно в строчке
Code:
until not uo.injournal('You lose')


несмотря на наличие строки в журнале переходит к ожиданию востановления маны, инжект последний, собраный из 3ех архивов выложенных на Yoko

Code:
sub test()
var mp = uo.int
Meditation(mp)
end sub

sub Meditation(mp)
repeat
  uo.exec('warmode 0')
  uo.deletejournal('You lose')
  uo.useskill('Meditation')
  wait(5000)
  checklag()
until not uo.injournal('You lose')
while uo.mana < mp
  wait(100)
wend 
end sub


Top
   
PostPosted: 2009-02-10 22:27:43 
Offline

Joined: 2008-12-13 00:00:15
Posts: 174
Ты прав)
Sanch wrote:
проблема непосредственно в строчке
Code:
until not uo.injournal('You lose') 

получается,что цикл будет повторяться до тех пор,пока в журнале нет сообщение о неудачной попытки медитации.То есть если этого сообщения нет,его как бы нет ))тем более там и журнал удаляется:wink:

Code:
repeat
  uo.exec('warmode 0')
  uo.useskill('Meditation')
  wait(2500)
  checklag()
until uo.injournal('You are at peace.')

Чеклаг не стал скидывать:roll:


Top
   
 Post subject:
PostPosted: 2009-02-10 22:39:42 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
Я играю на дрв, там для того чтобы скил медит работал его не жуно постоянно юзать, а достаточно одного раза, после чего мана начинает востанавливаться, мой скрипт очищает журнал, после чего юзает медит, он юзается порядка 2 сек, 5 стоит для тестов, через 2 сек если чар не втает в медит выводится сообщение You lose ..., цикл должен повторяться до учачного использования скила, которое и обусловлено отсутствием сообщения в журнале спустя 2 секунды после использования скила, иначе повторить попытку заново.


Top
   
 Post subject:
PostPosted: 2009-02-10 22:54:07 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
Code:
sub medit(mana)
 if uo.mana<mana then
   uo.warmode(0)
   repeat
      uo.deletejournal()
      uo.useskill('Meditation')
         repeat
            wait(500)
         until  uo.injournal('You lose your concentration') or uo.mana>=mana
   until uo.mana>=mana
 endif
endsub


Top
   
 Post subject:
PostPosted: 2009-02-10 23:15:10 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
Вот изложение моей идеи, но более извращенно, что делает скрипт как минимум некрасивым, но он работает.

Code:
sub test()
var mp = uo.int
Meditation(mp)
end sub

sub Meditation(mp)
var counter, done
repeat
  counter = 0
  done = 0
  uo.exec('warmode 0')
  uo.deletejournal('You lose')
  uo.useskill('Meditation')
  repeat
    if uo.injournal('You lose') then
      done = 1
    else
      wait(100)
      counter = counter + 1
    endif
  until done == 1 or counter > 50
until done == 0
uo.print('1')
while uo.mana < mp
  wait(100)
wend 
end sub


Miller спасибо за скрипт, я думаю он будет самым оптымальным вариатом, хотя почему не работает мой первый мне не понятно, должен выполнять цикл пока в журнале не будет отсутвовать сообщение, сообщение появляется до проверки в конце цикла, но цикл все равно заканчивается.


Top
   
 Post subject:
PostPosted: 2009-02-11 06:18:51 
Offline
User avatar

Joined: 2008-09-12 05:07:34
Posts: 247
Твой вариант неработает наверное потому, что команда uo.deletejournal('You lose') не корректна, можно вытереть весь журнал командой uo.deletejourmal(), а вытирать определённые строки этой командой нельзя.


Top
   
 Post subject:
PostPosted: 2009-02-11 12:34:32 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
Quote:
Твой вариант неработает наверное потому, что команда uo.deletejournal('You lose') не корректна, можно вытереть весь журнал командой uo.deletejourmal(), а вытирать определённые строки этой командой нельзя.


Проблема точно не в этом, тк удаление определенных строк всегда работало без нареканий, если удалить весь журнал, первый скрипт от этого лучше работать не станет, в последнем выложенном мной скрипте это используется и работает на ура, проблема мне кажется просто в не самом удачном использовании данного условия с оператором repeat\until.


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 2 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:  
Powered by phpBB® Forum Software © phpBB Limited