Page 1 of 1

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

Posted: 2008-12-22 21:35:17
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

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

блаблабла


endsub

Posted: 2008-12-23 09:41:38
by Franco Nero
Я не знаю как помоги.

Posted: 2008-12-23 14:28:11
by Successful
а откуда Милл может знать что у тебя под этой функцией?)

Code: Select all

sub GetWeapon( MyFork, MyShield )
uo.waittargetobject('self')
uo.usetype(MyFork)
uo.usetype(MyShield)
end sub

Posted: 2008-12-23 15:10:16
by Franco Nero
Тоесть

Code: Select all

sub GetWeapon( MyFork, MyShield )
MyFork это вэапон, а
MySheald щит *?

Posted: 2008-12-23 15:53:36
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:

Posted: 2008-12-23 17:33:06
by Successful
Millerbeer wrote:Не, там по идее такая байда должна быть

Code: Select all

VAR MyFork = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   VAR MyShield = UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) 
фырк %)
ну да,думал там по типам )

Posted: 2008-12-24 10:37:41
by Franco Nero
Спасибо большое , сеичас попробую. :wink:

Posted: 2008-12-25 07:36:37
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 )

Posted: 2008-12-25 07:37:26
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 )

Posted: 2008-12-25 08:19:55
by Kynep
Franco Nero wrote: У меня тут фигня теперь какаято выскакивает Line 20:Function not found - CHECKLAG
Причем выскакивает на скрипте AutoLoot и на AutoLoot2, сли я не ошибаюсь перед строками CorpseLoot( CorpseSer )
http://forum.yoko.com.ua/viewtopic.php?t=7379

Posted: 2008-12-25 09:25:23
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

Posted: 2008-12-25 10:54:28
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 
Вот тут не понятно почему он не работает помогите пожалста разобратся.

Posted: 2008-12-25 17:56:51
by Millerbeer
Ты говоришь что он для сбора вещей с земли, а ищет он эти вещи почему-то в ластконтейнере, сделай чтоб он вещи искал на земле

Code: Select all

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

UO.FindType( Nado[i], '-1','ground')
улавливаешь разницу?