Karimdjanov95 10 Опубликовано 24 июня, 2021 (изменено) Доброе утро, уважаемые пользователи форума. Нужна Ваша помощь в реализации визуализации персонажа. Ковырялся в исходниках и так не смог найти его в исходах Open-Team, которая в шаре и решил слипить свой, который делал на ИТ. Суть такая: Нужно, что бы когда персонаж одевал браслет для таликов, надевался костюм. Для этого тип костюма я поменял на "BBRACELET" и подшаманил в "UserInfo" writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_UNDER)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_REAR)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_LEAR)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_NECK)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_RFINGER)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_LFINGER)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_HEAD)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_RHAND)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_LHAND)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_GLOVES)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_CHEST)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_LEGS)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_FEET)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_BACK)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_LRHAND)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_HAIR)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_DHAIR)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_RBRACELET) == 0 ? _inv.getPaperdollObjectId(Inventory.PAPERDOLL_CHEST) : _inv.getPaperdollObjectId(Inventory.PAPERDOLL_RBRACELET)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_LBRACELET)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_DECO1)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_DECO2)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_DECO3)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_DECO4)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_DECO5)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_DECO6)); writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_BELT)); С первого момента, вроде работает, но только меняет верхную часть, это ладно, можно и на другие части припилить, но дело вот в чём. Надета броня, надет костюм, всё норм, но стоит снять скажем перчи, или любую другу часть брони, то сразу костюм пропадает. Приходится снимать костюм и заного надевать. Хелпаните пожалуйста Изменено 24 июня, 2021 пользователем Karimdjanov95 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 24 июня, 2021 (изменено) Вобще по логике, чтобы не было косяков с текстурами одеваемой/снимаемой брони при смене вида целым костюмом, в такой ситуации для всех слотов у которых вид меняется этим костюмом надо слать 0 в качестве одетого предмета. Ну само собой кроме слота chest. Ну типа как вот примерно так (тип 1 - внешка меняет верх + низ, тип 2 - внешка в виде полного костюма): int[] inv = new int[Inventory.PAPERDOLL_ORDER.length]; for (int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER) inv[PAPERDOLL_ID] = charInfoPackage.getPaperdollItemId(PAPERDOLL_ID); if (charInfoPackage.getAppearanceType() == 1) { inv[Inventory.PAPERDOLL_LEGS] = 0; } else if (charInfoPackage.getAppearanceType() == 2) { inv[Inventory.PAPERDOLL_LEGS] = 0; inv[Inventory.PAPERDOLL_GLOVES] = 0; inv[Inventory.PAPERDOLL_FEET] = 0; } for (int itemId : inv) writeD(itemId); Изменено 24 июня, 2021 пользователем Gaikotsu 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 25 июня, 2021 (изменено) 19 часов назад, Gaikotsu сказал: Вобще по логике, чтобы не было косяков с текстурами одеваемой/снимаемой брони при смене вида целым костюмом, в такой ситуации для всех слотов у которых вид меняется этим костюмом надо слать 0 в качестве одетого предмета. Ну само собой кроме слота chest. Ну типа как вот примерно так (тип 1 - внешка меняет верх + низ, тип 2 - внешка в виде полного костюма): int[] inv = new int[Inventory.PAPERDOLL_ORDER.length]; for (int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER) inv[PAPERDOLL_ID] = charInfoPackage.getPaperdollItemId(PAPERDOLL_ID); if (charInfoPackage.getAppearanceType() == 1) { inv[Inventory.PAPERDOLL_LEGS] = 0; } else if (charInfoPackage.getAppearanceType() == 2) { inv[Inventory.PAPERDOLL_LEGS] = 0; inv[Inventory.PAPERDOLL_GLOVES] = 0; inv[Inventory.PAPERDOLL_FEET] = 0; } for (int itemId : inv) writeD(itemId); Теперь бы знать, как это всё прилипить Изначально там всё было с "PAPERDOLL_ORDER" Но я немного подшаманил и сделал так: Предварительно удалив сам "PAPERDOLL_ORDER". Помоги пожалуйста прилипить сие чудо Исходники Open-Team HF, которые в шаре. Чистый CharInfo.java Чистый UserInfo.java Изменено 25 июня, 2021 пользователем Karimdjanov95 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 26 июня, 2021 (изменено) UP Изменено 26 июня, 2021 пользователем Karimdjanov95 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Infinitys 68 Опубликовано 26 июня, 2021 Там есть эта реализация через комьюнити борд. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 26 июня, 2021 5 часов назад, Infinitys сказал: Там есть эта реализация через комьюнити борд. html есть, но в исходниках я не нашёл. И способ вызова этих html тоже. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты