скрипт на лут (модернизация)

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Franco Nero
Posts: 19
Joined: 2008-12-19 10:53:28

скрипт на лут (модернизация)

Post by Franco Nero »

У меня такая проблемма после того как дагером разрежит труп или монстра не лутит хз почему и сразу ашибка выскакивает
типа не находит или не понимает GetWeapon( MyFork, MyShield ) .


Code: Select all

sub AutoLoot() 
   VAR Cleaver = '0x0f51'   ; äàããåð (òèï)
   ; Ñ÷èòûâàåì îðóæèå è ùèò èç ðóê
   VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) )
   If MyFork == '0x0000' Then
      MyFork = ''
   Endif
   If MyShield == '0x0000' Then
      MyShield = ''
   Endif
   ;
   VAR CorpseSer = UO.GetSerial( 'lastcorpse' )
   CheckLag()
   UO.WaitTargetObject( CorpseSer )
   UO.UseType( Cleaver )
   wait(1000)
   CheckLag()
   GetWeapon( MyFork, MyShield )
   UO.UseObject( CorpseSer )
   wait(500)
   CheckLag()
   CorpseLoot( CorpseSer )
endsub
;
sub AutoLoot2()
   VAR Cleaver = '0x0f51'   ; äàããåð (òèï)
   ; Ñ÷èòûâàåì îðóæèå è ùèò èç ðóê
   VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) )
   If MyFork == '0x0000' Then
      MyFork = ''
   Endif
   If MyShield == '0x0000' Then
      MyShield = ''
   Endif
   ;
   If UO.Targeting() Then
      UO.CancelTarget()
   Endif
   UO.Print( 'Please, choice of corpse:' )
   UO.AddObject( 'CorpseForLoot' )
   While UO.Targeting()
      wait(100)
   Wend
   VAR CorpseSer = UO.GetSerial( 'CorpseForLoot' )
   CheckLag()
   UO.WaitTargetObject( CorpseSer )
   UO.UseType( Cleaver )
   wait(1000)
   CheckLag()
   GetWeapon( MyFork, MyShield )
   UO.UseObject( CorpseSer )
   wait(500)
   CheckLag()
   CorpseLoot( CorpseSer )
endsub
;
; Àâòîìàòè÷åñêè ëóòèì ñ çåìëè îêîëî ÷àðà. Îäåæäó ñðàçó ðåæåì íà áèíòû.
;
sub AutoLootGround()
   VAR Dagger = '0x0f51'   ; äàããåð (òèï)
   VAR Scissor = '0x0F9E'   ; Íîæíèöû
   VAR fastloot = 'FastLoot detected.'
   DIM Nado[27]
   Nado[0]  = '0x170B'   ; boots
   Nado[1]  = '0x1718'   ;
   Nado[2]  = '0x1516'   ; a skirt
   Nado[3]  = '0x1F03'   ; a robe
   Nado[4]  = '0x1F01'   ; a plain dress
   Nado[5]  = '0x1EFD'   ; a fancy shirt
   Nado[6]  = '0x1541'   ; a body sash
   Nado[7]  = '0x170B'   ; boots
   Nado[8]  = '0x170D'   ; sandals
   Nado[9]  = '0x1717'   ; a straw hat
   Nado[10] = '0x1539'   ; long pants   
   Nado[11] = '0x152E'   ; short pants
   Nado[12] = '0x1515'   ; a cloak
   Nado[13] = '0x1FA1'   ; tunic
   Nado[14] = '0x0EED'   ; gold coin
   Nado[15] = '0x0F3F'   ; arrows
   Nado[16] = '0x0F7A'   ; pearls, black pearls
   Nado[17] = '0x0F7B'   ; bood moss
   Nado[18] = '0x0F7D'   ; vials of blood
   Nado[19] = '0x0F84'   ; garlic
   Nado[20] = '0x0F85'   ; ginseng
   Nado[21] = '0x0F86'   ; mandrake root
   Nado[22] = '0x0F88'   ; night shade
   Nado[23] = '0x0F8C'   ; sulphorous ash
   Nado[24] = '0x0F8D'   ; spiders silk
   Nado[25] = '0x14ED'   ; a treasure map
   Nado[26] = '0x0E75'   ; backpack
   Nado[27] = '0x0f7e'   ; bones
   VAR i
   UO.Exec( 'set finddistance 3' )
   For i = 0 To 25
      UO.FindType( Nado[i], '-1', '1' )
      While UO.FindCount() > 0
         DeleteJournal( fastloot )
         If i < 14 Then
            UO.WaitTargetObject( 'finditem' )
            UO.UseType( Scissor )
            GetPause(500)
            CheckLag()
         Else
            If i == 23 Then
               If UO.GetQuantity( 'finditem' ) == 1 Then
                  UO.Ignore( 'finditem' )
               Else
                  UO.MoveItem( 'finditem' )
                  GetPause(350)
                  CheckLag()
               Endif
            Else
               UO.MoveItem( 'finditem' )
               GetPause(350)
               CheckLag()
            Endif
         Endif
         UO.FindType( Nado[i], '-1', '1' )
      Wend
   Next
   UO.Print( 'The loot was finished' )
