Jump to content
Sign in to follow this  
Fomin

Как получить ID ансила в аппареле через web?

Recommended Posts

Форумчане!

 

При расшифровки инвентаря через веб, у ансилов в инвентаре нету параметра ITEMATTR_VAL_FUSIONID (id аппарели). Догадываемся, что он вшит в ItemForgeParam (где хранится в том числе и информация про вставленные самоцветы, слоты). Может кто сталкивался и выводил уже до нас? Скорее всего туда вшиты и характеристики вещи (кроме Атаки). Поделитесь пожалуйста формулами. 🙏

 

К примеру, Двуручный меч с ID аппарели 5009.
В нее вставлен ансил с ID 10754 (требуется получить этот ID).

9 ячейка = ItemForgeParam.

Array
(
    [0] => 24
    [1] => 5009
    [2] => 1
    [3] => 10573
    [4] => 25000
    [5] => 7000
    [6] => 7000
    [7] => 0
    [8] => -832715173
    [9] => 704774162
    [10] => 1
    [11] => 34
    [12] => 1174
    [13] => 35
    [14] => 1322
    [15] => 29
    [16] => 0
    [17] => 30
    [18] => 0
    [19] => 0
    [20] => 0
)

 

Edited by Fomin

Share this post


Link to post
Share on other sites

В девятом параметре находится не только айди предмета, но ещё и уровень шмотки (не требование к уровню!).

 

spacer.png

 

У предметов восьмой параметр отвечает за форж, или за навыки (если это к примеру фея), расшифровка есть в паблике.
 

Аттрибуты указываются отдельными колонками в таблице, 10 колонок = 5 аттрибутов, по порядку, сперва идет значение аттрибута, затем его значение.
Изменение любого из параметров требует полного пересчета контрольной суммы рюкзака.

 

Edited by e1mer
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Привет, @Fomin!

 

ID снаряжения в аппарели хранится в [9] поле массива (704774162).

 

1) Переводим число 704774162 в двоичную ССч:

0010 1010 0000 0010 0000 0000 0001 0010

2) Переводим искомый ID снаряжения (10754) в двоичную ССч:

0010 1010 0000 0010

3) Видим, что первые два байта числа 704774162 совпадают с байтами ID снаряжения (10754) - делаем вывод, что ID снаряжения в аппарели записывается в старшие два байта данного числа.

 

4) Переведем оставшиеся младшие байты в десятичную ССч:

0000 0000 0001 0010 = 18

5) Напишем код, который выделит необходимую информацию из числа 704774162:

<?php

$param = 704774162;

$id = ($param & 0xFFFF0000) >> 16;
$lv = ($param & 0xFFFF);

echo $id . ', +' . $lv;

?>

 

  • Like 3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...