Page 1 of 1

Рекалимся от врага и выходим из игры

Posted: 2006-11-22 23:23:21
by dola-mola
Появилась нужда в такого рода скрипте для крафтера.

Алгоритм:
1. Крафтер читает в журнале "is attacking you" or "cor por" then
2. Дисармится
3. Рекалится по дефолтной рунке рунбука домой
4. Делает логаут

Не получалось сделать что-то путное, поэтому прошу помощи у профессионалов. ) Буду очень благодарен.

Posted: 2006-11-22 23:35:18
by dola-mola
Кстати, если есть какой-либо похожий по алгоритму скрипт, выкладывайте. Постараюсь разобраться. :)

Posted: 2006-11-23 10:45:58
by I'm
1. Крафтер читает в журнале "is attacking you" or "cor por" then
2. Дисармится
3. Рекалится по дефолтной рунке рунбука домой
4. Делает логаут

1) Было.
2) Было, но тут проще тебе в хелпе посмотреть.
3) Было.
4) Было :)
=> обратитесь в поиск.

Posted: 2006-11-23 13:32:52
by dola-mola

Code: Select all

sub recall()
while not uo.dead()
   uo.deletejournal()
   if uo.injournal("attacking you") or uo.life<80 then
      uo.exec("terminate mining") # вырубает скрипт мининга чтобы сделать дисарм
      wait(200)
      uo.disarm()
      wait(200)
      uo.useobject('0x4112ff86') # id рунбука
      wait(200)
      uo.lclick(64,126) # координаты для клика в рунбуке
      wait(20000)
      uo.closeuo()
   endif
wend
endsub

Поломал немного голову. Дело за малым. Скрипт очень лагуч. В чем может быть дело?

Posted: 2006-11-23 15:44:17
by GrandMaster Ranger
dola-mola wrote:

Code: Select all

sub recall()
while not uo.dead()
   uo.deletejournal()
   if uo.injournal("attacking you") or uo.life<80 then
      uo.exec("terminate mining") # вырубает скрипт мининга чтобы сделать дисарм
      wait(200)
      uo.disarm()
      wait(200)
      uo.useobject('0x4112ff86') # id рунбука
      wait(200)
      uo.lclick(64,126) # координаты для клика в рунбуке
      wait(20000)
      uo.closeuo()
   endif
wend
endsub

Поломал немного голову. Дело за малым. Скрипт очень лагуч. В чем может быть дело?

запомни, если лагает скрипт значит это 99% что какоето зацикленное действие без вейта. в этом случае поможет самый минимальный вейт , к примеру wait(50)
Sub main()
while not uo.dead()
uo.deletejournal()
wait(50)
if uo.injournal("attacking you") or uo.life<80 then
uo.exec("terminate mining") # вырубает скрипт мининга чтобы сделать дисарм
wait(200)
uo.disarm()
wait(200)
uo.useobject('0x4112ff86') # id рунбука
wait(200)
uo.lclick(64,126) # координаты для клика в рунбуке
wait(20000)
uo.closeuo()
endif

wend

end sub

чтобы перейти в красную зону скрипта долнжо выполниться условие if ... then. пока условие не выполняется, скрипт выполняет синее действие. как видишь, он выполняет это действие очень быстро потму что нету вейтов.
ясно зачем wait(50) нужен? :roll:

Posted: 2006-11-23 15:51:08
by GrandMaster Ranger
лклик это зло. замени на uo.recall это так , совет просто... за 200 милисекунд врядли рб откроется, тут походу лучше зделать checklag()

Posted: 2006-11-23 16:37:30
by dola-mola

Code: Select all

sub recall()
while not uo.dead()
   deljournal("attacking you")
   wait(50)
   if uo.injournal("attacking you") or uo.life<80 then
      uo.exec("terminate mining")
      wait(500)
      uo.disarm()
      uo.say('byebye')
      wait(200)
      uo.useobject('0x4112ff86')
      checklag()
      uo.lclick(64,126)
      wait(15000)
      uo.closeuo()
   endif
wend
endsub

Sub checklag()
deljournal("ackpack")
uo.click("backpack")
repeat
wait(100)
until uo.injournal("ackpack")
endsub

Sub deljournal(msg)
while uo.injournal(msg)
uo.setjournalline(uo.injournal(msg)-1,"")
wend
endsub

########################################################

Подправил. Теперь все гуд. Спасибо. :)

С uo.recall пока не разобрался.

Posted: 2006-11-23 16:51:54
by Destruction
Ну дык:

Code: Select all

uo.exec("terminate mining")


Можно два раза, на всякий случай -)

Posted: 2006-11-25 14:13:34
by Nmy
:lol: улыбнуло- стераем журнал и тогда проверяем :roll:

Posted: 2006-11-26 01:14:55
by GrandMaster Ranger
NMY wrote::lol: улыбнуло- стераем журнал и тогда проверяем :roll:

ты меня тоже улыбнул :lol:
uo.click("backpack")