endsub
;
; Ëóò óêàçàííîãî òðóïà
;
Sub CorpseLoot( Cont )
   ; ëóòèì èç Cont
   DIM Nado[40]
   ; ðåãè
   Nado[0]  = '0x0F7A'   ; pearls, black pearls
   Nado[1]  = '0x0F7B'   ; bood moss
   Nado[2]  = '0x0F84'   ; garlic
   Nado[3]  = '0x0F85'   ; ginseng
   Nado[4]  = '0x0F86'   ; mandrake root
   Nado[5]  = '0x0F88'   ; night shade
   Nado[6]  = '0x0F8C'   ; sulphorous ash
   Nado[7]  = '0x0F8D'   ; spiders silk
   ; òî ÷òî íàäî ðåçàòü íîæíèöàìè
   Nado[8] = '0x1078'   ; leather
   ; îñíîâíîé ëóò
   Nado[9]  = '0x0F78'   ; batwings   
   Nado[10] = '0x0f7e'   ; bones
   Nado[11] = '0x0F7D'   ; vials of blood
   Nado[12] = '0x0F80'   ; daemons bones
   Nado[13] = '0x0F81'   ; fertile dirt
   Nado[14] = '0x0F82'   ; dragons blood
   Nado[15] = '0x0F87'   ; eyes of newt
   Nado[16] = '0x0F8E'   ; serpents scales
   Nado[17] = '0x0F90'   ; dead woods
   Nado[18] = '0x0F91'   ; wyrms hearts
   Nado[19] = '0x0F8F'   ; volcanic ash
   Nado[20] = '0x0E34'   ; blank scrolls
   ; çîëîòî è ðóäà
   Nado[21] = '0x0EED'   ; gold coin
   Nado[22] = '0x0F23'   ; cintrines
   Nado[23] = '0x19B7'   ; magic ore
   ; ïðî÷èé ëóò
   Nado[24] = '0x0E24'   ; water bottles
   Nado[25] = '0x0F0E'   ; empty bottles
   Nado[26] = '0x0F0B'   ; total refresh
   Nado[27] = '0x0F09'   ; total mana refresh
   Nado[28] = '0x0F06'   ; shrink
   Nado[29] = '0x0F0C'   ; greater heal
   Nado[30] = '0x0F09'   ; invisibility
   Nado[31] = '0x0E21'   ; bandages
   Nado[32] = '0x0E20'   ; bloody bandages - áèíòû
   Nado[33] = '0x0F3F'   ; arrows
   Nado[34] = '0x1BD1'   ; feathers
   Nado[35] = '0x14ED'   ; a treasure map
   Nado[36] = '0x1078'   ; pile of hides
   Nado[37] = '0x0FAB'   ; duing tub
   Nado[38] = '0x1BFB'   ; bolts
   Nado[39] = '0x1089'   ; necklace

   VAR otherpack = '0x0E75'   ; backpack
   VAR i, typ, serpack
   VAR Scissor = '0x0F9E'   ; Íîæíèöû
   VAR fastloot = 'FastLoot detected.'
   For i = 0 To 39
      UO.FindType( Nado[i], -1, Cont )
      While UO.FindCount() > 0
         DeleteJournal( fastloot )
         If i == 8 Then
            If UO.GetColor( 'finditem' ) == '0x0000' Then
               UO.WaitTargetObject( 'finditem' )
               UO.UseType( Scissor )
               GetPause(500)
               CheckLag()
            Else
               UO.MoveItem( 'finditem' )
               GetPause(500)
               CheckLag()
            Endif
         Else
            UO.MoveItem( 'finditem' )
            GetPause(500)
            CheckLag()
         Endif
         UO.FindType( Nado[i], -1, Cont )
      Wend
   Next
   UO.FindType( otherpack, -1, Cont )
   while UO.FindCount() > 0
      serpack = UO.GetSerial( 'finditem' )
      UO.Ignore( 'finditem' )
      UO.UseObject( serpack )
      wait(500)
      CheckLag()
      CorpseLoot( serpack )
      wait(500)
      UO.FindType( otherpack, -1, Cont )
   wend
   UO.Print( 'The loot was finished' )
endsub
;
; Ïàóçà â ïåðåäàííûõ ìèëëèñåêóíäàõ, ñ ïðîâåðêîé íà ñîîáùåíèå î
; äåòåêòå ôàñòëóòà. Íå çàáóäüòå óäàëèòü ýòó ôðàçó èç æóðíàëà ïåðåä
; òåì äåéñòâèåì, ïîñëå êîòîðîãî ñòîèò ýòà ïàóçà!
Sub GetPause( ms )
   VAR t = 0
   VAR msg = 'FastLoot detected.'
   repeat
      wait(50)
      t = t + 50
   until t >= ms OR UO.InJournal( msg )
   If UO.InJournal( msg ) Then
      wait(200)
   Endif
endsub
Last edited by Franco Nero on 2008-12-23 13:37:52, edited 2 times in total.
#####################
Millerbeer
Posts: 247
Joined: 2008-09-12 05:07:34

Post by Millerbeer »

Конечно не находит и не понимает, потому что у тебя вызов функции есть, а самой функции нету. Если непонятно, поясняю, команда GetWeapon( MyFork, MyShield ) вызывает функцию. Должен быть ещё скриптик, типа
sub GetWeapon( MyFork, MyShield )

блаблабла


endsub
Franco Nero
Posts: 19
Joined: 2008-12-19 10:53:28

Post by Franco Nero »

Я не знаю как помоги.
#####################
Successful
Posts: 174
Joined: 2008-12-13 00:00:15

Post by Successful »

а откуда Милл может знать что у тебя под этой функцией?)

Code: Select all

sub GetWeapon( MyFork, MyShield )
uo.waittargetobject('self')
uo.usetype(MyFork)
uo.usetype(MyShield)
end sub
Franco Nero
Posts: 19
Joined: 2008-12-19 10:53:28

Post by Franco Nero »

Тоесть

Code: Select all

sub GetWeapon( MyFork, MyShield )


MyFork это вэапон, а
MySheald щит *?
#####################
Millerbeer
Posts: 247
Joined: 2008-09-12 05:07:34

Post by Millerbeer »

Не, там по идее такая байда должна быть

Code: Select all

