PDA

Просмотр полной версии : Пакеты "Положить в ВХ" и "Достать из ВХ" - не понятен принцип построения.


Theona
22.12.2010, 17:26
Всем привет. Собственно, сабж (хроники - ИЛ). Беру какую-либо вещь, через UseItem получаю ObjectId (или ItemId), все как положено. Но если я эту вещь положу в ВХ (или достану из ВХ) - в пакете будет фигурировать другой ObjectId, который, насоклько я понял, состоит не из 4х, а из 3х байт.
Задача моя - по Id вещи, полученному из UseItem написатьь пакет для отправки этого итема в ВХ. Связи между "двумя разными Id" одной и той же вещи я не смог найти. Прошу подсказать, кто знает - как решить данную задачу.

dyh9l
22.12.2010, 17:33
с каких пор в UseItem пишется Id ? или ты про ObjID ?

Theona
22.12.2010, 17:35
Очевидно - ObjectId. По простому: если ткнуть на вещь, появится Id этой вещи (уж не знаю, ObjectId или ItemId) и его можно использовать для трейда, дропа и т д. А для отправки в ВХ не подходит он.

J-Fobos
22.12.2010, 21:41
Можно посмотреть на пакет UseItem и пакет который положит эту вещь в ВХ?
Только чтоб итем был не стопковый, и чтоб вы не делали релогов между получением пакетов и сначала посмотрите пакет UseItem, а потом положите его в ВХ (не наоборот).

supernewbie
23.12.2010, 06:45
ил судя по всему птсник, а там оиды для склада идут в DepositList или как-то так от сервера, оттуда и бери их
PS они 4 байта

Theona
23.12.2010, 11:30
Можно посмотреть на пакет UseItem и пакет который положит эту вещь в ВХ?
Только чтоб итем был не стопковый, и чтоб вы не делали релогов между получением пакетов и сначала посмотрите пакет UseItem, а потом положите его в ВХ (не наоборот).

Да, вечером выложу. Но id из пакета для ВХ - меньше (старший байт = 0), попытки преобразовать одно в другое у меня не увенчались успехом.

ил судя по всему птсник, а там оиды для склада идут в DepositList или как-то так от сервера, оттуда и бери их
PS они 4 байта
Спасибо. В какой момент приходит этот пакет?

supernewbie
23.12.2010, 18:22
как открываешь склад)

Theona
23.12.2010, 18:27
как открываешь склад)

А как мне это поможет узнать Id Вещи, которая лежит в рюкзаке? Суть в том, что вещь, которую хочу скинуть в ВХ - через клиента не скидывается (типа нобл тиары). Для того-то я и хочу понять принцип построения пакетов, чтоб эту вещь скинуть.

supernewbie
23.12.2010, 18:33
ага, бан ему!!!11 бан бан бан!
PS никак
PSS берешь вещь, берешь её оид, берешь её оид при кладении на склад и так с 10 вещами, пытаешь вычеслить алгоритм, 95% что алгоритма нет - пыщ

J-Fobos
23.12.2010, 18:33
Я все еще хочу увидеть пакеты))

supernewbie
23.12.2010, 18:34
да че там видеть) птс выдает другие оиды для склада)

Theona
23.12.2010, 18:50
Пакеты вечером выложу, с работы приеду как.

По поводу оидов для склада - а зачем так сделано было? Ведь не для того, чтоб жизнь попоротить людям, кто пакетхаком пользуется? И используется ли "складской" id где нибудь еше?

В тот момент, когда я жму "Положить в ВХ" - от клиента уходит пакет, в котором стоят эти "неправильные" оиды. Сам клиент идентификаторы не проставляет. Значит, он их или получил от сервера (и в одном из пакетов от сервера можно их найти), или же клиент сам вычислил "ВХ'шный id" из обычного (то есть, существует алгоритм). Надеюсь, что всё-же первый вариант =\

supernewbie
23.12.2010, 20:09
вот комментарий над строкой с вх
//정말 빌어먹을 때문에

Добавлено через 1 минуту
Надеюсь, что всё-же первый вариант =\
тебе ж говорят, жамкешь "Положить на склад", тебе приходит список вещей которые можно класть на склад и их оид, пакет 41=WareHouseDepositList

Theona
24.12.2010, 15:25
Клал в вархаус книжку: оид = 54 ED 46 40. Из пакета WareHouseDepositList достался itemId = D4 15 00 00, а при отправке книги в ВХ в пакете был оид = EE 9F AA 00. И вот этот второй оид не фигурировал нигде больше..

supernewbie
24.12.2010, 15:30
причем тут итем ид?

unknowned
24.12.2010, 20:12
вот комментарий над строкой с вх
//정말 빌어먹을 때문에

Добавлено через 1 минуту

