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

Anything and all.

Moderators: Murderator+, Murderator

ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

Incorrect User wrote:Так это и нужно, в начале каждого тайла ставится значение 0, и если 1 раз выкопал то ставится значение 0 + 1, и если выкопал еще раз то значение 1 + 1, а это > 1 как нам и нужно и скрипт будет переходить на новый круг.

так у тебя забивается не перед копкой тайла, а перед обкопкой вокруг себя. и обнулится только тогда, когда чар перейдёт на 5 клеток в сторону
Incorrect User wrote:Антимакрос вводится за 1 раз одно число из двух, после ввода числа гамп исчезает и появляется заново чтобы ввести второе число, юз кирки собьет ввод и просто вызовет новый антимакрос.

Code: Select all

                repeat
                    wait(100)
                    if not uo.lastgump("replyed") then
                        while not uo.lastgump("replyed") and uo.lastgump("text", 0) == "Antimacros System"
                           antimacros()
                           wait(500)
                        wend
                        uo.usetype("0x0E85")
                    end if
                until uo.injournal(msg) ot timer + 50 <= uo.timer()

думаю 500 милисекунд хватит на то, чтобы вылезло ещё окно
Last edited by ZeroDX on 2012-11-29 19:47:08, edited 1 time in total.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

Incorrect User wrote:Только в пилоте у меня были совмещены два скрипта на трекинг игроков и убивание гвардов, а тут я хочу сделать 2 одинаковых, но один реагирует на появление гвардов а второй на людей, чтобы когда скрипт убивает гварла проверка на людей не прерывалась.

запускаешь проверку на пк в отдельном потоке. если проверка найдёт кого-нибудь, просто убьёт или поставит на паузу поток с минингом, сделает свои дела и запустит мининг снова. пусть килл гварда тоже будет в отдельном потоке.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

ZeroDX wrote:[запускаешь проверку на пк в отдельном потоке. если проверка найдёт кого-нибудь, просто убьёт или поставит на паузу поток с минингом, сделает свои дела и запустит мининг снова. пусть килл гварда тоже будет в отдельном потоке.

Именно об этом я и говорил, мне нужно только узнать как будет происходить сравнение сообщений, точнее как именно это расписать, определять я буду по сообщениям сервера а не по треку итемов вокруг.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

А с минингом все же пока решил остановиться на своем варианте, слегда оптимизированном благодаря твей версии, работоспособность проверить пока нет времени

Code: Select all

sub Mining()
  var circle
  for x = -2 to 2
    for y = -2 to 2
      circle = 0
      mine:
      uo.deletejournal()
      uo.waittargettile(1339, uo.getx() + x, uo.gety + y, uo.getz())
      uo.usetype(0x0E85, 0x0000)
      wait(500)
      if not uo.LastGump('replyed') and uo.LastGump('text', 0) == 'Antimacros System' then
        while not uo.injournal('Success')
          AntiMacros()
          wait(500)
        wend
        goto mine
      endif
      while not uo.injournal('put the|fail|far away|loosen|no ore|no line|try mining')
        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|loosen|no ore|no line|try mining') or not circle > 1 then
        goto mine
      endif
    next
  next
end sub
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

Не имею на руках инжекта, но хочется кое что проверить

Code: Select all

sub test123()
    var intruder
    uo.deletejournal()
    repeat
        wait(100)
    until uo.injournal(":")
    intruder = uo.journalserial(uo.injournal(":") - 1)
    if uo.getgraphic(intruder) == "0x0190" or uo.getgraphic(intruder) == "0x0191" ; типы игроков, не уверен, писал по памяти
        uo.say("player found")
    else
        uo.say("not a player")
    end if
end sub
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

ZeroDX wrote:Не имею на руках инжекта, но хочется кое что проверить

Сейчас проверю, а пока вот, конечный вариант, чар роет до упора(это до 3 удачных раз и в один тайл), ну уже что неправильно я не знаю :evil:

Code: Select all

sub Mining()
  var circle, x, y
  for x = -2 to 2
    for y = -2 to 2
      circle = 0
      mine:
      uo.deletejournal()
      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
        goto mine
      endif
      while not uo.injournal('put the|fail|far away|loosen|no ore|no line|try mining')
        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|loosen|no ore|no line|try mining') or not circle > 1 then
        goto mine
      endif
    next
  next
end sub
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

На 8 строке парсер

Code: Select all

if uo.getgraphic(intruder) == "0x0190" or uo.getgraphic(intruder) == "0x0191"
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

then не хватает
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

Code: Select all

      if not uo.injournal('far away|loosen|no ore|no line|try mining') or not circle > 1 then
        goto mine
      endif

думаю, что or надо заменить на and
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

ZeroDX wrote:then не хватает

Запускаю, работает, но ничего не проиходит, не пишет ничего.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

И мининг заработал как надо после and. Такой странный синтаксис тут :)
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

