Подскажите пакет №2

  • Автор темы Автор темы nesss
  • Дата начала Дата начала

nesss

Путник
Участник
Сообщения
129
Розыгрыши
0
Решения
3
Репутация
-2
Реакции
14
Баллы
85
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
Собственная
Всем привет, подскажите пожалуйста название пакета обновления информации объекта и если у вас есть содержание его.
 
Всем привет, подскажите пожалуйста название пакета обновления информации объекта и если у вас есть содержание его.
какого именно?

Есть условно Status Update - обновляет:

* LEVEL(0x01),
* EXP(0x02),
* STR(0x03),
* DEX(0x04),
* CON(0x05),
* INT(0x06),
* WIT(0x07),
* MEN(0x08),
* CUR_HP(0x09),
* MAX_HP(0x0A),
* CUR_MP(0x0B),
* MAX_MP(0x0C),
* CUR_LOAD(0x0E),
* P_ATK(0x11),
* ATK_SPD(0x12),
* P_DEF(0x13),
* EVASION(0x14),
* ACCURACY(0x15),
* CRITICAL(0x16),
* M_ATK(0x17),
* CAST_SPD(0x18),
* M_DEF(0x19),
* PVP_FLAG(0x1A),
* REPUTATION(0x1B),
* CUR_CP(0x21),
* MAX_CP(0x22),

Есть - AbnormalStatusUpdate, который обновляет бафы на персонаже;
Есть - DOOR_STATUS_UPDATE, который обновляет инфу о дверях;
Есть - PET_STATUS_UPDATE, который обновляет инфу о петах/самонах.
Есть - SHORT_BUFF_STATUS_UPDATE, который обновляет инфу ТОЛЬКО для БАНОК (potion хп/мп которые имеют продолжительный эффект лечения);
Есть - NPC_INFO_ABNORMAL_VISUAL_EFFECT, который АВЕшки на НПС обновляет;
Есть - INVENTORY_UPDATE, который обновялет отдельные итемы вместо отправки всего списка предметов;
DOOR_INFO - удалили
Есть - PLEDGE_SHOW_INFO_UPDATE - обновляет инфу в клане;
Есть - SERVER_OBJECT_INFO, но я его никогда не использовал. Наверное для отображения НПС без скорости передвижения;
Есть - STATIC_OBJECT, который используется для статиков (Флагштоки, Карты в Деревнях) или для Дверей;
Есть - ABNORMAL_VISUAL_EFFECT, который обновляет визуальные (AVE) эффекты на персонаже;
Есть - PET_INVENTORY_UPDATE - аналогично с INVENTORY_UPDATE
Есть - NPC_INFO_STATE - Visual State будет слать, вместо повторной отправки NPC_INFO
 
Status Update не обновляет данные на моем персонаже, я юзнул UserInfo, с UserInfo обновляет у меня, я так понял Status Update нужно отправлять всем игрокам которые отслеживают меня?
 
Status Update не обновляет данные на моем персонаже, я юзнул UserInfo, с UserInfo обновляет у меня, я так понял Status Update нужно отправлять всем игрокам которые отслеживают меня?
покажите как пакет заполняется и какие данные обновляете.
 
Java:
/**
 * <b>Пакет данных</b><br><br>
 * <small>Пакет предназначен для отправки клиенту.</small><br><br>
 * <b>Отправляет данные:</b><br><br>
 * <small>* Идентификатор объекта.</small><br><br>
 * <small>* Список аттрибутов, которые необходимо изменить.</small><br><br>
 */
public class StatusUpdate extends PacketWriteC {

    private final int id;
    private final Map<StatType, Integer> attributes;

    /**
     * <b>Конструктор</b><br>
     * <small>Выполняет действия при создании нового экземпляра класса.</small>
     * @param id идентификатор объекта.
     * @param attributes список аттрибутов, которые необходимо изменить.
     */
    public StatusUpdate(int id, Map<StatType, Integer> attributes) {

        this.id = id;
        this.attributes = attributes;

    }

