Page 1 of 1

Вставка ЮзСкилла в готовый скрипт

Posted: 2005-03-31 19:25:18
by Kenny
Помогите плз.
Нужно сделать так чтобы, пока работает скрипт (тинкер отмычек), раз в 5 минут Юзался Спирит Спик.
Заранее спасибо.
Если нужно, выложу скрипт.

Posted: 2005-04-01 14:22:03
by Yoko
паралельно тому скрипту запускай скрипт на подобие:

sub test()
var i
while not uo.dead()
uo.useskill("Spirit")
for i=5 to 1 step -1
uo.print(str(i)+" minutes to next use...")
wait(60000)
next
wend
end sub

Posted: 2005-04-01 22:53:07
by J17
Только, наверное, раз в 5 минут может сфизлиться тинкер из-за юзанья скилла, а после этого может сфизлиться и спиритспик из-за тинкеринга...
Лучше доработать тот существующий скрипт, чтобы параллельно ничего не запускать.
Но не имея его, мы помочь не сможем...

Posted: 2005-04-01 22:58:31
by SAMURAI
J17 wrote:Только, наверное, раз в 5 минут может сфизлиться тинкер из-за юзанья скилла, а после этого может сфизлиться и спиритспик из-за тинкеринга...
Лучше доработать тот существующий скрипт, чтобы параллельно ничего не запускать.
Но не имея его, мы помочь не сможем...
Я писал но так до ума и не довёл. Вот разберитесь и покапайтеся...

Code: Select all

VAR Sunduk = '0x40078ED6' ; Сериал сундука 
VAR Ingi = '0x1BEF' ; Тип ингов
VAR Instrum = '0x1EBC' ; Тип инструмента тинкера
VAR Bottle = '0x0F0E' ; Тип бутылки
VAR Kolvo = 300 ; Брать ингов
VAR k = 0
var count=0,i=0
sub Tinker()
var count=0,i=0
uo.useobject('backpack')
UO.Exec('terminate Reconnector')
wait(1000)
UO.Exec('exec Reconnector')
wait(1000)
i=0
repeat
i=i+1
cheklag()
While TRUE
UO.FindType( Ingi, -1, Sunduk ) ; Ищем инги в сундуке
If UO.FindCount() == 0 Then
UO.Print("Iron Ingots not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
While UO.Count( Ingi ) > 0
; Пока в паке есть инги
UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu ('Tinkering', 'Tools', 'Tools', 'empty bottle' )
UO.UseType( Instrum )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
if UO.Count( Bottle ) > 0 then
UO.FindType( Bottle, -1, -1 )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 1000 )
UO.Print( 'Bottle moved' )
end if
Wend
Wend
if i==1 then
uo.usetype('0x097B')
wait(1000)
i=0
cheklag()
uo.print("Spirit Speak...")
uo.useskill ("Spirit Speak")
uo.deletejournal()
repeat
wait(10)
until UO.InJournal("You establish a connection to the netherworld.") or UO.InJournal("You fail your attempt at contacting the netherworld.")
end if
until UO.Dead()
end sub

sub cheklag()
uo.deletejournal()
uo.click('backpack')
repeat
wait(10)
until uo.InJournal("backpack")
end sub

sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
UO.Exec('terminate Tinker')
wait(1000)
UO.Exec('exec Tinker')
wait(1000)
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub

sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub

Posted: 2005-04-02 01:52:59
by Kenny
Вот то, что они могут накладываться друг на друга (юзаться одновременно), меня и смущает... :oops:

Posted: 2005-04-06 22:00:23
by Savage
Обычно скрипты циклятся типа:
While NOT UO.Dead
.........
.........
.......
.......
>>>>>> сюда пихай код юза спиритспика и паузу на его активацию.
Wend
то есть:
UO.UseSkill('Spir.....')
wait(5000)

Posted: 2005-04-09 00:28:58
by ZIgi
Если не хочется чтобы скрипты пересекались то можно сделать так:

Code: Select all

sub Spirit()
while NOT UO.Dead()
UO.DeleteJournal()
UO.Useskill("Spirit")
While NOT UO.Injournal("netherworld")
 wait(200)
wend
UO.Exec("exec Magery")
Wait(300000)
UO.Exec("terminate Magery ")
wend
end sub

Posted: 2005-04-15 08:28:22
by Kenny
Снкс.
А как сделать так, чтобы после надписи 'You failed' или 'You established' юз проходил снова?

Posted: 2005-04-15 09:49:56
by Sfagnum
извращенцы ;)
типа такого сделать надоть ;)

Code: Select all

var ssTimer = UO.Timer() - 3000
sub Tinker()
...
While TRUE
...
Spirit()
...
wend
...
end sub

sub Spirit()
var a
   if ssTimer+3000 > UO.Timer() then
      return
   end if
   ssTimer = UO.Timer()
   UO.DeleteJournal()
   UO.UseSkill("Spirit Speak")
   a = UO.Timer()
   while NOT UO.InJournal("You establish") AND NOT UO.InJournal("netherworld") and a+100 <UO.Timer()
      wait(300)
   wend
end sub

Posted: 2005-04-20 18:23:58
by Destruction
Savage wrote:Обычно скрипты циклятся типа:
While NOT UO.Dead
.........
.........
.......
.......
>>>>>> сюда пихай код юза спиритспика и паузу на его активацию.
Wend
то есть:
UO.UseSkill('Spir.....')
wait(5000)

Я циклю:
repeat
...
until false
или если необходимо
until uo.dead()

Posted: 2005-04-20 22:53:52
by Edred
Вообще-то тут рядом болтается топик "мининг и спирит спик", там я скидывал свою функцию прокачки спирит спика для встраивания в любые скрипты...

В разделе "Хелп" кажись