Page 1 of 1

Раскладка карт по координатам...

Posted: 2005-08-04 17:43:40
by mike

Code: Select all

sub CartSort()
VAR Exit, Exit2, Buffer, Buffer2, i, Line, MapX, MapY
VAR Index=1, MapSerial, BagSerial, MatchFound
VAR StepRound=40 ; razbros koordinat
VAR WaitTime=2000 ; 2 sec pauza
var Sklad

var X=1417 ; zdes koordinaty klada
var Y=2275

UO.Print('Vibery meshok s kartamy!')
UO.AddObject('SourceBag')
While UO.Targeting()==2
wait(500)
Wend
UO.UseObject('SourceBag')

UO.Print('Vibery meshok dlya proverennyh kart!')
UO.AddObject('ReceiveBag')
While UO.Targeting()==2
wait(500)
Wend
UO.UseObject('ReceiveBag')

UO.Print('Vibery meshok dlya otobrannyh kart!')
UO.AddObject('SkladBag')
While UO.Targeting()==2
wait(500)
Wend
UO.UseObject('SkladBag')


UO.IgnoreReset()
Exit=0
While Exit<>1
   UO.FindType('0x14EB',-1,'SourceBag')
   If UO.GetQuantity('finditem')>0 Then
      UO.DeleteJournal()
      UO.MoveItem('finditem','1','backpack')
      wait(500)
      UO.UseObject('finditem')
      wait(500)
      MapSerial=UO.GetSerial('finditem')
      Repeat
         Wait(500)
      Until UO.InJournal("Map opened")
      Line=UO.InJournal("Map opened")-1
      Buffer=UO.Journal(Line)

      Buffer2=""
      Exit2=0
      i=15
      While Exit2<>1
         If Buffer[i]<>":" Then
            Buffer2=Buffer2+Buffer[i]
         Else
            Exit2=1
         Endif
         i=i+1
      Wend
      MapX=VAl(Buffer2)
      
      Buffer2=""
      Exit2=0
      While Exit2<>1
         If Buffer[i]<>"" Then
            Buffer2=Buffer2+Buffer[i]
         Else
            Exit2=1
         Endif
         i=i+1
      Wend
      MapY=VAl(Buffer2)

      If X-StepRound<MapX AND X+StepRound>MapX Then
         If Y-StepRound<MapY AND Y+StepRound>MapY Then
            UO.MoveItem(MapSerial,'1','SkladBag')
            else
            UO.MoveItem(MapSerial,'1','ReceiveBag')
         Endif
      else
         UO.MoveItem(MapSerial,'1','ReceiveBag')
      EndIf

      wait(500)
   Else
      Exit=1
   Endif
Wend

