stoneType = Integer.parseInt(command.substring(13)); L2ItemInstance redStones = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_RED_ID); int redStoneCount = redStones == null ? 0 : redStones.getCount(); L2ItemInstance greenStones = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_GREEN_ID); int greenStoneCount = greenStones == null ? 0 : greenStones.getCount(); L2ItemInstance blueStones = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_BLUE_ID); int blueStoneCount = blueStones == null ? 0 : blueStones.getCount(); int contribScore = SevenSigns.getInstance().getPlayerContribScore(player); boolean stonesFound = false; if (contribScore == SevenSigns.MAXIMUM_PLAYER_CONTRIB) { player.sendPacket(new SystemMessage(SystemMessage.CONTRIB_SCORE_EXCEEDED)); break; } else { int redContribCount = 0; int greenContribCount = 0; int blueContribCount = 0; switch (stoneType) { case 1: blueContribCount = (SevenSigns.MAXIMUM_PLAYER_CONTRIB - contribScore) / SevenSigns.BLUE_CONTRIB_POINTS; if (blueContribCount > blueStoneCount) blueContribCount = blueStoneCount; break; case 2: greenContribCount = (SevenSigns.MAXIMUM_PLAYER_CONTRIB - contribScore) / SevenSigns.GREEN_CONTRIB_POINTS; if (greenContribCount > greenStoneCount) greenContribCount = greenStoneCount; break; case 3: redContribCount = (SevenSigns.MAXIMUM_PLAYER_CONTRIB - contribScore) / SevenSigns.RED_CONTRIB_POINTS; if (redContribCount > redStoneCount) redContribCount = redStoneCount; break; case 4: int tempContribScore = contribScore; redContribCount = (SevenSigns.MAXIMUM_PLAYER_CONTRIB - tempContribScore) / SevenSigns.RED_CONTRIB_POINTS; if (redContribCount > redStoneCount) redContribCount = redStoneCount; tempContribScore += redContribCount * SevenSigns.RED_CONTRIB_POINTS; greenContribCount = (SevenSigns.MAXIMUM_PLAYER_CONTRIB - tempContribScore) / SevenSigns.GREEN_CONTRIB_POINTS; if (greenContribCount > greenStoneCount) greenContribCount = greenStoneCount; tempContribScore += greenContribCount * SevenSigns.GREEN_CONTRIB_POINTS; blueContribCount = (SevenSigns.MAXIMUM_PLAYER_CONTRIB - tempContribScore) / SevenSigns.BLUE_CONTRIB_POINTS; if (blueContribCount > blueStoneCount) blueContribCount = blueStoneCount; break; } contribScore = SevenSigns.getInstance().addPlayerStoneContrib(player, blueContribCount, greenContribCount, redContribCount); if (redContribCount > 0) { player.destroyItem("SevenSigns", redStones.getObjectId(), redContribCount, this, false); stonesFound = true; } if (greenContribCount > 0) { player.destroyItem("SevenSigns", greenStones.getObjectId(), greenContribCount, this, false); stonesFound = true; } if (blueContribCount > 0) { player.destroyItem("SevenSigns", blueStones.getObjectId(), blueContribCount, this, false); stonesFound = true; } if (!stonesFound) { player.sendMessage("You do not have any seal stones of that type."); break; } sm = new SystemMessage(SystemMessage.CONTRIB_SCORE_INCREASED); sm.addNumber(contribScore); player.sendPacket(sm); showChatWindow(player, 6, null, false); } break;