sub GetWeapon( MyFork, MyShield )
if UO.GetGraphic(UO.ObjAtLayer('Rhand'))<>MyFork then
uo.findtype(MyFork,'-1','2')
if uo.findcount() then
uo.equip('Rhand','finditem')
wait(1000)
checklag()
else
uo.print('Оружие не найдено')
endif
endif
if UO.GetGraphic(UO.ObjAtLayer('Lhand'))<>MyShield then
uo.findtype(MyShield,'-1','2')
if uo.findcount() then
uo.equip('Lhand','finditem')
wait(1000)
checklag()
else
uo.print('Щит не найден')
endif
endif
endsub

попробуй добавить эту фигню к своему скрипту, может заработает :lol:
Successful
Posts: 174
Joined: 2008-12-13 00:00:15

Post by Successful »

Millerbeer wrote:Не, там по идее такая байда должна быть

Code: Select all

VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) )


фырк %)
ну да,думал там по типам )
Franco Nero
Posts: 19
Joined: 2008-12-19 10:53:28

Post by Franco Nero »

Спасибо большое , сеичас попробую. :wink:
#####################
Franco Nero
Posts: 19
Joined: 2008-12-19 10:53:28

Post by Franco Nero »

Code: Select all

sub AutoLoot() 
   VAR Cleaver = '0x0f51'   ; äàããåð (òèï)
   ; Ñ÷èòûâàåì îðóæèå è ùèò èç ðóê
   VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) )
   If MyFork == '0x0000' Then
      MyFork = ''
   Endif
   If MyShield == '0x0000' Then
      MyShield = ''
   Endif
   ;
   VAR CorpseSer = UO.GetSerial( 'lastcorpse' )
   CheckLag()
   UO.WaitTargetObject( CorpseSer )
   UO.UseType( Cleaver )
   wait(1000)
   CheckLag()
   GetWeapon( MyFork, MyShield )
   UO.UseObject( CorpseSer )
   wait(500)
   CheckLag()
   CorpseLoot( CorpseSer )
endsub
;
sub AutoLoot2()
   VAR Cleaver = '0x0f51'   ; äàããåð (òèï)
   ; Ñ÷èòûâàåì îðóæèå è ùèò èç ðóê
   VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) )
   If MyFork == '0x0000' Then
      MyFork = ''
   Endif
   If MyShield == '0x0000' Then
      MyShield = ''
   Endif
   ;
   If UO.Targeting() Then
      UO.CancelTarget()
   Endif
   UO.Print( 'Please, choice of corpse:' )
   UO.AddObject( 'CorpseForLoot' )
   While UO.Targeting()
      wait(100)
   Wend
   VAR CorpseSer = UO.GetSerial( 'CorpseForLoot' )
   CheckLag()
   UO.WaitTargetObject( CorpseSer )
   UO.UseType( Cleaver )
   wait(1000)
   CheckLag()
   GetWeapon( MyFork, MyShield )
   UO.UseObject( CorpseSer )
   wait(500)
   CheckLag()
   CorpseLoot( CorpseSer )
endsub
;
; Àâòîìàòè÷åñêè ëóòèì ñ çåìëè îêîëî ÷àðà. Îäåæäó ñðàçó ðåæåì íà áèíòû.
;
sub AutoLootGround()
   VAR Dagger = '0x0f51'   ; äàããåð (òèï)
   VAR Scissor = '0x0F9E'   ; Íîæíèöû
   VAR fastloot = 'FastLoot detected.'
   DIM Nado[27]
   Nado[0]  = '0x170B'   ; boots
   Nado[1]  = '0x1718'   ;
   Nado[2]  = '0x1516'   ; a skirt
   Nado[3]  = '0x1F03'   ; a robe
   Nado[4]  = '0x1F01'   ; a plain dress
   Nado[5]  = '0x1EFD'   ; a fancy shirt
   Nado[6]  = '0x1541'   ; a body sash
   Nado[7]  = '0x170B'   ; boots
   Nado[8]  = '0x170D'   ; sandals
   Nado[9]  = '0x1717'   ; a straw hat
   Nado[10] = '0x1539'   ; long pants   
   Nado[11] = '0x152E'   ; short pants
   Nado[12] = '0x1515'   ; a cloak
   Nado[13] = '0x1FA1'   ; tunic
   Nado[14] = '0x0EED'   ; gold coin
   Nado[15] = '0x0F3F'   ; arrows
   Nado[16] = '0x0F7A'   ; pearls, black pearls
   Nado[17] = '0x0F7B'   ; bood moss
   Nado[18] = '0x0F7D'   ; vials of blood
   Nado[19] = '0x0F84'   ; garlic
   Nado[20] = '0x0F85'   ; ginseng
   Nado[21] = '0x0F86'   ; mandrake root
   Nado[22] = '0x0F88'   ; night shade
   Nado[23] = '0x0F8C'   ; sulphorous ash
   Nado[24] = '0x0F8D'   ; spiders silk
   Nado[25] = '0x14ED'   ; a treasure map
   Nado[26] = '0x0E75'   ; backpack
   Nado[27] = '0x0f7e'   ; bones
   VAR i
   UO.Exec( 'set finddistance 3' )
   For i = 0 To 25
      UO.FindType( Nado[i], '-1', '1' )
      While UO.FindCount() > 0
         DeleteJournal( fastloot )
         If i < 14 Then
            UO.WaitTargetObject( 'finditem' )
            UO.UseType( Scissor )
            GetPause(500)
            CheckLag()
         Else
            If i == 23 Then
               If UO.GetQuantity( 'finditem' ) == 1 Then
                  UO.Ignore( 'finditem' )
               Else
                  UO.MoveItem( 'finditem' )
                  GetPause(350)
                  CheckLag()
               Endif
            Else
               UO.MoveItem( 'finditem' )
               GetPause(350)
               CheckLag()
            Endif
         Endif
         UO.FindType( Nado[i], '-1', '1' )
      Wend
   Next
   UO.Print( 'The loot was finished' )