UO.Print("Done!!!")
end sub
нашел на этом форуме скрипт....
проблема проста не пашет :(
что может быть не так? :cry:

Posted: 2005-08-04 18:22:10
by casper46
я вот этим раскладываю...

Code: Select all

sub CartSort() 
;   VAR f=file("maps.txt") 
   VAR Exit, Exit2, Buffer, Buffer2, i, Line, MapX, MapY 
   VAR Index=1, MapSerial, BagSerial, MatchFound 
   VAR StepRound=40 ; razbros koordinat 
   VAR WaitTime=500 ;  pauza 
    
   DIM X[255],Y[255],Bag[255] 

   uo.exec('set injectecho 1') 
;   f.Create() 
;   f.Open() 

   UO.Print('Vibery meshok s kartamy!') 
   UO.AddObject('SourceBag') 
   While UO.Targeting()==2 
      wait(500) 
   Wend 
   UO.UseObject('SourceBag') 

   UO.Print('Vibery portfel dlya kart!') 
   UO.AddObject('ReceiveBag') 
   While UO.Targeting()==2 
      wait(500) 
   Wend 
   UO.UseObject('ReceiveBag') 

   UO.Print('Vibery portfel s pustimi meshkami i runami!') 
   UO.AddObject('SkladBag') 
   While UO.Targeting()==2 
      wait(500) 
   Wend 
   UO.UseObject('SkladBag') 


   UO.IgnoreReset() 
   Exit=0 
   While Exit<>1 
      UO.FindType('0x0E76',-1,'ReceiveBag') ; meshok 
      IF UO.GetQuantity('finditem')>0 Then 
         Bag[Index]=UO.GetSerial('finditem') 
         UO.UseObject(Bag[Index]) 
         wait(WaitTime) 
         UO.FindType('0x1F14',-1,Bag[Index]); runa 
         IF UO.GetQuantity('finditem')>0 Then 
            UO.DeleteJournal() 
            UO.Click('finditem') 
            Repeat 
               Wait(500) 
            Until UO.InJournal("Rune to") 
            Line=UO.InJournal("Rune to")-1 
            Buffer=UO.Journal(Line) 

            Buffer2="" 
            Exit2=0 
            i=8 
            While Exit2<>1 
               If Buffer[i]<>":" Then 
                  Buffer2=Buffer2+Buffer[i] 
               Else 
                  Exit2=1 
               Endif             
               i=i+1 
            Wend 
            MapX=VAl(Buffer2) 

            Buffer2="" 
            Exit2=0 
            While Exit2<>1 
               If Buffer[i]<>"" Then 
                  Buffer2=Buffer2+Buffer[i] 
               Else 
                  Exit2=1 
               Endif             
               i=i+1 
            Wend 
            MapY=VAl(Buffer2) 

            X[Index]=MapX 
            Y[Index]=MapY 
            UO.Ignore(Bag[Index]) 
         Else 
            UO.MoveItem(Bag[Index],'1','SkladBag') 
            wait(WaitTime) 
            Index=Index-1 
         Endif 
         Index=Index+1 
      Else 
         Exit=1 
      Endif 

   Wend 


   Exit=0 
   While Exit<>1 
      UO.FindType('0x14EB',-1,'SourceBag') 
      If UO.GetQuantity('finditem')>0 Then 
         UO.DeleteJournal() 
         UO.MoveItem('finditem','1','backpack') 
         wait(WaitTime) 
         UO.UseObject('finditem') 
         MapSerial=UO.GetSerial('finditem') 
         Repeat 
            wait(500) 
         Until UO.InJournal("Map opened") 
         Line=UO.InJournal("Map opened")-1 
         Buffer=UO.Journal(Line) 

         Buffer2="" 
         Exit2=0 
         i=15 
         While Exit2<>1 
            If Buffer[i]<>":" Then 
               Buffer2=Buffer2+Buffer[i] 
            Else 
               Exit2=1 
            Endif             
            i=i+1 
         Wend 
         MapX=VAl(Buffer2) 

         Buffer2="" 
         Exit2=0 
         While Exit2<>1 
            If Buffer[i]<>"" Then 
               Buffer2=Buffer2+Buffer[i] 
            Else 
               Exit2=1 
            Endif             
            i=i+1 
         Wend 
         MapY=VAl(Buffer2) 

         i=1 
         Exit2=0 
         MatchFound=0 
         While i<Index AND Exit2<>1 
            If X[i]-StepRound<MapX AND X[i]+StepRound>MapX Then 
               If Y[i]-StepRound<MapY AND Y[i]+StepRound>MapY Then 
                  BagSerial=Bag[i] 
                  MatchFound=1 
                  Exit2=1 
               Endif 
            EndIf 
            i=i+1 
         Wend 

         If MatchFound Then 
            UO.MoveItem(MapSerial,'1',BagSerial) 
            wait(WaitTime) 
         Else 
            UO.FindType('0x0E76',-1,'SkladBag') ; meshok 
            IF UO.GetQuantity('finditem')>0 Then 
               UO.MoveItem('finditem','1','ReceiveBag') 
               Bag[Index]=UO.GetSerial('finditem') 
               X[Index]=MapX 
               Y[Index]=MapY 
               wait(WaitTime) 
               UO.FindType('0x1F14',-1,'SkladBag'); runa 
               IF UO.GetQuantity('finditem')>0 Then 
                  UO.MoveItem('finditem','1',Bag[Index]) 
                  UO.UseObject('finditem') 
                  Repeat 
                     Wait(500) 
                  Until UO.InJournal("What is the new name") 
                  UO.Say(STR(MapX)+":"+STR(MapY)) 
                  wait(WaitTime) 
                  UO.MoveItem(MapSerial,'1',Bag[Index]) 
                  wait(WaitTime) 
               Else 
                  Exit=1 
                  UO.Print("Error! Kon4ilis pustie runy!") 
               Endif 
               Index=Index+1 
            Else 
               Exit=1 
               UO.Print("Error! Kon4ilis pustie sumki!") 
            Endif 
         Endif 
;         UO.Print(STR(MapX)+" "+STR(MapY)) 
;         f.WriteLn(STR(MapX)+" "+STR(MapY)) 
         wait(WaitTime) 
      Else 
         Exit=1 
      Endif 
   Wend 

;   f.Close() 
   UO.Print("Done!!!") 
end sub 

Posted: 2005-08-04 18:51:04
by mike
casper46 wrote:я вот этим раскладываю...

Code: Select all

sub CartSort() 
;   VAR f=file("maps.txt") 
   VAR Exit, Exit2, Buffer, Buffer2, i, Line, MapX, MapY 
   VAR Index=1, MapSerial, BagSerial, MatchFound 
   VAR StepRound=40 ; razbros koordinat 
   VAR WaitTime=500 ;  pauza 
    
   DIM X[255],Y[255],Bag[255] 

   uo.exec('set injectecho 1') 
;   f.Create() 
;   f.Open() 

   UO.Print('Vibery meshok s kartamy!') 
   UO.AddObject('SourceBag') 
   While UO.Targeting()==2 
      wait(500) 
   Wend 
   UO.UseObject('SourceBag') 

   UO.Print('Vibery portfel dlya kart!') 
   UO.AddObject('ReceiveBag') 
   While UO.Targeting()==2 
      wait(500) 
   Wend 
   UO.UseObject('ReceiveBag') 

   UO.Print('Vibery portfel s pustimi meshkami i runami!') 
   UO.AddObject('SkladBag') 
   While UO.Targeting()==2 
      wait(500) 
   Wend 
   UO.UseObject('SkladBag') 


   UO.IgnoreReset() 
   Exit=0 
   While Exit<>1 
      UO.FindType('0x0E76',-1,'ReceiveBag') ; meshok 
      IF UO.GetQuantity('finditem')>0 Then 
         Bag[Index]=UO.GetSerial('finditem') 
         UO.UseObject(Bag[Index]) 
         wait(WaitTime) 
         UO.FindType('0x1F14',-1,Bag[Index]); runa 
         IF UO.GetQuantity('finditem')>0 Then 
            UO.DeleteJournal() 
            UO.Click('finditem') 
            Repeat 
               Wait(500) 
            Until UO.InJournal("Rune to") 
            Line=UO.InJournal("Rune to")-1 
            Buffer=UO.Journal(Line) 

            Buffer2="" 
            Exit2=0 
            i=8 
            While Exit2<>1 
               If Buffer[i]<>":" Then 
                  Buffer2=Buffer2+Buffer[i] 
               Else 
                  Exit2=1 
               Endif             
               i=i+1 
            Wend 
            MapX=VAl(Buffer2) 

            Buffer2="" 
            Exit2=0 
            While Exit2<>1 
               If Buffer[i]<>"" Then 
                  Buffer2=Buffer2+Buffer[i] 
               Else 
                  Exit2=1 
               Endif             
               i=i+1 
            Wend 
            MapY=VAl(Buffer2) 

            X[Index]=MapX 
            Y[Index]=MapY 
            UO.Ignore(Bag[Index]) 
         Else 
            UO.MoveItem(Bag[Index],'1','SkladBag') 
            wait(WaitTime) 
            Index=Index-1 
         Endif 
         Index=Index+1 
      Else 
         Exit=1 
      Endif 

   Wend 


   Exit=0 
   While Exit<>1 
      UO.FindType('0x14EB',-1,'SourceBag') 
      If UO.GetQuantity('finditem')>0 Then 
         UO.DeleteJournal() 
         UO.MoveItem('finditem','1','backpack') 
         wait(WaitTime) 
         UO.UseObject('finditem') 
         MapSerial=UO.GetSerial('finditem') 
         Repeat 
            wait(500) 
         Until UO.InJournal("Map opened") 
         Line=UO.InJournal("Map opened")-1 
         Buffer=UO.Journal(Line) 

         Buffer2="" 
         Exit2=0 
         i=15 
         While Exit2<>1 
            If Buffer[i]<>":" Then 
               Buffer2=Buffer2+Buffer[i] 
            Else 
               Exit2=1 
            Endif             
            i=i+1 
         Wend 
         MapX=VAl(Buffer2) 

         Buffer2="" 
         Exit2=0 
         While Exit2<>1 
            If Buffer[i]<>"" Then 
               Buffer2=Buffer2+Buffer[i] 
            Else 
               Exit2=1 
            Endif             
            i=i+1 
         Wend 
         MapY=VAl(Buffer2) 

         i=1 
         Exit2=0 
         MatchFound=0 
         While i<Index AND Exit2<>1 
            If X[i]-StepRound<MapX AND X[i]+StepRound>MapX Then 
               If Y[i]-StepRound<MapY AND Y[i]+StepRound>MapY Then 
                  BagSerial=Bag[i] 
                  MatchFound=1 
                  Exit2=1 
               Endif 
            EndIf 
            i=i+1 
         Wend 

         If MatchFound Then 
            UO.MoveItem(MapSerial,'1',BagSerial) 
            wait(WaitTime) 
         Else 
            UO.FindType('0x0E76',-1,'SkladBag') ; meshok 
            IF UO.GetQuantity('finditem')>0 Then 
               UO.MoveItem('finditem','1','ReceiveBag') 
               Bag[Index]=UO.GetSerial('finditem') 
               X[Index]=MapX 
               Y[Index]=MapY 
               wait(WaitTime) 
               UO.FindType('0x1F14',-1,'SkladBag'); runa 
               IF UO.GetQuantity('finditem')>0 Then 
                  UO.MoveItem('finditem','1',Bag[Index]) 
                  UO.UseObject('finditem') 
                  Repeat 
                     Wait(500) 
                  Until UO.InJournal("What is the new name") 
                  UO.Say(STR(MapX)+":"+STR(MapY)) 
                  wait(WaitTime) 
                  UO.MoveItem(MapSerial,'1',Bag[Index]) 
                  wait(WaitTime) 
               Else 
                  Exit=1 
                  UO.Print("Error! Kon4ilis pustie runy!") 
               Endif 
               Index=Index+1 
            Else 
               Exit=1 
               UO.Print("Error! Kon4ilis pustie sumki!") 
            Endif 
         Endif 
;         UO.Print(STR(MapX)+" "+STR(MapY)) 
;         f.WriteLn(STR(MapX)+" "+STR(MapY)) 
         wait(WaitTime) 
      Else 
         Exit=1 
      Endif 
   Wend 

;   f.Close() 
   UO.Print("Done!!!") 
end sub 
а для чего руны?

Re: Раскладка карт по координатам...

Posted: 2005-08-04 21:13:07
by olo
mike wrote: нашел на этом форуме скрипт....
проблема проста не пашет :(
что может быть не так? :cry:
А как не пашет? что делает или не делает?

Re: Раскладка карт по координатам...

Posted: 2005-08-05 09:39:11
by mike
olo wrote:
mike wrote: нашел на этом форуме скрипт....
проблема проста не пашет :(
что может быть не так? :cry:
А как не пашет? что делает или не делает?
достает одну карту, открывает ее и все...

Posted: 2005-08-05 12:51:23
by Fenixsis
up

Posted: 2005-08-06 01:09:06
by Savage
вставить в скрипт uo.exec('set injectecho 1') в начало или вручную запускать.

Posted: 2005-08-13 09:27:02
by maximka4
что то я не понимаю как он работает? для чего руны то нужны?

Posted: 2005-08-13 12:37:32
by Leo
maximka4 wrote:что то я не понимаю как он работает? для чего руны то нужны?
Он подписывает руну, кладёт её в мешок. Потом в этот мешок кладутся карты, координаты которых похожи на координаты, написанные на руне. Удобно.

Posted: 2005-08-13 13:30:08
by jaison
спасибо за скрипт