Расшифровка карт

Anything and all.

Moderators: Murderator+, Murderator

Guska
Posts: 24
Joined: 2004-12-30 16:47:14

Расшифровка карт

Post by Guska »

Нужен скрипт на расшифровку карт сокровищ, под ДРВ, надо чтобы он расшифровывал, затем складывал карты в разные мешочки по уровням кладов!
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

Ищи. Выкладывал. Повторно только за солидное вознаграждение. ;)
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Вот. Сортирует карты близко расположенных кладов.
Делал под заказ, не бесплатно. Но срок давности уже вышел...
значит в паке портфель с пустыми мешками и бланк рунами, портфель для карт пустой или уже с сортированными мешками (токо не доводите количество карт до 255 а то скрипт собъется), и мешок с картами.
Помнится что заказчик запустил с трудом, хз почему.

Не работает у многих изза инжект эха, вообщем исправил и паузу поменьше поставил, если будет путать карты то побольше ставьте...
По просьбам трудящихся переделал скрипт для работы не из пака.

Code: Select all

###############################################################
#===---====---===---= Sort Treasure Map =---=---=---=---=---==#
#           Scripted by Savage (c) 2004 ICQ:33336141          #
#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#
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','backpack') ; runa to pack
                  wait(WaitTime)
                  UO.UseObject('finditem')
                  Repeat
                     Wait(500)
                  Until UO.InJournal("What is the new name")
                  UO.Say(STR(MapX)+":"+STR(MapY))
                  wait(WaitTime)
                  UO.MoveItem('finditem','1',Bag[Index]) ; runa to meshok
                  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
Last edited by Savage on 2005-09-05 22:37:42, edited 2 times in total.
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Заказчик может обидеться.. хотя врятль ;)
Незнаю как он а я запустил с первой попытки еще тада.
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

По заказу ленивых трудящихся нелюбящих поиск.

Code: Select all

sub Decode()
var count
UO.DeleteJournal()
UO.AddObject('Bag for 1st level maps')
while uo.Targeting()
      wait(1000)
      wend
UO.DeleteJournal()
UO.AddObject('Bag for 2nd level maps')
while uo.Targeting()
      wait(1000)
      wend
UO.DeleteJournal()
UO.AddObject('Bag for 3rd level maps')
while uo.Targeting()
      wait(1000)
      wend
UO.DeleteJournal()
UO.AddObject('Bag for 4th level maps')
while uo.Targeting()
      wait(1000)
      wend
UO.DeleteJournal()
UO.AddObject('Bag for 5th level maps')
while uo.Targeting()
      wait(1000)
      wend
UO.DeleteJournal()
UO.AddObject('Bag for Treasure Map')
while uo.Targeting()
      wait(1000)
      wend
repeat
   uo.deletejournal()
   uo.findtype(0x14EB)
   uo.useobject('finditem')
   count=0
   while not uo.injournal("map") and count<20
      count=count+1
      wait(100)
      wend
   if uo.injournal("level 1") then
      uo.moveitem('finditem',0,'Bag for 1st level maps')
      CheckLag()
      endif
   if uo.injournal("level 2") then
      uo.moveitem('finditem',0,'Bag for 2nd level maps')
      CheckLag()
      endif
   if uo.injournal("level 3") then
      uo.moveitem('finditem',0,'Bag for 3rd level maps')
      CheckLag()
      endif
   if uo.injournal("level 4") then
      uo.moveitem('finditem',0,'Bag for 4th level maps')
      CheckLag()
      endif
   if uo.injournal("level 5") then
      uo.moveitem('finditem',0,'Bag for 5th level maps')
      CheckLag()
      endif
   if uo.injournal("no chance") then
      uo.moveitem('finditem',0,'Bag for Treasure Map')
       CheckLag()
      endif
   until UO.FindCount()==0
UO.Print("Done")
end sub

sub CheckLag()
    UO.DeleteJournal()
    UO.Click('backpack')
     repeat
      Wait(500)
     Until uo.InJournal('backpack')
end sub
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Code: Select all

################################################################################################# 
#   "Расшифровка карт"                                                                            #
#################################################################################################
#                 http://www.drw.ru                                                             #
#################################################################################################
#               Последнее изменение 14.03.2004                                                  #
#################################################################################################
#                 (c) AGRS, 2004                                                                #
#################################################################################################

#################################################################################################
#   >>> Константы                                                                                 #
#################################################################################################

Var SrcCont      = 0x40072864      # SERIAL Контейнер-источник
Var DstCont      = 0x401C96C9      # SERIAL Контейнер-приемник
Var PackCont     = 0x400B9D61      # SERIAL Пак
Var MapType      = 0x14EB          # TYPE Карта
Var MapColor     = 0x0000          # COLOR Карта
Var HideSkill    = "Stealth"       
Var Lagaet       = "Ohuenno"       # STR Если = "Ohuenno", то дополнительная проверка на лаги

