Bowcraft,Fletching / Изготовление луков,стрел

Only tested and approved scripts

Moderators: Murderator+, Murderator

Post Reply
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Bowcraft,Fletching / Изготовление луков,стрел

Post by Yoko »

Discussion:______________
http://yoko.netroof.net/forum/viewtopic.php?t=671
Author or poster:_________
COoler E-mail: cOoler@email.su | ICQ: 333358386
Tested on:_______________
Dragon World (v0.55i) http://www.drw.ru
Must work:_______________
Sphere emu
Customization required:____
Yes/place (0x40160062 change to box serial)
Description:______________
см. заголовок скрипта
Yoko comment:___________
none
________________________

Code: Select all

#####################################################
###       BowCraf BowBolts Script v. 1.00.        ###
###                                               ###
###  Copyright & tested by cOoler on DRW Shard.   ### 
###                                               ###
### Oficial DRW Shards site - http://www.drw.ru   ###
#####################################################
##################################################### 
###   Инструкция по использованию и настройке.    ###
#####################################################
### 1. Для работы этого скрипта надо: сундук,
### перья,шафты,пила(или другой инструмент).
###
### 2. Описание подготовки к запуску скрипта.
### Берём сундук (можно и backpack),меняем в скрипте
### ID сундука на свой,кладем в него шафты,а к себе в 
### backpack перья и пилу,запускаем скрипт.
###
### 3. При использовании скрипта вам так или иначе 
### придется менять конфигурации скрипта.
### Вот как и где это НУЖНО сделать:
###
### $ Сменa ID сундука и типа шафтов.
### 1) UO.FindType('тип шафтов','0x0000','backpack')- тут вы
### указываете: тип шафтов.
### 2) UO.FindType('тип шафтов','colour сундука','ID сундука')- тут вы
### указываете: тип шафтов,его colour,ID сундука. 
#####################################################  
###               Конец инструкции.               ###
#####################################################

sub Bowcraft() 
repeat 
UO.FindType('0x1bd4','0x0000','backpack') 
put: 
If UO.GetQuantity('finditem')<1 then 
UO.FindType('0x1bd4','0x0000','0x40160062') ;Сериал сундука 
UO.Grab('1','finditem') 
wait(400) 
Endif 
UO.FindType('0x1bd4','0x0000','backpack') 
If UO.GetQuantity('finditem')<1 then 
goto put 
end if 
UO.Usetype('0x1bd4') 
UO.WaitMenu('Select arrow type','bolt') 
wait (1000) 
UO.DeleteJournal() 
while not (UO.InJournal("You put") or UO.InJournal("You fail")) 
wait(300) 
wend 
UO.UnSetReceivingContainer() 
wait(200) 
until UO.Dead() 
end sub
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

Discussion:______________
http://yoko.netroof.net/forum/viewtopic.php?t=1437
Author or poster:_________
Edred, tercia@spb.lanck.net
Tested on:_______________
Цитадель http://ultima.e-burg.ru
Must work:_______________
Sphere emu
Customization required:____
Yes/place (serials Sunduk; also check object types and logs quota for single item)
Description:______________
Скрипт для прокачки боукрафта. Делаем шафты.
Чар берет из сундука логи, крафтит из них шафты и складывает эти шафты в этот же сундук. Если логи закончились - выход. Если даггер (или что вы там используете) сломался - скрипт найдет аналогичный по типу в бэкпаке и возьмет в руки

Настройка: внесите в соответствующие переменные сериал сундука, проверьте необходимые типы, укажите количество логов для разового крафта.
Yoko comment:___________
none
________________________

Code: Select all

