Вторник, 24.06.2025, 19:27
[nIrVaNa]
Приветствую Вас Призывник | RSS

Меню сайта
Ultima Online
  • Ultima Online DRW
  • .::Games::.
  • EVE Online
  • Russia EVE-RU
  • Ukrainian EVE-UA
  • [6OP3bIE CAHTEXHuru] EVE
  • L2Europa.com
  • Clan Viktoria L2Europa.com
  • Мини-чат
    Главная » Статьи » Мои статьи

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

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





    Категория: Мои статьи | Добавил: -=DavidJones=- (15.11.2008)
    Просмотров: 702 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]

    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Наш опрос
    Как Вам наш сайт
    Всего ответов: 244
    Copyright MyCorp © 2025