#################################################################################################
#   >>> Запуск                                                                                    #
#################################################################################################

Sub Main()
   While true
      LoadItems(1, MapType, MapColor, SrcCont, PackCont)
      CheckLag()
      UO.FindType(STR(MapType), STR(MapColor), STR(PackCont))
      If UO.FindCount()>0 Then
         UO.UseType(STR(MapType))
         Wait(300)
      EndIf
      MoveAllItems(MapType, MapColor, PackCont, DstCont)
   Wend
End Sub

Sub Main2()
var L1 = 0
var L2 = 0
var L3 = 0
var L4 = 0
var L5 = 0
var TOUT
  Repeat
    UO.FindType(STR(MapType), STR(MapColor), STR(SrcCont))
    If UO.FindCount()>0 Then
      UO.SetReceivingContainer("backpack")
      UO.Grab("1", "finditem")
      CheckLag()
      UO.UseObject("finditem")
      TOUT=0
      Repeat
        Wait(250)
        TOUT=TOUT+250
      Until UO.InJournal("map is level") or TOUT>500
      Wait(800)
      UO.Click("finditem")
      Wait(800)
      If UO.InJournal("1 level") Then
        UO.MoveItem("finditem", "1", STR(DstCont), "20", "30", "0")
        L1=L1+1
      EndIf
      If UO.InJournal("2 level") Then
        UO.MoveItem("finditem", "1", STR(DstCont), "40", "45", "0")
        L2=L2+1
      EndIf
      If UO.InJournal("3 level") Then
        UO.MoveItem("finditem", "1", STR(DstCont), "60", "60", "0")
        L3=L3+1
      EndIf
      If UO.InJournal("4 level") Then
        UO.MoveItem("finditem", "1", STR(DstCont), "80", "75", "0")
        L4=L4+1
      EndIf
      If UO.InJournal("5 level") Then
        UO.MoveItem("finditem", "1", STR(DstCont), "100", "90", "0")
        L5=L5+1
      EndIf
      CheckLag()
      UO.FindType(STR(MapType), STR(MapColor), STR(SrcCont))
    EndIf
    UO.TextClear()
    UO.TextPrint("Level1="+STR(L1))
    UO.TextPrint("Level2="+STR(L2))
    UO.TextPrint("Level3="+STR(L3))
    UO.TextPrint("Level4="+STR(L4))
    UO.TextPrint("Level5="+STR(L5))
  Until UO.FindCount()<1
End Sub

#################################################################################################
#   >>> Сервисные функции                                                                           #
#################################################################################################

#=>
Sub LoadItems(fmiItemCount, fmiItemType, fmiItemColor, fmiSrcContainerSerial, fmiDstContainerSerial)
Var fmiToGrab
   If CountOf(fmiItemType, fmiItemColor, fmiDstContainerSerial)<fmiItemCount Then
      UO.SetReceivingContainer(STR(fmiDstContainerSerial))
      Repeat
         CheckLag()
         fmiToGrab=fmiItemCount-CountOf(fmiItemType, fmiItemColor, fmiDstContainerSerial)
         UO.FindType(STR(fmiItemType), STR(fmiItemColor), STR(fmiSrcContainerSerial))
         If UO.FindCount()>0 Then
            UO.Grab(STR(fmiToGrab), 'finditem')
            Wait(300)
         EndIf
      If Lagaet=="Ohuenno" Then
         CheckLag()
      EndIf
      Until CountOf(fmiItemType, fmiItemColor, fmiSrcContainerSerial)==0 or CountOf(fmiItemType, fmiItemColor, fmiDstContainerSerial)>=fmiItemCount
      UO.UnsetReceivingContainer()
   End If
Return CountOf(fmiItemType, fmiItemColor, fmiDstContainerSerial)
End Sub

Sub MoveAllItems(fmiItemType, fmiItemColor, fmiSrcContainerSerial, fmiDstContainerSerial)
      UO.SetReceivingContainer(STR(fmiDstContainerSerial))
      Repeat
         CheckLag()
         UO.FindType(STR(fmiItemType), STR(fmiItemColor), STR(fmiSrcContainerSerial))
         If UO.FindCount()>0 Then
            UO.Grab(0, 'finditem')
            Wait(300)
         EndIf
      If Lagaet=="Ohuenno" Then
         CheckLag()
      EndIf
      Until UO.FindCount()<1
      UO.UnsetReceivingContainer()
End Sub

