все тот же БС

Anything and all.

Moderators: Murderator+, Murderator

rusa
Posts: 22
Joined: 2011-05-02 17:13:51

все тот же БС

Post by rusa »

всем хай!!!
перебрал много скриптов на БС
остановился вот на этом (ниже)


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

а что самое интересное этим скриптом пользуются многие
выкручиваются как могут
кто та по полному загружает а кто та и вовсе ставит пилот чтобы он через определённое время перезапуска скрипт



Code: Select all

sub Blacksmithing()
    var Exit=0, LastTimer, Container='0x4053827B', Forge='0x4025617C' ;Cундук в котором инги и форж.
    var CountIng=100 ;Скока ингов поднимает чар
    var MenuIron="'Blacksmithing' 'Weapons'"
    var MenuOther="'Colored' 'Weapons'"
    var MenuSwords="Weapons' 'Swords'"
    var MenuDagger="'Swords' '(3'"
    var i=0
   
    dim ColorOfIng[6]
    dim NameOre[6]
   
    NameOre[0]="'"
    NameOre[1]="'Rusty "
    NameOre[2]="'Old Copper "
    NameOre[3]="'Dull Copper "
    NameOre[4]="'Bronze "
   
    ColorOfIng[0]='0x0000' ; Iron
    ColorOfIng[1]='0x0750' ; Rusty
    ColorOfIng[2]='0x0590' ; Old Copper
    ColorOfIng[3]='0x060A' ; Dull Copper
    ColorOfIng[4]='0x0488' ; Bronze
   
   
    uo.UseObject(Container)
    while not uo.Dead()
        for i=0 to 4
            uo.FindType('0x1BEF',ColorOfIng[i],Container)
            if uo.GetQuantity('finditem')>10 then
                uo.Grab(STR(CountIng),'finditem')
                wait(1000)
               
                uo.Exec('automenu '+MenuDagger)
                uo.Exec('automenu '+NameOre[i]+MenuSwords)
                if i>0 Then
                    uo.Exec('automenu '+MenuOther)
                end if
                uo.Exec('automenu '+MenuIron)
               
                While Exit<>1
                    uo.DeleteJournal()
                    LastTimer=uo.Timer()
                   
                    uo.UseType(0x1BEF)
                   
                    while not uo.InJournal("You put") and not uo.InJournal("You have failed")
                        wait(100)
                    wend
                   
                    if uo.InJournal("You have failed") then
                        repeat
                            wait(100)
                        until uo.Timer()>=LastTimer+100 ; Время создания дагера
                    end if
                    CheckLag()
                   
                    uo.FindType('0x0F51',-1,'backpack')
                   
                    if uo.GetQuantity('finditem') then
                        uo.WaitTargetObject('finditem')
                        uo.UseObject(Forge)
                        wait(100)
                    end if
                   
                    uo.FindType('0x1BEF',-1,'backpack')
                    if uo.GetQuantity('finditem')<10 then
                        uo.FindType('0x1BEF',ColorOfIng[i],Container)
                        if uo.GetQuantity('finditem')<10 then
                            uo.FindType('0x1BEF',ColorOfIng[i],'backpack')
                            uo.SetReceivingContainer(Container)
                            uo.Grab('all','finditem')
                            uo.UnSetReceivingContainer()
                            Exit=1
                        end if
                    else
                        wait(1000)
                        uo.Grab(STR(CountIng-10),'finditem')
                    end if
                wend
                Exit=0
                uo.CancelMenu()
            end if
        next
    wend
end sub

sub CheckLag()
    if uo.Waiting()>0 then
        uo.Exec("canceltarget")
    end if
    uo.DeleteJournal()
    uo.Click('backpack')
    repeat
        wait(50)
    until uo.InJournal('backpack')
end sub
Last edited by rusa on 2011-11-23 21:44:35, edited 1 time in total.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: все тот же БС

Post by ZeroDX »

Так ли необходимо использовать именно этот скрипт? Ковать с разных металов? И что бывает, если ковка сфизлится, и за ней сразу последует другая?
Last edited by ZeroDX on 2011-11-23 23:10:28, edited 1 time in total.
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: все тот же БС

Post by rusa »

