Черная иконка на панели

vityaka

Последний из атеистов
Участник
Сообщения
18
Розыгрыши
0
Решения
1
Репутация
0
Реакции
0
Баллы
883
Суть проблемы такая. На панели выставлен предмет ( к примеру свиток телепорта) . Как предмет заканчивается , то после него, на панели остается черный ярлык ( квадрат ) . Как этот нюанс убрать? Может кто подсказать?
 
Решение
Нашлось решение .

RequestShortCutReg , тут таилась проблема. Раньше регистрация шла без проверки пустого типа. То есть даже NONE отправлялся клиенту как новый ярлык. Нужно было добавить перед этим обработку очистки, то есть ShortCutDelete удаляет ярлык, а ShortCutInit передаёт актуальный список панели
Сообщение объединено:
Всем спасибо за ответы.
Это косяк сервера, там докручивать надо
 
если это последние протоколы мейна и эссенса, то там изменилась пакетка, вместо черной иконки должна оставаться картинка, но светиться серой с количеством 0.
 
как выше уже сказали - косяк сервера
при полном исчерпании предмета надо проверять не лежал ли он на шорткатах (панели) и если да, то слать клиенту пакет удаления с панельки
 
464 протокол мейна Path of Rogue
Сообщение объединено:
При полном удалении предмета вызывается removeItemFromShortCut(objectId) и для каждого отправляется ShortCutDelete(slot, page). Но пока проблема не решилась буду копать дальше
 
Последнее редактирование:
protected void write0(ShortCutPacket p) {
writeD(id);
writeD(characterType);
writeD(reuseGroup);
writeD(currentReuse);
writeD(basicReuse);
writeD(variation1Id);
writeD(variation2Id);
writeD(variation3Id);
writeD(visualId);
}
Сообщение объединено:
Java:
public boolean destroyItem(ItemInstance item, long count, String owner, String log, boolean send) {
    // ...
        if (item.getCount() > count) {
            long oldCount = item.getCount();
            item.setCount(item.getCount() - count);
            onModifyItem(item, oldCount, send);
            return true;
        } else
            return destroyItem(item, owner, log, send);


Java:
protected void onRemoveItem(ItemInstance item, boolean send) {
    super.onRemoveItem(item, send);

    Player owner = getActor();
    owner.removeItemFromShortCut(item.getObjectId());
 
Последнее редактирование:

vityaka

Баллов: 10
спасибо за помощь
именно это обработка уже внедрена была.
 
Нашлось решение .

RequestShortCutReg , тут таилась проблема. Раньше регистрация шла без проверки пустого типа. То есть даже NONE отправлялся клиенту как новый ярлык. Нужно было добавить перед этим обработку очистки, то есть ShortCutDelete удаляет ярлык, а ShortCutInit передаёт актуальный список панели
Сообщение объединено:
Всем спасибо за ответы.
 
Решение
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…