Page 1 of 2
Таймер
Posted: 2006-05-26 10:07:13
by Rijo
Как можно сделать тамймер на то что если скрипт ничего не делает, то он его бы запускал сначала. А то у меня действеие скрипта зависит от проверки сообщений в журнале. И если что то не так, то он подвисает и просто чар простаивает
Posted: 2006-05-26 10:45:28
by dmitrykit
nu dobavj schetchik kakojnibud'.. a potom cherez promezhutki vremeni proverjaj... esli neizmenilsja.. to zapuskaj ponovoj
Posted: 2006-05-26 11:20:44
by Scripts Writer
Динамическая пауза.
Code: Select all
k = 0
while (k<50)
wait(100)
k = k + 1
wend
Posted: 2006-05-26 11:46:45
by Rijo
А не могли бы вы пояснить как и куда именно вставить таймер.
Code: Select all
sub heal()
var frizheal = "You apply bandages but"
var hil = "You put bloody"
var bloodbandage = 0x0E20
var bandage = 0x0E21
var Sunduk = '0x40000FE8'
var DoborBintov = 1
var DoborRegov = 1
while not uo.Dead()
if DoborBintov == 1 then
DoborBintov()
end if
if uo.Count('0x0F0B') == 0 then
MakeRefresh()
end if
if uo.Life < uo.Str then
bandageself()
else
ClickNaUlej()
end if
wend
end sub
######################################################################################################
sub DoborBintov()
if uo.count('0x0E20') >= 100 then
uo.findtype('0x0E20', '-1', 'backpack')
if uo.getquantity('finditem') >= 60 then
uo.moveitem('finditem', '100', '0x40000FE8')
wait(700)
endif
end if
if uo.count('0x0E21') < 1000 then
uo.findtype('0x0E21', '-1', '0x40000FE8')
if uo.getquantity('finditem') >= 60 then
uo.moveitem('finditem', '100', 'my')
wait(700)
else
uo.print( 'Áèíòû â ñóíäóêå êîí÷èëèñü!' )
return
endif
end if
end sub
######################################################################################################
sub DoborRegov()
uo.findtype('0x0F7A', '-1', '0x40000FE8')
if uo.getquantity('finditem') >= 60 then
uo.moveitem('finditem', '150', 'my')
wait(700)
endif
end sub
######################################################################################################
sub bandageself()
if UO.Stamina < 30 then
uo.UseType('0x0F0B')
end if
uo.exec('bandageself')
uo.DeleteJournal()
repeat
wait(100)
until uo.InJournal("You apply bandages but") or uo.InJournal("You put bloody")
end sub
######################################################################################################
sub ClickNaUlej()
var ulej = 0x091A
repeat
UO.UseFromGround(ulej)
wait(100)
until uo.Life < (uo.Str - 10)
end sub
######################################################################################################
sub MakeRefresh()
var garlick='0x0F7A'
if uo.bp < 150 then
DoborRegov()
end if
while not uo.Count('0x0F0B') == 112 #
uo.WaitMenu('What sort of potion do you want to','Refresh')
uo.UseType(garlick)
uo.DeleteJournal()
repeat
wait(100)
until uo.InJournal("mes1") or uo.InJournal("mes")
wend
end sub
и поясните пожалуста основной принцип действия таймера
Posted: 2006-05-26 11:54:34
by DerMeister =)
You Must Die wrote:Динамическая пауза.
Code: Select all
k = 0
while (k<50)
wait(100)
k = k + 1
wend
Хуясе... а где тут "динамика"?

Re: Таймер
Posted: 2006-05-26 11:56:48
by DerMeister =)
Rijo wrote:Как можно сделать тамймер на то что если скрипт ничего не делает, то он его бы запускал сначала. А то у меня действеие скрипта зависит от проверки сообщений в журнале. И если что то не так, то он подвисает и просто чар простаивает
В каком случае ону тебя ничего не делает? И зачем сначала запускать? Сделай просто "вечный" цикл и фсё

Posted: 2006-05-26 12:02:08
by DerMeister =)
Rijo wrote:Code: Select all
...
repeat
UO.UseFromGround(ulej)
wait(100)
until uo.Life < (uo.Str - 10)
...
Фпятёрке...
ЗЫ: Каким образом он может "ничего не делать?" Этоже скрипт на прокачку... [/quote]
Posted: 2006-05-26 12:02:29
by Rijo
Допустим чар наложил на себя бинт и ждет пока в журнале не появится сообщага о том положен ли бинт или нет
Code: Select all
repeat
wait(100)
until uo.InJournal("You apply bandages but") or uo.InJournal("You put bloody")
вот типа что то этого. А скрипт и так вечный