endsub
;
; Ëóò óêàçàííîãî òðóïà
;
Sub CorpseLoot( Cont )
   ; ëóòèì èç Cont
   DIM Nado[40]
   ; ðåãè
   Nado[0]  = '0x0F7A'   ; pearls, black pearls
   Nado[1]  = '0x0F7B'   ; bood moss
   Nado[2]  = '0x0F84'   ; garlic
   Nado[3]  = '0x0F85'   ; ginseng
   Nado[4]  = '0x0F86'   ; mandrake root
   Nado[5]  = '0x0F88'   ; night shade
   Nado[6]  = '0x0F8C'   ; sulphorous ash
   Nado[7]  = '0x0F8D'   ; spiders silk
   ; òî ÷òî íàäî ðåçàòü íîæíèöàìè
   Nado[8] = '0x1078'   ; leather
   ; îñíîâíîé ëóò
   Nado[9]  = '0x0F78'   ; batwings   
   Nado[10] = '0x0f7e'   ; bones
   Nado[11] = '0x0F7D'   ; vials of blood
   Nado[12] = '0x0F80'   ; daemons bones
   Nado[13] = '0x0F81'   ; fertile dirt
   Nado[14] = '0x0F82'   ; dragons blood
   Nado[15] = '0x0F87'   ; eyes of newt
   Nado[16] = '0x0F8E'   ; serpents scales
   Nado[17] = '0x0F90'   ; dead woods
   Nado[18] = '0x0F91'   ; wyrms hearts
   Nado[19] = '0x0F8F'   ; volcanic ash
   Nado[20] = '0x0E34'   ; blank scrolls
   ; çîëîòî è ðóäà
   Nado[21] = '0x0EED'   ; gold coin
   Nado[22] = '0x0F23'   ; cintrines
   Nado[23] = '0x19B7'   ; magic ore
   ; ïðî÷èé ëóò
   Nado[24] = '0x0E24'   ; water bottles
   Nado[25] = '0x0F0E'   ; empty bottles
   Nado[26] = '0x0F0B'   ; total refresh
   Nado[27] = '0x0F09'   ; total mana refresh
   Nado[28] = '0x0F06'   ; shrink
   Nado[29] = '0x0F0C'   ; greater heal
   Nado[30] = '0x0F09'   ; invisibility
   Nado[31] = '0x0E21'   ; bandages
   Nado[32] = '0x0E20'   ; bloody bandages - áèíòû
   Nado[33] = '0x0F3F'   ; arrows
   Nado[34] = '0x1BD1'   ; feathers
   Nado[35] = '0x14ED'   ; a treasure map
   Nado[36] = '0x1078'   ; pile of hides
   Nado[37] = '0x0FAB'   ; duing tub
   Nado[38] = '0x1BFB'   ; bolts
   Nado[39] = '0x1089'   ; necklace

   VAR otherpack = '0x0E75'   ; backpack
   VAR i, typ, serpack
   VAR Scissor = '0x0F9E'   ; Íîæíèöû
   VAR fastloot = 'FastLoot detected.'
   For i = 0 To 39
      UO.FindType( Nado[i], -1, Cont )
      While UO.FindCount() > 0
         DeleteJournal( fastloot )
         If i == 8 Then
            If UO.GetColor( 'finditem' ) == '0x0000' Then
               UO.WaitTargetObject( 'finditem' )
               UO.UseType( Scissor )
               GetPause(500)
               CheckLag()
            Else
               UO.MoveItem( 'finditem' )
               GetPause(500)
               CheckLag()
            Endif
         Else
            UO.MoveItem( 'finditem' )
            GetPause(500)
            CheckLag()
         Endif
         UO.FindType( Nado[i], -1, Cont )
      Wend
   Next
   UO.FindType( otherpack, -1, Cont )
   while UO.FindCount() > 0
      serpack = UO.GetSerial( 'finditem' )
      UO.Ignore( 'finditem' )
      UO.UseObject( serpack )
      wait(500)
      CheckLag()
      CorpseLoot( serpack )
      wait(500)
      UO.FindType( otherpack, -1, Cont )
   wend
   UO.Print( 'The loot was finished' )
endsub
;
; Ïàóçà â ïåðåäàííûõ ìèëëèñåêóíäàõ, ñ ïðîâåðêîé íà ñîîáùåíèå î
; äåòåêòå ôàñòëóòà. Íå çàáóäüòå óäàëèòü ýòó ôðàçó èç æóðíàëà ïåðåä
; òåì äåéñòâèåì, ïîñëå êîòîðîãî ñòîèò ýòà ïàóçà!
Sub GetPause( ms )
   VAR t = 0
   VAR msg = 'FastLoot detected.'
   repeat
      wait(50)
      t = t + 50
   until t >= ms OR UO.InJournal( msg )
   If UO.InJournal( msg ) Then
      wait(200)
   Endif
endsub



У меня тут фигня теперь какаято выскакивает Line 20:Function not found - CHECKLAG

Причем выскакивает на скрипте AutoLoot и на AutoLoot2, сли я не ошибаюсь перед строками CorpseLoot( CorpseSer )
#####################
Franco Nero
Posts: 19
Joined: 2008-12-19 10:53:28

Post by Franco Nero »

Code: Select all

sub AutoLoot() 
   VAR Cleaver = '0x0f51'   ; äàããåð (òèï)
   ; Ñ÷èòûâàåì îðóæèå è ùèò èç ðóê
   VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) )
   If MyFork == '0x0000' Then
      MyFork = ''
   Endif
   If MyShield == '0x0000' Then
      MyShield = ''
   Endif
   ;
   VAR CorpseSer = UO.GetSerial( 'lastcorpse' )
   CheckLag()
   UO.WaitTargetObject( CorpseSer )
   UO.UseType( Cleaver )
   wait(1000)
   CheckLag()
   GetWeapon( MyFork, MyShield )
   UO.UseObject( CorpseSer )
   wait(500)
   CheckLag()
   CorpseLoot( CorpseSer )
