Page 1 of 1

Подскажите команду..

Posted: 2010-03-04 15:25:45
by The_Filin
есть скрипт на мининг, копает вокруг себя на 25 клеток, при достижение веса он плавить инги и снова копает.

и когда приходиться сбрасывать то меня малость напрягает это,
а суть такого, как можно сделать чтобы я подошел к чару положил рядом сумочку и после волшебного слова он начал скидывать руду, не отвлекаясь от работы копания

Re: Подскажите команду..

Posted: 2010-03-04 19:23:52
by Beyonder
Да, можно.

Что-то вроде такого:

Code: Select all

sub unloader()
    var keyword = 'unload'
    var oreType = '0x0000'
    var bagType = '0x0000'

    var bag

    while not UO.Dead()
        UO.DeleteJournal()

        while not UO.InJournal(keyword)
            wait(1000)
        wend

        UO.Set('finddistance','2')
        UO.FindType(bagType,-1,'ground')
        if (UO.FindCount() == 0) then
            UO.Say('No bag found!')
        else
            bag = UO.GetSerial('finditem')
            UO.Grab(1,bag)
            wait(500)
            UO.FindType(oreType,-1,'backpack')
            while UO.FindCount() > 0
                UO.MoveItem('finditem',0,bag)
                wait(500)
                UO.FindType(oreType,-1,'backpack')
            wend
            UO.Drop(0,UO.GetX(),UO.GetY(),UO.GetZ(),bag)
            wait(500)
        endif
    wend
endsub


Скрипт не проверял, писал сразу в окне ответа на форуме. Но в теории должно работать.

Re: Подскажите команду..

Posted: 2010-03-04 21:10:54
by The_Filin
Спасибо большое. Тока этот макрос не работает с макросом мининга, на пару, когда макрос мининга начинает плавить то твой макрос мешает определять кол-во руды которую надо переправить, т.е. он вмешиваеться в каут ресурсы плавильни, и пытаеться все инги сбросить в мешок, которого в свое время нету рядом.


могу скинуть макр мининга с плавилкой, может придумаешь что-нить на досуге. :)

Заранее благодарен

Re: Подскажите команду..

Posted: 2010-03-04 23:21:36
by Beyonder
Я так точно ничего на досуге не придумаю. Можешь почитать данный мной скрипт, и на досуге почитать учебник скриптинга на форуме. Может что и получится.

Re: Подскажите команду..

Posted: 2010-03-05 08:30:07
by The_Filin
а можешь дать сылку на этот урок,

я так попробую другой макрос разобрать и приделать к твоему,

Re: Подскажите команду..

Posted: 2010-03-05 09:40:13
by Beyonder

Re: Подскажите команду..

Posted: 2010-03-06 13:24:36
by The_Filin
Подскажите как соеденить два скрипта
1) скидывает руду в мешочек (за скрипт спасибо Beyonder)
sub unloader()
var keyword = 'unload'
var oreType = '0x0000'
var bagType = '0x0000'

var bag

while not UO.Dead()
UO.DeleteJournal()

while not UO.InJournal(keyword)
wait(1000)
wend

UO.Set('finddistance','2')
UO.FindType(bagType,-1,'ground')
if (UO.FindCount() == 0) then
UO.Say('No bag found!')
else
bag = UO.GetSerial('finditem')
UO.Grab(1,bag)
wait(500)
UO.FindType(oreType,-1,'backpack')
while UO.FindCount() > 0
UO.MoveItem('finditem',0,bag)
wait(500)
UO.FindType(oreType,-1,'backpack')
wend
UO.Drop(0,UO.GetX(),UO.GetY(),UO.GetZ(),bag)
wait(500)
endif
wend
endsub