отвечаю на поставленные вопросы
1. можно и другой использовать главное чтобы он выполнял такие функции
а) брал игноты 100ед.(айрон) когда становилось 10 или менее снова добирал до 100 (если айрон закончился то брал игноты следующие тоесть Rusty)
б) изготавливал дагеры
в) плавил их (используя форжу)
г) проверку на лаги\сейф
д) реконектор

2. да! с разных

3. если ковка физлит то срабатывает вот эта строчка

Code: Select all

until uo.Timer()>=LastTimer+100 ; Время создания дагера
я так понимаю




пытался тут врезать вот такой блок
перед форжой вроде всё работало..)))


Code: Select all

UO.DeleteJournal()
      while not uo.hidden()
   uo.useskill('Hiding')
      cheklag()
      repeat
      wait(300)
      until  uo.injournal('seem|hidden')
     wend
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: все тот же БС

Post by ZeroDX »

rusa wrote:3. если ковка физлит то срабатывает вот эта строчка

Code: Select all

until uo.Timer()>=LastTimer+100 ; Время создания дагера
я так понимаю


Верно, но что сделает сервер? Не даст ковать новых даггеров пока не пройдёт n-ное время или же ковать можно сразу?
сколько ингов нужно для ковки одного даггера?
Last edited by ZeroDX on 2011-11-23 22:29:01, edited 1 time in total.
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: все тот же БС

Post by rusa »

сразу!!! проверил при физле вылетает "You have failed to make anything."
3 игнота нужна на дагер
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: все тот же БС

Post by rusa »

добор в норме
реконект тоже робит
а с меню так как сказал

если я правильно понял то те нужно вот это......


Code: Select all

sub MenuIron()
   uo.cancelmenu()
   uo.automenu('Blacksmithing','Weapons')
   uo.automenu('Weapons','Swords')
   uo.automenu('Swords','dagger')
end sub


Code: Select all

sub MenuColor()
   uo.cancelmenu()
   uo.automenu('Blacksmithing','Colored Armor & Weapons')
   uo.automenu('Colored Armor & Weapons','Weapons')
   uo.automenu('Weapons','Swords')
   uo.automenu('Swords','dagger')
end sub
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: все тот же БС

Post by rusa »

вот ещё рабочий скрипт но он медленно думает и не все инги перекидыват надо постоянно менять i но мона позаимствовать авто меню

Code: Select all

sub Blacksmithy()
VAR i
Var Forge='0x4025617C' ;ИД форжи
Var Sunduk='0x4053827B' ;ИД сундука с инготами
Var TItem='0x0f51' ;Тип того, что куём, сейчас dagger

Dim TIngot[18]
For i=0 To 17
   TIngot[i]='0x1BEF' ;
next
i=0
TIngot[4]='0x1BE3' ;Copper
TIngot[6]='0x1BE5' ;Silver
TIngot[8]='0x1BE9' ;Shadow

Dim CIngot[18]
CIngot[0]='0x0000' ;Iron
CIngot[1]='0x0750' ;Rusty
CIngot[2]='0x0590' ;Old Copper
CIngot[3]='0x060A' ;Dull Copper
CIngot[4]='0x0000' ;Copper
CIngot[5]='0x0488' ;Bronze
CIngot[6]='0x1BF5' ;Silver
CIngot[7]='0x0000' ;Gold
CIngot[8]='0x096B' ;Shadow
CIngot[9]='0x0014' ;Rose
CIngot[10]='0x0193' ;Agapite
CIngot[11]='0x04C2' ;Blood Rock
CIngot[12]='0x07D5' ;Verite
CIngot[13]='0x00CE' ;Valorite
CIngot[14]='0x052D' ;Mytheril
CIngot[15]='0x0455' ;Black Rock
CIngot[16]='0x0028' ;Obsidian
CIngot[17]='0x08AF' ;Plutonium

MenuIron()


uo.useobject(Sunduk)
cheklag()
wait(200)

