Page 11 of 12

Re: То, что ищут многие...

Posted: 2016-05-03 18:31:06
by Incorrect User
slafoka wrote:А Это разве не нужно добавить Var Spools = 'Тип ниток' ?
И нужно ли это uo.FindType(Spools,'-1','backpack') ?

Результат не изменится, просто type можно будет задавать удобно в условиях, но в целом без разницы.

Re: То, что ищут многие...

Posted: 2016-05-03 20:01:23
by slafoka
Спасибо. Попробую запустить отпишусь.

Re: Re:

Posted: 2016-05-08 10:05:41
by slafoka
slafoka wrote:
Scripts Writer wrote:

Code: Select all

####################
# Качаем Tailoring #
####################

sub Tailoring()
var cloth=0x175D # Type of cloth
var sew=0x404733DB # ID of a sewing kit
var sash=0x1541 # Type of created item(i made body sashes)
var scissors=0x404733DD # Type of anything to cut created items
var bandage=0x0E21 # Type of bandages
var to=0x401E340D # Where to put bandages and to get clothes
var type1=0x0C77 # Type of food1
var type2=0x0C6D # Type of food2
var k,l
l=0
  while uo.SkillVal('Tailoring','1') < 1000
    uo.FindType(cloth,'-1','backpack')
    if uo.GetQuantity('finditem') < 20 then
      GetItem(cloth,100,to,'backpack')
    end if
    uo.WaitMenu('Cloth','Misc','Misc','sash') # Menu
    uo.WaitTargetObject('finditem')
    uo.UseObject(sew)
    uo.DeleteJournal()
    k=0
    repeat
      wait(100)
      k=k+1
    until uo.InJournal('put') || uo.InJournal('fail') || k>100
    if uo.InJournal('put') then
      uo.FIndType(sash,'-1','backpack')
      while uo.FIndCount()
        uo.FIndType(sash,'-1','backpack')
        uo.WaitTargetObject('finditem')
        uo.UseObject(scissors)
        wait(750)
      wend
    end if
    CheckLag()
    Move(bandage,'all','backpack',to)
    l=l+1
    if (l>100) then
      EatFood(type1,type2)
      l=0
    end if
  wend
end sub

##########
# Eating #
##########

sub EatFood(carrot , onion)
  var i
  for i=0 to 5
    uo.FindType(carrot,'-1','backpack')
    if uo.FindCOunt() then
      uo.UseObject('finditem')
      wait(750)
    else
      if not uo.FindCount() then
        uo.FindType(onion,'-1','backpack')
        if uo.FindCount() then
          uo.UseObject('finditem')
          wait(750)
        else
          uo.Print('No food...')
        end if
      end if
    end if
    wait(500)
  next
end sub

###########
# GetItem #
###########

sub GetItem(type, quantity, where , to)
  uo.FindType(type,'-1',where)
  if uo.FindCount() then
    uo.moveitem('finditem',quantity,to)
    wait(750)
  end if
end sub

###############
# Moving item #
###############

sub Move(type,quantity,where,to)
  uo.FindType(type,'-1',where)
  if uo.GetQuantity('finditem') > 100 then
    uo.moveitem('finditem',quantity,to)
    wait(750)
  end if
end sub

############
# CheckLag #
############

sub CheckLag()
  uo.DeleteJournal('backpack')
  uo.Click('backpack')
  repeat
    wait(100)
  until uo.InJournal('backpack')

Сделайте чтоб он еще нитки добирал когда они заканчиваются.

Работает не корректно. Если добавить GetItem( 'Тип ниток',100,to,'backpack') то он их добирает по условию когда заканчивается ткань, а нужно чтобы это было не зависимо друг от друга.
Помогите исправить

Re: Re:

Posted: 2016-05-08 12:04:45
by Incorrect User
slafoka wrote:Помогите исправить

При каком условии нужно их добирать?

Re: Re:

Posted: 2016-05-08 12:59:22
by slafoka
Incorrect User wrote:
slafoka wrote:Помогите исправить

При каком условии нужно их добирать?

Если ниток в бекпаке меньше 20 шт, то взять их из сундука в таком то кол-ве.

Re: То, что ищут многие...

