farmwl

 Admin
  • Content count

    824
  • Joined

  • Last visited


Everything posted by farmwl

  1. farmwl added a post in a topic Как сделать передвижение бота более человечным   

    поправка: вне циклов, а не потоков, если запуск потока будет крутиться в цикле, то ты будешь запускать один и тот же поток много раз, т.е. они все будут работать одновременно и пытаться делать одно и тоже, что приведет со временем к зависанию бота.
    а чтобы сделать после каста - измени условия немного: вместо "вне боя" проверяй например "ничего не кастую" - тут что угодно можно сделать
  2. farmwl added a post in a topic Как сделать передвижение бота более человечным   

    begin Script.NewThread(@Neurotic_Clicks_Thread(100)); while true do begin if .... then ... ; if .... then ... ; end; end.подобные потоки как правило можно вставлять в самом начале скрипта, чтобы не прогадать. самое главное - чтобы запуск происходил только 1 раз, поэтому запуск должен быть ВНЕ циклов, иначе будет создана тонна потоков которые повесят бота
  3. farmwl added a file in Scripts \ Plug-ins [Lineage II]   

    [L2] Auto Backstab v1.1
    Скрипт, помогающий вовремя использовать скил "Удар в спину". Запускается с помощью L2 Adrenaline bot.
    Script helps to use "Backstab" when you behind your target. For run it you will need L2 Adrenaline bot !
    Цена \ Price: 30$ на 1 ПК, без лимита по времени - обращайтесь в Skype  \   30$ for 1 PC, lifetime version - write me via Skype
    Обратная связь \ Feedback: Skype farmwl

    English Description:
    Особенности:
    Автоматическое использование бекстаба когда мы находимся за спиной нашего таргетаАвтоматический подбег за спину, если мы рядом, но с неправильной стороныВозможность вкл \ выкл эти 2 опции с помощью горячих клавиш (+ оповещение в логи)Возможность настроить угол атаки, ID скила, горячие клавиши  Скрипт значительно повышает шансы пробить бекстаб, но разумеется 100% шанса прохождения и других чудес ждать не стоит - все основано на математике и корейский рандом + пинг никто не отменял
    Инструкции по запуску:
    Скачать скрипт, положить в отдельную папку (лучше всего: ..Adrenalin/Scripts/Auto_Backstab/..)Запустить скрипт на окне, на котором Вы хотите его использоватьПосле первого запуска появится файл Config.ini, в котором можно изменить некоторые настройки:[Config] ATTACK_ANGLE=100 // угол атаки со спины, откуда можно атаковать BACKSTAB_ID=30 // ID скила, который нужно использовать (можно посмотреть в самом боте) AUTO_BACKSTAB=1 // режим авто использования бека по умолчанию (1: вкл, 0: выкл) AUTO_MOVE=0 // режим авто забегания за спину по умолчанию (1: вкл, 0: выкл) AUTO_BACKSTAB_DIST=100 // дистанция, с которой будет работать автобэкстаб AUTO_MOVE_DIST=200 // дистанция, с которой будет работать автоматический забег за спину AUTO_BACKSTAB_MODE_HK=122 // код горячей клавиши для переключения режима автоюза бекстаба AUTO_MOVE_MODE_HK=123 // код горячей клавиши для переключения режима авто забегания за спинуКоды клавиш можно найти тут: http://asiwin.com/api/asi-win-archeage/usefull-info/keycodes-delphi

    • 180 downloads
    • 0 comments
    • 0 reviews
  4. farmwl added a post in a topic Запись бафа в альт б .   

    потому что работает не везде данная функция
  5. farmwl added a topic in Script repository   

    Умный Next Target / Взять в цель нужную профу
    Небольшой скрипт, который по заданному хоткею берет в цель ближайшего персонажа с нужной профой. Игнорит сокланов\сопартийцев, выделяет только живых. Так же можно выбирать как только флаганых, так и нет. Можно накладывать условия на минимальный % HP\MP
    Наверняка учтены на все возможные условия, Вы можете добавить их для себя, благо все прокоментировано
    Настройки совершаются в procedure hot_keys_thread();
    ID всех профессий вы можете найти тут
    Коды клавиш тут
    uses SysUtils, Classes; procedure hot_keys_thread(); var Action: TL2Action; p1, p2: integer; begin while true do begin // запускаем бесконечный цикл, т.к. процедура будет выполняться в потоке Action:= Engine.WaitAction([laKey], p1, p2); // ожидаем события - нажатие клавиши [тут могут быть и другие события] if (Action = laKey) then begin // если событие = нажатие клавиши, то if (p1 = 32) then get_near_enemy(115, true, 2, 0); // если нажали пробел, то ищем 3профного флагнутого овера, у которого MP > 2% if (p1 = 69) then get_near_enemy(97, true); // если нажали E(англ), то ищем 3профного флагнутого биша // можно добавить еще сколько угодно клавиш и соответствующих целей end; end; end; function in_party(_char: TL2Char): boolean; // проверка - в пати чар или нет? var i: integer; begin result:= false; // ставим результат "нет" for i:= 0 to Party.Chars.count-1 do begin // пробегаем по списку пати if (Party.Chars.Items(i) = _char) then result:= true; // если в пати нашелся этот чар, то результат "да" break; end; end; function get_near_enemy(class_id: integer; flag: boolean = true; min_mp, min_hp: byte = 0): TL2Char; // поиск ближайшего чара // class_id: ID профы, flag: искать флаганых или нет (по умолчанию да), // min_mp, min_hp: минимальные % HP\MP у искомого чара (по умолчанию = 0) var i, dist: integer; begin result:= nil; // задаем результат как нулевой объект dist:= 5555; // задаем максимальную дистанцию для поиска for i:= 0 to CharList.count-1 do begin // пробегаем по списку персонажей if (CharList(i).ClassID = class_id) and // если нужная нам профа (User.DistTo(CharList(i)) < dist) and (not CharList(i).Dead) and // и цель ближе чем предыдущая и жива (CharList(i).MP > min_mp) and (CharList(i).HP > min_hp) and // % HP\MP подходящий (CharList(i).Clan <> User.Clan) and ((not in_party(CharList(i)))) and // не соклановец и не из пати ( ((CharList(i).PvP) and (flag)) or (not flag) ) then begin // проверка условий флага result:= CharList(i); // если все совпало, то запоминаем чара dist:= User.DistTo(CharList(i)); // и дистанцию до него end; end; if (result <> nil) then Engine.SetTarget(result); // если результат не пуст, то берем его в таргет end; begin engine.msg('ASIWIN.com','Профессиональный софт для ботинга. Скрипты и периферия.',8388608); Script.NewThread(@hot_keys_thread); // запукаем поток, отслеживающий нажатие клавиш delay(-1); // запускаем бесконечную задержку end.
    • 1 reply
    • 707 views
  6. farmwl added a post in a topic Каталог готовых скриптов, примеров и полезных статей   

    Функции для подсчета итемов в инвентаре, например, нам нужно посчитать, сколько у нас стрел (стаковый предмет) или матерчатых шляп, выбитых с кельтиров (нестопковый предмет).
    Суть - мы должны пробежаться по списку инвентаря, и если ID совпадают, то запоминаем кол-во (или плюсуем к уже запомненному). Выглядеть это будет так:
    function ItemCount(id: integer): integer; overload; var i: integer; begin result:= 0; for i:= 0 to Inventory.User.Count-1 do begin if (Inventory.User.Items(i).ID = id) then result:= result + Inventory.User.Items(i).Count; end; for i:= 0 to Inventory.Quest.Count-1 do begin if (Inventory.Quest.Items(i).ID = id) then result:= result + Inventory.Quest.Items(i).Count; end; end; function ItemCount(name: string): integer; overload; var i: integer; begin result:= 0; for i:= 0 to Inventory.User.Count-1 do begin if (Inventory.User.Items(i).Name = name) then result:= result + Inventory.User.Items(i).Count; end; for i:= 0 to Inventory.Quest.Count-1 do begin if (Inventory.Quest.Items(i).Name = name) then result:= result + Inventory.Quest.Items(i).Count; end; end; begin Print(ItemCount(57)); Print(ItemCount('Адена')) end. Как видно по коду, функция сканит список инвентаря юзера, и его квест инвентарь, но не считает вещи, которые могут находиться на пете (к этому списку можно обратиться по Inventory.Pet)
  7. farmwl added a topic in Script repository   

    Умное изучение умений
    В последних обновлениях бота были добавлены списки доступных для изучения умений: LearnList (если скилы можно учить везде) и LearnList2 (если скилы нужно учить у NPC)
    Элементами этих списков являются объекты типа TLearnItem
    В связи с этим, все велосипеды и костыли, написанные ранее теперь можно преобразить примерно к такой процедуре:
    procedure Learn_Skills(); var i: integer; begin for i:= 0 to LearnList.Count-1 do // пробегаем по списку доступных умений if (LearnList(i).NeedLevel <= User.Level) // если наш уровень подходит and (LearnList(i).SpCost <= User.SP) then begin // и у нас хватает SP (+ можно проверять другие условия) if Engine.LearnSkill(LearnList(i).ID) then // изучаем умение Print('Изучил: ' + LearnList(i).Name) else Print('Не удалось изучить: ' + LearnList(i).Name); end; end;Если нам не нужно подбегать к NPC, то такую функцию можно запустить например в потоке, добавив в нее бесконечный цикл
    Если же Вам необходимо подходить к NPC для изучения умений, то добавляем в скрипте подбег к наставнику, открываем с ним диалог и запускаем такую же функцию, заменив везде LearnList на LearnList2
    • 0 replies
    • 476 views
  8. farmwl added a post in a topic Проблемы \ решения   

    http://asiwin.com/topic/32-faq-l2adrenalin/
  9. farmwl added a post in a topic Покупка   

    Все работает, отвечать на форуме на вопросы людей, которые не в состоянии прочитать несколько строчек инструкций (на которые ссылкается главная продающая, шапка форума, несколько закрепленных тем в соответствующих разделах) - уже устал. Вся информация необходимая уже давно опубликована, и все вопросы освечены, ожидать, что при покупке ключа Вам обязаны настроить все по удаленке, потому что "я не знаю как распаковать архив! что делать?! ДЕНЬГИ УПЛОЧЕНЫ НИХЕРА НЕ РАБОТАЕТ!" - как говорилось: "если человек тупой, то это надолго" (с)
  10. farmwl added a topic in Scripting   

    [Урок 4] Процедуры и функции
    Статья еще надописана, ознакомиться с инфой по теме можете по ссылкам:
    http://learnpascal.ru/vvedenie-v-paskal/matematica-v-pasca.html
    http://learnpascal.ru/vvedenie-v-paskal/procedure-and-function-pascal.html
    Функции и процедуры - это фундамент любых скриптов \ программ. Для того, чтобы писать хорошие скрипты Вам обязательно нужно разбираться в данной теме. 
    Что это такое?
    Функции и процедуры - это мини программы, которые выполняют некоторую последовательность действий. Потом, чтобы вызвать в нужном месте выполнение некоторой функции\процедуры, Вам будет достаточно лишь вызвать ее по ее названию.
    В чем отличие процедуры от функции?
    Процедура просто выполняет действия, описанные в ней. А вот главная суть функции - в том, что она возвращает какой-нибудь результат (дает нам некоторый ответ).
    Ярким примером функции из жизни будет функция возведения числа в квадрат - мы берем некоторое число (аргумент), делаем что-то с ним, получаем ответ (результат).
    Процедура же в свою очередь просто выполняет некоторую последовательность действий.
    Чтобы было легче понять, вот вам несколько абстрактных примеров из игр (они могут не совпадать с реалиями скрипт движка, главное поймите идею):
    Процедуры: Воскреснуть, Пойти в некоторую точку, Использовать умение, Использовать предмет и тдФункции: Проверка смерти, Проверка кол-ва предметов в инвентаре, Проверка стадии квеста и тдТ.е. еще раз: в процедурах мы просто делаем что-нибудь, а в функциях нам важен некий результат действий.
    В описании скрипт движков ArcheBox и Adrenaline Вы как раз везде можете видеть ключевые слова procedure и function:

     
    Как этим пользоваться?
    Общая суть состоит в том, что вы выделяете некие отдельные блоки действий вот в такие подпрограммы, после чего вызываете их у себя в скрипте когда вам это нужно.
    Во-первых, это помогает экономить место, ведь часто некоторые действия повторяются очень часто, и благодаря функциям\процедурам Вам не нужно будет каждый раз дублировать код.
    Во-вторых, это помогает создавать некоторые универсальные блоки кода, которые будут делать почти одно и тоже, но с небольшими отличиями: например, Вам нужно найти ближайшего моба с нужным именем - Вы можете создать функцию, которая будет принимать аргумент - имя моба, и в зависимости от переданного ей имени будет находить ближайшего моба.
    Аргументы - это некоторый набор параметров, который мы передаем в функцию или процедуру. Помните пример с квадратом числа? Когда мы возводим число в квадрат мы должны знать, что это за число, ведь от этого зависит результат. Так, например, когда мы возводим в квадрат число 3, мы получаем ответ 9. В данном примере 3 - это подаваемый аргумент, а 9 - результат работы функции.
    • 0 replies
    • 1,214 views
  11. farmwl added a file in Scripts \ Plug-ins [Lineage II]   

    [L2] Bard's Mandolin v1.2.1
    Скрипт для автоматического прохождения квеста Мандолина Барда. Запускается с помощью бота L2Adrenalin !
    Script for automatically making Bard's Mandolin quest. You need L2Adrenalin bot to start it !
    Цена (Price): 5$ \ мес  (5$ per month)
    Купить (Buy): http://www.oplata.info/asp2/pay_wm.asp?id_d=2193608&lang=en-US

    English description + instructions:
    Особенности:
    Движение основано на GPSСкрипт сбоеустойчив к дисконектамМожно перезапустить его в любой момент времени - он подхватит себяЛогирование действий скрипта в логи ботаИнструкции по запуску:
    С помощью Script Updater скачать последнюю версию скрипта, она будет скачана в ..\Adrenalin\Scripts\Bard's_Mandolin [by farmwl]\..Запустить скрипт (Bard's_Mandolin.bin) 1 раз, он выдаст ошибку о том, что файл с ключом не найден и создаст его: key_bards_mandoline.txtЗакинуть в файл купленный ключЗапустить скрипт в Дионе
    • 214 downloads
    • 0 comments
    • 0 reviews
  12. farmwl added a post in a topic ASI WIN L2 NA палиться или нет?   

    Кодер говорит что все норм должно быть, я лично на NA не сижу, поэтому не могу утверждать что-либо
    share вообще не сидящий в L2 вообще не понимаю нахрена тут что-то комментирует, видимо разделом ошибся
  13. farmwl added a post in a topic Win10 Runtime error   

    последний адейт вин 10 - не приоритетная задача
    апдейтов за последние дни уже было несколько, даты в апдейтере не меняются по понятным причинам
  14. farmwl added a post in a topic Win10 Runtime error   

    Проблема в самом последнем обновлении вин 10, откатись просто. пока проблема не решится
  15. farmwl added a topic in Scripting   

    [Урок 11] Потоки (имитации псевдопараллельной работы)
    Часто бывает так, что какие-то проверки лучше всего совершать постоянно, но код скрипта не всегда можно устроить таким образом.
     таких случаях можно использовать потоки (Thread) - подпрограммы, которые могут совершаться одновременно (параллельно) с основным кодом скрипта.
    Создать новый поток можно таким образом: 
    uses SysUtils; procedure check_smth(); begin print('что-то произошло'); end; begin Script.NewThread(@check_smth); delay(-1); end. Скрипт запустит параллельно с собой еще и процедуру. Но она выполнится только 1 раз, нам же как правило нужно крутить ее в цикле. Для этого просто делаем внутри процедуры, которая будет потоком, бесконечный цикл:
    uses SysUtils; procedure check_smth(); begin while delay(1000) do print('что-то произошло'); // Будет раз в 1 сек выводить сообщение end; begin Script.NewThread(@check_smth); delay(-1); end.И сразу за этим возникает вопрос - а как остановить этот поток? Скриптовые движки увы не предоставляют возможность досрочно останавливать поток некоторой командой, однако в нашем случае можно задать логическую (boolean) переменную, которую мы будем проверять в потоке, и как только она примнет определенное значение (в нашем случае true) то выходим из процедуры с помощью exit: 
    uses SysUtils; var i: integer; stop_thread: boolean = false; // Наш флаг-переключатель, по умолчанию false (выключен) procedure check_smth(); begin while delay(1111) do begin if (stop_thread) then exit; // Если флаг "включен", то выходим из потока print('i = '+inttostr(i)); end; end; begin i:= 0; Script.NewThread(@check_smth); while delay(1111) do begin inc(i); // Увеличиваем i на 1 if (i > 11) then flag:= true; // Если i > 11, то "включаем" флаг end; end. Разумеется, это не единственный вариант, иногда лучше внутри процедуры, которая будет выполняться в потоке сделать просто проверку на к-л условие, чтобы процедура не выполнялось когда это не требуется.
    Рассмотрим наиболее часто требующийся поток: проверку на дисконнект + торможение скрипта в случае вылета:
    uses SysUtils; var block_disconnect_thread: boolean = false; // переключатель для отключения работы (но не остановки!) потока procedure Check_Disconnect_Thread(); var was_disconnected: boolean; begin was_disconnected:= false; while delay(33) do begin if (block_disconnect_thread) then continue; if (Status <> lsOnline) then begin was_disconnected:= true; Print('Дисконнект, торможу скрипт'); Script.Suspend; while (Status <> lsOnline) do delay(11); end; if (block_disconnect_thread) then continue; if (Status = lsOnline) then begin if (was_disconnected) then begin was_disconnected:= false; Script.Resume; Print('Соединение восстановлено, продолжаю работу',); end; while (Status = lsOnline) do delay(11); end; end; end; begin Script.NewThread(@Check_Disconnect_Thread); end.Важно понимать, что данные потоки - это дочерние сущности скрипт движка, поэтому они достаточно безопасны в использовании, создавая свои потоки по средствам синтаксиса самого Delphi - Вы рискуете повесить самого бота
    Так же существует возможность подавать аргумент в функцию при запуске потока, пример можете найти тут
    • 13 replies
    • 5,077 views
  16. farmwl added a topic in Scripting   

    [Урок 6] Работа с Unit'ами. Разбиение кода на части
    В скриптовом движке, как и в самом Delhi есть возможность разбивать код на так называемые Unit'ы (модули) - отдельные файлы, в которых могут быть описаны самодостаточные логические элементы (классы \ методы и тд).
    Для чего это нужно?
    Например вы пишите большой скрипт. Хранить весь код в одном файле, когда строк кода больше 3к - уже не очень удобно. Предположим, что наш воображаемый скрипт - для прокачки персонажа. Можно разбить его на части, 1-10, 10-20 и тд. Либо каждый обособленный кусок кода, который отвечает за какое-либо действие (например боевка или движение или просто набор вспомогательных функций, которые часто используются в коде). Таким образом каждый Unit будет отвечать за свой этап или блок действий. Это облегчает правку скрипта в будущем.
    Как это работает?
    Итак, если раньше у нас был только 1 файл - главный (который мы запускали), то теперь у нас будет несколько файлов: главный + юниты (как Вы поняли, их может быть несколько).
    Юниты нужно подключать к главному файлу, делается это просто - добавляем его в раздел uses:
    uses SysUtils, Classes, my_unit; // my_unit - название подключаемого юнитаЕсли юнитов несколько - просто перечисляйте их через запятую.
    ВАЖНО! название txt файла, должно совпадать с названием юнита, т.е. в данном случае это будет my_unit.txt
    Теперь перейдем к структуре юнита, она должна быть следующая:
    unit my_unit; interface uses // имена других модулей (юнитов), которые надо подключить к данному, // чтобы иметь доступ к классам, функциям, переменным, объектам и т.п. // этих модулей в области Interface и Implementation // Область Interface. Здесь находятся описания типов, объектов и процедур, которые БУДУТ ВПОСЛЕДСТВИИ ВИДНЫ в других // в других модулях, если к ним подключить данный type // описания типов и классов, к которым БУДЕТ ПРЕДОСТАВЛЕН доступ другим юнитам, если к ним подключить данный var // описания объектов и переменных, к которым БУДЕТ ПРЕДОСТАВЛЕН доступ другим юнитам, если к ним подключить данный implementation // Реализация uses // здесь могут быть перечислены имена юнитов, которые могут использоваться только в реализации классов или функций/процедур type // описания типов и классов, к которым НЕ БУДЕТ ПРЕДОСТАВЛЕН доступ другим юнитам, если к ним подключить данный var // описания объектов и переменных, к которым НЕ БУДЕТ ПРЕДОСТАВЛЕН доступ другим юнитам, если к ним подключить данный // Код юнита. Тут реализация классов, описанных выше в разделе type областей interface и implementation данного юнита end.Все, что описано в области interface, будет доступно из других модулей, если данный модуль к ним подключить. Здесь могут находиться описания классов (только описания!), описания процедур и функций (если они не являются методами класса, то тогда достаточно будет просто указать их заголовок с параметрами в области interface), переменные, объекты, константы. Вся реализация должна находиться после ключевого слова implementation (которое в переводе как раз и означает «реализация»). В «реализации» также могут находиться описания и других типов, классов, переменных, объектов, процедур, но только тогда они никак не могут быть доступными из других юнитов.
    Т.е. основная суть: чтобы сделать «что-то» доступным для других юнитов (при условии подключении данного юнита в разделе uses), необходимо описание «этого» поместить в область interface.
    • 2 replies
    • 2,596 views
  17. farmwl added a post in a topic неработает бот   

    повторялось уже неоднократно: обновления защиты со стороны серверов - это не наша прихоть, мы бы и сами были только рады их отсутствию. у них на нас уходит обычно 2 недели, у нас на них 1-2 дня. в этот раз увы совпало так, что кодер в отъезде, поэтому апдейт затянут. время компенсируется
    Тестовая версия A.dll доступна в чате на главной (смарт)
  18. farmwl added a post in a topic неработает бот   

    кодер в отъезде, как только так сразу
  19. farmwl added a post in a topic неработает бот   

    да, это СГ тоже
    в скайпе часто добавляетя много народа, но сообщения видимо пишите еще до добавления в контакты, поэтому эти сообщения не отображаются у меня сразу. дублируйте их значит на всякий случай. можете 2 раза продублировать, если не ответил в течение нескольких часов
  20. farmwl added a post in a topic неработает бот   

    смарт гвард обновлен, не удосужился даже прочитать FAQ?
  21. farmwl added a post in a topic adri + asi Загрузка акка под определенным скриптом   

    Увы адреналин не умеет обращаться к оконке, чтобы получить название аккаунта в МА, или сервер\номер персонажа и тд
    Чтобы делать автозапуск скрипта, можно сделать как описано тут
    Так же, если у тебя нет огромной текучки ботов, то можно в интерфейсе настроить на определенные ники запуск скриптов: 

    Работает это так: у тебя при запуске окна, сначала подгружается конфиг с названием как ник персонажа.  В этом конфиге нужно указать какой скрипт запускать после входа в игру. В этом скрипте ты уже загружаешь нужные конфиги и тд
  22. farmwl added a topic in Script repository   

    Реакция на появление Capthca, События
    Каптчи сейчас стоят на большинстве серверов, и они могут серьезно мешать вашему круглосуточному фарму.
    Реакцию на появление диалогов\каптчи можно очень просто настроить в самом интерфейсе:

    Так же это можно делать скриптом:
    uses SysUtils; var // Задаем фразы, на которые нужно реагировать, регистр не важен  CAPTCHA_TEXT: array of string = ['анти бот', 'антибот', 'проверка на человека', 'anti-click', 'antibot protection']; procedure Event_Thread(); // поток на проверку каптчи var p1, p2: integer; s: string; begin while true do begin // запускаем бесконечный поток case Engine.WaitAction([laDlg], p1, p2) of // ожидаем событие "появление диалога" laDlg: begin // если оно появилось, то if (In_CAPTCHA_TEXT(Engine.DlgText)) then begin // если одна из искомых фраз нашлась в появившемся диалоге, то Engine.Msg('Capthca', Engine.DlgText, 128); // распечатываем ее Engine.SetGameWindow(true); // разворачиваем игровое окно PlaySound(ExePath+'Sounds\msg.wav'); // выдаем звуковое оповещение end; end; end; end; end; function In_CAPTCHA_TEXT(s: string): boolean; // вспомогательная функция для поиска наших фраз в тексте диалога var i: integer; begin result:= false; for i:= 0 to Length(CAPTCHA_TEXT)-1 do begin if (Pos(AnsiLowerCase(CAPTCHA_TEXT[ i ]), AnsiLowerCase(s)) > 0) then begin result:= true; break; end; end; end; begin Script.NewThread(@Event_Thread); end.Так же эти 2 способа отлично подходят для сбора диалогов с каптчами, если мы хотим, например, написать скрипт для ее обхода.
    • 3 replies
    • 398 views
  23. farmwl added a post in a topic Немного инфы об Engine.BypassToServer   

    если тебе нужно записывать выборы диалогов Alt + B, то можно HEX редакторами воспользоваться
    если просто диалоги с НПС - то Engine.DlgText содержит в себе всю необходимую информацию
  24. farmwl added a post in a topic Вопрос по Sсript Recorder   

    запускаешь скрипт -> делаешь что-нибудь в игре, он записывает твои действия -> копируешь их в свой скрипт например
    для каких целей использовать запись каждый решает для себя сам. кому-то нужно записать маршрут для возврата на спот, кому-то спарсить диалоги через Alt+B
  25. farmwl added a post in a topic Проблемы \ решения   

    Стоит понимать разницу между скрипт движком и стандартными функциями бота. Многие новые команды скрипт движка основаны уже именно на пакетах, в частности как раз аук функции. по этой же причине они вышли из строя с обновлением