Багги - ошибки программного обеспечения. Самыми распространёнными багами являются HTML багги. Расскажу о принципе действия этих багов. Вот простой пример: Вы сделали квест на вторую профу, идёте к НПСу за наградой, выделяете НПСа, открываете с ним ДИАЛОГ. Жмёте на надпись мол вы сделали задание и хотите награду. Появляется другая надпись мол дай мне награду. Жмёте на неё и вам даётся exp & SP. Объясняю что во время этих несложных манипуляций мышью происходит на сервера и в вашем клиенте: Когда вы открываете диалог с абсолютно любым НПС (пусть это будет Valkon), ваш клиент отправляет запрос на сервер, сервер, в свою очередь, обрабатывает запрос и отправляет клиенту те надписи, которые вы видите в окошке диалога с Valkonoм. В нашем случае мы видим вступительную реплику Valkona и активную надпись на которую нам нужно нажать, что бы дать знать Valkony, что вы выполнили задание. У этой надписи есть свой номер, когда мы жмём на эту строчку, клиент отправляет запрос на сервер, содержащий номер строчки. Сервер обрабатывает запрос (проверяет наличие у вас квестовой вещи) и отсылает следующие надписи (открывается второй диалог), содержащий вступительную реплику и активную надпись, нажав на которую вы получите награду (exp & SP) за квест. Все эти надписи хранятся на сервере, в папке html, в файлах *.html. Каждый диалог хранится в одном файле *.html. На первый взгляд никакого бага. Но если скачать себе серверную папку html, найти в ней Valkonа и найти файл с последним диалогом, то можно получить награду за квест, не проходя его. «А как?» спросите вы меня. Да очень просто: Ищем в папке html Valkonа через поиск. Появится множество файлов, начинающихся с Valkon. Нам нужны файлы подобные этому «valkon_q0216_03.htm» - буква «q» означает, что это квестовый диалог, далее следующие за ней цифры означают номер или ID квеста. Идёт подчёркивание и мы видим оставшиеся две цифры – это номер диалога данного квеста. В нашем случае нам нужен квест №216, диалог №3. Открываем этот файл при помощи блокнота и видим это: Warehouse Keeper Valkon: How long will you linger at the level of an apprentice? Don't you have any ambitions for promoting to a higher rank? I hope you are not mistaken that you have already reached a certain level. Listen to me carefully. I shall tell you about our Dwarf education. Hear his explanation. Мы видим вступительную реплику и вот этот заветный код Hear his explanation. < - Начало кода > - Конец кода a action – Означает, что надпись «Hear his explanation» активная и на неё можно нажать -h – отвечает за закрытия диалога, после нажатия на данную надпись ask=216 – номер квеста reply=1 – номер диалога данного квеста Hear his explanation – та надпись, которая будет видна в диалоге с НПСом. На неё надо будет нажать для получения награды Далее заходим в папку с игрой, после в папку l2text и ищем файл help.html. Открываем его с помощью блокнота, удаляем всё что там есть и вставляем вот это: EXP + SP Сохраняем, заходим в игру, идём в гиран в банк. Ищем там Valkona. Открываем с ним диалог, жмём Option->Help и видим эту надпись EXP + SP, жмём на неё и получаем EXP & SP не проходя при этом квест. Жать можно сколько угодно раз. А если скачать программу AC Tools(см. Файлы), запустить этот макрос Delay 10000 MousePos 681, 260 //координаты надписи EXP + SP While 2 < 3 LeftClick Delay 800 end while то за несколько часов можно неплохо прокачаться. За 10 мин до 40 левела можно вскачнуться. Вот только будет подозрительно выглядеть, когда вы в банке будите получать уровень за уровнем... Это был пример классического бага с валконом. В следующей статье я расскажу про то, как надо искать багги, где взять папку html и как правильно их надо использовать. Внимание! Баг с валконом пофиксен на всех нормальных серваках с онлайном 100+! Баг приведён в качестве примера и непреднозначен для использования. **************** Поиск багов: Для того, что бы начать искать баги, вам понадобится джентльменский набор багера: 1. Архив серверных html-файлов от С1. Скачать можно здесь: www.real-ty.ru/html.rar 2. Файл AI.object от С1. На этом фале базируется весь сервер. Здесь прописаны в виде программного кода все игровые скрипты квестов, NPC и многое другое. Скачать можно здесь: http://thedark.clan.su/load/0-0-0-9-20 3. Макрос-программа ACTool. Очень полезна при использовании бага на Адену с Софьей или с прокачкой в Гиране у Валкона. В случае с Софьей за сутки программа набивает 28-35kk аден. Удобна и проста в освоении. Скачать можно здесь: http://thedark.clan.su/load/0-0-1-10-20 4. Чистый файл Nwindow.dll от С3. Иногда админы выключают кнопку help в самой игре. Этот файл включает её обратно. Скачать можно здесь: http://thedark.clan.su/load/0-0-0-11-20 5. Чистый файл Engine.dll от С3. Также полезен для обхода защиты от help. Скачать можно здесь: www.real-ty.ru/Engine.rar 6. Чистая папка ..\System. Апдейт с оффа от 18.09.05-16:00. Скачать можно здесь: www.real-ty.ru/system.rar Нус начнём… Как я говорил в предыдущей статье, каждый диалог с НПС хранится в отдельном файле *.html на сервере в папке html. У каждой строчки есть свой опознавательный знак, это переменные ask и reply. ask – это номер квеста, например 216, а reply – это номер реплики данного квеста, например 2. Для того, что бы узнать ask и reply какого либо заветного диалога, например диалога с Валконом, надо зайти в скачанную папку html, нажать на поиск и ввести имя НПСа – Valkon. Найдётся уйма файлов с именем Valkon. Теперь ищем заветную строчку, нажав на которую при прохождении квеста с Валконом мы получаем exp + SP. Эта строчка Hear his explanation. (пожжет быть другой, если квест русифицирован). Для того, что бы её найти, надо в поле поиска «Слово или фраза в файле», ввести Hear his explanation. Найдётся один файлик valkon_q0216_03.htm. Это и есть тот файл с заветной строчкой. Теперь открываем его с помощью блокнота и ищем наш текст (Hear his explanation). Вокруг него html код Hear his explanation.. Это и есть та строчка. Что с ней делать вы уже знаете из предыдущей статьи. Заветные строчки мы уже искать умеем, теперь я расскажу как узнать о её существовании. На мой взгляд, есть только два разумных метода поиска багов: • Искать багнутые надписи по прохождению квеста • Искать багнутые надписи методом перебора. Способ 1: Не каждая строчка багнутая. Их единицы. Для того, что бы узнать о такой строчке нам понадобится архив квестов и их прохождение. www.lineage2.ru, www.l2dc.ru и др. (используйте поисковики). Вернёмся к квесту с Валконом. Заходим на страничку с прохождением квеста (http://www.l2dc.ru/l2races/?t=quest&class=dwarf_bounty_hunter) и ищем уязвимость или багнутую строчку. Смотрим пункт №74 и видим следующее «Ищем на складе Warehouse Keeper Valkon, разговариваем с ним, выбираем , получаем Mark of Guildsman. ». - это и есть багнутая надпись. Надпись мы нашли, а дальше дело техники: заходим в папку html. Жмём поиск, параметры поиска – Valkon. Нашлось множество файлов. Valkon НПС знаменитый, через него проходит множество квестов и для того, что бы узнать номер (ID) нашего квеста, надо скачать файлик AI.object, найти в нём по названию квеста его ID (ID квеста 216). Отсортировать в найденных файла все файлы с цифрой 216 и методом подбора от 1–20 искать нужный нам номер реплики данного квеста. Во всех квестах нас должны интересовать только активные надписи и ничего более. Если есть надпись, нажав на которую мы что-либо получаем, то нам сюда. Ведь есть множество квестов, в которых для того, что бы получить награду надо нажать не на активные надписи со своим номером, а на слово Quest. У слова Quest нет своего номера и поэтому отправить фальшивый запрос на сервер у нас не получится. Нам нужны только активные надписи и ничего более. Но и активные надписи не все нам подходят. Есть такие квесты, в которых при нажатии на активную надпись идёт проверка на квестовые итемы. И если у вас их нет, то награды вам не видать. Способ 2: Идём, например, в Гиран. Подходим к банку. Выбираем любого НПС, я выбрал моего любимого Валкона. Заходим в папку html. Ищем все файлы с именем Valkon.. Нашлось 26 квестовых файла (в названии буква “q”). Семь из них с квестом под номером 214. Подходим к Валкону и перебираем все реплики, начиная с первой и заканчивая седьмой. В результате мы ничего не получили. Но не отчаивайтесь, ведь есть ещё квест под номером 216! Нормальных реплик у него 9. За работу негры, солнце ещё высоко! Перебираем все девять реплик. Но считайте, что вам сегодня повезло. Багнутая строчка под номером 1! За неё вы получаете exp & SP. Вот таким макаром ищем багнутые строчки. НПСов в мире La2 хватает, так что и работы вам хватит тоже. Правда можно объединится в команду, разделить между собой всех НПСов и спокойно, методом перебора искать багнутые надписи. Что бы облегчить вам поиск методом перебора, в одной из следующих статей я выложу скриптик, который значительно облегчит вам работу. Есть ещё одна фишка: При помощи хелпа можно сокращать квесты в несколько раз. Например, квест на дракошу: Подходим к Муму (fairy mymyu). В папке html ищем Муму. В файле AI.object смотрим ID квеста на дракона (ID 420). Теперь методом перебора ищем багнутую строчку и получаем квестовый итем, с которым дуем к одному из драконов, выполняем его задание, дуем обратно к Муму и получаем «честно» заработанного дракошу. Получилось, что мы сократили квест в два раза. Такие сокращения есть практически в каждом квесте, главное уметь их найти. **************** Примеры багов: Здесь я выложу строчки с кодом, их надо вставлять в файл help.html, находящийся в папке l2Text. Этот код следует вставить в help.html. Все "#" заменить на "<"! #HTML> #HEAD> #BODY> #table> #tr> #td> Lineage II cheat panel #br> #/td> #/tr> #/table> #img src="L2UI.SquareWhite" width=270 height=1> #/center> >>>>Сюда вставлять код<<<< #/center> #br>#img src="L2UI.SquareWhite" width=270 height=1> #br> #br> #/center>I am super chiter! #/BODY> #/HTML> ********************************** 1) Начну с самого простого бага, бага с варехаусом. Вы сможете открывать хранилище абсолютно у любого НПСа и даже Пета. #br>#button value="Deposit Item" action="bypass -h deposit" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> #br>#button value="Withdraw Item" action="bypass -h withdraw" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> 2) Баг с мультишопом. Когда вы вставите следующий код в help.html и активизируете функцию хелп в игре, откроется окошко хелпа и в нём будет строчка для ввода. Подходите к любому НПС и вводите туда цифры от 1-20. И вам будут открыватся очень интересные магазинные окошечки с очень полезным товаром. #table> #tr> #td>ID: #edit var="idvar" width=60>#/td> #/tr> #/table> ##br>#button value="Open Shop" action="bypass -h multisell?id= $idvar" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> #/center> 3) Знаменитый баг на exp & SP с Valkonom. Идёте в гиранский банк, подходите к Валкону... #br>#button value="XP and SP" action="bypass menu#select?ask=216&reply=3" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> 4) Баг на пятый левел клана и 250к SP. Идёте в Орен к Sir Gustaf Ath... #br>#button value="250к SP" action="bypass -h menu#select?ask=503&reply=9" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> 5) Баг на 1к аден. Идёте в Дион к НПС Sophia... #br>#button value="1000" action="bypass menu#select?ask=333&reply=15" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> 6) Баг на волка. Идёте в Глудин к пет манаджеру... #br>#button value="Wolf" action="bypass menu#select?ask=419&reply=1" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> 7) Баг с замком. Панель управления замком. #br>#button value="Chamberlain" action="bypass menu#select?ask=-201&reply=1" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> #br>#button value="Guard trader" action="bypass menu#select?ask=-201&reply=1" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> #br>#button value="Open gates" action="bypass menu#select?ask=-201&reply=1" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> #br>#button value="Close gates" action="bypass menu#select?ask=-201&reply=2" width=94 height=15 back="sek.cbui94" fore="sek.cbui92"> 8) Баг на рестарт сервака. Просто подходите к любому НПС. Активируете баг и сервак виснет. Пофиксен на многих серваках. #br>#button value="Restart" action="bypass -h teleport_1" width=94 height=15 back="sek.cbui94" fore="sek.cbui92">
|