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

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