Миниг и рекол.

Anything and all.

Moderators: Murderator+, Murderator

Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Миниг и рекол.

Post by Incorrect User »

Вот именно нужно, и для того чтобы он не ушел дальше чем требуется. Лучше скажи почему не срабатывает определение направления чара? то что он сделал шаг срабатывает нормально. Обьясню, если просто по шагу проверять то если чар не сделает шаг а просто повернется то скрипт будет стоять и ждать изменения координат, для этого и нужна проверка направления.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Миниг и рекол.

Post by ZeroDX »

Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Миниг и рекол.

Post by Incorrect User »

:mrgreen: Шо и тут засада?
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Миниг и рекол.

Post by Incorrect User »

Так должно писать значение или нет?
sub MyDir()
uo.print(uo.getdir())
end sub
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Миниг и рекол.

Post by ZeroDX »

uo.print(str(uo.getdir()))
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Миниг и рекол.

Post by Incorrect User »

Вот так работает while not uo.getx()== mystep and not mydir <> uo.getdir()
Привыкать прийдеться к такому замороченному синтаксису. А вообще проверку на шаги делал для того чтобы чар не убежал, если просто нажимать кнопку и попал в лаг то кнопка и дальше будет нажиматься и когда отпустит чар убежит далеко потому что кнопку уже нажали. Это преверено :)
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Миниг и рекол.

Post by ZeroDX »

Code: Select all

while not uo.getx()== mystep and not mydir <> uo.getdir()

замороченнее не куда :lol:

Code: Select all

while uo.getx() <> mystep and mydir == uo.getdir()


PS Номер аськи не менял?
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Миниг и рекол.

Post by Incorrect User »

Вроде бы нет, хотя не уверен, может скайп есть? Пошуми в асю или скайп, номера скинул в личку.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Миниг и рекол.

Post by Incorrect User »

ZeroDX wrote:

Code: Select all

while uo.getx() <> mystep and mydir == uo.getdir()


Так точность мненьше :)
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Миниг и рекол.

Post by Incorrect User »

В общем, ходить - ходит, копать - копает, а вот гвардов и людей не определяет, почему-то сообщения при появлении людей или гвардов стираются из журнала и больше ничего не происходит. Скрипты на проверку людей и гвардов срабатывают при сообщении содержащем двоеточие(:), сделал чтобы если появилось : и это не гвард то скрипт определения гвардов в журнале сообщения с : не стирает и наоборот со скриптом людей. В мининге тоже стираются только сообщения которые он использует.
Мининг:

Code: Select all

sub Mining()
  var circle, x, y, msg = 'put the|fail|far away|loosen|no ore|no line|try mining'
  while not uo.dead()
  for x = -2 to 2
    for y = -2 to 2
      circle = 0
      mine:
      Deljournal(msg + 'put the iron|put the Marble|Success')
      if uo.getglobal('pause') == '1' then
        while not uo.getglobal('pause') == '0'
          wait(100)
        wend
      endif
      uo.waittargettile(1339, uo.getx() + x, uo.gety() + y, uo.getz())
      uo.usetype(0x0E85, 0x048C)
      wait(500)
      if not uo.LastGump('replyed') and uo.LastGump('text', 0) == 'Antimacros System' then
        while not uo.injournal('Success')
          AntiMacros()
          wait(500)
        wend
        uo.canceltarget()
        goto mine
      endif
      while not uo.injournal(msg)
        wait(100)
      wend
      if uo.injournal('put the iron|put the Marble') then
        circle = circle + 1
      else
        if uo.injournal('put the') then
          circle = 2
        endif
      endif
      if not uo.injournal('far away|no ore|no line|try mining') and not circle > 1 then
        goto mine
      endif
    next
  next
 Walk()
 wend
 end sub

Люди:

Code: Select all

