Таймер

Anything and all.

Moderators: Murderator+, Murderator

Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Таймер

Post by Rijo »

Как можно сделать тамймер на то что если скрипт ничего не делает, то он его бы запускал сначала. А то у меня действеие скрипта зависит от проверки сообщений в журнале. И если что то не так, то он подвисает и просто чар простаивает
dmitrykit
Posts: 247
Joined: 2005-06-12 22:12:15

Post by dmitrykit »

nu dobavj schetchik kakojnibud'.. a potom cherez promezhutki vremeni proverjaj... esli neizmenilsja.. to zapuskaj ponovoj
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Динамическая пауза.

Code: Select all

k = 0
  while (k<50)
    wait(100)
    k = k + 1
  wend
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post 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

и поясните пожалуста основной принцип действия таймера
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

You Must Die wrote:Динамическая пауза.

Code: Select all

k = 0
  while (k<50)
    wait(100)
    k = k + 1
  wend


Хуясе... а где тут "динамика"? :wink:
DerMeister сейчас на нейрале!
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Re: Таймер

Post by DerMeister =) »

Rijo wrote:Как можно сделать тамймер на то что если скрипт ничего не делает, то он его бы запускал сначала. А то у меня действеие скрипта зависит от проверки сообщений в журнале. И если что то не так, то он подвисает и просто чар простаивает


В каком случае ону тебя ничего не делает? И зачем сначала запускать? Сделай просто "вечный" цикл и фсё :wink:
DerMeister сейчас на нейрале!
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Rijo wrote:

Code: Select all

...
repeat
 UO.UseFromGround(ulej)
 wait(100)
until uo.Life < (uo.Str - 10)
...


Фпятёрке... :mrgreen:

ЗЫ: Каким образом он может "ничего не делать?" Этоже скрипт на прокачку... [/quote]
DerMeister сейчас на нейрале!
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

Допустим чар наложил на себя бинт и ждет пока в журнале не появится сообщага о том положен ли бинт или нет

Code: Select all

repeat 
  wait(100)
until uo.InJournal("You apply bandages but") or uo.InJournal("You put bloody")

вот типа что то этого. А скрипт и так вечный :). Ну смысле пока выполняются все условия
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

DerMeister =) wrote:
Rijo wrote:

Code: Select all

...
repeat
 UO.UseFromGround(ulej)
 wait(100)
until uo.Life < (uo.Str - 10)
...


Фпятёрке... :mrgreen:

ЗЫ: Каким образом он может "ничего не делать?" Этоже скрипт на прокачку...
[/quote]
а тут то что не так? :)
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post 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) :wink:
У тебя не лагает? Или это так специально задумано 100мс задержка?
DerMeister сейчас на нейрале!
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

Rijo wrote:а тут то что не так?

wait(100) :wink:

У тебя не лагает? Или это так специально задумано 100мс задержка?

нет не лагает, специально поставил такую паузу чтобы инжект не потерял случайно сообщагу :). Все равно теряет[/quote]
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Rijo wrote:
Rijo wrote:а тут то что не так?

wait(100) :wink:

У тебя не лагает? Или это так специально задумано 100мс задержка?

нет не лагает, специально поставил такую паузу чтобы инжект не потерял случайно сообщагу :). Все равно теряет
[/quote]
Да я не про это (тут всё правильно :wink: ), я пр вот этот цикл:

Code: Select all

repeat 
 UO.UseFromGround(ulej)
 wait(100)
until uo.Life < (uo.Str - 10)
DerMeister сейчас на нейрале!
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Rijo wrote:нет не лагает, специально поставил такую паузу чтобы инжект не потерял случайно сообщагу :). Все равно теряет


Не может он её терять! Если сервер присылает то потеря не возможна!
Совет попробуй соощения "упростить, напимер вместо "You apply bandages but" попробуй просто "bandages"...
DerMeister сейчас на нейрале!
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post 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

может че неправлень сделал. На всякий случай выложил сюда
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

Code: Select all

repeat 
 UO.UseFromGround(ulej)
 wait(100)
until uo.Life < (uo.Str - 10)

ну а тут я собсно не понял что тебя удевило :). Он у меня раза 3-4 тыкает на улей и и потом лечится до тех пор пока uo.Life = uo.str
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post 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 раз в секунду будет хуярить по улью... серв с ума не сходит??? :wink:
DerMeister сейчас на нейрале!
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

Ну ты сам потыкай мышкой по улью, ты не намного дольше будишь это делать. А вообще на пилоте такую же задержку ставишь, замыкаешь в цыкл и черз секунду у тебя мертвый чар, если в цыкле ничего не проверятеся :)
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Значит ты счастливый и на твоёт шарде нету проверки на скорость юзания обекта =)
DerMeister сейчас на нейрале!
No More Lies
Posts: 39
Joined: 2006-05-26 11:44:07
Location: Москва
Contact:

Post by No More Lies »

Ну почему сразу счастливый то.. :lol:
Rijo
Posts: 95
Joined: 2006-04-06 17:16:54
Location: Khab

Post by Rijo »

DerMeister =) wrote:Значит ты счастливый и на твоёт шарде нету проверки на скорость юзания обекта =)

У вас на шарде появляется какоето предупреждение, если ты используешь объект слишком часто? Или за это просто банан сразу лепят? :)
Post Reply