Page 1 of 1

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

Posted: 2004-09-22 19:22:44
by Edred

Code: Select all

#####################################################################
; Inscription. v.1.00b (c) Edred
;
; Берем из сундука blank scroll, nightshade, black pearl,
; крафтим из них скролл Magic Arrow (с повторами в случае физлов), 
; потом скидываем готовый скролл в тот же сундук.
; Если что-либо кончилось - выход.

sub inscript() 
	VAR Sunduk = '0x40140DD1' 		; Сериал сундука с бланкскроллами и регами
	VAR Blank = '0x0E34' 			; Тип бланк скролла
	VAR Arrow = '0x1F32'			; Тип скроллов Magic Arrow
	VAR Reg1 = '0x0F88'				; найтшэд
	VAR Reg2 = '0x0F7A'				; блэкперл
	VAR Fizzle = 'You fail to inscribe the scroll'
	VAR Success = 'You put the'
	VAR k
	UO.CancelMenu()
	UO.AutoMenu( 'Spell Circles', 'First Circle' )
	UO.AutoMenu( 'Spell Circle 1', 'Magic Arrow' )
	UO.UseObject( Sunduk )
	wait(1000)
	While UO.SkillVal( 'Inscription' ) < 1000
		; берем бланк скроллы
		If UO.Count( Blank ) == 0 Then
			UO.FindType( Blank, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print( 'Blank Scroll not found. Script terminated' )
				return
			Endif
			If UO.GetQuantity( 'finditem' ) < 100 Then
				UO.Grab( '0', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Blank ) > 0
			Else
				UO.Grab( '100', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Blank ) == 100
			Endif
		Endif
		; берем найтшэд
		If UO.Count( Reg1 ) == 0 Then
			UO.FindType( Reg1, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print( 'Nightshade not found. Script terminated' )
				return
			Endif
			If UO.GetQuantity( 'finditem' ) < 100 Then
				UO.Grab( '0', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Reg1 ) > 0
			Else
				UO.Grab( '100', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Reg1 ) == 100
			Endif
		Endif
		; берем блэкперл
		If UO.Count( Reg2 ) == 0 Then
			UO.FindType( Reg2, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print( 'Black Pearls not found. Script terminated' )
				return
			Endif
			If UO.GetQuantity( 'finditem' ) < 100 Then
				UO.Grab( '0', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Reg2 ) > 0
			Else
				UO.Grab( '100', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Reg2 ) == 100
			Endif
		Endif
		repeat
			DeleteJournal( Fizzle )
			DeleteJournal( Success )
			UO.UseType( Blank )
			k = 0
			repeat
				k = k + 1
				wait(100)
			until UO.InJournal( Fizzle ) OR UO.InJournal( Success ) \
				  OR UO.Count( Blank ) == 0 OR UO.Count( Reg1 ) == 0 \
				  OR UO.Count( Reg2 ) == 0 OR k > 600
			If UO.Mana < 10 Then
				repeat
					UO.UseSkill( 'Meditation' )
					wait(2000)
				until UO.Mana == UO.Int
			Endif
		Until UO.Count( Blank ) == 0 OR UO.Count( Reg1 ) == 0 \
			  OR UO.Count( Reg2 ) == 0
		UO.FindType( Arrow )
		If UO.FindCount() > 0 Then
			UO.MoveItem( 'finditem', 0, Sunduk )
			repeat
				wait(100)
			until UO.Count( Arrow ) == 0
		Endif
	Wend
	UO.CancelMenu()
endsub

Sub DeleteJournal( string1 )
	VAR nom = UO.InJournal( string1 )
	If nom > 0 Then
		UO.SetJournalLine( Nom - 1, 'string replaced' )
		DeleteJournal( string1 )
	Endif
endsub

Posted: 2004-10-06 17:45:32
by Скрипт
народ вот тут выгрузка глючит он берёт скролы делает я переделал на поисон потом кончаються скролы и он стоит пошивелиш готовые так он тада токо берёт новые в чом проблема ?

Posted: 2004-10-06 19:31:35
by Edred
Скрипт wrote:народ вот тут выгрузка глючит он берёт скролы делает я переделал на поисон потом кончаються скролы и он стоит пошивелиш готовые так он тада токо берёт новые в чом проблема ?
В самом инскрипте там в самом деле с выгрузкой не очень правильно, я думал это особенность нашего шарда, при крафте скроллов он делает несколько кучек скроллов в паке. Вот измененная версия:

Code: Select all

#####################################################################
; Inscription. v.1.04b (c) Edred
;
; Берем из сундука blank scroll, nightshade, black pearl,
; крафтим из них скролл Magic Arrow (с повторами в случае физлов), 
; потом скидываем готовый скролл в тот же сундук.
; Если что-либо кончилось - выход.

sub inscript() 
	VAR Sunduk = '0x40140DD1' 		; Сериал сундука с бланкскроллами и регами
	VAR Blank = '0x0E34' 			; Тип бланк скролла
	VAR Arrow = '0x1F32'			; Тип скроллов Magic Arrow
	VAR Reg1 = '0x0F88'				; найтшэд
	VAR Reg2 = '0x0F7A'				; блэкперл
	VAR Fizzle = 'You fail to inscribe the scroll'
	VAR Success = 'You put the'
	VAR k
;   	UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
	UO.CancelMenu()
	UO.AutoMenu( 'Spell Circles', 'First Circle' )
	UO.AutoMenu( 'Spell Circle 1', 'Magic Arrow' )
	UO.UseObject( Sunduk )
	wait(1000)
	While UO.SkillVal( 'Inscription' ) < 1000
		; берем бланк скроллы
;		EatChar( Sunduk, 2, 1, 60 )
		If UO.Count( Blank ) == 0 Then
			UO.FindType( Blank, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print( 'Blank Scroll not found. Script terminated' )
				return
			Endif
			If UO.GetQuantity( 'finditem' ) < 100 Then
				UO.Grab( '0', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Blank ) > 0
				CheckLag()
			Else
				UO.Grab( '100', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Blank ) == 100
				CheckLag()
			Endif
		Endif
		; берем найтшэд
		If UO.Count( Reg1 ) == 0 Then
			UO.FindType( Reg1, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print( 'Nightshade not found. Script terminated' )
				return
			Endif
			If UO.GetQuantity( 'finditem' ) < 100 Then
				UO.Grab( '0', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Reg1 ) > 0
				CheckLag()
			Else
				UO.Grab( '100', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Reg1 ) == 100
				CheckLag()
			Endif
		Endif
		; берем блэкперл
		If UO.Count( Reg2 ) == 0 Then
			UO.FindType( Reg2, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print( 'Black Pearls not found. Script terminated' )
				return
			Endif
			If UO.GetQuantity( 'finditem' ) < 100 Then
				UO.Grab( '0', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Reg2 ) > 0
				CheckLag()
			Else
				UO.Grab( '100', 'finditem' )
				repeat
					wait(100)
				until UO.Count( Reg2 ) == 100
				CheckLag()
			Endif
		Endif
		repeat
			DeleteJournal( Fizzle )
			DeleteJournal( Success )
			UO.UseType( Blank )
			k = 0
			repeat
				k = k + 1
				wait(100)
			until UO.InJournal(Fizzle) OR UO.InJournal(Success) OR UO.Count(Blank) == 0 OR UO.Count(Reg1) == 0 OR UO.Count(Reg2) == 0 OR k > 600
			If UO.Mana < 10 Then
				repeat
					UO.UseSkill( 'Meditation' )
					wait(2000)
				until UO.Mana == UO.Int
			Endif
		Until UO.Count( Blank ) == 0 OR UO.Count( Reg1 ) == 0 OR UO.Count( Reg2 ) == 0
		While UO.Count( Arrow ) > 0
			UO.FindType( Arrow )
			If UO.FindCount() > 0 Then
				UO.MoveItem( 'finditem', 0, Sunduk )
				wait(1000)
				CheckLag()
			Endif
		Wend
	Wend
	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
Попрошу Йоко обновить версию в соседнем разделе. А что ты там намудрил при переделке в пойзон, я не знаю. Как кто-то тут писал: телепаты в отпуске.

А чем тебя мой пойзон не устраивает?

Posted: 2004-10-06 20:41:34
by Скрипт
у тебя не поисон а маджик арров =) просьба оставить аську для некоторых вопросов =)

Posted: 2004-10-07 11:19:32
by Edred
Скрипт wrote:у тебя не поисон а маджик арров =) просьба оставить аську для некоторых вопросов =)
А, ты переделал на на деланье пойзонов... Это просто. Изменить меню и тип готовых скроллов. Аську не дам, там уже и так перебор, вопросы можешь слать на мыло.

Posted: 2004-10-07 19:00:07
by Скрипт
пойсон скролы он выкладывал :) тоесть всё ок работало а щас ФС он не выкладывает

Posted: 2004-10-07 20:06:24
by Edred
Скрипт wrote:пойсон скролы он выкладывал :) тоесть всё ок работало а щас ФС он не выкладывает
Скрипт от предыдущего отличается только вместо ифа при выкладывании - вайл

