Выдача итема у НПСа Витаминов

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

uter81

Знающий
Участник
Сообщения
294
Розыгрыши
0
Репутация
1
Реакции
11
Баллы
460
Хроники
  1. Chaotic Throne: High Five
Исходники
Присутствуют
Сборка
l2jMobius
Добрый день, подскажите как поправить выдачу предметов у менеджера витаминов, с топика на форуме заменил строки из поста Выдача итема у менеджера витамин
при компиляции теперь ошибку выдает.

изначальный файл такой

Код:
package org.l2jmobius.gameserver.network.clientpackets;

import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.PremiumItem;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExGetPremiumItemList;
import org.l2jmobius.gameserver.util.Util;

public class RequestWithDrawPremiumItem extends ClientPacket
{
    private int _itemNum;
    private int _charId;
    private long _itemCount;
    
    @Override
    protected void readImpl()
    {
        _itemNum = readInt();
        _charId = readInt();
        _itemCount = readLong();
    }

    @Override
    protected void runImpl()
    {
        final Player player = getPlayer();
        if (player == null)
        {
            return;
        }
        else if (_itemCount <= 0)
        {
            return;
        }
        else if (player.getObjectId() != _charId)
        {
            Util.handleIllegalPlayerAction(player, "[RequestWithDrawPremiumItem] Incorrect owner, Player: " + player.getName(), Config.DEFAULT_PUNISH);
            return;
        }
        else if (player.getPremiumItemList().isEmpty())
        {
            Util.handleIllegalPlayerAction(player, "[RequestWithDrawPremiumItem] Player: " + player.getName() + " try to get item with empty list!", Config.DEFAULT_PUNISH);
            return;
        }
        else if ((player.getWeightPenalty() >= 3) || !player.isInventoryUnder90(false))
        {
            player.sendPacket(SystemMessageId.YOU_CANNOT_RECEIVE_THE_DIMENSIONAL_ITEM_BECAUSE_YOU_HAVE_EXCEED_YOUR_INVENTORY_WEIGHT_QUANTITY_LIMIT);
            return;
        }
        else if (player.isProcessingTransaction())
        {
            player.sendPacket(SystemMessageId.ITEMS_FROM_GAME_ASSISTANTS_CANNOT_BE_EXCHANGED);
            return;
        }

        final PremiumItem item = player.getPremiumItemList().get(_itemNum);
        if (item == null)
        {
            return;
        }
        else if (item.getCount() < _itemCount)
        {
            return;
        }

        final long itemsLeft = (item.getCount() - _itemCount);
        player.addItem("PremiumItem", item.getItemId(), _itemCount, player.getTarget(), true);
        if (itemsLeft > 0)
        {
            item.updateCount(itemsLeft);
            player.updatePremiumItem(_itemNum, itemsLeft);
        }
        else
        {
            player.getPremiumItemList().remove(_itemNum);
            player.deletePremiumItem(_itemNum);
        }

        if (player.getPremiumItemList().isEmpty())
        {
            player.sendPacket(SystemMessageId.THERE_ARE_NO_MORE_DIMENSIONAL_ITEMS_TO_BE_FOUND);
        }
        else
        {
            player.sendPacket(new ExGetPremiumItemList(player));
        }
    }
}


заменил так

Код:
public class RequestWithDrawPremiumItem implements ClientPacket
{
    private int _itemNum;
    // private int _charId;
    private long _itemCount;
  
    @Override
    public void read(ReadablePacket packet)
    {
        _itemNum = packet.readInt();
        packet.readInt(); // 0x00
        _itemCount = packet.readLong();
    }
  
    @Override
    public void run(GameClient client)
    {
        final Player player = client.getPlayer();
        if ((player == null) || (_itemCount <= 0))
        {
            return;
        }
        // else if (player.getObjectId() != _charId)
        // {
        // Util.handleIllegalPlayerAction(player, "[RequestWithDrawPremiumItem] Incorrect owner, Player: " + player.getName(), Config.DEFAULT_PUNISH);
        // return;
        // }
        else if (player.getPremiumItemList().isEmpty())
        {
            Util.handleIllegalPlayerAction(player, "[RequestWithDrawPremiumItem] Player: " + player.getName() + " try to get item with empty list!", Config.DEFAULT_PUNISH);
            return;
        }
        else if ((player.getWeightPenalty() >= 3) || !player.isInventoryUnder90(false))
        {
            player.sendPacket(SystemMessageId.YOU_CANNOT_RECEIVE_THE_DIMENSIONAL_ITEM_BECAUSE_YOU_HAVE_EXCEED_YOUR_INVENTORY_WEIGHT_QUANTITY_LIMIT);
            return;
        }
        else if (player.isProcessingTransaction())
        {
            player.sendPacket(SystemMessageId.ITEMS_FROM_GAME_ASSISTANTS_CANNOT_BE_EXCHANGED);
            return;
        }
      
        final PremiumItem item = player.getPremiumItemList().get(_itemNum);
        if ((item == null) || (item.getCount() < _itemCount))
        {
            return;
        }
      
        final long itemsLeft = (item.getCount() - _itemCount);
        player.addItem("PremiumItem", item.getItemId(), _itemCount, player.getTarget(), true);
        if (itemsLeft > 0)
        {
            item.updateCount(itemsLeft);
            player.updatePremiumItem(_itemNum, itemsLeft);
        }
        else
        {
            player.getPremiumItemList().remove(_itemNum);
            player.deletePremiumItem(_itemNum);
        }
      
        if (player.getPremiumItemList().isEmpty())
        {
            player.sendPacket(SystemMessageId.THERE_ARE_NO_MORE_DIMENSIONAL_ITEMS_TO_BE_FOUND);
        }
        else
        {
            player.sendPacket(new ExGetPremiumItemList(player));
        }
    }
}

