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

vityaka

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

RequestShortCutReg , тут таилась проблема. Раньше регистрация шла без проверки пустого типа. То есть даже NONE отправлялся клиенту как новый ярлык. Нужно было добавить перед этим обработку очистки, то есть ShortCutDelete удаляет ярлык, а ShortCutInit передаёт актуальный список панели
Сообщение объединено:
Всем спасибо за ответы.
Суть проблемы такая. На панели выставлен предмет ( к примеру свиток телепорта) . Как предмет заканчивается , то после него, на панели остается черный ярлык ( квадрат ) . Как этот нюанс убрать? Может кто подсказать?
Это косяк сервера, там докручивать надо
 
Суть проблемы такая. На панели выставлен предмет ( к примеру свиток телепорта) . Как предмет заканчивается , то после него, на панели остается черный ярлык ( квадрат ) . Как этот нюанс убрать? Может кто подсказать?
если это последние протоколы мейна и эссенса, то там изменилась пакетка, вместо черной иконки должна оставаться картинка, но светиться серой с количеством 0.
 
Суть проблемы такая. На панели выставлен предмет ( к примеру свиток телепорта) . Как предмет заканчивается , то после него, на панели остается черный ярлык ( квадрат ) . Как этот нюанс убрать? Может кто подсказать?
как выше уже сказали - косяк сервера
при полном исчерпании предмета надо проверять не лежал ли он на шорткатах (панели) и если да, то слать клиенту пакет удаления с панельки
 
если это последние протоколы мейна и эссенса, то там изменилась пакетка, вместо черной иконки должна оставаться картинка, но светиться серой с количеством 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
спасибо за помощь
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());
именно это обработка уже внедрена была.
 
Нашлось решение .

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