Posted: 2004-10-07 20:14:09
by Скрипт
Edred wrote:
Скрипт wrote:пойсон скролы он выкладывал :) тоесть всё ок работало а щас ФС он не выкладывает
Скрипт от предыдущего отличается только вместо ифа при выкладывании - вайл
всё ок =) сеньк руки просто немного кривые и знания маленькие =)

Posted: 2004-10-08 18:43:39
by Скрипт
народ хелп еочь отроботал нормально этот скрипт и запускал его много раз
ткпкрь как я его запускаю он пишет
Error:no menu to cancel
потом про то что крафтить и выходит из скрипта народ что делать что такое случилось ведь работало !!!

Posted: 2004-10-08 19:50:28
by Edred
Скрипт wrote:Error:no menu to cancel
Это нормально. Вот на это не обращай внимание или закомментарь в начале скрипта строку UO.CancelMenu(). Эта строка стоит там на случай прерывания какого-либо UO.Automenu() через терминат.

А что не работает - подробно с цитатами того что пишет. Проверь что включен трак ворлд.

Posted: 2004-10-09 20:14:56
by H.Reaper
Скрипт классный.
Потестил. Очень хорошо работает.
Огромный респект автору!

Posted: 2005-08-03 14:15:33
by GRIFIL
Люди если не сложно можете переделать скрипт чтоб он кликал не на бланки при делании а сначала на перо(один раз) а потом таргетом на бланк у нас так на шарде((((

Posted: 2005-08-03 15:39:34
by flake
Вместо

Code: Select all

UO.UseType( Blank )
Вставь

Code: Select all

UO.WaitTargetType( Blank )
UO.Click( 'айди пера' )