Мы уже с вами научились добывать исходный материал для игры darkorbit из компилированных файлов .xml. Но что делать,
если полученный исходник нужно немного подправить или добавить какие-то свои функции. Для этого нужно знать
разрешённые команды сервера. Но где эти команды раздобыть и главное как спросите вы? Отвечу, брать новые для нас
команды мы будем напрямую из игры. Ну а как мы будем это делать вы узнаете из данной статьи.
Перед тем, как мы полезем на сервер, неплохо было бы узнать как вообще устроено соединение клиент-сервер.
[Ссылки могут видеть только зарегистрированные пользователи. ]
На рисунке представлена схема прямого соединения, т.е. когда программа соединяется напрямую с сервером без
всяких посредников. Как видно из рисунка, программа может быть привязана к одному порту (на рисунке это программа 1),
может быть привязана сразу к нескольким портам (на рисунке это программа 2) или же выход в интернет может вообще
отсутствовать (программа 3).
В качестве программы может быть браузер (firefox, opera, IE), wp или любая другая программа, которой требуется
выход в интернет.
Но программа, как вы уже наверное знаете, может выходить в интернет не только напрямую через порт, но и через другую
программу, у которой есть выход в интернет. Именно этот способ соединения и будет нами использоваться, потому что
в случае прямого соединения невозможно делать какие-либо изменения и влиять на пакеты.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Как видно из рисунка, прямого выхода в интернет браузер уже не имеет. Для выхода в сеть браузер пользуется
услугами программы Wp, которая по умолчанию занимает два порта 1777 и 1778. Если эти порты уже заняты в системе,
то вы можете выбрать любые другие порты, которые свободны.
Запомните, каждому компьютеру, который выходит в сеть назначается IP-адрес. Поэтому чтобы соединиться с сервером
игры darkorbit, нужно узнать IP-адрес сервера игры, на котором вы собираетесь играть, а также порт. К нашему счастью
порт который нам потребуется везде одинаковый - 8080. А вот IP-адрес зависит от того, на каком сервере вы играете.
Для получения IP-адреса можно воспользоваться удобной утилитой (если у вас браузер firefox) Domain Details, но если
вы используете прокси, то данная утилита вам не поможет. Более того, нам потребуется не IP-адрес контент-сервера, а
IP-адрес карты. Поэтому не будем извращаться и доверим данную задачу Wp. Скажу вам по секрету, wp справляется с этой
задачей превосходно.
Ну чтож теории достаточно, перейдём ближе к практике. Зайдите на свой акк обычным способом, вводя ник и пароль.
Также запустите WP и уберите все условия и удалите все привязанные к wp скрипты. На MI-панели выберите свой браузер.
MI-панель:
[Ссылки могут видеть только зарегистрированные пользователи. ]
PPC-панель:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Пока вы не загрузили звёздную карту, вкладки PPC/Links Online/Send Raw Packet и PPC/Auto Logger пусты.
Вкладка Links Online:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вкладка Auto Logger:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вкладка "PPC/Links Online/Send Raw Packet" нам понадобится для ручной отправки пакетов клиенту/серверу.
Вкладка "PPC/Auto Logger" нам потребуется для захвата пакетов.
После загрузки звёздной карты (нажатии на кнопку старт), на вкладке "PPC/Auto Logger" появятся активные соединения.
Всего их два: первое - это IP-адрес карты, на которой вы в данный момент находитесь. У этого адреса будет порт 8080.
Второй IP-адрес - это адрес чата. Данный адрес не всегда активен, поэтому если он не появится, не пугайтесь.
Более того, адрес чата нам пока не нужен.
Как только адрес карты станет активным, начнётся приём пакетов. Все пакеты нам естественно не нужны, поэтому
нажимаем по IP-адресу карты и жмём "stop log".
[Ссылки могут видеть только зарегистрированные пользователи. ]
В левой колонке будут захваченные пакеты. Нумерация пакетов начинается с 1. Если количество захваченных пакетов
превысит установленное число, то пакеты, которые были захвачены сначала, заменятся новыми.
С нумерацией пакетов разобрались. Но что означают буквы S>C И С>S? А это ни что иное как отправка с сервера на клиент
и обратно. Т.е.:
S>C - это отправка пакета от сервера к клиенту
C>S - это отправка пакета от клиента к серверу
Теперь, чтобы вы ориентировались в потоке информации, которая проходит через WP, давайте проведём эксперимент.
Посмотрите последний номер пакета, после чего запустите захват пакетов на 2 секунды. И посмотрите сколько пакетов
за эти две секунды успел захватить wp.
И последнее, что следует отметить на вкладке "PPC/Auto Logger", это возможность копирования содержимого пакета в
шестнадцатеричном формате. Для копирования выделяем нужный нам пакет и в области содержимого щёлкаем правой кнопкой
мыши и копируем. Скопированный код мы будем вставлять во вкладку "PPC/Links Online/Send Raw Packet".
Теперь давайте попробуем отправить какую-нибудь команду на сервер (например попробуем поднять бонусную коробку).
Для того чтобы поднять бонусную коробку, причём совершенно не важно что это (обычная бонусная коробка или
пасхальное яйцо или тыква или просто дроп от убитого пришельца), служит следующая команда:
787Cх1х2х3х4х50A00,где х1,х2,х3,х4,х5 - произвольные буквы и цифры.
Пример: 787C 316130737A 0A00
Вставьте код из примера в окно отправки пакетов, выберете IP-адрес карты и нажмите кнопку "серверу". Команда
серверу будет отправлена и если она имеет смысл и разрешена на сервере, от сервера придёт ответ. В игровом
окне вы увидите стандартный ответ сервера: "Коробка уже загружается на борт". Хех, было бы удивительно если бы нам
удалось что-то поднять. Ведь шанс поднять коробку с заданным кодом в области видимости практически равен нулю.
Итак, что означает ответ сервера? А означать он может следующее:
1) коробку уже кто-то поднял
2) коробка вне поля видимости
3) данной коробки вообще не существует
Да, да, ленивые оказывается немцы, не стали рассматривать различные случаи, а задали один стандартный ответ. Ладно,
фиг с этими разработчиками, продолжим обучение.
Как вы помните, перед нами стояла задача научиться самим добывать разрешённые команды сервера, а не пользоваться
готовыми. Конкретных действий здесь быть не может, но могу посоветовать следующий алгоритм:
1) определитесь за какой командой вы будете охотиться (сбор чего-либо, команда движения, продажа чего-либо, ремонт
корабля и т.д.)
2) проверьте, есть ли у вас всё необходимое (например глупо ремонтировать корабль, если у вас нет ремонтника; или
глупо пытаться кинуть умняшку, если у вас нет мин и ксеномита)
3) постарайтесь найти место на карте, где вам не будут мешать.
На основе данного алгоритма, давайте попробуем раздобыть команду ремонта корабля. Чтобы не описывать все действие,
вот вам видео:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Запишите куда-нибудь себе команду ремонта корабля. Эта команда нам ещё понадобится для создания процессора
авторемонтника.
Ну вот вроде бы и всё, что я хотел рассказать в данной главе. И по традиции даю вам домашнее задание. В это раз
оно будет очень простое. Вам нужно раздобыть код для поднятия камней (прометиум, дураниум, тербиум). Код будет
у них одинаковый, так что не важно какой камень вы решите поднять. Ответ напишите в теме (в личку писать
не надо, т.к. там стоит ограничение 10 мин на сообщение). Кто даст правильный ответ первым, тот получит от меня
наивысшую оценку (спасибку). После того, как ответ дан, нет смысла его писать по несколько раз.
На этом данную статью заканчиваю. Изучайте, экспериментируйте и ждите следующих глав.
Чтобы ремантировать корабль отправлять нужно пакет S|ROB...
537C524F42000D0A
Во-первых, команда ремонта корабля:
S|ROB.. (символьный код)
537C524F420A00 (шестнадцатеричный код)
Во-вторых, домашнее задание было другим. Нужно раздобыть код для поднятия камней (прометиум, дураниум, тербиум).
Есть такая тема)) получилось,
Чтобы поднять прометиум нужны координаты и номер вроде бы меняется у каждого реса свой, ремонтника запустить было намного легче
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось SergyK85; 02.11.2010 в 13:35.
Во-первых, команда ремонта корабля:
S|ROB.. (символьный код)
537C524F420A00 (шестнадцатеричный код)
Во-вторых, домашнее задание было другим. Нужно раздобыть код для поднятия камней (прометиум, дураниум, тербиум).
у меня вопрос ты куда пакет отправляешь?) Клиенту или серверу)? Я случайно припесал пакет сервера...
И на куя познания симбол , 16ричный? Пакеты одни всегда 16ричные , и чтобы кодировать / декодировать нужен просто калькулятор типо винхекса
________________
Ищу подработку, студент 20lvl, писать в скуп: inkogo3
Код:
"But we are hackers and hackers have black terminals with green font colors!" - John Nunemaker
у меня вопрос ты куда пакет отправляешь?) Клиенту или серверу)? ...
Естественно я отправляю пакет серверу. Отправлять пакет клиенту вообще глупо, так как все изменения (если таковые произойдут) будешь видеть только ты.
И хватит флудить, лучше домашнее задание решай
Естественно я отправляю пакет серверу. Отправлять пакет клиенту вообще глупо, так как все изменения (если таковые произойдут) будешь видеть только ты.
И хватит флудить, лучше домашнее задание решай
Ну может просто запустится робот ремонтник на клиенте?
0|E|500|500|500|18335|80|80|10|0 пакет склада Гг
________________
Ищу подработку, студент 20lvl, писать в скуп: inkogo3
Код:
"But we are hackers and hackers have black terminals with green font colors!" - John Nunemaker
Тут же нет ничего сложного. Входишь в игру (загружаешь звёздную карту). Запускаешь wp, включаешь захват пакетов, подбираешь камень, останавливаешь захват пакетов, ищешь строчку c>s (отправка пакета от клиента к серверу) - таких строчек будет 2, максимум 3. смотришь какая больше подходит по смыслу или же грубо используешь перебор. Т.е. каждый из пакетов поочерёдно отправляешь на сервер. Как только увидишь ответ сервера что коробка уже загружается, значит ты нашёл что искал. Копируешь шестнадцатиричный код на форум, я этот код проверю и если он будет правильным, ты получишь от меня наивысшую оценку (спасибку).
Тут же нет ничего сложного. Входишь в игру (загружаешь звёздную карту). Запускаешь wp, включаешь захват пакетов, подбираешь камень, останавливаешь захват пакетов, ищешь строчку c>s (отправка пакета от клиента к серверу) - таких строчек будет 2, максимум 3. смотришь какая больше подходит по смыслу или же грубо используешь перебор. Т.е. каждый из пакетов поочерёдно отправляешь на сервер. Как только увидишь ответ сервера что коробка уже загружается, значит ты нашёл что искал. Копируешь шестнадцатиричный код на форум, я этот код проверю и если он будет правильным, ты получишь от меня наивысшую оценку (спасибку).
коробка уже загружается это-то я сделал)) я думал сделать так чтобы загрузилась другая коробка)))))))
777C3162386B680A00
или w|1b8kh..
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось SergyK85; 02.11.2010 в 14:19.
Спасибо, а вот интересно это ведь просто как бы подтверждение, в ангар то по идеи ничего не пихается, как сделать чтобы загрузился другой рес скажем нажать перехват, вроде как все объекты будут в перехваченных пакетах. Вот и интересно как сделать подъем груза в ручную, имея пакеты до этого поднятого реса? методом тыка?
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).