While 1
ff:
   UO.FindType(TIngot[i],CIngot[i],'backpack')
   Wait(200)
   If UO.Count(TIngot[i],CIngot[i])<8 Then
      If UO.Count(TIngot[i],CIngot[i])>0 Then
         UO.SetReceivingContainer(Sunduk)
         UO.Grab('0','finditem')
          cheklag()
         wait(1000)
         UO.UnSetReceivingContainer()
      end if
      UO.FindType(TIngot[i],CIngot[i],Sunduk)
      Wait(200)
      If UO.GetQuantity('finditem')>=8 Then
         UO.Grab('100','finditem')
          cheklag()
         Wait(1000)
      else
         i=i+1
         If i>17 Then
            return
         end if
         MenuColor()
         goto ff
      end if
   end if

   UO.DeleteJournal()
      while not uo.hidden()
   uo.useskill('Hiding')
      cheklag()
      repeat
      wait(300)
      until  uo.injournal('seem|hidden')
     wend
   UO.UseType(TIngot[i],CIngot[i])
   while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed")
      wait(300)
   wend
     while uo.count(TItem)
               uo.deletejournal()
               uo.waittargettype(TItem)
               uo.useobject(Forge)
                                   repeat
                                        wait(300)
                                   until uo.injournal('You put|It is consumed')
     wend
wend
end sub

sub MenuIron()
   uo.cancelmenu()
   uo.automenu('Blacksmithing','Weapons')
   uo.automenu('Weapons','Swords')
   uo.automenu('Swords','dagger')
end sub

sub cheklag()
uo.deletejournal()
uo.click('backpack')
Repeat
wait(100)
Until UO.InJournal("backpack")
end sub

sub MenuColor()
   uo.cancelmenu()
   uo.automenu('Blacksmithing','Colored Armor & Weapons')
   uo.automenu('Colored Armor & Weapons','Weapons')
   uo.automenu('Weapons','Swords')
   uo.automenu('Swords','dagger')
end sub


sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
;UO.Exec('terminate Blacksmithy')
;UO.Exec('exec Blacksmithy')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub

sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: все тот же БС

Post by rusa »

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

Code: Select all

var Dbag, hammer, color, ingi, fail=0
var Tbag = '0x0E76'
var dagger = '0x0F51'
var sunduk = '0x4053827B'

sub main()
   uo.ignore('0x4055C04D')
   uo.filterspeech('clear')
   uo.findtype('0x13E3',-1,'my')
   if uo.findcount() then
      hammer=uo.getserial('finditem')
   else
      uo.msg('hammer not found')
      return
   endif
   uo.addobject('ingi')
   while uo.targeting()
      wait(500)
   wend
   color=uo.getcolor('ingi')
   ingi=uo.getgraphic('ingi')
   uo.cancelmenu()
   if color=='0x0000' && ingi<>'0x1BE3' && ingi<>'0x1BF5' && ingi<>'0x1BE9' then
      uo.automenu('Blacksmithing','Weapons')
      uo.automenu('Weapons','Swords & Blades')
      uo.automenu('Swords & Blades','dagger')
   else
      uo.automenu('Blacksmithing','Armor & Weapons')
      uo.automenu('Armor & Weapons','Weapons')
      uo.automenu('Weapons','Swords & Blades')
      uo.automenu('Swords & Blades','Dagger')
   endif   
   getbag()
   while 1
      if uo.count(ingi,color)<10 then
         uo.findtype(ingi,color,sunduk)
         if uo.findcount() then
            uo.moveitem('finditem','100','backpack')
            checklag()
            wait(700)
         endif
      endif
      checklag()
      uo.usetype(ingi)
      waitforchange()
      if fail>=5 then
         wait(10000)
         fail=0
      endif
      uo.findtype(dagger,-1,'backpack')
      if uo.findcount() then
         uo.moveitem('finditem',0,Dbag)
         checklag()
         checkdbag()
      endif
   wend
endsub
sub waitforchange()
   var n
   for n=0 to 100
      if uo.injournal('You put') then
         return
      endif
      if uo.injournal('You have failed') then
         fail=fail+1
         return
      endif
      wait(500)
   next
endsub
sub checkdbag()
   uo.findtype(-1,-1,Dbag)
   if uo.findcount()>254 then
      uo.ignore(Dbag)
      getbag()
   endif
endsub
sub getbag()
   var flag=0
   repeat
      uo.print('Ищем мешок')
      uo.findtype(Tbag,-1,Sunduk)
      if uo.findcount() then
         Dbag=uo.getserial('finditem')
         uo.useobject(Dbag)
         checklag()
         wait(700)
         uo.findtype(-1,-1,Dbag)
         if uo.findcount()>254 then
            uo.ignore(Dbag)
         else
            uo.moveitem(Dbag,0,sunduk,18,148,0)
            checklag()
            wait(700)
            flag=1
         endif
      endif
   until flag==1
