1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

[Гайд] Делаем изменяемыми все виды оружия и брони

Тема в разделе 'AION', создана пользователем mr.Slink, 10 мар 2011.

  1. TopicStarter Overlay

    mr.Slink Пользователи

    Сообщения:
    261
    Лайки:
    92
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    odoRemasrered
    Страна:
    Russian Federation Russian Federation
    Здравствуйте уважаемые Админы и ГМы серверов, наверное многие из вас хотели сделать так чтобы изменению поддавались все виды оружия и брони, многие хотели, да не у многих получалось, но сейчас мы это исправим.

    Нам пондобятся:
    1) AionExtract (прога для распаковки .pak файлов и одновременного декодированя xml файлов которые покоились в .pak) Скачать
    2) Notepad++ (ну или любой удобный для вас текстовый редактор)
    3) Прямые руки
    4) Мозг

    К изменению подлежат серверная и клиентская части.

    КЛИЕНТ
    Редактуре подлежит файлик client_items.xml он находится в items.pak.
    Так как мы с вами работаем на клиенте 2.0 распаковывать будем items.pak из папки соответствующей региональному коду который стоит у вас на сервере( 0- Asian 1- europe 7-Russia, насчет азии не уверен). Запускаем AionExtract.exe выбираем путь где лежит items.pak, потом выбираем путь куда все будет распаковано, нажимаем extract, ждем пока программа завершит работу и в итоге мы имеем много-много фалов .dds(это текстуры иконок, но о них в другом гайде), нам же нужен client_items.xml.
    Нашли его и открываем нашим текстовым редактором.

    Ищем нужную шмотку или оружие, нашли, теперь в его описании ищем такую штуку:

    Код:
    <cannot_changeskin>0</cannot_changeskin>
    это и есть параметр позволяющий менять внешний вид вещи
    0- запрещено
    1- разрешено
    Далее если вы хотите можете запаковать xml файл обратно в .pak, но можно этого и не делать, а просто закинуть файл в папку в которой лежит оригинальный .pak, веди приоритет загрузки ресурсов стоит из папку а не из .pak .


    Таким образом настраивается возможность смены внешнего вида в клиенте.



    СЕРВЕР
    Так же имеется проверка типа вещи и на сервере. Располагается она в сервисе смены вещей, а именно ItemRemodelService.java, в моем ядре этот файл лежит по пути core\src\com\aionemu\gameserver\services\ItemRemod elService.java (у вас путь может отличаться)
    Открываем его блокнотом, видим много-много кода, но нам нуден только этот кусок:


    Код:
    // Temporary check... I *think* epic and mythic items can *never* be remodeled...
    if (keepItem.getItemTemplate().getItemQuality() == ItemQuality.EPIC ||
    keepItem.getItemTemplate().getItemQuality() == ItemQuality.MYTHIC)
    {
    PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1300478,
    new DescriptionId(keepItem.getItemTemplate().getNameId())));
    return;
    }
    
    // Check for hacks... I *think* epic and mythic items can *never* be remodeled...
    if (extractItem.getItemTemplate().getItemQuality() == ItemQuality.EPIC ||
    extractItem.getItemTemplate().getItemQuality() == ItemQuality.MYTHIC)
    {
    PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1300482,
    new DescriptionId(extractItem.getItemTemplate().getNameId())));
    return;
    }
    Здесь находится правило, что если тип вещи эпический или мифический, то не допускать его до изменения внешнего вида вещи.
    Мы это исключение изменим, т.к. в запретную зону мы добавим все вещи типа CLOTHES(платья и все другие веселые костюмчики), мы ведь не хотим чтобы какой-нибудь игрок взял да изменил внешний сета рудры на костюм санты... это будет путать других игроков... (Эта часть гада делается по желанию, поэтому вы можете попросту не выполнять её)
    Итак, тот код что я указал можно просто заменить на


    Код:
    // Temporary check... I *think* clothes items can *never* be remodeled...
    if (keepItem.getItemTemplate().getArmorType() == ArmorType.CLOTHES)
    {
    PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1300478,
    new DescriptionId(keepItem.getItemTemplate().getNameId())));
    return;
    }
    
    // Check for hacks... I *think* clothes items can *never* be remodeled...
    if (keepItem.getItemTemplate().getArmorType() == ArmorType.CLOTHES)
    {
    PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1300482,
    new DescriptionId(extractItem.getItemTemplate().getNameId())));
    return;
    }
    Теперь платья не смогут быть изменены, а все остальные предметы могут.

    Автор: XobotyI
Черновик сохранён Черновик удалён

Поделиться этой страницей