2) копает вокруг себя + плавит
sub mining()
walk(1000,1586,'')
var mx, my, mz, i, j
var ismining, ixx, isheavy
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
While not UO.Dead()
UO.DeleteJournal()
for i = mx-2 to mx+2
for j = my-1 to my+2
UO.Print("Now Mining In: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here")
wait(4000)
if uo.weight > 320 then ; Ìàêñèìàëüíûé âåñ ïðè êîòîðîì ÷àð èäåò ïåðåïëàâëÿòü ðóäó
plav()
endif
UO.DeleteJournal()
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Usetype('0x0E85')
while not UO.InJournal("no ore")
wait(100)
wend
while UO.InJournal("but fail")
Wait (3000)
UO.DeleteJournal()
wend
wend
UO.DeleteJournal()
next
next
wend
UO.DeleteJournal()
end sub


мне надо соеденить их так чтобы не запускаеть оба макроса. Т.е. я запускаю мининг и он копает, но так же и отслеживает журнал, и когда журнале появилась надпись он начинает скидывать в мешочек. Пытался сделать сам, но у меня скрипт доходит до места где указано волшебное слово и вставал в ступор и ждал, а мне надо чтобы он следил за журналом, и если волшебое слово проскочит то выполнил команду Анлоадер

зы когда запускаю их вместе, инжа бывает дает сбои и окно трешаеться


или не бывает того чего я прошу?

Re: Подскажите команду..

Posted: 2010-03-06 15:26:43
by Beyonder
Так уж и быть, я сегодня снова добрый.

Code: Select all

sub checkUnloadCommand()
  var keyword = 'unload'
  var oreType = '0x0000'
  var bagType = '0x0000'

  var bag

  if UO.InJournal(keyword)
    DeleteJournal(keyword) ## Поищи, где-то на форуме эта функция была. Я сейчас не дома так что не помню как та функция выглядит

    UO.Set('finddistance','2')
    UO.FindType(bagType,-1,'ground')
    if (UO.FindCount() == 0) then
      UO.Say('No bag found!')
    else
      bag = UO.GetSerial('finditem')
      UO.Grab(1,bag)
      wait(500)
      UO.FindType(oreType,-1,'backpack')
      while UO.FindCount() > 0
        UO.MoveItem('finditem',0,bag)
        wait(500)
        UO.FindType(oreType,-1,'backpack')
      wend
      UO.Drop(0,UO.GetX(),UO.GetY(),UO.GetZ(),bag)
      wait(500)
    endif
  endif
endsub

sub mining()
...
for j = my-1 to my+2
checkUnloadCommand()
UO.Print("Now Mining In: "+str(mx-i)+" "+str(my-j))
...
endsub

Re: Подскажите команду..

Posted: 2010-03-06 17:10:30
by The_Filin
DeleteJournal(keyword) ## Поищи, где-то на форуме эта функция была. Я сейчас не дома так что не помню как та функция выглядит

я как понял она должна удалять из журнала keyword? поиск ничего кроме UO.DeleteJournal() мне не показал

кстати не получеться, он чистит журнал после каждой выкопанной точки и причем очень часто :(

Re: Подскажите команду..

Posted: 2010-03-06 18:46:42
by Beyonder
Нашёл за 15 секунд поиска по форуму:

Code: Select all

Sub DeleteJournal( string1 )
VAR nom = UO.InJournal( string1 )
If nom > 0 Then
UO.SetJournalLine( Nom - 1, 'string replaced' )
DeleteJournal( string1 )
Endif

Re: Подскажите команду..

Posted: 2010-03-06 19:06:06
by The_Filin
:oops:
значит у меня руки не оттуда растут и я как понял вместо стрингс писать мое слово?


запустил, тока не понял, толи все равно не робит, толи не правильно запустил

Re: Подскажите команду..

Posted: 2010-04-07 14:54:14
by The_Filin
скажи пожалуйста, почему во время ожидания скрипт бывает крашит клиент, и причем крашит по разному, бывает через 10 минут, а бывает или через час...

Re: Подскажите команду..

Posted: 2010-04-08 09:08:12
by Beyonder
Слово вписать нужно сюда:

var keyword = 'unload'

Насчёт крашей наверное потому что старый инжект.