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
Вообще-то тут рядом болтается топик "мининг и спирит спик", там я скидывал свою функцию прокачки спирит спика для встраивания в любые скрипты...

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