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

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
The_Filin
Posts: 36
Joined: 2009-07-04 14:57:19

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

Post by The_Filin »

есть скрипт на мининг, копает вокруг себя на 25 клеток, при достижение веса он плавить инги и снова копает.

и когда приходиться сбрасывать то меня малость напрягает это,
а суть такого, как можно сделать чтобы я подошел к чару положил рядом сумочку и после волшебного слова он начал скидывать руду, не отвлекаясь от работы копания
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

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

Post 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


Скрипт не проверял, писал сразу в окне ответа на форуме. Но в теории должно работать.
The_Filin
Posts: 36
Joined: 2009-07-04 14:57:19

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

Post by The_Filin »

Спасибо большое. Тока этот макрос не работает с макросом мининга, на пару, когда макрос мининга начинает плавить то твой макрос мешает определять кол-во руды которую надо переправить, т.е. он вмешиваеться в каут ресурсы плавильни, и пытаеться все инги сбросить в мешок, которого в свое время нету рядом.


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

Заранее благодарен
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

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

Post by Beyonder »

Я так точно ничего на досуге не придумаю. Можешь почитать данный мной скрипт, и на досуге почитать учебник скриптинга на форуме. Может что и получится.
The_Filin
Posts: 36
Joined: 2009-07-04 14:57:19

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

Post by The_Filin »

а можешь дать сылку на этот урок,

я так попробую другой макрос разобрать и приделать к твоему,
The_Filin
Posts: 36
Joined: 2009-07-04 14:57:19

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

Post 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


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

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


или не бывает того чего я прошу?
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

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

Post 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
The_Filin
Posts: 36
Joined: 2009-07-04 14:57:19

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

Post by The_Filin »

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

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

кстати не получеться, он чистит журнал после каждой выкопанной точки и причем очень часто :(
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

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

Post 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
The_Filin
Posts: 36
Joined: 2009-07-04 14:57:19

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

Post by The_Filin »

:oops:
значит у меня руки не оттуда растут и я как понял вместо стрингс писать мое слово?


запустил, тока не понял, толи все равно не робит, толи не правильно запустил
The_Filin
Posts: 36
Joined: 2009-07-04 14:57:19

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

Post by The_Filin »

скажи пожалуйста, почему во время ожидания скрипт бывает крашит клиент, и причем крашит по разному, бывает через 10 минут, а бывает или через час...
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

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

Post by Beyonder »

Слово вписать нужно сюда:

var keyword = 'unload'

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