Вот функции, которые помогут переложить коды с си шарп на пхп. Там проблема в том, что в пхп нет uint32. Поэтому побитовые операции выполняются несколько иначе.
PHP код:
function _BF_SHR32 ($x, $bits)
{
if ($bits==0) return $x;
if ($bits==32) return 0;
$y = ($x & 0x7FFFFFFF) >> $bits;
if (0x80000000 & $x) {
$y |= (1<<(31-$bits));
}
return $y;
}
function _BF_SHL32 ($x, $bits)
{
if ($bits==0) return $x;
if ($bits==32) return 0;
$mask = (1<<(32-$bits)) - 1;
return (($x & $mask) << $bits) & 0xFFFFFFFF;
}
в каком виде нужно отправлять контейнер с запросом? например, получить данные инвентаря...
сам контейнер выглядит как-то так:
22052700010100
чую, что 22 - это подтип, а какой тогда будет тип и размер? в пандоре не указывается...
В пакете <PacketInfo Type="0x2B" Direction="S2C" Container="True" Name="Inventory">
<PacketField Type="Bytes" Length="ExtraDataLength.Value" Name="ExtraData" />
ExtraData - что это? отсюда можно строку вытянуть? какой тип данных? просто байты не дают ничего может widechar?
wajskopf, в ExtraData хранятся статы (если не ошибаюсь) и никнейм чара, который сделал этот предмет.
Вытащить что–либо оттуда довольно–таки проблематично.
Разберем ExtraData от предмета 8533 (Брюки из шкуры дракона)
Также стоит отметить, что в стеке пакетов идет сразу два подряд пакета 0x2B (Inventory) (Server -> Client), где первый перечисляет предметы, которые именно лежат в инвентаре, второй — все, что надето на чаре.
Последний раз редактировалось Desmond Hume; 13.08.2013 в 18:11.
Причина: Читабельность
Объявляю эпоху кодиров, копипастивших коды инжектов, закрытой. Ингейм устарел. Объявляю эпоху аццко скопипщенных ООГ программ открытой.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.