тебе ж говорят, жамкешь "Положить на склад", тебе приходит список вещей которые можно класть на склад и их оид, пакет 41=WareHouseDepositList

Лол: http://translate.google.ru/?hl=ru&tab=wT#auto|ru|정말 빌어먹을 때문에

NLObP
25.12.2010, 04:02
В скрипте WalkerScriptRunner, я использовал
{Создаем базу хранилища
Tип: 0x42 (WareHouseWithdrawList)
Pазмер: 249+2
Время прихода: 17:03:49:015
0002 h WhType: 1 (0x0001)
0004 d PlayerAdena: 1046945 (0x000FF9A1)
0008 h ListSize: 3 (0x0003)
[Начало повторяющегося блока 1/3]
0010 h ItemType1: 4 (0x0004)
0012 d ObjectID: 268482365 (0x1000B73D)
0016 d ItemID: Адена ID:57 (0x0039) (0x00000039)
0020 d Count: 40 (0x00000028)
0024 h ItemType2: 4 (0x0004)
...
[Конец повторяющегося блока 1/3]
[Начало повторяющегося блока 2/3]
0090 h ItemType1: 4 (0x0004)
0092 d ObjectID: 268483338 (0x1000BB0A)
0096 d ItemID: Материя Карнавальной Маски ID:6904 (0x1AF8) (0x00001AF8)
0100 d Count: 4 (0x00000004)
0104 h ItemType2: 5 (0x0005)
...
[Конец повторяющегося блока 2/3]
...
}
LoadItem(Название предмета[ID=#],#;Название предмета[ID=#],#)
{
Tип: 0x3C (SendWareHouseWithDrawList)
Pазмер: 21+2
Время прихода: 14:07:03:656
0002 d ListSize: 2 (0x00000002)
[Начало повторяющегося блока 1/2]
0006 d ObjectID: 268482413 (0x1000B76D)
0010 d Count: 1 (0x00000001)
[Конец повторяющегося блока 1/2]
[Начало повторяющегося блока 2/2]
0014 d ObjectID: 268483338 (0x1000BB0A)
0018 d Count: 4 (0x00000004)
[Конец повторяющегося блока 2/2]
}
SaveItem(Название предмета[ID=#],#;Название предмета[ID=#],#)
{
Tип: 0x3B (SendWareHouseDepositList)
Pазмер: 21+2
Время прихода: 14:17:24:812
0002 d ListSize: 2 (0x00000002)
[Начало повторяющегося блока 1/2]
0006 d ObjectID: 268483338 (0x1000BB0A)
0010 d Count: 4 (0x00000004)
[Конец повторяющегося блока 1/2]
[Начало повторяющегося блока 2/2]
0014 d ObjectID: 268482413 (0x1000B76D)
0018 d Count: 1 (0x00000001)
[Конец повторяющегося блока 2/2]
}


ИМХО там все понятно с пакетами.

supernewbie
25.12.2010, 04:44
---



зачем на л2ф эта канитель) если можно юзать иды из инвентаря прямо

Theona
25.12.2010, 20:39
NLObP, мне, к сожалению, абсолютно не понятен твой пост(

Добавлено через 3 часа 14 минут
supernewbie, в пакете WareHouseDepositList не фигурирует тот оид, который появляется в пакете "положить в ВХ"..

supernewbie
25.12.2010, 20:41
плохо смотришь значит

NLObP
26.12.2010, 19:09
NLObP, мне, к сожалению, абсолютно не понятен твой пост(

Я дал пакеты для работы с варехаусом. Еще ItemList нужен. Мне кажется ты путаешь ID названия предмета и ObjectID самого предмета.

Theona
27.12.2010, 17:58
Я дал пакеты для работы с варехаусом. Еще ItemList нужен. Мне кажется ты путаешь ID названия предмета и ObjectID самого предмета.

Ну нет, вроде не путаю. Я понимаю, что есть тип итема (например, ТТ кольцо), и есть конкретный экземпляр кольца. первый id у всех ТТ колец один, в id экземпляра - уникален.

Пакеты для вархауса у меня есть, я из получаю из phx собственно. Вопрос в том, какой ObjectId туда поставить??

Не понятно, зачем ты привел сигнатуру методов LoadItem() и SaveItem(), как мне это может помочь. Собственно, весь пост и не понятен.

И что значит "Еще ItemList нужен"? Кому и для чего?

Если не затруднит - объясни, пожалуйста, поподробнее..

NLObP
27.12.2010, 18:25
Если не затруднит - объясни, пожалуйста, поподробнее..

Чтобы положить в ВХ предмет нужно знать его ObjectID - смотреть в ItemList. Чтобы забрать из ВХ нужно знать ObjectID - смотреть в WareHouseWithdrawList.