Page 1 of 1

Cartography для соседнего раздела

Posted: 2004-09-22 19:21:18
by Edred
Cartography

Этот скрипт является логическим продолжением скрипта на тейлор с пошивом карт и раскладыванием их по мешочкам в сундуке - то есть дает ответ на вопрос "а что же с этими картами в мешочках делать?"... :lol:

Code: Select all

#####################################################################
; Cartography. v.1.00b (c) Edred
;
; Ищем в сундуке 1 мешок с картами, берем по очереди из него карты,
; качаем на них картографию (с повторами в случае физлов), потом скидываем
; карты в трэш. Если мешки с картами кончились - выход.

sub cartograph() 
	VAR Sunduk1 = '0x4047F4CD' 		; Сериал сундука с мешками с картами
	VAR Trash = '0x4001F99D'		; Сериал мусорного ведра
	VAR Meshok = '0x0E76' 			; Тип мешка
	VAR Map = '0x14EB' 				; Тип карты
	VAR Fizzle = 'Thy trembling hand results'
	VAR Success = 'You put the map in your pack'
	VAR MeshSer, j, k, MapSer, flag
	UO.CancelMenu()
	UO.IgnoreReset()
	UO.AutoMenu( 'What sort of map', 'Regional Map' )
	UO.FindType( Meshok, -1, Sunduk1 )
	While UO.FindCount() > 0
		MeshSer = UO.GetSerial( 'finditem' )
		UO.UseObject( MeshSer )
		wait(500)
		CheckLag()
		UO.FindType( Map, -1, MeshSer )
		While UO.FindCount() > 0
			MapSer = UO.GetSerial( 'finditem' )
			UO.Grab( '1', 'finditem' )
			repeat
				wait(100)
			until UO.Count( Map ) == 1
			flag = 0
			While flag == 0
				DeleteJournal( Fizzle )
				DeleteJournal( Success )
				UO.UseObject( MapSer )
				k = 0
				repeat
					k = k + 1
					wait(100)
				until UO.InJournal( Fizzle ) OR UO.InJournal( Success ) OR k > 600
				If UO.InJournal( Success ) OR k > 600 Then
					flag = 1
				Endif
			Wend
			UO.FindType( Map )
			While UO.FindCount() > 0				
				UO.MoveItem( 'finditem', 0, Trash )
				wait(1000)
				CheckLag()
				UO.FindType( Map )
			Wend
		UO.FindType( Map, -1, MeshSer )
		Wend
		UO.Ignore( MeshSer )
		UO.FindType( Meshok, -1, Sunduk1 )
	Wend
	UO.IgnoreReset()
	UO.CancelMenu()
endsub

Sub CheckLag()
	DeleteJournal( 'backpack' )
	UO.Click( 'backpack' )
	repeat
		wait(100)
	until UO.InJournal( 'backpack' )
	return
end sub

Sub DeleteJournal( string1 )
	VAR nom = UO.InJournal( string1 )
	If nom > 0 Then
		UO.SetJournalLine( Nom - 1, 'string replaced' )
		DeleteJournal( string1 )
	Endif
endsub
ЗЫ: Обратите внимание - скрипт не двигает сами мешки, он только опорожняет их...