endsub
sub checklag()
   repeat
      UO.DeleteJournal()
      UO.Click('backpack')
   until backpack()==1
endsub
sub backpack()
   var n
   for n=0 to 200
      if uo.injournal('a backpack') then
         return 1
      endif
      wait(200)
   next
endsub
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: все тот же БС

Post by Mirage »

А хотите я вам насыплю соли и идей для вашего скрипта?
1) при количестве ингов в паке < 20-30 меню крафта имеет привычку меняться. Тоесть если будет ровно на 1 даггер в меню (сферы) будет не

Code: Select all

Sub MenuIron()
  UO.CancelMenu()
  UO.AutoMenu('Blacksmithing', 'Weapons')
  UO.AutoMenu('Weapons', 'Swords')
  UO.AutoMenu('Swords', 'dagger')
Endsub

а

Code: Select all

Sub MenuIron()
  UO.CancelMenu()
  UO.AutoMenu('Blacksmithing', 'Weapons')
  UO.AutoMenu('Swords', 'dagger') ; тут зависит от версии, у меня ('Fencing', 'Dagger')
Endsub

2) Это специфика шарда что вы молоток не используете в крафте?
3) Если игра дисконектнула в процессе выбора меню, ковки даггера, добора (в принципе в 7 из 10 случаев) и сработает реконект скрипт всего скорее повиснет.
4) На мой взгляд лучше использовать отдельные скрипты для заданного цветмета. Избежите огромного количества глюков и косяков.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: все тот же БС

Post by ZeroDX »

Молотки тоде насторожили, но ведь работает и без них.
Для автоменю по барабану на изменение в структуре (в хелпе написано)=)
не повиснет 99% :roll:

Думается мне дело в менюшке
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: все тот же БС

Post by ZeroDX »

Какая версия клиента? Какой ip, порт? Есть ли акк с более менее прокачаным бсом?
rusa
Posts: 22
Joined: 2011-05-02 17:13:51

Re: все тот же БС

Post by rusa »

клиент client_2.0.3.exe (Дрв)
айпи мой?
если руками дагеры делает значит дело в скрипте



первый скрипт работает только он не доберает
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: все тот же БС

Post by Mirage »

решение сюда не забудьте выложить.
Регистр всех букв меню важен кстати.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: все тот же БС

Post by ZeroDX »

Попробуй так. я тестил... вроде работает

Code: Select all

var id_Forge = '0x4025617C', t_Dagger = '0x0F51', t_Ingots = '0x1BEF', Delay = 10, Timer, i, msg = 'put|fail', t_Hammer = '0x13E3'
var id_Container = '0x4053827B', moveCount = 99, moveDelay = 1100, a

sub Start()
  UO.Exec('terminate Reconnector')
  Wait(100)
  UO.Exec('exec Reconnector')
  UO.Exec('exec BlackSmithing')
Endsub

Sub BlackSmithing()
  a = Reload()
  While UO.SkillVal('Blacksmithing', 1) < 1000
    UO.UseObject(id_Container)
    If UO.Count(t_Ingots) >= 3 then
      DelJournal(msg)
      Timer = UO.Timer()
      Menu(a)
      UO.WaitTargetType(t_Ingots)
      UO.UseType(t_Hammer)
      Repeat
        Wait(100)
      Until UO.InJournal(msg) or Timer + Delay * 10 <= UO.Timer()
      While UO.Count(t_Dagger)
        UO.WaitTargetType(t_Dagger)
        UO.UseObject(id_Forge)
        Wait(100)
      Wend
     else
      a = Reload()
    Endif
  Wend
Endsub

Sub Reload()
  Dim c_Ingots[5]
    c_Ingots[0] = '0x0000'
    c_Ingots[1] = '0x0750'
    c_Ingots[2] = '0x0590'
    c_Ingots[3] = '0x060A'
    c_Ingots[4] = '0x0488'
  UO.FindType(t_Ingots, -1, 'backpack')
  If UO.FindCount() then
    CheckLag()
    UO.MoveItem('finditem', -1, id_Container)
    Wait(moveDelay)
  Endif
  For i = 0 to 4
    UO.FindType(t_Ingots, c_Ingots[i], id_Container)
    If UO.GetQuantity('finditem') >= 3 then
      CheckLag()
      UO.MoveItem('finditem', moveCount, 'backpack')
      Wait(moveDelay)
      Return i
    Endif
  Next