endsub
;
sub AutoLoot2()
   VAR Cleaver = '0x0f51'   ; äàããåð (òèï)
   ; Ñ÷èòûâàåì îðóæèå è ùèò èç ðóê
   VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) )
   If MyFork == '0x0000' Then
      MyFork = ''
   Endif
   If MyShield == '0x0000' Then
      MyShield = ''
   Endif
   ;
   If UO.Targeting() Then
      UO.CancelTarget()
   Endif
   UO.Print( 'Please, choice of corpse:' )
   UO.AddObject( 'CorpseForLoot' )
   While UO.Targeting()
      wait(100)
   Wend
   VAR CorpseSer = UO.GetSerial( 'CorpseForLoot' )
   CheckLag()
   UO.WaitTargetObject( CorpseSer )
   UO.UseType( Cleaver )
   wait(1000)
   CheckLag()
   GetWeapon( MyFork, MyShield )
   UO.UseObject( CorpseSer )
   wait(500)
   CheckLag()
   CorpseLoot( CorpseSer )
endsub
;
; Àâòîìàòè÷åñêè ëóòèì ñ çåìëè îêîëî ÷àðà. Îäåæäó ñðàçó ðåæåì íà áèíòû.
;
sub AutoLootGround()
   VAR Dagger = '0x0f51'   ; äàããåð (òèï)
   VAR Scissor = '0x0F9E'   ; Íîæíèöû
   VAR fastloot = 'FastLoot detected.'
   DIM Nado[27]
   Nado[0]  = '0x170B'   ; boots
   Nado[1]  = '0x1718'   ;
   Nado[2]  = '0x1516'   ; a skirt
   Nado[3]  = '0x1F03'   ; a robe
   Nado[4]  = '0x1F01'   ; a plain dress
   Nado[5]  = '0x1EFD'   ; a fancy shirt
   Nado[6]  = '0x1541'   ; a body sash
   Nado[7]  = '0x170B'   ; boots
   Nado[8]  = '0x170D'   ; sandals
   Nado[9]  = '0x1717'   ; a straw hat
   Nado[10] = '0x1539'   ; long pants   
   Nado[11] = '0x152E'   ; short pants
   Nado[12] = '0x1515'   ; a cloak
   Nado[13] = '0x1FA1'   ; tunic
   Nado[14] = '0x0EED'   ; gold coin
   Nado[15] = '0x0F3F'   ; arrows
   Nado[16] = '0x0F7A'   ; pearls, black pearls
   Nado[17] = '0x0F7B'   ; bood moss
   Nado[18] = '0x0F7D'   ; vials of blood
   Nado[19] = '0x0F84'   ; garlic
   Nado[20] = '0x0F85'   ; ginseng
   Nado[21] = '0x0F86'   ; mandrake root
   Nado[22] = '0x0F88'   ; night shade
   Nado[23] = '0x0F8C'   ; sulphorous ash
   Nado[24] = '0x0F8D'   ; spiders silk
   Nado[25] = '0x14ED'   ; a treasure map
   Nado[26] = '0x0E75'   ; backpack
   Nado[27] = '0x0f7e'   ; bones
   VAR i
   UO.Exec( 'set finddistance 3' )
   For i = 0 To 25
      UO.FindType( Nado[i], '-1', '1' )
      While UO.FindCount() > 0
         DeleteJournal( fastloot )
         If i < 14 Then
            UO.WaitTargetObject( 'finditem' )
            UO.UseType( Scissor )
            GetPause(500)
            CheckLag()
         Else
            If i == 23 Then
               If UO.GetQuantity( 'finditem' ) == 1 Then
                  UO.Ignore( 'finditem' )
               Else
                  UO.MoveItem( 'finditem' )
                  GetPause(350)
                  CheckLag()
               Endif
            Else
               UO.MoveItem( 'finditem' )
               GetPause(350)
               CheckLag()
            Endif
         Endif
         UO.FindType( Nado[i], '-1', '1' )
      Wend
   Next
   UO.Print( 'The loot was finished' )