    /**
     * <b>Описание</b><br>
     * <small>Формирует пакет данных для отправки клиенту.</small>
     */
    @Override
    public void write() {

        writeByte(0x0e);
        writeInt(id);
        writeInt(attributes.size());

        for (Map.Entry<StatType, Integer> attribute : attributes.entrySet()) {

            writeInt(attribute.getKey().getId());
            writeInt(attribute.getValue());

        }

    }

}

И StatType:

Java:
/**
 * <b>Перечисление типов характеристик персонажа для обновления</b><br><br>
 * <small>* LEVEL - Уровень.</small><br><br>
 * <small>* EXP - Очки опыта.</small><br><br>
 * <small>* STR - Сила.</small><br><br>
 * <small>* DEX - Ловкость.</small><br><br>
 * <small>* CON - Выносливость.</small><br><br>
 * <small>* INT - Интеллект.</small><br><br>
 * <small>* WIT - Мудрость.</small><br><br>
 * <small>* MEN - Духовность.</small><br><br>
 * <small>* CURRENTHP - Текущие жизненные силы.</small><br><br>
 * <small>* MAXHP - Максимальные жизненные силы.</small><br><br>
 * <small>* CURRENTMP - Текущие магические силы.</small><br><br>
 * <small>* MAXMP - Максимальные магические силы.</small><br><br>
 * <small>* SP - Очки умений.</small><br><br>
 * <small>* CURRENTWEIGHT - Текущий переносимый вес.</small><br><br>
 * <small>* MAXWEIGHT - Максимальный переносимый вес.</small><br><br>
 * <small>* PATK - Физическая атака.</small><br><br>
 * <small>* PATKSPEED - Скорость физической атаки.</small><br><br>
 * <small>* PDEF - Физическая защита.</small><br><br>
 * <small>* EVASION - Уклонение.</small><br><br>
 * <small>* ACCURACY - Точность.</small><br><br>
 * <small>* CRITICAL - Шанс критического удара.</small><br><br>
 * <small>* MATK - Магическая атака.</small><br><br>
 * <small>* MATKSPEED - Скорость магической атаки.</small><br><br>
 * <small>* MDEF - Магическая защита.</small><br><br>
 * <small>* CURRENTCP - Текущие боевые силы.</small><br><br>
 * <small>* MAXCP - Максимальные боевые силы.</small><br><br>
 */
public enum StatType {

    LEVEL(0x00000001),
    EXP(0x00000002),
    STR(0x00000003),
    DEX(0x00000004),
    CON(0x00000005),
    INT(0x00000006),
    WIT(0x00000007),
    MEN(0x00000008),
    CURRENTHP(0x00000009),
    MAXHP(0x0000000a),
    CURRENTMP(0x0000000b),
    MAXMP(0x0000000c),
    SP(0x0000000d),
    CURRENTWEIGHT(0x0000000e),
    MAXWEIGHT(0x0000000f),
    PATK(0x00000011),
    PATKSPEED(0x00000012),
    PDEF(0x00000013),
    EVASION(0x00000014),
    ACCURACY(0x00000015),
    CRITICAL(0x00000016),
    MATK(0x00000017),
    MATKSPEED(0x00000018),
    MDEF(0x00000019),
    CURRENTCP(0x00000021),
    MAXCP(0x00000022);

    private final int id;

    /**
     * <b>Конструктор</b>
     * @param id идентификатор характеристики.
     */
    StatType(int id) { this.id = id; }

    /**
     * @return идентификатор характеристики.
     */
    public int getId() { return id; }

}

Обновляю CURRENTHP(0x00000009), CURRENTMP(0x0000000b) и CURRENTCP(0x00000021), у меня поток отдельный запускается для регенерации, когда у чара одно из этих значений уменьшается.
 

Похожие темы

Назад
Сверху Снизу