это не синтаксис а логика. and - И or - ИЛИ
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

вот именно, если сообщение пришло нужно то уходить на новый круг ИЛИ если значение > 1, то есть либо то либо то, в пилоте все так и есть а тут бред.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

Code: Select all

far away|loosen|no ore|no line|try mining

такое сообщение 100% уведёт на второй круг тот тайл, который вообще копается
в ранних версиях у тебя все правильно
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

Причем если мне нужно чтобы одновременно проверялись 2 условия в пилоте я напишу if (lastmsg put) and (lastmsg marble) то есть мне нужно чтобы было слово put и вместе с ним Marble и если его не будет то скрипт не сработает, а как тут такое сделать я вообще не в курсе тогда :)
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 »

ZeroDX wrote:

Code: Select all

far away|no ore|no line|try mining

такое сообщение 100% уведёт на второй круг тот тайл, который вообще копается
в ранних версиях у тебя все правильно

Все работает, копает айрон и марбл по 2 раза, все остальное по 1. Готовая версия такая

Code: Select all

sub Mining()
  var circle, x, y
  for x = -2 to 2
    for y = -2 to 2
      circle = 0
      mine:
      uo.deletejournal()
      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.usetype(0x0E85, 0x048C)
      endif
      while not uo.injournal('put the|fail|far away|loosen|no ore|no line|try mining')
        wait(100)
      wend
      if uo.injournal('put the iron|put the Agapite|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
end sub
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

Если так же то получается что если значение так и будет > 1 но не будет нужного сообщения то скрипт не сработает?
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

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

Post by Incorrect User »

Ладно, с этим минингом закончили, едем дальше - ходилка. Как расписать координаты в условии if? Вот нужные из пилота переделать под инжект.

Code: Select all

if ((charposx = 383) and (charposy = 1443)) or((charposx = 373) and (charposy = 1438)) or ((charposx = 388) and (charposy = 1433)) or ((charposx = 383) and (charposy = 1428)) or ((charposx = 378) and (charposy = 1433)) or ((charposx = 373) and (charposy = 1438)) or ((charposx = 368) and (charposy = 1438)) or ((charposx = 363) and (charposy = 1438)) or ((charposx = 358) and (charposy = 1457)) or ((charposx = 353) and (charposy = 1452)) or ((charposx = 363) and (charposy = 1452)) or ((charposx = 4038) and (charposy = 434)) or ((charposx = 4033) and (charposy = 429)) or ((charposx = 4028) and (charposy = 429)) or ((charposx = 4048) and (charposy = 460)) or ((charposx = 4043) and (charposy = 460)) or ((charposx = 4038) and (charposy = 465)) or ((charposx = 4033) and (charposy = 465)) or ((charposx = 2447) and (charposy = 882))  or ((charposx = 2442) and (charposy = 882)) or ((charposx = 2437) and (charposy = 882)) or ((charposx = 2448) and (charposy = 892)) or ((charposx = 2443) and (charposy = 897)) or ((charposx = 2438) and (charposy = 902))


Когда чар прорыл вокруг себя и проверяет координаты в которых он находится, и если совпало из списка то начинает делать шаги в нужную сторону, в данном случае на W по карте(Кнопка Home)
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

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

Post by ZeroDX »

не проще сделать так:

Code: Select all

sub mining()
    for i = 0 to 2
        реколл по руне i
        for j = 0 to 7 step 2
            мининг вокруг себя
            шаг в сторону j
        next
    next
end sub
Post Reply