endsub
;
; Ëóò óêàçàííîãî òðóïà
;
Sub CorpseLoot( Cont )
   ; ëóòèì èç Cont
   DIM Nado[40]
   ; ðåãè
   Nado[0]  = '0x0F7A'   ; pearls, black pearls
   Nado[1]  = '0x0F7B'   ; bood moss
   Nado[2]  = '0x0F84'   ; garlic
   Nado[3]  = '0x0F85'   ; ginseng
   Nado[4]  = '0x0F86'   ; mandrake root
   Nado[5]  = '0x0F88'   ; night shade
   Nado[6]  = '0x0F8C'   ; sulphorous ash
   Nado[7]  = '0x0F8D'   ; spiders silk
   ; òî ÷òî íàäî ðåçàòü íîæíèöàìè
   Nado[8] = '0x1078'   ; leather
   ; îñíîâíîé ëóò
   Nado[9]  = '0x0F78'   ; batwings   
   Nado[10] = '0x0f7e'   ; bones
   Nado[11] = '0x0F7D'   ; vials of blood
   Nado[12] = '0x0F80'   ; daemons bones
   Nado[13] = '0x0F81'   ; fertile dirt
   Nado[14] = '0x0F82'   ; dragons blood
   Nado[15] = '0x0F87'   ; eyes of newt
   Nado[16] = '0x0F8E'   ; serpents scales
   Nado[17] = '0x0F90'   ; dead woods
   Nado[18] = '0x0F91'   ; wyrms hearts
   Nado[19] = '0x0F8F'   ; volcanic ash
   Nado[20] = '0x0E34'   ; blank scrolls
   ; çîëîòî è ðóäà
   Nado[21] = '0x0EED'   ; gold coin
   Nado[22] = '0x0F23'   ; cintrines
   Nado[23] = '0x19B7'   ; magic ore
   ; ïðî÷èé ëóò
   Nado[24] = '0x0E24'   ; water bottles
   Nado[25] = '0x0F0E'   ; empty bottles
   Nado[26] = '0x0F0B'   ; total refresh
   Nado[27] = '0x0F09'   ; total mana refresh
   Nado[28] = '0x0F06'   ; shrink
   Nado[29] = '0x0F0C'   ; greater heal
   Nado[30] = '0x0F09'   ; invisibility
   Nado[31] = '0x0E21'   ; bandages
   Nado[32] = '0x0E20'   ; bloody bandages - áèíòû
   Nado[33] = '0x0F3F'   ; arrows
   Nado[34] = '0x1BD1'   ; feathers
   Nado[35] = '0x14ED'   ; a treasure map
   Nado[36] = '0x1078'   ; pile of hides
   Nado[37] = '0x0FAB'   ; duing tub
   Nado[38] = '0x1BFB'   ; bolts
   Nado[39] = '0x1089'   ; necklace

   VAR otherpack = '0x0E75'   ; backpack
   VAR i, typ, serpack
   VAR Scissor = '0x0F9E'   ; Íîæíèöû
   VAR fastloot = 'FastLoot detected.'
   For i = 0 To 39
      UO.FindType( Nado[i], -1, Cont )
      While UO.FindCount() > 0
         DeleteJournal( fastloot )
         If i == 8 Then
            If UO.GetColor( 'finditem' ) == '0x0000' Then
               UO.WaitTargetObject( 'finditem' )
               UO.UseType( Scissor )
               GetPause(500)
               CheckLag()
            Else
               UO.MoveItem( 'finditem' )
               GetPause(500)
               CheckLag()
            Endif
         Else
            UO.MoveItem( 'finditem' )
            GetPause(500)
            CheckLag()
         Endif
         UO.FindType( Nado[i], -1, Cont )
      Wend
   Next
   UO.FindType( otherpack, -1, Cont )
   while UO.FindCount() > 0
      serpack = UO.GetSerial( 'finditem' )
      UO.Ignore( 'finditem' )
      UO.UseObject( serpack )
      wait(500)
      CheckLag()
      CorpseLoot( serpack )
      wait(500)
      UO.FindType( otherpack, -1, Cont )
   wend
   UO.Print( 'The loot was finished' )
endsub
;
; Ïàóçà â ïåðåäàííûõ ìèëëèñåêóíäàõ, ñ ïðîâåðêîé íà ñîîáùåíèå î
; äåòåêòå ôàñòëóòà. Íå çàáóäüòå óäàëèòü ýòó ôðàçó èç æóðíàëà ïåðåä
; òåì äåéñòâèåì, ïîñëå êîòîðîãî ñòîèò ýòà ïàóçà!
Sub GetPause( ms )
   VAR t = 0
   VAR msg = 'FastLoot detected.'
   repeat
      wait(50)
      t = t + 50
   until t >= ms OR UO.InJournal( msg )
   If UO.InJournal( msg ) Then
      wait(200)
   Endif
endsub



У меня тут фигня теперь какаято выскакивает Line 20:Function not found - CHECKLAG

Причем выскакивает на скрипте AutoLoot и на AutoLoot2, сли я не ошибаюсь перед строками CorpseLoot( CorpseSer )
#####################
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Franco Nero wrote:У меня тут фигня теперь какаято выскакивает Line 20:Function not found - CHECKLAG
Причем выскакивает на скрипте AutoLoot и на AutoLoot2, сли я не ошибаюсь перед строками CorpseLoot( CorpseSer )


http://forum.yoko.com.ua/viewtopic.php?t=7379
Franco Nero
Posts: 19
Joined: 2008-12-19 10:53:28

Post by Franco Nero »

Это я исправил спасибо, теперь проблемма в том что после разрезания трупа лут с пола не поднимает , золото не собирается в бэкпак.

Code: Select all

; AutoLoot. v.1.11b (c) Edred 
;
; Автоматический лут трупа. Три варианта скрипта - первый на последний
; труп, второй вызывает прицел для указания трупа. Лутится только то,
; что указано в массиве. Третий вариант - лутим с земли около чара.
;
sub AutoLoot()
   VAR Cleaver = '0x0EC2'   ; кливер (тип)
   ; Считываем оружие и щит из рук
   VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) )
   If MyFork == '0x0000' Then
      MyFork = ''
   Endif
   If MyShield == '0x0000' Then
      MyShield = ''
   Endif
   ;
   VAR CorpseSer = UO.GetSerial( 'lastcorpse' )
   CheckLag()
   UO.WaitTargetObject( CorpseSer )
   UO.UseType( Cleaver )
   wait(1000)
   CheckLag()
   GetWeapon( MyFork, MyShield )
   UO.UseObject( CorpseSer )
   wait(500)
   CheckLag()
   CorpseLoot( CorpseSer ) 
endsub
;
sub AutoLoot2()
   VAR Cleaver = '0x0ec2'   ; кливер (тип)
   ; Считываем оружие и щит из рук
   VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) )
   If MyFork == '0x0000' Then
      MyFork = ''
   Endif
   If MyShield == '0x0000' Then
      MyShield = ''
   Endif
   ;
   If UO.Targeting() Then
      UO.CancelTarget()
   Endif
   UO.Print( 'Please, choice of corpse:' )
   UO.AddObject( 'CorpseForLoot' )
   While UO.Targeting()
      wait(100)
   Wend
   VAR CorpseSer = UO.GetSerial( 'CorpseForLoot' )
   CheckLag()
   UO.WaitTargetObject( CorpseSer )
   UO.UseType( Cleaver )
   wait(1000)
   CheckLag()
   GetWeapon( MyFork, MyShield )
   UO.UseObject( CorpseSer )
   wait(500)
   CheckLag()
   CorpseLoot( CorpseSer )
