• Доступ на форум только по приглашениям!

Скрипты для Stealth и Injection под ФЛ.

SnifeR iz da boo

Wizard of Words
Вообще в инже не надо задавать типы реагентов. Они там уже прописаны:
UO.BM, UO.BP, UO.SS и так далее.
 

Rene

Banned
Без особых углублений в принцип работы компьютера, приведу пример, запускаем в инже скрипт:

sub lag()
while 1==1
uo.print('lag')
wend
end sub

После запуска смотрим через диспетчер задач, смотрим загрузку процессора клиентом уо. На моем четырехядернике это 53%

Дело в том, что циклы, это самое страшное, что можно придумать. Любой цикл в любой программе содержит в себе некоторые процедуры, на выполнение которых требуется время, но если мы запускаем цикл и не ждем, пока процедура закончится - то получаем загрузку ЦП.

Все команды инжи, wait, print итд как-раз требуют времени на выполнение, доли секунды.

К примеру, в одном месте у тебя самое страшное, что можно было придумать - цикл в цикле.
PHP:
        while uo.Life < 90
         repeat
         until uo.Life == 150
        wend
То есть у нас два цикла, один в другом, первый зависает, пока выполняется второй, а второй подвисает пока там не выполнятся какие-то действия.

Конечно это не критично, как в моем примере выше, но результат все равно есть. А именно - инжа не кастует так быстро, как тот же разор, инжа лагает, вылетает, игра тормозит. Отсюда и крики, что у некоторых инжа хуже разоров итд.

Вот к примеру макрос на копку, в теме Injection в разделе Вопросы и иответы, там задали вопрос, почему не копает в нубишахте. При этом человек опубликовал скрипт, в котором аналогичная ошибка.

Что он делал:
Помимо всего прочего, он, как и многие, делал цикл, в котором использовал долгую команду PrivateGetTile, для определения индекса графики тайла, над которым стоит его персонаж. Причем, даже на форуме йоко, висит скрипт на ламбер и майнинг, где задается некоторый промежуток, картинок графики от 1339 до 1359, которым соответсвуют картинки земли в пещерах для копки. Причем он пер***рал каждый вариант, то есть обращался к клиенту - а а не тайл ли это 1339, нет? а не 1440? Нет? итд.... Наконец, когда он спросит последний тайл и окажется, что здесь копать нельзя - он идет к следующему и начинает такой же опрос. Что разумеется и создает то самое время необходимое на выполнение это процедуры, а в результате, так как цикл его не тормозится ничем, в ожидание ответа, его скрипт жрал ресурсы ЦП. Выход здесь простой, его реализовал Йоко, понимая, что такая схема не пойдет, в процедуре PrivateGetTile предусмотрен вариант проверки сразу типа тайла на значение от и до.

Таким образом получаем наш тайл таким способом:

PHP:
   if UO.PrivateGetTile(x, y, -1, min, max) then 
      for tile=min to max 
         if UO.PrivateGetTile(x, y, -1, tile, tile) then 
            return tile 
         end if 
      next 
   end if
Конечно можно говорить, что это придирки, что все и так работает отлично, но в мелочах как-раз и кроется то, почему инжект лучше разора и других подобных программ, типа асиста. Но люди сами эти плюсы уничтожают.

Опять же, можно конечно же указать, что необходимо ману регенить, как в твоем скрипте, до 99, но зачем лишние 20? Потом конечно же придется медитировать меньше, чтобы с последних 20 дотянуть до 99, но это каждый раз задержка на использование медитации, на проверки реагентов, на касты... И в итоге с нескольких кастов теряется 2-3 секунды, а это еще один каст. Как результат - скил качается дольше.

Это очень грубый пример, про то, почему циклы лучше либо избегать, либо делать задержки. Почти все циклы можно избежать, кстати.
 

macT

Hero Player
Здесь конечно можно холиварить до бесконечности, но надо еще учитывать особенности шарда. Например в твоём скрипте медитация будет работать коряво.
Т.к. Задержка на реюз скила больше чем 1000ms, а медитация у нас сделана так, что надо один раз включить и терпеливо ждать и ничего не делать.


Но для себя сделал давно вывод, что лучше использовать циклы чем goto :) и не вижу причин избегать циклов типа while, for, repeat.
 

Rene

Banned
Не знаю ка каком "нашем" шарде ты качаешься, но я только-что ставил янга на резист и медитация у нас с первого раза не всегда срабатывает, но если чар вошел в медитацию, то повторным использованием медитации сбить нельзя, в результате в моем скрипте медитация всегда работает и очень быстро. А про то, что сбивать медитацию щитом - вообще в первый раз слышу. Ты точно на ФЛ играешь?
 

macT

Hero Player
Про щит не помню зачем прикручивал. Но раз сделано, значит была веская на то причина.
 

Rene

Banned
Не может один скил работать по-разному на одном шарде без классов.
 

macT

Hero Player
Ну я особо не оспариваю твою точку зрения, просто я сделал как сделал - меня устраивало, работало.
Вообщем фломастеры... :)
 

Rene

Banned
Если бы только фломастеры, но ты пишешь, что мой скрипт у тебя не идет или ты не проверял и просто так написал, что он корявый? Если так, тогда все встает на свои места.
 
Последнее редактирование:

macT

Hero Player
Ну я вроде не скзаал что он корявый, просто он другой и некоторые моменты в нём работают не так как мне бы хотелось, например та же медитация.
 

Rene

Banned
Макрос на лут, как и макрос на медитацию не для этого шарда. Лутер будет крашить постоянно.
 

macT

Hero Player
Меня не крашит и других игроков, которые им пользуются.

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

SnifeR iz da boo

Wizard of Words
Кстати, Килл вот попробовал скрипт на лут - у него крашит часто.

Ну, не тьму) несколько выложу еще, как и обещал)
 

macT

Hero Player
Ну значит скрит для избранных :) И кстати запуск инжект на 1 ядро процессора решает большинство проблем с крашами ;)
 

SnifeR iz da boo

Wizard of Words

BlackDog

Wizard of Words
Научите быть таким же умным, как и вы :*-(
 

KillOrDie

Hero Player
Рен а зачем ты выкладываешь фотки саной бичи ?
 
Верх