У меня такой вопрос.На сервере работает пакетхак , (вот человек просит показать вещь в трейде, потом отменяет трейд кидает мне пати через пару секунд из меня дропается та вещь что я показывал ему и он ее подбирает) Может кто то знает как это все происходит?
Без особых трудов нашел сервер где таким занимаются и повторил действия разводилы. Адрес сервера не буду сообщать, при желании его можно вычислить по жалобам на форуме Скажу только что там интерлюд.
Суть бага в следующем:
1) Узнаем ObjectID интересного для нас предмета.
2) Пишем пакет DropItem для этого предмета.
3) Подбегаем к владельцу этого предмета и отправляем пакет.
4) Быстро поднимаем брошенный предмет и сваливаем.
Если есть потребность, то могу подробнее расписать действия
ps: с одной стороны ничего особенного в баге нету, но если работает на большом количестве серверов, то тему можно кинуть и 2 лвл подполки.
________________
В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
Последний раз редактировалось J-Fobos; 10.09.2010 в 20:36.
ну да -) сообственно у ОИДА нету привязки к опр. чару, таким же способом можно делать фейк вещи)
Вот насчет серверов ИЛ я не знаю, а в камаел и грации (у подавляющего большинства сборок) привязка присутствует, так что там такой баг не прокатит
Кстати, если это на всех ИЛ так (я просто не смотрел), то темку и в 2 лвл подполки закинуть можно
________________
В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
Вот насчет серверов ИЛ я не знаю, а в камаел и грации (у подавляющего большинства сборок) привязка присутствует, так что там такой баг не прокатит
Кстати, если это на всех ИЛ так (я просто не смотрел), то темку и в 2 лвл подполки закинуть можно
Когда человек кидает в трейд вещь (в цитате просят показать в трейде вещь), то клиенту приходит пакет добавления предмета в список трейда. А в этом пакете присутствует ObjectID. Возьмем например абстрактный пакет:
Цитата:
21 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Tип: 0x21 (TradeOtherAdd)
Pазмер: 31+2
0002 h count: 1 (0x0001)
Mask : h
[Начало повторяющегося блока 1/1]
0004 h itemType1: 0
0006 d ObjectId: 0
0010 d ItemId: 0
0014 d Count: 0
0018 h itemType2: 0
0020 h h: 0
0022 d BodyPart: 0
0026 h EnchantLevel: 0
0028 h h: 0
0030 h h: 0
[Конец повторяющегося блока 1/1]
В нем красным цветом выделено id пакета и нужный нам ObjectId предмета который показывают в трейд.
В принципе, ObjectId можно узнать и другими способами, например поймать пакет как кто-то поднимает или бросает на землю (это не для стопковых предметов). Но посмотреть на предмет в трейде проще всего.
2) Пишем пакет DropItem для этого предмета.
Надо написать пакет по маске 12=RequestDropItem(ObjectID)d(Count)d(X)d(Y)d(Z)
ObjectID - полученный ранее
Count - количество
X, Y, Z - координаты куда выбрасывать предмет
С первыми 2-мя параметрами сложности не будет, ObjectID уже есть, Count понятно что будет 1, а вот координаты надо выставить близко к тому месту где находится чар которого мы разводим. В идеале надо написать скрипт который будет генерировать этот пакет в автоматическом режиме и отсылать его по вашему запросу. Я скрипта не писал (тестил своими чарами, они стояли на месте), но он будет не сложный.
3) Подбегаем к владельцу этого предмета и отправляем пакет.
Ну здесь понятно, надо стать возле чара у которого в инвентаре нужный предмет и отправить написанный ранее пакет. Если стоять не возле него, то вам выдаст сообщение "вы не можете бросить так далеко".
________________
В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';