endsub
;
; Автоматически лутим с земли около чара. Одежду сразу режем на бинты.
;
sub AutoLootGround()
   VAR Cleaver = '0x0ec2'   ; кливер (тип)
   VAR Scissor = '0x0f9e'   ; Ножницы
   VAR fastloot = 'FastLoot detected.'
   DIM Nado[27]
   Nado[0]  = '0x170C'   ; boots
   Nado[1]  = '0x1718'   ;
   Nado[2]  = '0x1516'   ; a skirt
   Nado[3]  = '0x1F03'   ; a robe
   Nado[4]  = '0x1F01'   ; a plain dress
   Nado[5]  = '0x1EFD'   ; a fancy shirt
   Nado[6]  = '0x1541'   ; a body sash
   Nado[7]  = '0x170B'   ; boots
   Nado[8]  = '0x170D'   ; sandals
   Nado[9]  = '0x1717'   ; a straw hat
   Nado[10] = '0x1539'   ; long pants   
   Nado[11] = '0x152E'   ; short pants
   Nado[12] = '0x1515'   ; a cloak
   Nado[13] = '0x1FA1'   ; tunic
   Nado[14] = '0x0EED'   ; gold coin
   Nado[15] = '0x0F3F'   ; arrows
   Nado[16] = '0x0F7A'   ; pearls, black pearls
   Nado[17] = '0x0F7B'   ; bood moss
   Nado[18] = '0x0F7D'   ; vials of blood
   Nado[19] = '0x0F84'   ; garlic
   Nado[20] = '0x0F85'   ; ginseng
   Nado[21] = '0x0F86'   ; mandrake root
   Nado[22] = '0x0F88'   ; night shade
   Nado[23] = '0x0F8C'   ; sulphorous ash
   Nado[24] = '0x0F8D'   ; spiders silk
   Nado[25] = '0x14ED'   ; a treasure map
   Nado[26] = '0x0E75'   ; backpack
   VAR i
   UO.Exec( 'set finddistance 3' )
   For i = 0 To 25
      UO.FindType( Nado[i],-1,'lastcontainer')
      While UO.FindCount() > 0
         DeleteJournal( fastloot )
         If i < 14 Then
            UO.WaitTargetObject( 'finditem' )
            UO.UseType( Scissor )
            GetPause(500)
            CheckLag()
         Else
            If i == 23 Then
               If UO.GetQuantity( 'finditem' ) == 1 Then
                  UO.Ignore( 'finditem' )
               Else
                  UO.MoveItem( 'finditem' )
                  GetPause(350)
                  CheckLag()
               Endif
            Else
               UO.MoveItem( 'finditem' )
               GetPause(350)
               CheckLag()
            Endif
         Endif
         UO.FindType( Nado[i], '-1','lastcontainer')
      Wend
   Next
   UO.Print( 'The loot was finished' )
endsub
;
; Лут указанного трупа
;
Sub CorpseLoot( Cont )
   ; лутим из Cont
   DIM Nado[40]
   ; реги
   Nado[0]  = '0x0F7A'   ; pearls, black pearls
   Nado[1]  = '0x0F7B'   ; bood moss
   Nado[2]  = '0x0F84'   ; garlic
   Nado[3]  = '0x0F85'   ; ginseng
   Nado[4]  = '0x0F86'   ; mandrake root
   Nado[5]  = '0x0F88'   ; night shade
   Nado[6]  = '0x0F8C'   ; sulphorous ash
   Nado[7]  = '0x0F8D'   ; spiders silk
   ; то что надо резать ножницами
   Nado[8] = '0x1078'   ; leather
   ; основной лут
   Nado[9]  = '0x0F78'   ; batwings   
   Nado[10] = '0x0F7E'   ; bones
   Nado[11] = '0x0F7D'   ; vials of blood
   Nado[12] = '0x0F80'   ; daemons bones
   Nado[13] = '0x0F81'   ; fertile dirt
   Nado[14] = '0x0F82'   ; dragons blood
   Nado[15] = '0x0F87'   ; eyes of newt
   Nado[16] = '0x0F8E'   ; serpents scales
   Nado[17] = '0x0F90'   ; dead woods
   Nado[18] = '0x0F91'   ; wyrms hearts
   Nado[19] = '0x0F8F'   ; volcanic ash
   Nado[20] = '0x0E34'   ; blank scrolls
   ; золото и руда
   Nado[21] = '0x0EED'   ; gold coin
   Nado[22] = '0x0F23'   ; cintrines
   Nado[23] = '0x19B7'   ; magic ore
   ; прочий лут
   Nado[24] = '0x0E24'   ; water bottles
   Nado[25] = '0x0F0E'   ; empty bottles
   Nado[26] = '0x0F0B'   ; total refresh
   Nado[27] = '0x0F09'   ; total mana refresh
   Nado[28] = '0x0F06'   ; shrink
   Nado[29] = '0x0F0C'   ; greater heal
   Nado[30] = '0x0F09'   ; invisibility
   Nado[31] = '0x0E21'   ; bandages
   Nado[32] = '0x0E20'   ; bloody bandages - бинты
   Nado[33] = '0x0F3F'   ; arrows
   Nado[34] = '0x1BD1'   ; feathers
   Nado[35] = '0x14ED'   ; a treasure map
   Nado[36] = '0x1078'   ; pile of hides
   Nado[37] = '0x0FAB'   ; duing tub
   Nado[38] = '0x1BFB'   ; bolts
   Nado[39] = '0x1089'   ; necklace

   VAR otherpack = '0x0E75'   ; backpack
   VAR i, typ, serpack
   VAR Scissor = '0x0f9e'   ; Ножницы
   VAR fastloot = 'FastLoot detected.'
   For i = 0 To 39
      UO.FindType( Nado[i], -1, Cont )
      While UO.FindCount() > 0
         DeleteJournal( fastloot )
         If i == 8 Then
            If UO.GetColor( 'finditem' ) == '0x0000' Then
               UO.WaitTargetObject( 'finditem' )
               UO.UseType( Scissor )
               GetPause(500)
               CheckLag()
            Else
               UO.MoveItem( 'finditem' )
               GetPause(500)
               CheckLag()
            Endif
         Else
            UO.MoveItem( 'finditem' )
            GetPause(500)
            CheckLag()
         Endif
         UO.FindType( Nado[i], -1, Cont )
      Wend
   Next
   UO.FindType( otherpack, -1, Cont )
   while UO.FindCount() > 0
      serpack = UO.GetSerial( 'finditem' )
      UO.Ignore( 'finditem' )
      UO.UseObject( serpack )
      wait(500)
      CheckLag()
      CorpseLoot( serpack )
      wait(500)
      UO.FindType( otherpack, -1, Cont )
   wend
   UO.Print( 'The loot was finished' )