#####################################################################
; Bowcraft. v.1.03b (c) Edred
;
; Чар берет из сундука логи, крафтит из них шафты
; и складывает эти шафты в этот же сундук.
; Если логи закончились - выход.
; Если даггер (или что вы там используете) сломался - 
; скрипт найдет аналогичный по типу в бэкпаке и возьмет
; в руки.
;
; 1.03b: Проверка, если Kolvo = 1, то берем три и кладем обратно два
;        лога.
; 
sub bowcraft() 
	VAR Sunduk = '0x4042B1A1' 		; Сериал сундука
	VAR Logi = '0x1BDD' 			; Тип логов
	VAR Shafts = '0x1BD4' 			; Тип шафтов
	VAR Kolvo = 10					; Брать логов для одного крафта
	VAR k = 0, j, dagger
	dagger = UO.ObjAtLayer( 'Rhand' )
	UO.SetGlobal( 'instrtype', UO.GetGraphic( dagger ) )
	While TRUE
		UO.FindType( Logi, -1, Sunduk )	; Ищем логи в сундуке
		If UO.FindCount() == 0 Then
			UO.Print("Logs not found, script terminated")
			return
		else
			j = UO.GetQuantity( 'finditem' )
			If j > Kolvo Then
				UO.Print( 'I can use ' + str( j ) + ' logs' )
			else
				UO.Print( "I can't use " + str( j ) + " logs" )
				return
			Endif
		Endif
		If Kolvo == 1 Then
			; v. 1.03
			UO.Grab( '3', 'finditem' )
			wait(500)
			UO.FindType( Logi )
			UO.MoveItem( 'finditem', '2', Sunduk )
			wait(500)
		Else
			UO.Grab( Str( Kolvo ), 'finditem' )
			wait(500)
		Endif
		; А это - динамическая пауза на мув
		while UO.Count( Logi ) < Kolvo
			wait(100)
		wend
		; проверка на то, что в руках по-прежнему даггер
		If CheckInstr() == 0 Then
			UO.Print("You don't have daggers!" )
			return
		Endif
		UO.DeleteJournal()
		UO.CancelMenu()
		UO.WaitMenu ('What do you want to carve', 'shaft' )
		UO.WaitTargetType( Logi )
		UO.UseObject( dagger ) 
		k = 0
		while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 )
			k = k + 1
			wait(300)
		wend
		If UO.Count( Shafts ) > 0 then
			UO.FindType( Shafts, -1, -1 )
			UO.MoveItem( 'finditem', 0, Sunduk )
			wait(500)
			while UO.Count( Shafts ) > 0
				wait(100)
			wend
			UO.Print( 'Shafts moved' )
		Endif
	Wend
end sub

Sub CheckInstr()
	; проверим, есть ли в правой руке инструмент того же
	; типа, что и в глобальной переменной instrtype
	; если нет - найдем в бэкпаке такой инструмент и
	; возьмем в правую руку.
	VAR typ = UO.GetGlobal( 'instrtype' )
	VAR cur = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
	If typ == cur Then
		return 1
	Endif
	UO.FindType( typ )
	If UO.FindCount() == 0 Then
		return 0
	Endif
	UO.Equip( 'RHand' , 'finditem' )
	wait(1000)
	return 1
endsub
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

Discussion:______________
http://yoko.netroof.net/forum/viewtopic.php?t=1437
Author or poster:_________
Edred, tercia@spb.lanck.net
Tested on:_______________
Цитадель http://ultima.e-burg.ru
Must work:_______________
Sphere emu
Customization required:____
Yes/place (serials Sunduk; also check object types)
Description:______________
Скрипт для прокачки боукрафта. Делаем стрелы.
Чар берет из сундука шафты и перья, крафтит из них стрелы и складывает эти стрелы в этот же сундук. Если шафты или перья закончились - выход.

Настройка: внесите в соответствующие переменные сериал сундука, проверьте необходимые типы.
Yoko comment:___________
(Fletching)
________________________

Code: Select all

#####################################################################
; Bowcraft2. v.1.01b (c) Edred
;
; Чар берет из сундука шафты и перья, крафтит из них стрелы и
; складывает эти стрелы в этот же сундук.
; Если шафты или перья закончились - выход.
;
sub bowcraft2() 
	VAR Sunduk = '0x404CFAA3' 		; Сериал сундука
	VAR Shafts = '0x1BD4' 			; Тип шафтов
	VAR Feather = '0x1BD1'			; Тип перьев
	VAR Arrows = '0x0F3F'			; Тип стрел
	VAR Kolvo = 1					; Брать шафтов для одного крафта
	VAR k = 0, j
	UO.CancelMenu()
	UO.AutoMenu ('Select arrow type', 'arrow' )
	While TRUE
		If UO.Count( Shafts ) == 0 Then
			UO.FindType( Shafts, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print("Shafts not found, script terminated")
				return
			Endif
			UO.Grab( Str( Kolvo ), 'finditem' )
			wait(500)
			while UO.Count( Shafts ) < Kolvo
				wait(100)
			wend
			CheckLag()
		Endif
		If UO.Count( Feather ) == 0 Then		
			UO.FindType( Feather, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print("Feather not found, script terminated")
				return
			Endif
			UO.Grab( Str( Kolvo ), 'finditem' )
			wait(500)
			while UO.Count( Feather ) < Kolvo
				wait(100)
			wend
			CheckLag()
		Endif
		UO.DeleteJournal()
		UO.UseType( Shafts ) 
		k = 0
		while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 )
			k = k + 1
			wait(300)
		wend
		If UO.Count( Arrows ) > 0 then
			UO.FindType( Arrows, -1, -1 )
			UO.MoveItem( 'finditem', 0, Sunduk )
			wait(500)
			while UO.Count( Arrows ) > 0
				wait(100)
			wend
			UO.Print( 'Arrows moved' )
		Endif
	Wend
end sub
Post Reply