" Этот баг я открыл вчера на одной свежей l2j сборке от ST(для тех кто не знаед они сервер разрабатывают ) Цель была попробовать создать мутанта ( ну ето чар с чужой профой если по сельски)
Итак при создании чара серверу отправляеться пакет с данными о том как выглядит ваш перс, пол , расса ник и т.д. , выглядит ето примерно так:
0B // тип пакета
45 00 6D 00 30 00 30 00 00 00 // ник перса
04 00 00 00 // расса
00 00 00 00 // пол
35 00 00 00 // начальная профессия (класс)
14 00 00 00 // 6 постоянных значений, я затрудняюсь сказать, что они значат
27 00 00 00 //
2D 00 00 00 //
1B 00 00 00 //
1D 00 00 00 //
0A 00 00 00 //
00 00 00 00 // тип волос
00 00 00 00 // цвет волос
00 00 00 00 // тип лица
Этот пакет создаст Гнома война с ником "m00" мужского пола.
Обратим внимание на строку начальной профессии и рассы, чтоб создать мутанта нада в строке рассы ввести несуществуюшую рассу(число больше четырех) , но как оказалось етот баг у них профикшен и у меня всеравно создался Гном файтер , но если я вписал не ту рассу откуда гном ? так вот , начальный класс, ID которого 35 , это и есть гном файтер , я попробовал изменить число 35, на число 30 , вуаля создался орк маг , только не Орк-мистик а Варкраер. Итак , в зависимости от сервера это может дать нам два преймушества : первое : если сервер малодропный мы экономим время или деньги получая вторую профу, второе: может создасться чар с 1 хп которые не могут регениься. Нахрена нам оно нужно спросите вы ? Итак чтоб обьяснить придеться прибегнуть к одному открытию сделаному не мной( да простят мну админы) . Вы знаете что происходит когда вас убили и вы жмете кноку " В город" ? сначала от вас серверу отправляеться пакет о том что вы такой крутой перец лежите мертвым и вас срочно приспичило в город , сервер вас конечно понимает и отправляет пакет о том что вы поднимаетесь , клиент отправляет пакет с вашими данными ( сколько здоровья восстановить при вставании и еще некоторые) так вот если заранее приговиться завершать процесс ла2 , а потом нажать кнопку "В город" и затем отрубить процесс , данные о ваших ХП до сервера не дойдут и вы встанете с 0 хп , учитывая что если вы "мутант" или "однохельник" регениться они не будуть значит вы фактически мертвы , но можете ходить , уу а ето что-то до значит , наверно то что вы безсмертны , но с некоторыми нюансами ( к примеру если вас хильнуть , хп появяться и вас можно убить а также вам страшна отрава и все види кровотека , потомучто они заставляют ХП так сказать появиться) Ну такое безсмертие изспользуйте как хотите по своей инициативе."
Второй пример использования хлапекса , к примеру на вашем сервере можно выкидывать адены и СС ? - Чудесно , итак что ето нам дает ? мы можем засрать сервер в прямом смысле етого слова , для етого включаем хлапекс, заходим в игру , включаем в хлапексе сниффер пакетов , выкидываем на пол адЫн адЫна , выключаем сниффер , копируем пакет в зону отправки и включаем "Auto" , вуаля , вы срете аденами , если продолжать в таком же темпе на сервере начинаються страшные лага , после чего он в конце концов ребутицо.[/font][/color]
Второй пример использования хлапекса , к примеру на вашем сервере можно выкидывать адены и СС ? - Чудесно , итак что ето нам дает ? мы можем засрать сервер в прямом смысле етого слова , для етого включаем хлапекс, заходим в игру , включаем в хлапексе сниффер пакетов , выкидываем на пол адЫн адЫна , выключаем сниффер , копируем пакет в зону отправки и включаем "Auto" , вуаля , вы срете аденами , если продолжать в таком же темпе на сервере начинаються страшные лага , после чего он в конце концов ребутицо.[/font][/color]
[color=black][font=Arial][color=black][font=Arial]Вот так , моя лекция пришла к своему логическому завершению, чтож пробуй , пытайся узнать что-то новое юный падаван, удачи в твоих начинаниях.....
Вот немного багов для явы:
12. Геодата (хождение сквозь стены).
Сегодня постучался человек в асю и начал спорить, что l2j ничем не отличается от оффа. В связи с этим я решил
добавить в статью пару слов про геодату в l2j и off.
Процесс передвижения по миру в la2 реализован довольно интересно. Оказывается, за тем, куда идти следит и сервер и
клиент параллельно. Точнее, вы кликаете в ту точку, куда хотите попасть, клиент в соответствии с имеющейся у него
геодатой смотрит можно ли туда пройти, если да, то посылает запрос на сервер. Тот уже в соответствии со своей
геодатой разрешает или возвращает вас в исходное положение. Этим как раз и объясняется феномен под названием
"нивидимые стены", который, кстати, присущь нашим фришардным проджектам с кривыми локациями.
В l2j же нет геодаты, она прикручевается к нему дополнительно. Что это значит? А то, что за передвижением чара
следит только клиент по имеющейся у него геодате. Поэтому, воспользовавшись ботом (в котором понятное дело также
нет геодаты), вы можете ходить сквозь стены, потому что ни сервер, ни клиент (в лице бота) просто не знают про них.
Эта проблема кстати не только l2j. На С1ОФФ как правило С3/C4 локации также без геодаты, то есть там точно также
ответственность за передвижение возлагается только на клиента.
Если разбирать передвижение более подробно, то оно реализуется пакетом "0x01 MoveBackwardToLocation". В нём
присутствует два набора координат - где стоим и куда хотим попасть. После этого пакета сервер начинает нас
шаг за шагом двигать в желаемую нами точку. Причём, с каждым шагом он не посылает нам новые координаты! Для
того, чтобы клиенту узнать в какой точке в данный момент он находится, посылается пакет "0x48 ValidatePosition".
То есть, в целом, мы посылаем пакет с координатами куда хотим попасть, а потом просто периодически проверяем,
грубо говоря, на сколько мы продвинулись.
Но это так, для общего развития, так сказать =)
13. Прикол с SocialAction (0x1
Что такое SocialAction, думаю, объяснять не надо. Оказалось, что помимо смеха, приветствия, победы и тд, анимация
при LVL UP'е является таким же SocialAction'ом. А, насколько вам известно, запрос на произведение SocialAction
отправляет клиент, то есть мы сами можем в любой момент сделать себе lvlup =) Только анимацию, разумеется.
Вот формат SocialAction-пакета:
1b // Тип пакета (SocialAction)
0f 00 00 00 // номер action'а (0f - lvlup)
14. Баг c Ride (0x6a)
Запрос "Ride" посылает клиент, когда хочет забраться на страйдера или виверена.
Формат:
6a // тип пакета
00 00 00 00 // 0/1 слезть/залезть
00 00 00 00 // номер питомца: 1 –
Приятной Игры