endsub
;
; Пауза в переданных миллисекундах, с проверкой на сообщение о
; детекте фастлута. Не забудьте удалить эту фразу из журнала перед
; тем действием, после которого стоит эта пауза!
Sub GetPause( ms )
   VAR t = 0
   VAR msg = 'FastLoot detected.'
   repeat
      wait(50)
      t = t + 50
   until t >= ms OR UO.InJournal( msg )
   If UO.InJournal( msg ) Then
      wait(200)
   Endif
endsub
;
sub GetWeapon( MyFork, MyShield )
if UO.GetGraphic(UO.ObjAtLayer('Rhand'))<>MyFork then
uo.findtype(MyFork,'-1','2')
if uo.findcount() then
uo.equip('Rhand','finditem')
wait(1000)
checklag()
else
uo.print('Оружие не найдено')
endif
endif
if UO.GetGraphic(UO.ObjAtLayer('Lhand'))<>MyShield then
uo.findtype(MyShield,'-1','2')
if uo.findcount() then
uo.equip('Lhand','finditem')
wait(1000)
checklag()
else
uo.print('Щит не найден')
endif
endif
endsub


sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(100)
until UO.InJournal('backpack')
end sub
#####################
Franco Nero
Posts: 19
Joined: 2008-12-19 10:53:28

Post by Franco Nero »

Все я разобрался autoloot i autoloot2 собирают вещи из трупов.
Только один скрипт из них не работает это AutoLootGround каторыи должен с земли собирать барахлишко. но он почемуто запускается и выключается нечего не собирает с земли.

Code: Select all

 sub AutoLootGround() 
   VAR Cleaver = '0x0ec2'   ; êëèâåð (òèï)
   VAR Scissor = '0x0f9e'   ; Íîæíèöû
   VAR fastloot = 'FastLoot detected.'
   DIM Nado[27]
   Nado[0]  = '0x170C'   ; boots
   Nado[1]  = '0x1718'   ;
   Nado[2]  = '0x1516'   ; a skirt
   Nado[3]  = '0x1F03'   ; a robe
   Nado[4]  = '0x1F01'   ; a plain dress
   Nado[5]  = '0x1EFD'   ; a fancy shirt
   Nado[6]  = '0x1541'   ; a body sash
   Nado[7]  = '0x170B'   ; boots
   Nado[8]  = '0x170D'   ; sandals
   Nado[9]  = '0x1717'   ; a straw hat
   Nado[10] = '0x1539'   ; long pants   
   Nado[11] = '0x152E'   ; short pants
   Nado[12] = '0x1515'   ; a cloak
   Nado[13] = '0x1FA1'   ; tunic
   Nado[14] = '0x0EED'   ; gold coin
   Nado[15] = '0x0F3F'   ; arrows
   Nado[16] = '0x0F7A'   ; pearls, black pearls
   Nado[17] = '0x0F7B'   ; bood moss
   Nado[18] = '0x0F7D'   ; vials of blood
   Nado[19] = '0x0F84'   ; garlic
   Nado[20] = '0x0F85'   ; ginseng
   Nado[21] = '0x0F86'   ; mandrake root
   Nado[22] = '0x0F88'   ; night shade
   Nado[23] = '0x0F8C'   ; sulphorous ash
   Nado[24] = '0x0F8D'   ; spiders silk
   Nado[25] = '0x14ED'   ; a treasure map
   Nado[26] = '0x0E75'   ; backpack
   VAR i
   UO.Exec( 'set finddistance 3' )
   For i = 0 To 25
      UO.FindType( Nado[i],-1,'lastcontainer')
      While UO.FindCount() > 0
         DeleteJournal( fastloot )
         If i < 14 Then
            UO.WaitTargetObject( 'finditem' )
            UO.UseType( Scissor )
            GetPause(500)
            CheckLag()
         Else
            If i == 23 Then
               If UO.GetQuantity( 'finditem' ) == 1 Then
                  UO.Ignore( 'finditem' )
               Else
                  UO.MoveItem( 'finditem' )
                  GetPause(350)
                  CheckLag()
               Endif
            Else
               UO.MoveItem( 'finditem' )
               GetPause(350)
               CheckLag()
            Endif
         Endif
         UO.FindType( Nado[i], '-1','lastcontainer')
      Wend
   Next
   UO.Print( 'The loot was finished' )
endsub


Вот тут не понятно почему он не работает помогите пожалста разобратся.
#####################
Millerbeer
Posts: 247
Joined: 2008-09-12 05:07:34

Post by Millerbeer »

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

Code: Select all

UO.FindType( Nado[i], '-1','lastcontainer')

UO.FindType( Nado[i], '-1','ground')


улавливаешь разницу?
Post Reply