Page 1 of 1

Добавить в скрипт функцию...

Posted: 2006-02-25 23:29:41
by kexwer
Не могли бы вы добавить в скрипт Спирит спик
Например 20 раз промедецировал
Потом Спирит Спик и кушает катлетку, потом все снова

Code: Select all

sub Meditation() 
var Exit, LastTimer, CharMana 
uo.Print('Выбери Курсу: ') 
uo.Exec('addobject Curse') 
while uo.Targeting() 
wait(100) 
wend 
wait(300) 
uo.DisArm() 
wait(2000) 
exit=0 
while Exit <> 1 
CharMana=uo.INT 
CheckLag() 
uo.WaitTargetType('0x0190') 
uo.UseObject('Curse') 
wait(500) 
uo.Canceltarget() 

if uo.InJournal('no target to cansel') then 
uo.DeleteJornal() 
end if 

repeat 
wait(500) 
until uo.Mana<CharMana 
CheckLag() 
LastTimer=uo.Timer() 

repeat 
uo.DisArm() 
uo.Print('Медитируем...') 
uo.Useskill('Meditation') 
wait(4000) 
until uo.Mana==uo.INT or LastTimer+300<uo.Timer() 
wend 
end sub 

sub CheckLag() 
uo.DeleteJournal() 
uo.Click('backpack') 
repeat 
wait(50) 
until uo.InJournal('backpack') 
end sub

Posted: 2006-02-26 17:00:53
by kexwer
Никто не поможет :(
Помогите пожалуйста

Posted: 2006-02-26 19:05:42
by Edred
Эту функцию добавь в конец файла со скриптом:

Code: Select all

#####################################################################
; Spirit Speak v.1.00b (c) Edred
;
; Разовая прокачка спирит спика. Предназначена для вызова из других скриптов.
;
sub SpSpeak()
	VAR mod = UO.WarMode(), num
	VAR fizzle = 'You fail your attempt'
	VAR success = 'You establish a connection'
	UO.WarMode( 0 )
	DeleteJournal( success )
	repeat
		DeleteJournal( fizzle )
		UO.UseSkill( 'Spirit Speak' )
		num = 1
		repeat
			wait(100)
			num = num + 1
		until UO.InJournal( fizzle ) OR UO.InJournal( success ) OR num > 600
	until UO.InJournal( success )
	UO.WarMode( mod )
endsub
#####################################################################
Sub DeleteJournal( string1 )
	VAR nom = UO.InJournal( string1 )
	If nom > 0 Then
		UO.SetJournalLine( Nom - 1, 'string replaced' )
		DeleteJournal( string1 )
	Endif
endsub
В тексте скрипта в начале добавь (где переменные):

Code: Select all

VAR SpiritTime = UO.Timer()
А там где хочешь чтобы запускался спирит:

Code: Select all

If ( UO.Timer() - SpiritTime ) / 600 > 5 Then
	; Прошло 5 минут с момента последней прокачки Spirit Speak
	SpSpeak()
	SpiritTime = UO.Timer()
Endif

Posted: 2006-02-26 19:20:28
by kexwer
Все добавил
При запуске пишет
Variable undefinet - SPirititme

Posted: 2006-02-26 19:23:55
by kexwer
Все разобрался...
Вот у меня что получилось

Code: Select all

sub Meditation() 
VAR SpiritTime = UO.Timer()
var Exit, LastTimer, CharMana 
uo.Print('Выбери Курсу: ') 
uo.Exec('addobject Curse') 
while uo.Targeting() 
wait(100) 
wend 
wait(300) 
uo.DisArm() 
wait(2000) 
exit=0 
while Exit <> 1 
CharMana=uo.INT 
CheckLag() 
uo.WaitTargetType('0x0190') 
uo.UseObject('Curse') 
wait(500) 
uo.Canceltarget() 

if uo.InJournal('no target to cansel') then 
uo.DeleteJornal() 
end if 

repeat 
wait(500) 
until uo.Mana<CharMana 
CheckLag() 
LastTimer=uo.Timer() 

repeat 
uo.DisArm()
If ( UO.Timer() - SpiritTime ) / 600 > 1 Then 
   ; Прошло 5 минут с момента последней прокачки Spirit Speak 
   SpSpeak() 
   SpiritTime = UO.Timer() 
Endif

uo.Print('Медитируем...') 
uo.Useskill('Meditation') 
wait(4000) 
until uo.Mana==uo.INT or LastTimer+300<uo.Timer() 
wend 
end sub 

sub CheckLag() 
Endif
uo.DeleteJournal() 
uo.Click('backpack') 
repeat 
wait(50) 
until uo.InJournal('backpack') 
end sub


sub SpSpeak() 
   VAR mod = UO.WarMode(), num 
   VAR fizzle = 'You fail your attempt' 
   VAR success = 'You establish a connection' 
   UO.WarMode( 0 ) 
   DeleteJournal( success ) 
   repeat 
      DeleteJournal( fizzle ) 
      UO.UseSkill( 'Spirit Speak' ) 
      num = 1 
      repeat 
         wait(100) 
         num = num + 1 
      until UO.InJournal( fizzle ) OR UO.InJournal( success ) OR num > 600 
   until UO.InJournal( success ) 
   UO.WarMode( mod ) 
endsub 
##################################################################### 
Sub DeleteJournal( string1 ) 
   VAR nom = UO.InJournal( string1 ) 
   If nom > 0 Then 
      UO.SetJournalLine( Nom - 1, 'string replaced' ) 
      DeleteJournal( string1 ) 
   Endif 
endsub