Discussion:______________
http://yoko.netroof.net/forum/viewtopic ... 7&start=15
Author or poster:_________
Edred,
tercia@spb.lanck.net
Tested on:_______________
The Cytadel
http://ultima.e-burg.ru Sphere 0.55
Must work:_______________
Sphere emu
Customization required:____
Yes/place (0x404331B7 change to drop box serial)
Description:______________
Скрипт берет из кучек на полу 1 шт. меда, 1 бутылку lesser poison,
травит мед, сбрасывает отравленный мед и пустую бутылку в рядом стоящий сундук.
В переменную Sunduk надо занести сериал контейнера, стоящего рядом с чаром.см. заголовок скрипта
Yoko comment:___________
Автор не указал, а зря, что под словами "травит" скрипт подразумевает использование прицела от бутылки яда на мёд.
Таким образом скрипт малотранспортабелен, на большинсте шардов скилл Poisoning работает при его прямом использовании. Для обычного случая скрипт имеет примерно следующий вид:
while ...
uo.poison("object_to_poison")
wait(delay_ms)
wend
Подробнее о команде poison должно быть написано здесь:
http://yoko.netroof.net/help/index.php? ... tem=poison
________________________
Code:
sub poison()
; v. 1.02 (c) Edred
; Положите рядом с чаром на пол побольше меду и lesser poison,
; поставьте рядом сундук, занесите его сериал в переменную
; Sunduk (туда будут сбрасываться пустые бутылки и отравленный мед)
; Если что-то не берет - значит положили далеко от чара,
; поправьте цифру в команде set finddistance
;
VAR Sunduk = '0x404331B7'
VAR Med = '0x09EC'
VAR LesPois = '0x0F0A'
VAR EmpBot = '0x0F0E'
VAR MedSer, k
UO.Exec('set finddistance 2')
While TRUE
UO.FindType( Med, -1, 1 )
If UO.FindCount() == 0 Then
UO.Print("Jars not found, script terminated")
return
Endif
UO.Grab( '1', 'finditem' )
wait( 2000 )
UO.FindType( LesPois, -1, 1 )
If UO.FindCount() == 0 Then
UO.Print("Bottle of Poison not found, script terminated")
return
Endif
UO.Grab( '1', 'finditem' )
wait( 2000 )
UO.DeleteJournal()
UO.WaitTargetType( Med )
UO.UseObject( 'finditem' )
k = 0
while NOT UO.InJournal('You apply lesser poison') AND NOT UO.InJournal('You fail to apply lesser poison') AND ( k < 30 )
k = k + 1
wait(500)
wend
UO.Print( 'meda v pake ' + str( UO.Count( Med ) ) )
if UO.Count( Med ) > 0 then
UO.FindType( Med, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 2000 )
UO.Print( 'Jar dropped' )
end if
if UO.Count( EmpBot ) > 0 then
UO.FindType( EmpBot, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 2000 )
UO.Print( 'Empty bottle dropped' )
end if
Wend
end sub