Непрерывный контроль журнала

Anything and all.

Moderators: Murderator+, Murderator

Locked
insider
Posts: 6
Joined: 2006-06-21 07:29:26
Location: Middle-Earth.Ru
Contact:

Непрерывный контроль журнала

Post by insider »

Возникла такая проблема, надо непрерывно контрольровать записи появляющиеся в журнале и свевременно на них реагировать.
Пытался написать скрипт типа:

Code: Select all

while true<>false
 if uo.injournal("---") then
  [делаем что-то там]
  wait(1000)
  uо.deletejournal()
 else
  [делаем что-то там
wend

Даже при проверке журнала раз в секунду начинаются злые торможения в системе. Это как-то можно обойти?
E=mc²
[No Comments... plz]
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

viewtopic.php?t=3491

В этом случае действия внутри if...endif не выполняются, и цикл while...wend становится пустым, то есть в нем не производится никаких действий. Скриптовый модуль инжекта устроен так, что в этом случае вы получите 100%-загрузку процессора вашего компьютера (зависнет) и, быстрее всего, креш игры или системы. Как избежать такого конца? Очень просто. Предусмотреть чтобы в скрипте всегда какие-нибудь действия производились. В данном случае вполне достаточно добавить Else


Проверь внимательно свой скрипт. Где-то у тебя пустой цикл.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
insider
Posts: 6
Joined: 2006-06-21 07:29:26
Location: Middle-Earth.Ru
Contact:

Post by insider »

Edred wrote:https://yoko.uokit.com/viewtopic.php?t=3491

Проверь внимательно свой скрипт. Где-то у тебя пустой цикл.


В том-то и дело, что пустых циклов нет. Все предусмотрено. Но загрузка получается хоть и не 100%, но система тормозит порядочно.
E=mc²
[No Comments... plz]
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Code: Select all

while true<>false 
 if uo.injournal("---") then
  [делаем что-то там]
  wait(1000)
  uо.deletejournal()
 else
  [делаем что-то там
wend


А закрыть цикл if? =\
klonuk
Posts: 145
Joined: 2006-05-23 11:48:22
Contact:

Post by klonuk »

я делала так

Code: Select all

repeat 
if UO.InJournal("Что ждем") then
     действия
        else
UO.DeleteJournal()
CheckLag()
endif
until Uo.Dead()       



хз работало на ура ) :wink:
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Хмм... ты с чеклагом стока трафа сожреш, что скрипт золотой окажется :wink:
ЗЫ: Я сам на анлиме, мне пофиг.
DerMeister сейчас на нейрале!
klonuk
Posts: 145
Joined: 2006-05-23 11:48:22
Contact:

Post by klonuk »

DerMeister =) wrote:Хмм... ты с чеклагом стока трафа сожреш, что скрипт золотой окажется :wink:
ЗЫ: Я сам на анлиме, мне пофиг.


ЗЫ: не на анлиме но но тариф на стока дешвевый что мне как то =)
klonuk
Posts: 145
Joined: 2006-05-23 11:48:22
Contact:

Post by klonuk »

Code: Select all

repeat 
if UO.InJournal("Что ждем") then
     действия
        else
UO.DeleteJournal()
wait(100)
endif
until Uo.Dead()       


если жалко денег то вот )
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

=_)
АГА, бюджетный вариант :P :P
DerMeister сейчас на нейрале!
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

insider wrote:В том-то и дело, что пустых циклов нет. Все предусмотрено. Но загрузка получается хоть и не 100%, но система тормозит порядочно.


Пустой цикл - это не цикл, в котором ничего нет. В нем вполне могут быть действия, которые не содержат внутренних пауз в инжекте. Пример таких команд - работа с журналом, использование объектов и т. д. Проверить себя просто: добавить в конец цикла wait(50) - если нагрузка на проц резко снизилась - значит был пустой цикл.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
insider
Posts: 6
Joined: 2006-06-21 07:29:26
Location: Middle-Earth.Ru
Contact:

Post by insider »

Короче, скрипт вот он. Если в тределах визимости кастуют празайз, то надо жрать травленую рыбу.
Проверка журнала раз в секунду. В таком варианте он не реазирует на условные фразы. Где я туплю?

Code: Select all

sub main()
    repeat
    if UO.Injournal("AN EX POR") then
      UO.UseType(0x097B)
                  wait(1000)
                  UO.Deletejournal();
                 else
     if UO.Injournal("VAS LOR") then   
                    UO.UseType(0x097B)
                    wait(1000)
                    UO.Deletejournal();
                   else
                    wait(1000)
                    UO.Deletejournal();
     endif
                endif
   until Uo.dead()