Posted: 2016-05-08 13:10:47
by Incorrect User
После строки

Code: Select all

while uo.SkillVal('Tailoring','1') < 1000
добавь это

Code: Select all

    if uo.FindType('тип ниток', -1, 'backpack') and uo.GetQuantity('finditem') < 20 then
      GetItem('тип ниток', 100, to, 'backpack')
    end if

Re: То, что ищут многие...

Posted: 2016-05-08 14:53:54
by slafoka
Incorrect User wrote:После строки

Code: Select all

while uo.SkillVal('Tailoring','1') < 1000
добавь это

Code: Select all

    if uo.FindType('тип ниток', -1, 'backpack') and uo.GetQuantity('finditem') < 20 then
      GetItem('тип ниток', 100, to, 'backpack')
    end if

В твоем варианте это не работало.
Вышел из положения таким образом:

Code: Select all

uo.FindType(Spools, -1, 'backpack')
    if uo.GetQuantity('finditem') < 20 then
      GetItem(Spools,100,to,'backpack')
    end if

Спасибо за помощь
Осталось заставить его кушать.
Что означает это действие:

Code: Select all

if (l>100) then
      EatFood(type1,type2)
      l=0
    end if

Re: То, что ищут многие...

Posted: 2016-05-20 20:12:37
by Incorrect User
slafoka wrote:Что означает это действие:

Code: Select all

if (l>100) then
      EatFood(type1,type2)
      l=0
    end if

Видимо счетчик стоит, каждые 100 циклов есть. I - это счетчик, после достижения 100 циклов чар попытается поесть, счетчик сбрасывается и снова ждем 100 циклов.

Re: То, что ищут многие...

Posted: 2016-05-27 00:50:01
by slafoka
Помогите для Карпентри добавить добор ниток из сундука, с условием. Если ниток меньше 10, то взять 100шт из сундука.
Или как-то можно добавить вот это:

Code: Select all

uo.FindType(Spools, -1, 'backpack')
    if uo.GetQuantity('finditem') < 10 then
      GetItem(Spools,100,to,'backpack')
    end if

Code: Select all

sub Carpentry() 
VAR Trash = '0x400BC645' ;
VAR Sunduk = '0x41DC7700' ;
VAR Ingi = '0x1BDD' ;
VAR Instrum = '0x1030' ;
VAR Bottle = '0x1B7A' ;
VAR Kolvo = 200 ;
VAR k = 0
VAR Fish = '0x097B' ;
While TRUE
UO.FindType( Ingi, -1, Sunduk ) ;
If UO.FindCount() == 0 Then
UO.Print("Iron Ingots not found, script terminated")
return
end if
UO.Grab( Str( Kolvo ), 'finditem' )
wait(2000)
While UO.Count( Ingi ) > 10
UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu ('Carpentry', 'Containers & Shields', 'Containers & Shields', 'wooden shield' )
UO.UseType( Instrum )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('Fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
if UO.Count( Bottle ) > 0 then
UO.FindType( Bottle, -1, -1 )
UO.MoveItem( 'finditem', 0, Trash )
wait( 1000 )
UO.Print( 'Bottle moved' )
UO.FindType( Fish )
UO.UseType( Fish )
wait (2000)
end if
Wend
Wend
end sub

Re: То, что ищут многие...

Posted: 2016-05-27 05:15:46
by Mirage
ты же сам чуть выше решение написал :shock:
После While TRUE добавь свои строчки. Если скрипт отдельный либо перенеси его к тейлору либо добавь в карпу

Code: Select all

###########
# GetItem #
###########

sub GetItem(type, quantity, where , to)
  uo.FindType(type,'-1',where)
  if uo.FindCount() then
    uo.moveitem('finditem',quantity,to)
    wait(750)
  end if
end sub

Re: То, что ищут многие...

Posted: 2016-05-27 06:14:08
by slafoka
спасибо

Re: То, что ищут многие...

Posted: 2016-10-13 21:27:33
by Kynep
Всем привет в этом чатике! :lol: 8)

Re: То, что ищут многие...

Posted: 2016-10-14 12:58:59
by Mirage
Починяем примусы недорого :D
Все спасибы Yoko