Sub CountOf(fcoItemType, fcoItemColor, fcoContainerSerial)
Var fcoFindCount = 0
Var fcoResult = 0
   UO.FindType(STR(fcoItemType), STR(fcoItemColor), STR(fcoContainerSerial))
   fcoFindCount=UO.FindCount()
   If fcoFindCount==1 Then
      fcoResult=UO.GetQuantity('finditem')
   EndIf
   If fcoFindCount>1 Then
      While fcoFindCount>0
         UO.FindType(STR(fcoItemType), STR(fcoItemColor), STR(fcoContainerSerial))
         fcoResult=fcoResult+UO.GetQuantity('finditem')
         UO.Ignore('finditem', 'on')
         fcoFindCount=fcoFindCount-1
      Wend
      UO.IgnoreReset()
   EndIf
   Return fcoResult
End Sub

Sub Hide()
   While Not UO.Hidden()
      UO.DeleteJournal()
      UO.UseSkill(HideSkill)
      Repeat
         Wait(100)
      Until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide')
   Wend
End Sub

Sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')
   Repeat
      Wait(100)
   Until UO.InJournal('backpack')
   CheckSave()
End Sub

Sub CheckSave()
   UO.DeleteJournal()
   If UO.InJournal('save has been') then
      Wait(10000)
   EndIf
   UO.DeleteJournal()
End Sub
#=>

Учимся юзать поиск.
Эх мяб кто научил :(
Brigadir
Posts: 12
Joined: 2004-11-19 21:31:07

Post by Brigadir »

Помогие разобраться с скриптом Savage пожалуйста. он берет карту открывает её и дальше ничего не делает. и скрипт ошибку не выдаёт. не пойму в чем дело
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

А ты уверен втом что все правельно указал?
Brigadir
Posts: 12
Joined: 2004-11-19 21:31:07

Post by Brigadir »

У моих друхей так же. открывает карту . дальше ничего не происходит и скрипт не отключаеться. может в инже какие нибудь настройки не те.
autopilot
Posts: 57
Joined: 2004-07-25 05:16:04

Post by autopilot »

Brigadir wrote:У моих друхей так же. открывает карту . дальше ничего не происходит и скрипт не отключаеться. может в инже какие нибудь настройки не те.


Ни как? Тогда тебе сюда
HellFire
Posts: 89
Joined: 2004-10-02 23:47:48

Post by HellFire »

Brigadir wrote:У моих друхей так же. открывает карту . дальше ничего не происходит и скрипт не отключаеться. может в инже какие нибудь настройки не те.

u mnu takajaze problemma
MitAl
Posts: 60
Joined: 2004-06-01 16:24:44
Location: DRW

Post by MitAl »

HellFire wrote:
Brigadir wrote:У моих друхей так же. открывает карту . дальше ничего не происходит и скрипт не отключаеться. может в инже какие нибудь настройки не те.

u mnu takajaze problemma


И у меня так же :(
Goggy
Posts: 291
Joined: 2004-11-07 01:22:35
Location: Черкассы
Contact:

Post by Goggy »

А это демо версия :lol:
HellFire
Posts: 89
Joined: 2004-10-02 23:47:48

Post by HellFire »

Goggy wrote:А это демо версия :lol:

daj horoshuju :roll:
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Brigadir wrote:Помогие разобраться с скриптом Savage пожалуйста. он берет карту открывает её и дальше ничего не делает. и скрипт ошибку не выдаёт. не пойму в чем дело

Разберемся, сегодня сам на это напоролся :)
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Хм. Счас попробовал на работе - все работает замечательно. Мистика.
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Savage wrote:Хм. Счас попробовал на работе - все работает замечательно. Мистика.
мб injectecho надо установить в 1 ;) или эт в скрипте прописано? сорь не смотрел...
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Sfagnum wrote:
Savage wrote:Хм. Счас попробовал на работе - все работает замечательно. Мистика.
мб injectecho надо установить в 1 ;) или эт в скрипте прописано? сорь не смотрел...

Твой кста тоже у меня не запахал.
Правдо до меня дошло потом почему , но я уже плюнул тада и сам раскидал карты как надо !!!
Сделал дело - флуди смело !!!
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Askaneli wrote:Твой кста тоже у меня не запахал.
Правдо до меня дошло потом почему , но я уже плюнул тада и сам раскидал карты как надо !!!
и почему же?
Brigadir
Posts: 12
Joined: 2004-11-19 21:31:07

Post by Brigadir »

У меня все заработало когда я установил новую версию инжы 501.?? . и ссылку мне друг дал на настойки в main. сразу все заработало. даже AM неожиданно прикипилась к уо ) даже неожидано, но крашов посоему стало побольше
Post Reply