Page 1 of 1

Нужен скрипт помогите!

Posted: 2004-11-06 22:13:41
by neoinfo[DRW]
Вот такая проблема у меня наловил 5к татред мепов и теперь думаю как их разшифровать не вручьную помогите со скриптом плиз!!!
Суть такая скрпт должен брать из мешка карту и разшифровывать а потом кидать в другой мешек или каждый левел в разные мешки помогите плиззззз!!!
Я думаю всем понятно из моего ника под какой шард скрипт но навякий случай напишу "Драгон Ворлд" или как говорят в простонародье "ДРВ" :)
Заранее огромнейшее СПАСИБО!!!

Posted: 2004-11-07 16:39:16
by AGRS

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
#=>

Posted: 2004-11-07 16:40:31
by AGRS
Берет карты из одного контейнера, расшифровывает и раскладывает в другом контейнере по уровням.

Домашнее задание: переделай так как тебе хочется. Один уровень - один мешок.

Posted: 2004-11-07 17:14:31
by neo007
СПАСИБО огромнейшее!!!!!

Posted: 2004-11-07 19:37:28
by Bloodmoon
Спасибо за скрипт )))
Надо будет ловить карты :).
Спасибо АГРЗ.

Posted: 2005-01-26 20:06:10
by spl
А скрипта на раскладку карт по координатам не выложите???? :)

Posted: 2005-01-26 22:28:53
by Edred
Когда АГРСу надоест линеар2 и он вернется в УО, может и выложит. Если захочет ;)