Page 5 of 5

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

Posted: 2012-11-30 20:39:38
by Incorrect User
Вот именно нужно, и для того чтобы он не ушел дальше чем требуется. Лучше скажи почему не срабатывает определение направления чара? то что он сделал шаг срабатывает нормально. Обьясню, если просто по шагу проверять то если чар не сделает шаг а просто повернется то скрипт будет стоять и ждать изменения координат, для этого и нужна проверка направления.

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

Posted: 2012-11-30 20:46:58
by ZeroDX

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

Posted: 2012-11-30 21:54:33
by Incorrect User
:mrgreen: Шо и тут засада?

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

Posted: 2012-11-30 21:56:12
by Incorrect User
Так должно писать значение или нет?
sub MyDir()
uo.print(uo.getdir())
end sub

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

Posted: 2012-11-30 22:03:37
by ZeroDX
uo.print(str(uo.getdir()))

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

Posted: 2012-11-30 22:21:39
by Incorrect User
Вот так работает while not uo.getx()== mystep and not mydir <> uo.getdir()
Привыкать прийдеться к такому замороченному синтаксису. А вообще проверку на шаги делал для того чтобы чар не убежал, если просто нажимать кнопку и попал в лаг то кнопка и дальше будет нажиматься и когда отпустит чар убежит далеко потому что кнопку уже нажали. Это преверено :)

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

Posted: 2012-11-30 22:38:39
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 Номер аськи не менял?

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

Posted: 2012-11-30 22:49:58
by Incorrect User
Вроде бы нет, хотя не уверен, может скайп есть? Пошуми в асю или скайп, номера скинул в личку.

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

Posted: 2012-11-30 22:52:18
by Incorrect User
ZeroDX wrote:

Code: Select all

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


Так точность мненьше :)

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

Posted: 2012-12-06 07:21:57
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

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

Posted: 2012-12-06 08:30:03
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

почему не реагирует на гвардов я не пойму пока не высплюсь =)

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

Posted: 2012-12-06 11:05:25
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

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

Posted: 2012-12-06 11:52:06
by Mirage
Свой ID (который ВСЕГДА постоянен) игнорирую перед циклом :)


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

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

Code: Select all

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

По уму то надо проверку вверх добавить. Либо использовать цикл repeat-until. Он проверяет ПОСЛЕ прогона 1 кольца цикла а не ПЕРЕД как WHILE.
Моё мнение исключительно ;)

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

Posted: 2012-12-06 18:11:30
by ZeroDX
а игнор разве будет работать? поиск же ведется по журналу