В этом случае действия внутри if...endif не выполняются, и цикл while...wend становится пустым, то есть в нем не производится никаких действий. Скриптовый модуль инжекта устроен так, что в этом случае вы получите 100%-загрузку процессора вашего компьютера (зависнет) и, быстрее всего, креш игры или системы. Как избежать такого конца? Очень просто. Предусмотреть чтобы в скрипте всегда какие-нибудь действия производились. В данном случае вполне достаточно добавить Else
Проверь внимательно свой скрипт. Где-то у тебя пустой цикл.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
insider wrote:В том-то и дело, что пустых циклов нет. Все предусмотрено. Но загрузка получается хоть и не 100%, но система тормозит порядочно.
Пустой цикл - это не цикл, в котором ничего нет. В нем вполне могут быть действия, которые не содержат внутренних пауз в инжекте. Пример таких команд - работа с журналом, использование объектов и т. д. Проверить себя просто: добавить в конец цикла wait(50) - если нагрузка на проц резко снизилась - значит был пустой цикл.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Короче, скрипт вот он. Если в тределах визимости кастуют празайз, то надо жрать травленую рыбу.
Проверка журнала раз в секунду. В таком варианте он не реазирует на условные фразы. Где я туплю?
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
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
после кастов и посмотри, что именно попало в журнал.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Если все равно не работает - проверяй написание заклов. Команды работы с журналом чувствительны к регистру. Набери ,showjournal 100 после кастов и посмотри, что именно попало в журнал.
Регистр я с самого начала проверял. Скрипт работает, но только в том случае, если ключевые фразы были в журнале _до_ запуска скрипта. Если в процессе выполнения скрипта эти фразы появляются, то реакции никакой нету.
Жаль, что нету отладки...
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
Это не "причёска", а "полировка"...
Почему сначало ждём, а потом делетим журнал? Естессьно работать не будет...
Проблема решилась неожиданно. Пришлось делать через заднее место, а именно, использовать дополнительный флаг, который отмечал появление в журнале ключевых фраз. Финальный вариант выглядит так:
CENSORED
2 DerMeister =) туплю. Действительно, всего-то надо было поменять ))
Сразу оговорюсь, скрипт не причесан в плане выравнивания строк; кое-где можно оптимизировать код (убрать лишние строки) и прочее.
Засим прошу Модераторов закрыть тему
Last edited by insider on 2006-06-25 21:01:54, edited 1 time in total.
insider wrote:Проблема решилась неожиданно. Пришлось делать через заднее место, а именно, использовать дополнительный флаг, который отмечал появление в журнале ключевых фраз. Финальный вариант выглядит так:
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
Сразу оговорюсь, скрипт не причесан в плане выравнивания строк; кое-где можно оптимизировать код (убрать лишние строки) и прочее.
Засим прошу Модераторов закрыть тему
Убей ся ап стену... нахер в соседний магазин через америку ездить??? читай на 1 пост выше, я нашел в чём была фигня...
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