Введение:
Баги - ошибки программного обеспечения.
Самыми распространёнными багами являются 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 и многое другое. Скачать можно здесь: www.real-ty.ru/ai.rar
3. Макрос-программа ACTool. Очень полезна при использовании бага на Адену с Софьей или с прокачкой в Гиране у Валкона. В случае с Софьей за сутки программа набивает 28-35kk аден. Удобна и проста в освоении. Скачать можно здесь: www.real-ty.ru/ACTool.rar
4. Чистый файл Nwindow.dll от С3. Иногда админы выключают кнопку help в самой игре. Этот файл включает её обратно. Скачать можно здесь: www.real-ty.ru/nwindow.rar
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&..._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">