Re: То, что ищут многие...

Posted: 2017-04-24 18:50:41
by Lusi
помогите, задача такая

Есть драк ... нужно чтобы он при появлении Вирма убивал его и ждал следующего и так по кругу...

что то типа такого:

Code: Select all

sub killdrake() 
UO.set('finddistance','14')  # расстояние поиска 14 клеток вокруг
 while UO.GetHP('self') < 500
    UO.FindType(wirm, '-1', 'ground')
    if UO.FindCount() > 0 then
       UO.DeleteJournal()
               if UO.FindType(0x20D6,-1,'my') then           # если драк в шринке
         uo.ColorPrint(2998,"Достаём дракона..")
                   uo.UseType('0x20D6')                      # выпустили дракона
         wait(300)
            UO.Exec("warmode 1")
                 # uo.waittargetobject('laststatus')
                 # uo.say('all kill')
          UO.Attack('finditem')
                   repeat
                      wait(500)
                   until UO.InJournal('Body of')
              else                                         # если дракон на свободе
                   UO.FindType(wirm, '-1', 'ground')
          If UO.FindCount() > 0 Then
            UO.DeleteJournal()
                      UO.Exec("warmode 1")
                      uo.ColorPrint(2998,"Дракон на земле..")
           wait(500)
                   UO.Attack('finditem')
                        wait(500)
                        uo.attack('finditem')
                         repeat
                               wait(500)
                         until UO.InJournal('Body of')
                      endif   
               endif
         Endif
   else
             uo.ColorPrint(2998,"ждём вирма...")
  Endif
 
wend
uo.ColorPrint(2998,"всё...")
endsub


немного криво работает, поправьте кто понимает!

Re: То, что ищут многие...

Posted: 2017-04-24 19:52:14
by Mirage

Code: Select all

sub killdrake() 
   UO.set('finddistance','14')  # расстояние поиска 14 клеток вокруг
   while UO.GetHP('self') < 500
      UO.FindType(wirm, '-1', 'ground')
      if UO.FindCount() > 0 then
         UO.DeleteJournal()
         if UO.FindType(0x20D6,-1,'my') then           # если драк в шринке
            uo.ColorPrint(2998,"Достаём дракона..")
            uo.UseType('0x20D6')                      # выпустили дракона
            wait(300)
            UO.Exec("warmode 1")
            # uo.waittargetobject('laststatus')
            # uo.say('all kill')
            UO.Attack('finditem')
            repeat
               wait(500)
            until UO.InJournal('Body of')
         else                                         # если дракон на свободе
            UO.FindType(wirm, '-1', 'ground')
            If UO.FindCount() > 0 Then
               UO.DeleteJournal()
               UO.Exec("warmode 1")
               uo.ColorPrint(2998,"Дракон на земле..")
               wait(500)
               UO.Attack('finditem')
               wait(500)
               uo.attack('finditem')
               repeat
                  wait(500)
               until UO.InJournal('Body of')
            endif   
         endif
      Endif
      wait(500)   
   wend
   uo.ColorPrint(2998,"всё...")
endsub

var wirm у тебя где то выше видимо.
И что будет если умрет призванный дракон? :)

Re: То, что ищут многие...

Posted: 2017-04-24 19:59:24
by dubd
подскажите пожалуйста, как сделать чтобы чар - стрелял в драка и когда у драка мало хп - он переставал стрелять и ждал пока второй его подлечит и опять стрелял.

Re: То, что ищут многие...

Posted: 2017-04-24 21:58:34
by Lusi
Mirage wrote:
var wirm у тебя где то выше видимо.



да
Mirage wrote:
И что будет если умрет призванный дракон? :)


это внутри другой функции

Re: То, что ищут многие...

Posted: 2017-04-25 21:13:06
by dubd
да что же за жопа такая! сделал крипт на обстрел драка а когда его выключаешь, то клиент виснит)))))))))))))

Re: То, что ищут многие...

Posted: 2017-04-25 23:02:41
by Mirage
а как ты его выключаешь?

Re: То, что ищут многие...

Posted: 2017-04-26 16:40:47
by dubd
красная кнопка terminate и клиент виснет)))))