Там нужно смотреть не только на код, но и на логику отправки пакетов и естественно само содержимое этих пакетов.
про что я и говорю, пакетку я не понимаю, а имеющейся код он вполне читаем и понятен, ну вот например:
if (isSummonShot(item.getItem())) если использемый предмет это соски для петов то
if (activeChar.hasSummon()) если вызван сумон
final boolean isSoulshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SOULSHOT;
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SPIRITSHOT;
прописываются типы действий
if (isSoulshot) если это из соски то
int soulshotCount = 0; счётчик по нулям
if (pet != null) если это пэт
soulshotCount += pet.getSoulShotsPerHit(); счётчик сосок + количество потребляемое пэтом
for (L2Summon servitor : activeChar.getServitors().values()) это если не прошла первая проверка на пэта и это сумон
soulshotCount += servitor.getSoulShotsPerHit(); плюсуем к счётчику
if (soulshotCount > item.getCount()) если имеющихся сосок меньше чем имеется то
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR); посылаем пакет с сообщением что недостаточно сосок для питомцев...
я всё перечитал уже построчно, и в этом файле нет подобного пакета что пэт мёртв.
есть только для персонажа: if ((activeChar.getPrivateStoreType() == PrivateStoreType.NONE) && (activeChar.getActiveRequester() == null) && !activeChar.isDead())
уже скачал исходники от 25/10/16 затестил со своей систем, тожесамое, скачал
отсюда папку, тоже самое.