Endsub

Sub Menu(val)
  UO.CancelMenu()
  If not val then
    UO.AutoMenu('Blacksmithing', 'Weapons')
   else
    UO.AutoMenu('Blacksmithing', 'Colored')
    UO.AutoMenu('Colored', 'Weapons')
  Endif
  UO.AutoMenu('Weapons', 'Swords')
  UO.AutoMenu('Swords', 'agger')
Endsub

Sub DelJournal(msg)
  While UO.InJournal(msg)
    UO.SetJournalLine(UO.InJournal(msg) - 1, ' ')
  Wend
Endsub

Sub CheckLag()
  var msg = 'ackpack'
  DelJournal(msg)
  UO.Click('backpack')
  Repeat
    Wait(100)
  Until UO.InJournal(msg)
Endsub

sub Reconnector()
  var RFlag = 1
  While true
    While UO.ObjAtLayer('Bpack') == ''
      If RFlag then
        RFlag = 0
      Endif
      Wait(20000)
      UO.Say('')
      Wait(3000)
      UO.Say('')
      Wait(3000)
      UO.Say('')
      Wait(3000)
      UO.LDblClick(357, 164)
      UO.LClick(616, 459)
      Wait(3000)
    Wend
    Wait(3000)
    If (RFlag == 0) then
      RFlag = 1
    Endif
  Wend
Endsub
Last edited by ZeroDX on 2011-11-24 21:30:54, edited 4 times in total.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: все тот же БС

Post by ZeroDX »

Ещё раз обновил пост. Надеюсь последний раз. Косяк был в доборе, я просто скопировал выкладку в сундук, поменял контейнеры местами, а цвет забыл выставить.

PS Если кошак-автобус бегает на солярке, то это ещё смешнее. И откуда у людей такая фантазия? Психотропные вещества наверное. Если только кошак-автобус не какой-нибудь японский супер робот с ИИ, осознавший себя как личность и сбежавший в лес от своих создателей творить добро.
Last edited by ZeroDX on 2011-11-24 21:47:48, edited 2 times in total.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: все тот же БС

Post by Mirage »

Когда будет результат тогда модератор и почистит - я жду вас :)
У меня на ДРВ потерли акк :)
PS Ты бы еще про человекоподобных роботов от которых произошли человечки и которых они пытаются убить вспомнил (Евангелион) :mrgreen:
Но покемоны конечно лучшый укурочный мульт. Пика пика... А мужик придумавший кошковтобус наизобретал новых духом и божков на основе японской мифологии. Тоже надо иметь фантазию.
Я иногда смотрю мульты так как старые мультики лучше современного фильмотографа :(
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: все тот же БС

Post by ZeroDX »

А чего нас ждать? Работает все =) Работай :P Почистил ;)

Кошак-автобус это ладно, а что делает коротышка зайчик с человечьей мордой, в которую курит папироску? Курит папиросу. Ваш КО. :mrgreen:


Ого процесс в самом разгаре
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: все тот же БС

Post by ZeroDX »

Взял бы да дал сразу свою версию скрипта на ковку с разных металлов. (99% что у тебя такое есть в твоем секретном скриптохранилище :mrgreen: )
Mirage wrote:PS Ты бы еще про человекоподобных роботов от которых произошли человечки и которых они пытаются убить вспомнил (Евангелион)

Сериал такой был, какие-то там роботы сайлоны vs люди на космических кораблях. Галактика кажется. С зайцелюдом это сериал или полнометражка? Дай ещё раз название пожалуйста. А то где-то оно тут почистилось.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: все тот же БС

Post by Mirage »

Аниме - Бесполезные Зверушки (Damekko Doubutsu). Прокачаный Смелый Заяц - тамошний модератор. :mrgreen: когнитивный диссонанс так скать 8)
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: все тот же БС

Post by ZeroDX »

Да там их целая банда зверолюдов =)
Post Reply