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

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
kexwer
Posts: 159
Joined: 2005-06-19 19:21:28

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

Post 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
kexwer
Posts: 159
Joined: 2005-06-19 19:21:28

Post by kexwer »

Никто не поможет :(
Помогите пожалуйста
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post 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
kexwer
Posts: 159
Joined: 2005-06-19 19:21:28

Post by kexwer »

Все добавил
При запуске пишет
Variable undefinet - SPirititme
kexwer
Posts: 159
Joined: 2005-06-19 19:21:28

Post 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
Post Reply