ошибки при компиле такие

1705514688090.png
 
Выключайте ИДЕА, перезапускайте компьютер и молитесь.
 
Эти ошибки к измененному файлу не имеют отношения
 
все равно ошибки после ребута компа

1705525674704.png
 
все равно ошибки после ребута компа

Посмотреть вложение 72772
Попробуйте зайти в плагины Идеа и удалить АНТ. После этого зайти в File - Repair IDEA и выполнить все 7 шагов восстановления аж до удаления кеша (в конце должно быть окно с галочками - но это удалит список локальных изменений).
После этого поставьте опять ант как плагин.
 
Попробуйте зайти в плагины Идеа и удалить АНТ. После этого зайти в File - Repair IDEA и выполнить все 7 шагов восстановления аж до удаления кеша (в конце должно быть окно с галочками - но это удалит список локальных изменений).
После этого поставьте опять ант как плагин.
не дало никаких результатов , все так же
 
А можно фулл скрин ошибки?
А то обычно ант срёт помоями, когда ему памяти не хватает. Или идее
 
Последнее редактирование модератором:
Есть предположения что еще может быть ????
java не той версии :)

Есть предположения что еще может быть ????
Меркурий может в Ретрограде...

Ретроградным в 2024 году Меркурий будет трижды:
02-26 апреля 2024 года;

05-29 августа 2024 года;
26 ноября-15 декабря 2024 года
.
Та вроде еще нет...
 
java не той версии :)
я даже винду снес и ноля поставил все , ничего не помогает, как только вносишь изменения в этот файл начинается такое . Версии java проверял , те которые нужны
 
я даже винду снес и ноля поставил все , ничего не помогает, как только вносишь изменения в этот файл начинается такое . Версии java проверял , те которые нужны
попробуйте удалить папку bin/out :Aty:
 
и это то же не помогает, удалял несколько раз
скачайте ant - закиньте его в папку C://, после чего укажите в Переменных Пользователя, а именно в Path, путь к папке bin и компилируйте через командную строку :)
 
Есть предположения что еще может быть ????
ошибку не правильно смотришь
1705932461388.png

заменить мессанж ITEMS_FROM_GAME_ASSISTANTS_CANNOT_BE_EXCHANGED на YOU_CANNOT_RECEIVE_A_DIMENSIONAL_ITEM_DURING_AN_EXCHANGE, или какой-то другой подходящий по смыслу

после замены
1705932641787.png
 
ошибку не правильно смотришь
Посмотреть вложение 72838

заменить мессанж ITEMS_FROM_GAME_ASSISTANTS_CANNOT_BE_EXCHANGED на YOU_CANNOT_RECEIVE_A_DIMENSIONAL_ITEM_DURING_AN_EXCHANGE, или какой-то другой подходящий по смыслу

после замены
Посмотреть вложение 72839
с этим бьет ошибку, что еще можно туда написать, где глянуть примеры ? 1706025919239.png

1706026338706.png
1706026381548.png
1706026414069.png
1706026444341.png

1706026516904.png
 

Вложения

  • 1706026480654.png
    1706026480654.png
    2,3 КБ · Просмотры: 3
с этим бьет ошибку, что еще можно туда написать, где глянуть примеры ?Посмотреть вложение 72861
давайте вы напишите мне в дискорд/телеграм, я к вам через Парсек/Анидеск/ТимВивер подключусь и попробую найти источник проблемы.

Вообщем - если нужон:
- Дискорд - hecate_index
- Телеграм -

Ох...
Человек использовал Intellij IDEA и залил туда проект еклипса. Собственно не импотировав модуль с файлов еклипса - имел просто текстовые файлы Java, вместо "проиндексированных" классов.
Итого - взяв файлик с прошлой своей темы - закинул его в код и добавил импорт в клиенских пакетах.
Из-за того, что старый файлик писался под Netty, а человек использовал последнюю сборку мобиуса, которая на его "сетевом движке", то классы и реализации методов отличались, из-за этог и были ошибки в ANT.

Открыв как проект в IDEA поправил реализацию клиенсткого пакета и все сейчас скомпилилось.
 
с этим бьет ошибку, что еще можно туда написать, где глянуть примеры ?
я брал ласт исходы с репы мобиуса, хроник которые были указаны в первом сообщении

1706030748537.png
и в тех исходах у класса SystemMessageId есть YOU_CANNOT_RECEIVE_A_DIMENSIONAL_ITEM_DURING_AN_EXCHANGE

а искать можно путем удаления старого значения и написанием искомого ключевого слова (среда разработки покажет доступные)
1706030998229.png
 
давайте вы напишите мне в дискорд/телеграм, я к вам через Парсек/Анидеск/ТимВивер подключусь и попробую найти источник проблемы.



Ох...
Человек использовал Intellij IDEA и залил туда проект еклипса. Собственно не импотировав модуль с файлов еклипса - имел просто текстовые файлы Java, вместо "проиндексированных" классов.
Итого - взяв файлик с прошлой своей темы - закинул его в код и добавил импорт в клиенских пакетах.
Из-за того, что старый файлик писался под Netty, а человек использовал последнюю сборку мобиуса, которая на его "сетевом движке", то классы и реализации методов отличались, из-за этог и были ошибки в ANT.

Открыв как проект в IDEA поправил реализацию клиенсткого пакета и все сейчас скомпилилось.
Говна лопата........
То есть ума палата, конечно же.
 
Красава брат, ждём вкуснятину на анонсерах!
 
Назад
Сверху Снизу