. Ну смысле пока выполняются все условия
Posted: 2006-05-26 12:03:13
by Rijo
DerMeister =) wrote:Rijo wrote:Code: Select all
...
repeat
UO.UseFromGround(ulej)
wait(100)
until uo.Life < (uo.Str - 10)
...
Фпятёрке...
ЗЫ: Каким образом он может "ничего не делать?" Этоже скрипт на прокачку...
[/quote]
а тут то что не так?

Posted: 2006-05-26 12:09:58
by DerMeister =)
1) Если ты имеешь ввиду ситуацию, когда сообшения о хеле не приходят, то используй счётчик:
Code: Select all
var schetchik=0
repeat
schetchik=schetchik+1
wait(100)
until uo.InJournal("You apply bandages but") or uo.InJournal("You put bloody") or schetchik >200
Принцип работы: даже если сообщения (You apply bandages but и You put bloody) по каким либо причинам не появятся, то счётчик выведет из цикла (условие выхода: schetchik >200 ) Число подстрой под себя...
2)
Rijo wrote:а тут то что не так?
wait(100)
У тебя не лагает? Или это так специально задумано 100мс задержка?
Posted: 2006-05-26 12:15:36
by Rijo
Rijo wrote:а тут то что не так?
wait(100) 
У тебя не лагает? Или это так специально задумано 100мс задержка?
нет не лагает, специально поставил такую паузу чтобы инжект не потерял случайно сообщагу

. Все равно теряет[/quote]
Posted: 2006-05-26 12:23:38
by DerMeister =)
Rijo wrote:Rijo wrote:а тут то что не так?
wait(100) 
У тебя не лагает? Или это так специально задумано 100мс задержка?
нет не лагает, специально поставил такую паузу чтобы инжект не потерял случайно сообщагу

. Все равно теряет
[/quote]
Да я не про это (тут всё правильно

), я пр вот этот цикл:
Code: Select all
repeat
UO.UseFromGround(ulej)
wait(100)
until uo.Life < (uo.Str - 10)
Posted: 2006-05-26 12:25:58
by DerMeister =)
Rijo wrote:нет не лагает, специально поставил такую паузу чтобы инжект не потерял случайно сообщагу

. Все равно теряет
Не может он её терять! Если сервер присылает то потеря не возможна!
Совет попробуй соощения "упростить, напимер вместо "You apply bandages but" попробуй просто "bandages"...
Posted: 2006-05-26 12:41:38
by Rijo
Ну в принципе упростил как ты посоветовал. Ща посмотрим как будет работать.
Ну и получилось примерно так
Code: Select all
sub bandageself()
var schetchik=0
if UO.Stamina < 30 then
uo.UseType('0x0F0B')
end if
uo.exec('bandageself')
uo.DeleteJournal()
repeat
schetchik=schetchik+1
wait(100)
until uo.InJournal("bandages but") or uo.InJournal("bloody") or schetchik >300
end sub
может че неправлень сделал. На всякий случай выложил сюда
Posted: 2006-05-26 12:46:01
by Rijo
Code: Select all
repeat
UO.UseFromGround(ulej)
wait(100)
until uo.Life < (uo.Str - 10)
ну а тут я собсно не понял что тебя удевило

. Он у меня раза 3-4 тыкает на улей и и потом лечится до тех пор пока uo.Life = uo.str
Posted: 2006-05-26 12:58:09
by DerMeister =)
Rijo wrote:Code: Select all
repeat
UO.UseFromGround(ulej)
wait(100)
until uo.Life < (uo.Str - 10)
ну а тут я собсно не понял что тебя удевило

. Он у меня раза 3-4 тыкает на улей и и потом лечится до тех пор пока uo.Life = uo.str
Да мне просто интересно как он у тебя 10 раз в секунду будет хуярить по улью... серв с ума не сходит???

Posted: 2006-05-26 14:27:34
by Rijo
Ну ты сам потыкай мышкой по улью, ты не намного дольше будишь это делать. А вообще на пилоте такую же задержку ставишь, замыкаешь в цыкл и черз секунду у тебя мертвый чар, если в цыкле ничего не проверятеся

Posted: 2006-05-26 14:32:12
by DerMeister =)
Значит ты счастливый и на твоёт шарде нету проверки на скорость юзания обекта =)
Posted: 2006-05-26 14:37:06
by No More Lies
Ну почему сразу счастливый то..

Posted: 2006-05-26 15:43:04
by Rijo
DerMeister =) wrote:Значит ты счастливый и на твоёт шарде нету проверки на скорость юзания обекта =)
У вас на шарде появляется какоето предупреждение, если ты используешь объект слишком часто? Или за это просто банан сразу лепят?