end sub
E=mc²
[No Comments... plz]
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

"Причесал":

Code: Select all

sub main()
   msg1 = "AN EX POR"
   msg2 = "VAS LOR"
   repeat
      if UO.Injournal(msg1 + '|' + msg2) then
         UO.UseType(0x097B)
      endif
      wait(1000)
      UO.Deletejournal()
   until Uo.dead()
end sub


Если все равно не работает - проверяй написание заклов. Команды работы с журналом чувствительны к регистру. Набери
,showjournal 100
после кастов и посмотри, что именно попало в журнал.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
insider
Posts: 6
Joined: 2006-06-21 07:29:26
Location: Middle-Earth.Ru
Contact:

Post by insider »

Edred wrote:"Причесал":

Если все равно не работает - проверяй написание заклов. Команды работы с журналом чувствительны к регистру. Набери
,showjournal 100
после кастов и посмотри, что именно попало в журнал.


Регистр я с самого начала проверял. Скрипт работает, но только в том случае, если ключевые фразы были в журнале _до_ запуска скрипта. Если в процессе выполнения скрипта эти фразы появляются, то реакции никакой нету.
Жаль, что нету отладки...
E=mc²
[No Comments... plz]
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Edred wrote:"Причесал":

Code: Select all

sub main()
   msg1 = "AN EX POR"
   msg2 = "VAS LOR"
   repeat
      if UO.Injournal(msg1 + '|' + msg2) then
         UO.UseType(0x097B)
      endif
      wait(1000)
      UO.Deletejournal()
   until Uo.dead()
end sub



Это не "причёска", а "полировка"...

Почему сначало ждём, а потом делетим журнал? Естессьно работать не будет...

ЗА: кароч поменяй местами:

Code: Select all

wait(1000) 
UO.Deletejournal()

на

Code: Select all

UO.Deletejournal()
wait(1000)

и всё будет ок... :wink:
Last edited by DerMeister =) on 2006-06-25 21:03:07, edited 2 times in total.
DerMeister сейчас на нейрале!
insider
Posts: 6
Joined: 2006-06-21 07:29:26
Location: Middle-Earth.Ru
Contact:

Post by insider »

Проблема решилась неожиданно. Пришлось делать через заднее место, а именно, использовать дополнительный флаг, который отмечал появление в журнале ключевых фраз. Финальный вариант выглядит так:
CENSORED

2 DerMeister =)
туплю. Действительно, всего-то надо было поменять ))

Сразу оговорюсь, скрипт не причесан в плане выравнивания строк; кое-где можно оптимизировать код (убрать лишние строки) и прочее.

Засим прошу Модераторов закрыть тему
Last edited by insider on 2006-06-25 21:01:54, edited 1 time in total.
E=mc²
[No Comments... plz]
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

insider wrote:Проблема решилась неожиданно. Пришлось делать через заднее место, а именно, использовать дополнительный флаг, который отмечал появление в журнале ключевых фраз. Финальный вариант выглядит так:

Code: Select all

sub main() 
var   msg1 = "AN EX POR"
var   msg2 = "VAS LOR"
var   tmp = False
   repeat
      if UO.Injournal(msg1 + "|" + msg2) then
         tmp = True
         if tmp then
            UO.UseType(0x097B)
            Uo.Deletejournal();
            tmp = false 
          endif
         else
          tmp = false
      endif
      wait(1000)
   until Uo.dead()
end sub


Сразу оговорюсь, скрипт не причесан в плане выравнивания строк; кое-где можно оптимизировать код (убрать лишние строки) и прочее.

Засим прошу Модераторов закрыть тему


Убей ся ап стену... нахер в соседний магазин через америку ездить??? :wink: читай на 1 пост выше, я нашел в чём была фигня...
DerMeister сейчас на нейрале!
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

нее вы все кренделя...
Обхеснити за чем каждую секунду нужо чистить журнал???

Code: Select all

sub main() 
var   msg1 = "AN EX POR"
var   msg2 = "VAS LOR"
   repeat
      if UO.Injournal(msg1 + "|" + msg2) then
         UO.UseType(0x097B)
         Uo.Deletejournal()
      endif
      wait(1000)
   until Uo.dead()
end sub
insider
Posts: 6
Joined: 2006-06-21 07:29:26
Location: Middle-Earth.Ru
Contact:

Post by insider »

Все. Закрывайте тему.
Всем спасибо за помощь. Скрипт-таки написан.
©losed
E=mc²
[No Comments... plz]
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Ты прав как всегда :wink:

ОФФТОП:
Когда меня на мирке разбанят то?
DerMeister сейчас на нейрале!
Locked