sub TPlayers()
  var intruder, msg = (':')
  intruder = 0
  while not uo.getgraphic(intruder) == '0x0190' or uo.getgraphic(intruder) == '0x0191'
    if not uo.getgraphic(intruder) == '0x000e' then
    DelJournal(msg)
    endif
    repeat
      wait(100)
    until uo.injournal(msg)
    intruder = uo.journalserial(uo.injournal(msg) - 1)
  wend
  uo.unequip('Rhand')
  uo.exec('terminate Mining')
  uo.exec('terminate TGuardians')
  uo.exec('terminate THide')
  IRecall()
end sub

Гварды:

Code: Select all

sub TGuardians()
  var intruder, msg = (':')
  while not uo.dead()
    intruder = 0
    while not uo.getgraphic(intruder) == '0x000e'
      if not uo.getgraphic(intruder) == '0x0190' and not uo.getgraphic(intruder) == '0x0191' then
      Deljournal(msg)
      endif
      repeat
        wait(100)
      until uo.injournal(msg)
      intruder = uo.journalserial(uo.injournal(msg) - 1)
    wend
    uo.waittargetobject(intruder)
    uo.usetype(0x1F2D, 0x02E3)
  wend
end sub

Трекинг:

Code: Select all

sub THide()
  var timer, msg = ('no signs')
  check:
  if uo.hidden() then
    goto check
  endif
  DelJournal(msg)
  uo.setglobal('pause', '1')
  uo.unequip('Rhand')
  uo.warmode(1)
  uo.warmode(0)
  uo.waitmenu('Tracking', 'Humans')
  uo.useskill('Tracking')
  timer = uo.timer()
  wait(500)
  if uo.injournal(msg) then
    while not uo.hidden()
      uo.useskill('Stealth')
      wait(2500)
    wend
    uo.setglobal('pause', '0')
    goto check
  else
    uo.exec('terminate Mining')
    uo.exec('terminate TGuardians')
    uo.exec('terminate TPlayers')
    IRecall()
    uo.print('Tracking!')
  endif
end sub
Last edited by Incorrect User on 2012-12-06 10:05:33, edited 1 time in total.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Миниг и рекол.

Post by ZeroDX »

из поиска людей

Code: Select all

while not uo.getgraphic(intruder) == '0x0190' or uo.getgraphic(intruder) == '0x0191'

будет ждать сообщения пока тип найденного не равен 190 ИЛИ равен 191, если найдет человека с типом 191, то сотрёт сообщение и всё равно будет ждать дальше. решение:

Code: Select all

while not uo.getgraphic(intruder) == '0x0190' and not uo.getgraphic(intruder) == '0x0191'


Сделай один поиск, и на разбойников и на гвардов - не будет конфликтов.

в sub THide() не хватает 2-ух end if

почему не реагирует на гвардов я не пойму пока не высплюсь =)
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Миниг и рекол.

Post by Incorrect User »

Проверка на игроков срабатывает на своего чара, как его исключить?

Code: Select all

sub TPlayers()
  var intruder, msg = (':')
  intruder = 0
  while not uo.getgraphic(intruder) == '0x0190' and not uo.getgraphic(intruder) == '0x0191'
    if not uo.getgraphic(intruder) == '0x000e' then
    DelJournal(msg)
    endif
    repeat
      wait(100)
    until uo.injournal(msg)
    intruder = uo.journalserial(uo.injournal(msg) - 1)
  wend
  uo.unequip('Rhand')
  uo.exec('terminate Mining')
  uo.exec('terminate TGuardians')
  uo.exec('terminate THide')
  IRecall()
  uo.print('Danger!')
end sub
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Миниг и рекол.

Post by Mirage »

Свой ID (который ВСЕГДА постоянен) игнорирую перед циклом :)


Двоеточие в журнале разве отображаются?

PS на мой взгляд конструкция какая то вырвиглазная по логике.

Code: Select all

Крутим цикл пока тип написавшего в журнал не равен человеку
Проверка на написавшего в журнал.

По уму то надо проверку вверх добавить. Либо использовать цикл repeat-until. Он проверяет ПОСЛЕ прогона 1 кольца цикла а не ПЕРЕД как WHILE.
Моё мнение исключительно ;)
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Миниг и рекол.

Post by ZeroDX »

а игнор разве будет работать? поиск же ведется по журналу
Post Reply