Code format braces.

This commit is contained in:
MobiusDev
2017-08-31 11:54:12 +00:00
parent ce279555a0
commit 3615456155
297 changed files with 6280 additions and 244 deletions

View File

@@ -207,6 +207,7 @@ public class SevenSigns
{
case PERIOD_SEAL_VALIDATION:
case PERIOD_COMPETITION:
{
lastPeriodChange.set(Calendar.DAY_OF_WEEK, PERIOD_START_DAY);
lastPeriodChange.set(Calendar.HOUR_OF_DAY, PERIOD_START_HOUR);
lastPeriodChange.set(Calendar.MINUTE, PERIOD_START_MINS);
@@ -217,11 +218,14 @@ public class SevenSigns
lastPeriodChange.add(Calendar.HOUR, -24 * 7);
}
break;
}
case PERIOD_COMP_RECRUITING:
case PERIOD_COMP_RESULTS:
{
// because of the short duration of this period, just check it from last save
lastPeriodChange.setTimeInMillis(_lastSave.getTimeInMillis() + PERIOD_MINOR_LENGTH);
break;
}
}
// because of previous "date" column usage, check only if it already contains usable data for us
@@ -312,13 +316,12 @@ public class SevenSigns
switch (getCabalHighestScore())
{
case CABAL_DAWN:
{
if (!AutoSpawnHandler.getInstance().getAutoSpawnInstance(lilithSpawn.getObjectId(), true).isSpawnActive())
{
AutoSpawnHandler.getInstance().setSpawnActive(lilithSpawn, true);
}
AutoSpawnHandler.getInstance().setSpawnActive(anakimSpawn, false);
for (AutoSpawnInstance dawnCrest : crestOfDawnSpawns)
{
if (!AutoSpawnHandler.getInstance().getAutoSpawnInstance(dawnCrest.getObjectId(), true).isSpawnActive())
@@ -326,21 +329,19 @@ public class SevenSigns
AutoSpawnHandler.getInstance().setSpawnActive(dawnCrest, true);
}
}
for (AutoSpawnInstance duskCrest : crestOfDuskSpawns)
{
AutoSpawnHandler.getInstance().setSpawnActive(duskCrest, false);
}
break;
}
case CABAL_DUSK:
{
if (!AutoSpawnHandler.getInstance().getAutoSpawnInstance(anakimSpawn.getObjectId(), true).isSpawnActive())
{
AutoSpawnHandler.getInstance().setSpawnActive(anakimSpawn, true);
}
AutoSpawnHandler.getInstance().setSpawnActive(lilithSpawn, false);
for (AutoSpawnInstance duskCrest : crestOfDuskSpawns)
{
if (!AutoSpawnHandler.getInstance().getAutoSpawnInstance(duskCrest.getObjectId(), true).isSpawnActive())
@@ -348,12 +349,12 @@ public class SevenSigns
AutoSpawnHandler.getInstance().setSpawnActive(duskCrest, true);
}
}
for (AutoSpawnInstance dawnCrest : crestOfDawnSpawns)
{
AutoSpawnHandler.getInstance().setSpawnActive(dawnCrest, false);
}
break;
}
}
}
else
@@ -430,9 +431,13 @@ public class SevenSigns
switch (cabal)
{
case CABAL_DAWN:
{
return "dawn";
}
case CABAL_DUSK:
{
return "dusk";
}
}
return "No Cabal";
@@ -443,9 +448,13 @@ public class SevenSigns
switch (cabal)
{
case CABAL_DAWN:
{
return "Lords of Dawn";
}
case CABAL_DUSK:
{
return "Revolutionaries of Dusk";
}
}
return "No Cabal";
@@ -458,14 +467,20 @@ public class SevenSigns
switch (seal)
{
case SEAL_AVARICE:
{
sealName += "Avarice";
break;
}
case SEAL_GNOSIS:
{
sealName += "Gnosis";
break;
}
case SEAL_STRIFE:
{
sealName += "Strife";
break;
}
}
return sealName;
@@ -504,8 +519,8 @@ public class SevenSigns
{
case PERIOD_SEAL_VALIDATION:
case PERIOD_COMPETITION:
{
int daysToChange = getDaysToPeriodChange();
if (daysToChange == 7)
{
if (_nextPeriodChange.get(Calendar.HOUR_OF_DAY) < PERIOD_START_HOUR)
@@ -517,20 +532,21 @@ public class SevenSigns
daysToChange = 0;
}
}
// Otherwise...
if (daysToChange > 0)
{
_nextPeriodChange.add(Calendar.DATE, daysToChange);
}
_nextPeriodChange.set(Calendar.HOUR_OF_DAY, PERIOD_START_HOUR);
_nextPeriodChange.set(Calendar.MINUTE, PERIOD_START_MINS);
break;
}
case PERIOD_COMP_RECRUITING:
case PERIOD_COMP_RESULTS:
{
_nextPeriodChange.add(Calendar.MILLISECOND, PERIOD_MINOR_LENGTH);
break;
}
}
_log.info("SevenSigns: Next period change set to " + _nextPeriodChange.getTime());
}
@@ -542,17 +558,25 @@ public class SevenSigns
switch (_activePeriod)
{
case PERIOD_COMP_RECRUITING:
{
periodName = "Quest Event Initialization";
break;
}
case PERIOD_COMPETITION:
{
periodName = "Competition (Quest Event)";
break;
}
case PERIOD_COMP_RESULTS:
{
periodName = "Quest Event Results";
break;
}
case PERIOD_SEAL_VALIDATION:
{
periodName = "Seal Validation";
break;
}
}
return periodName;
}
@@ -598,21 +622,29 @@ public class SevenSigns
switch (getCurrentPeriod())
{
case PERIOD_COMP_RECRUITING:
{
nextValidStart = nextPeriodChange + PERIOD_MAJOR_LENGTH;
nextQuestStart = nextValidStart + PERIOD_MAJOR_LENGTH + PERIOD_MINOR_LENGTH;
break;
}
case PERIOD_COMPETITION:
{
nextValidStart = nextPeriodChange;
nextQuestStart = nextPeriodChange + PERIOD_MAJOR_LENGTH + PERIOD_MINOR_LENGTH;
break;
}
case PERIOD_COMP_RESULTS:
{
nextQuestStart = nextPeriodChange + PERIOD_MAJOR_LENGTH;
nextValidStart = nextQuestStart + PERIOD_MAJOR_LENGTH + PERIOD_MINOR_LENGTH;
break;
}
case PERIOD_SEAL_VALIDATION:
{
nextQuestStart = nextPeriodChange;
nextValidStart = nextPeriodChange + PERIOD_MAJOR_LENGTH + PERIOD_MINOR_LENGTH;
break;
}
}
if (((nextQuestStart < tillDate) && (tillDate < nextValidStart)) || ((nextValidStart < nextQuestStart) && ((tillDate < nextValidStart) || (nextQuestStart < tillDate))))
@@ -629,11 +661,17 @@ public class SevenSigns
switch (cabal)
{
case CABAL_NULL:
{
return 0;
}
case CABAL_DAWN:
{
return Math.round((float) (_dawnStoneScore / ((float) totalStoneScore == 0 ? 1 : totalStoneScore)) * 500) + _dawnFestivalScore;
}
case CABAL_DUSK:
{
return Math.round((float) (_duskStoneScore / ((float) totalStoneScore == 0 ? 1 : totalStoneScore)) * 500) + _duskFestivalScore;
}
}
return 0;
@@ -644,11 +682,17 @@ public class SevenSigns
switch (cabal)
{
case CABAL_NULL:
{
return 0;
}
case CABAL_DAWN:
{
return _dawnStoneScore;
}
case CABAL_DUSK:
{
return _duskStoneScore;
}
}
return 0;
@@ -659,11 +703,17 @@ public class SevenSigns
switch (cabal)
{
case CABAL_NULL:
{
return 0;
}
case CABAL_DAWN:
{
return _dawnFestivalScore;
}
case CABAL_DUSK:
{
return _duskFestivalScore;
}
}
return 0;
@@ -1100,11 +1150,15 @@ public class SevenSigns
switch (getPlayerCabal(objectId))
{
case CABAL_DAWN:
{
_dawnStoneScore += contribScore;
break;
}
case CABAL_DUSK:
{
_duskStoneScore += contribScore;
break;
}
}
if (!Config.ALT_SEVENSIGNS_LAZY_UPDATE)
@@ -1156,17 +1210,25 @@ public class SevenSigns
switch (getCurrentPeriod())
{
case PERIOD_COMP_RECRUITING:
{
sm = SystemMessage.getSystemMessage(SystemMessageId.SEVEN_SIGNS_PREPARATIONS_HAVE_BEGUN_FOR_THE_NEXT_QUEST_EVENT);
break;
}
case PERIOD_COMPETITION:
{
sm = SystemMessage.getSystemMessage(SystemMessageId.SEVEN_SIGNS_THE_QUEST_EVENT_PERIOD_HAS_BEGUN_SPEAK_WITH_A_PRIEST_OF_DAWN_OR_DUSK_PRIESTESS_IF_YOU_WISH_TO_PARTICIPATE_IN_THE_EVENT);
break;
}
case PERIOD_COMP_RESULTS:
{
sm = SystemMessage.getSystemMessage(SystemMessageId.SEVEN_SIGNS_QUEST_EVENT_HAS_ENDED_RESULTS_ARE_BEING_TALLIED);
break;
}
case PERIOD_SEAL_VALIDATION:
{
sm = SystemMessage.getSystemMessage(SystemMessageId.SEVEN_SIGNS_THIS_IS_THE_SEAL_VALIDATION_PERIOD_A_NEW_QUEST_EVENT_PERIOD_BEGINS_NEXT_MONDAY);
break;
}
}
player.sendPacket(sm);
@@ -1248,12 +1310,16 @@ public class SevenSigns
switch (prevSealOwner)
{
case CABAL_NULL:
{
switch (getCabalHighestScore())
{
case CABAL_NULL:
{
newSealOwner = CABAL_NULL;
break;
}
case CABAL_DAWN:
{
if (dawnPercent >= 35)
{
newSealOwner = CABAL_DAWN;
@@ -1263,7 +1329,9 @@ public class SevenSigns
newSealOwner = CABAL_NULL;
}
break;
}
case CABAL_DUSK:
{
if (duskPercent >= 35)
{
newSealOwner = CABAL_DUSK;
@@ -1273,12 +1341,16 @@ public class SevenSigns
newSealOwner = CABAL_NULL;
}
break;
}
}
break;
}
case CABAL_DAWN:
{
switch (getCabalHighestScore())
{
case CABAL_NULL:
{
if (dawnPercent >= 10)
{
newSealOwner = CABAL_DAWN;
@@ -1288,7 +1360,9 @@ public class SevenSigns
newSealOwner = CABAL_NULL;
}
break;
}
case CABAL_DAWN:
{
if (dawnPercent >= 10)
{
newSealOwner = CABAL_DAWN;
@@ -1298,7 +1372,9 @@ public class SevenSigns
newSealOwner = CABAL_NULL;
}
break;
}
case CABAL_DUSK:
{
if (duskPercent >= 35)
{
newSealOwner = CABAL_DUSK;
@@ -1312,12 +1388,16 @@ public class SevenSigns
newSealOwner = CABAL_NULL;
}
break;
}
}
break;
}
case CABAL_DUSK:
{
switch (getCabalHighestScore())
{
case CABAL_NULL:
{
if (duskPercent >= 10)
{
newSealOwner = CABAL_DUSK;
@@ -1327,7 +1407,9 @@ public class SevenSigns
newSealOwner = CABAL_NULL;
}
break;
}
case CABAL_DAWN:
{
if (dawnPercent >= 35)
{
newSealOwner = CABAL_DAWN;
@@ -1341,7 +1423,9 @@ public class SevenSigns
newSealOwner = CABAL_NULL;
}
break;
}
case CABAL_DUSK:
{
if (duskPercent >= 10)
{
newSealOwner = CABAL_DUSK;
@@ -1351,8 +1435,10 @@ public class SevenSigns
newSealOwner = CABAL_NULL;
}
break;
}
}
break;
}
}
_signsSealOwners.put(currSeal, newSealOwner);
@@ -1361,6 +1447,7 @@ public class SevenSigns
switch (currSeal)
{
case SEAL_AVARICE:
{
if (newSealOwner == CABAL_DAWN)
{
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_LORDS_OF_DAWN_HAVE_OBTAINED_THE_SEAL_OF_AVARICE);
@@ -1370,7 +1457,9 @@ public class SevenSigns
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_REVOLUTIONARIES_OF_DUSK_HAVE_OBTAINED_THE_SEAL_OF_AVARICE);
}
break;
}
case SEAL_GNOSIS:
{
if (newSealOwner == CABAL_DAWN)
{
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_LORDS_OF_DAWN_HAVE_OBTAINED_THE_SEAL_OF_GNOSIS);
@@ -1380,7 +1469,9 @@ public class SevenSigns
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_REVOLUTIONARIES_OF_DUSK_HAVE_OBTAINED_THE_SEAL_OF_GNOSIS);
}
break;
}
case SEAL_STRIFE:
{
if (newSealOwner == CABAL_DAWN)
{
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_LORDS_OF_DAWN_HAVE_OBTAINED_THE_SEAL_OF_STRIFE);
@@ -1389,9 +1480,9 @@ public class SevenSigns
{
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_REVOLUTIONARIES_OF_DUSK_HAVE_OBTAINED_THE_SEAL_OF_STRIFE);
}
CastleManager.getInstance().validateTaxes(newSealOwner);
break;
}
}
}
}
@@ -1445,34 +1536,34 @@ public class SevenSigns
switch (periodEnded)
{
case PERIOD_COMP_RECRUITING: // Initialization
{
// Start the Festival of Darkness cycle.
SevenSignsFestival.getInstance().startFestivalManager();
// Send message that Competition has begun.
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_COMPETITION_PERIOD_HAS_BEGUN_VISIT_A_PRIEST_OF_DAWN_OR_PRIESTESS_OF_DUSK_TO_PARTICIPATE_IN_THE_EVENT);
break;
}
case PERIOD_COMPETITION: // Results Calculation
{
// Send message that Competition has ended.
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_COMPETITION_PERIOD_HAS_ENDED_THE_NEXT_QUEST_EVENT_WILL_START_IN_ONE_WEEK);
final int compWinner = getCabalHighestScore();
// Schedule a stop of the festival engine and reward highest ranking members from cycle
SevenSignsFestival.getInstance().getFestivalManagerSchedule().cancel(false);
SevenSignsFestival.getInstance().rewardHighestRanked();
calcNewSealOwners();
switch (compWinner)
{
case CABAL_DAWN:
{
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_LORDS_OF_DAWN_HAVE_WON);
break;
}
case CABAL_DUSK:
{
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_REVOLUTIONARIES_OF_DUSK_HAVE_WON);
break;
}
}
_previousWinner = compWinner;
@@ -1483,24 +1574,22 @@ public class SevenSigns
castle.setTicketBuyCount(0);
}
break;
}
case PERIOD_COMP_RESULTS: // Seal Validation
{
// Perform initial Seal Validation set up.
initializeSeals();
// Buff/Debuff members of the event when Seal of Strife captured.
giveCPMult(getSealOwner(SEAL_STRIFE));
// Send message that Seal Validation has begun.
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_SEAL_VALIDATION_PERIOD_HAS_BEGUN);
_log.info("SevenSigns: The " + getCabalName(_previousWinner) + " have won the competition with " + getCurrentScore(_previousWinner) + " points!");
break;
}
case PERIOD_SEAL_VALIDATION: // Reset for New Cycle
{
// Ensure a cycle restart when this period ends.
_activePeriod = PERIOD_COMP_RECRUITING;
// Send message that Seal Validation has ended.
sendMessageToAll(SystemMessageId.SEVEN_SIGNS_THE_SEAL_VALIDATION_PERIOD_HAS_ENDED);
// Clear Seal of Strife influence.
@@ -1508,18 +1597,16 @@ public class SevenSigns
// Reset all data
resetPlayerData();
resetSeals();
_currentCycle++;
// Reset all Festival-related data and remove any unused blood offerings.
// NOTE: A full update of Festival data in the database is also performed.
SevenSignsFestival.getInstance().resetFestivalData(false);
_dawnStoneScore = 0;
_duskStoneScore = 0;
_dawnFestivalScore = 0;
_duskFestivalScore = 0;
break;
}
}
// Make sure all Seven Signs data is saved for future use.

View File

@@ -816,20 +816,30 @@ public class SevenSignsFestival implements SpawnListener
switch (festivalID)
{
case FESTIVAL_LEVEL_MAX_31:
{
festivalName = "Level 31 or lower";
break;
}
case FESTIVAL_LEVEL_MAX_42:
{
festivalName = "Level 42 or lower";
break;
}
case FESTIVAL_LEVEL_MAX_53:
{
festivalName = "Level 53 or lower";
break;
}
case FESTIVAL_LEVEL_MAX_64:
{
festivalName = "Level 64 or lower";
break;
}
default:
{
festivalName = "No Level Limit";
break;
}
}
return festivalName;
@@ -847,17 +857,25 @@ public class SevenSignsFestival implements SpawnListener
switch (festivalId)
{
case SevenSignsFestival.FESTIVAL_LEVEL_MAX_31:
{
maxLevel = 31;
break;
}
case SevenSignsFestival.FESTIVAL_LEVEL_MAX_42:
{
maxLevel = 42;
break;
}
case SevenSignsFestival.FESTIVAL_LEVEL_MAX_53:
{
maxLevel = 53;
break;
}
case SevenSignsFestival.FESTIVAL_LEVEL_MAX_64:
{
maxLevel = 64;
break;
}
}
return maxLevel;
@@ -1609,14 +1627,20 @@ public class SevenSignsFestival implements SpawnListener
switch (stoneType)
{
case SevenSigns.SEAL_STONE_BLUE_ID:
{
eachStoneBonus = SevenSigns.SEAL_STONE_BLUE_VALUE;
break;
}
case SevenSigns.SEAL_STONE_GREEN_ID:
{
eachStoneBonus = SevenSigns.SEAL_STONE_GREEN_VALUE;
break;
}
case SevenSigns.SEAL_STONE_RED_ID:
{
eachStoneBonus = SevenSigns.SEAL_STONE_RED_VALUE;
break;
}
}
final int newTotalBonus = _accumulatedBonuses.get(festivalId) + (stoneAmount * eachStoneBonus);
@@ -2209,16 +2233,24 @@ public class SevenSignsFestival implements SpawnListener
{
case 0:
case 1:
{
_npcSpawns = (_cabal == SevenSigns.CABAL_DAWN) ? FESTIVAL_DAWN_PRIMARY_SPAWNS[_levelRange] : FESTIVAL_DUSK_PRIMARY_SPAWNS[_levelRange];
break;
}
case 2:
{
_npcSpawns = (_cabal == SevenSigns.CABAL_DAWN) ? FESTIVAL_DAWN_SECONDARY_SPAWNS[_levelRange] : FESTIVAL_DUSK_SECONDARY_SPAWNS[_levelRange];
break;
}
case 3:
{
_npcSpawns = (_cabal == SevenSigns.CABAL_DAWN) ? FESTIVAL_DAWN_CHEST_SPAWNS[_levelRange] : FESTIVAL_DUSK_CHEST_SPAWNS[_levelRange];
break;
}
default:
{
return;
}
}
for (int[] _npcSpawn : _npcSpawns)

View File

@@ -99,10 +99,14 @@ public class EnchantItemHPBonusData implements IXmlReader
case L2Item.SLOT_UNDERWEAR:
case L2Item.SLOT_L_HAND:
case L2Item.SLOT_BELT:
{
item.attach(new FuncTemplate(null, null, StatFunction.ENCHANTHP.getName(), -1, Stats.MAX_HP, 0));
break;
}
default:
{
break;
}
}
}
}

View File

@@ -283,6 +283,7 @@ public final class MultisellData implements IXmlReader
switch (id)
{
case CLAN_REPUTATION:
{
if (player.getClan() == null)
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_A_CLAN_MEMBER_AND_CANNOT_PERFORM_THIS_ACTION);
@@ -299,13 +300,16 @@ public final class MultisellData implements IXmlReader
break;
}
return true;
}
case FAME:
{
if (player.getFame() < amount)
{
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_REPUTATION_TO_DO_THAT);
break;
}
return true;
}
}
return false;
}
@@ -315,16 +319,20 @@ public final class MultisellData implements IXmlReader
switch (id)
{
case CLAN_REPUTATION:
{
player.getClan().takeReputationScore((int) amount, true);
final SystemMessage smsg = SystemMessage.getSystemMessage(SystemMessageId.S1_POINTS_HAVE_BEEN_DEDUCTED_FROM_THE_CLAN_S_REPUTATION_SCORE);
smsg.addLong(amount);
player.sendPacket(smsg);
return true;
}
case FAME:
{
player.setFame(player.getFame() - (int) amount);
player.sendPacket(new UserInfo(player));
player.sendPacket(new ExBrExtraUserInfo(player));
return true;
}
}
return false;
}
@@ -334,13 +342,17 @@ public final class MultisellData implements IXmlReader
switch (id)
{
case CLAN_REPUTATION:
{
player.getClan().addReputationScore((int) amount, true);
break;
}
case FAME:
{
player.setFame((int) (player.getFame() + amount));
player.sendPacket(new UserInfo(player));
player.sendPacket(new ExBrExtraUserInfo(player));
break;
}
}
}
@@ -378,9 +390,13 @@ public final class MultisellData implements IXmlReader
{
case CLAN_REPUTATION:
case FAME:
{
return true;
}
default:
{
return ing.getTemplate() != null;
}
}
}

View File

@@ -197,23 +197,35 @@ public final class SkillTreesData implements IXmlReader
switch (b.getNodeName())
{
case "item":
{
skillLearn.addRequiredItem(new ItemHolder(parseInteger(attrs, "id"), parseInteger(attrs, "count")));
break;
}
case "preRequisiteSkill":
{
skillLearn.addPreReqSkill(new SkillHolder(parseInteger(attrs, "id"), parseInteger(attrs, "lvl")));
break;
}
case "race":
{
skillLearn.addRace(Race.valueOf(b.getTextContent()));
break;
}
case "residenceId":
{
skillLearn.addResidenceId(Integer.valueOf(b.getTextContent()));
break;
}
case "socialClass":
{
skillLearn.setSocialClass(Enum.valueOf(SocialClass.class, b.getTextContent()));
break;
}
case "subClassConditions":
{
skillLearn.addSubclassConditions(parseInteger(attrs, "slot"), parseInteger(attrs, "lvl"));
break;
}
}
}
@@ -885,29 +897,45 @@ public final class SkillTreesData implements IXmlReader
switch (skillType)
{
case CLASS:
{
sl = getClassSkill(id, lvl, player.getLearningClass());
break;
}
case TRANSFORM:
{
sl = getTransformSkill(id, lvl);
break;
}
case FISHING:
{
sl = getFishingSkill(id, lvl);
break;
}
case PLEDGE:
{
sl = getPledgeSkill(id, lvl);
break;
}
case SUBPLEDGE:
{
sl = getSubPledgeSkill(id, lvl);
break;
}
case TRANSFER:
{
sl = getTransferSkill(id, lvl, player.getClassId());
break;
}
case SUBCLASS:
{
sl = getSubClassSkill(id, lvl);
break;
}
case COLLECT:
{
sl = getCollectSkill(id, lvl);
break;
}
}
return sl;
}

View File

@@ -524,9 +524,13 @@ public class AugmentationData
case L2Item.SLOT_LR_FINGER:
case L2Item.SLOT_LR_EAR:
case L2Item.SLOT_NECK:
{
return generateRandomAccessoryAugmentation(lifeStoneLevel, bodyPart, lifeStoneId);
}
default:
{
return generateRandomWeaponAugmentation(lifeStoneLevel, lifeStoneGrade, lifeStoneId, targetItem);
}
}
}
@@ -568,19 +572,29 @@ public class AugmentationData
switch (lifeStoneGrade)
{
case AbstractRefinePacket.GRADE_NONE:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_NG_CHANCE;
break;
}
case AbstractRefinePacket.GRADE_MID:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_MID_CHANCE;
break;
}
case AbstractRefinePacket.GRADE_HIGH:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_HIGH_CHANCE;
break;
}
case AbstractRefinePacket.GRADE_TOP:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_TOP_CHANCE;
break;
}
default:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_NG_CHANCE;
}
}
int c = Rnd.get(100);
@@ -653,19 +667,29 @@ public class AugmentationData
switch (lifeStoneGrade)
{
case AbstractRefinePacket.GRADE_NONE:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_NG_CHANCE;
break;
}
case AbstractRefinePacket.GRADE_MID:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_MID_CHANCE;
break;
}
case AbstractRefinePacket.GRADE_HIGH:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_HIGH_CHANCE;
break;
}
case AbstractRefinePacket.GRADE_TOP:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_TOP_CHANCE;
break;
}
default:
{
gradeChance = Config.RETAIL_LIKE_AUGMENTATION_NG_CHANCE;
}
}
int c = Rnd.get(100);
@@ -715,6 +739,7 @@ public class AugmentationData
switch (lifeStoneGrade)
{
case AbstractRefinePacket.GRADE_NONE:
{
if (Rnd.get(1, 100) <= Config.AUGMENTATION_NG_SKILL_CHANCE)
{
generateSkill = true;
@@ -724,7 +749,9 @@ public class AugmentationData
generateGlow = true;
}
break;
}
case AbstractRefinePacket.GRADE_MID:
{
if (Rnd.get(1, 100) <= Config.AUGMENTATION_MID_SKILL_CHANCE)
{
generateSkill = true;
@@ -734,7 +761,9 @@ public class AugmentationData
generateGlow = true;
}
break;
}
case AbstractRefinePacket.GRADE_HIGH:
{
if (Rnd.get(1, 100) <= Config.AUGMENTATION_HIGH_SKILL_CHANCE)
{
generateSkill = true;
@@ -744,7 +773,9 @@ public class AugmentationData
generateGlow = true;
}
break;
}
case AbstractRefinePacket.GRADE_TOP:
{
if (Rnd.get(1, 100) <= Config.AUGMENTATION_TOP_SKILL_CHANCE)
{
generateSkill = true;
@@ -754,11 +785,14 @@ public class AugmentationData
generateGlow = true;
}
break;
}
case AbstractRefinePacket.GRADE_ACC:
{
if (Rnd.get(1, 100) <= Config.AUGMENTATION_ACC_SKILL_CHANCE)
{
generateSkill = true;
}
}
}
if (!generateSkill && (Rnd.get(1, 100) <= Config.AUGMENTATION_BASESTAT_CHANCE))
@@ -805,14 +839,20 @@ public class AugmentationData
switch (resultColor)
{
case 1: // blue skill
{
stat34 = _blueSkills.get(lifeStoneLevel).get(Rnd.get(0, _blueSkills.get(lifeStoneLevel).size() - 1));
break;
}
case 2: // purple skill
{
stat34 = _purpleSkills.get(lifeStoneLevel).get(Rnd.get(0, _purpleSkills.get(lifeStoneLevel).size() - 1));
break;
}
case 3: // red skill
{
stat34 = _redSkills.get(lifeStoneLevel).get(Rnd.get(0, _redSkills.get(lifeStoneLevel).size() - 1));
break;
}
}
}
@@ -951,19 +991,27 @@ public class AugmentationData
switch (bodyPart)
{
case L2Item.SLOT_LR_FINGER:
{
base = ACC_RING_START + (ACC_RING_BLOCKSIZE * lifeStoneLevel);
skillsLength = ACC_RING_SKILLS;
break;
}
case L2Item.SLOT_LR_EAR:
{
base = ACC_EAR_START + (ACC_EAR_BLOCKSIZE * lifeStoneLevel);
skillsLength = ACC_EAR_SKILLS;
break;
}
case L2Item.SLOT_NECK:
{
base = ACC_NECK_START + (ACC_NECK_BLOCKSIZE * lifeStoneLevel);
skillsLength = ACC_NECK_SKILLS;
break;
}
default:
{
return null;
}
}
final int resultColor = Rnd.get(0, 3);

View File

@@ -99,12 +99,16 @@ public class NpcPersonalAIData
switch (key)
{
case "disableRandomAnimation":
{
npc.setRandomAnimationEnabled((map.get(key) == 0));
break;
}
case "disableRandomWalk":
{
npc.setIsNoRndWalk((map.get(key) == 1));
spawn.setIsNoRndWalk((map.get(key) == 1));
break;
}
}
}
}

View File

@@ -161,10 +161,14 @@ public final class SpawnTable implements IXmlReader
{
case "disableRandomAnimation":
case "disableRandomWalk":
{
val = Boolean.parseBoolean(c.getTextContent()) ? 1 : 0;
break;
}
default:
{
val = Integer.parseInt(c.getTextContent());
}
}
map.put(c.getNodeName(), val);
}
@@ -324,16 +328,22 @@ public final class SpawnTable implements IXmlReader
switch (spawnInfo.getInt("periodOfDay", 0))
{
case 0: // default
{
ret += spawnDat.init();
break;
}
case 1: // Day
{
DayNightSpawnManager.getInstance().addDayCreature(spawnDat);
ret = 1;
break;
}
case 2: // Night
{
DayNightSpawnManager.getInstance().addNightCreature(spawnDat);
ret = 1;
break;
}
}
addSpawn(spawnDat);

View File

@@ -200,14 +200,20 @@ public final class CastleManager implements InstanceListManager
switch (sealStrifeOwner)
{
case SevenSigns.CABAL_DUSK:
{
maxTax = 5;
break;
}
case SevenSigns.CABAL_DAWN:
{
maxTax = 25;
break;
}
default: // no owner
{
maxTax = 15;
break;
}
}
for (Castle castle : _castles)
{

View File

@@ -401,19 +401,33 @@ public final class DimensionalRiftManager
switch (type)
{
case 1:
{
return Config.RIFT_ENTER_COST_RECRUIT;
}
case 2:
{
return Config.RIFT_ENTER_COST_SOLDIER;
}
case 3:
{
return Config.RIFT_ENTER_COST_OFFICER;
}
case 4:
{
return Config.RIFT_ENTER_COST_CAPTAIN;
}
case 5:
{
return Config.RIFT_ENTER_COST_COMMANDER;
}
case 6:
{
return Config.RIFT_ENTER_COST_HERO;
}
default:
{
throw new IndexOutOfBoundsException();
}
}
}

View File

@@ -280,29 +280,37 @@ public final class FourSepulchersManager
switch (npcId)
{
case 31921: // conquerors
{
spawnDat.setX(181061);
spawnDat.setY(-85595);
spawnDat.setZ(-7200);
spawnDat.setHeading(-32584);
break;
}
case 31922: // emperors
{
spawnDat.setX(179292);
spawnDat.setY(-88981);
spawnDat.setZ(-7200);
spawnDat.setHeading(-33272);
break;
}
case 31923: // sages
{
spawnDat.setX(173202);
spawnDat.setY(-87004);
spawnDat.setZ(-7200);
spawnDat.setHeading(-16248);
break;
}
case 31924: // judges
{
spawnDat.setX(175606);
spawnDat.setY(-82853);
spawnDat.setZ(-7200);
spawnDat.setHeading(-16248);
break;
}
}
_managers.add(spawnDat);
SpawnTable.getInstance().addNewSpawn(spawnDat, false);

View File

@@ -52,20 +52,28 @@ public final class SoDManager
switch (seedType)
{
case SODTYPE:
{
// Seed of Destruction
GlobalVariablesManager.getInstance().set("SoDState", _SoDState);
GlobalVariablesManager.getInstance().set("SoDTiatKilled", _SoDTiatKilled);
GlobalVariablesManager.getInstance().set("SoDLSCDate", _SoDLastStateChangeDate.getTimeInMillis());
break;
}
case SOITYPE:
{
// Seed of Infinity
break;
}
case SOATYPE:
{
// Seed of Annihilation
break;
}
default:
{
_log.warning(getClass().getSimpleName() + ": Unknown SeedType in SaveData: " + seedType);
break;
}
}
}
@@ -90,9 +98,12 @@ public final class SoDManager
switch (_SoDState)
{
case 1:
{
// do nothing, players should kill Tiat a few times
break;
}
case 2:
{
// Conquest Complete state, if too much time is passed than change to defense state
final long timePast = System.currentTimeMillis() - _SoDLastStateChangeDate.getTimeInMillis();
if (timePast >= Config.SOD_STAGE_2_LENGTH)
@@ -105,12 +116,17 @@ public final class SoDManager
ThreadPoolManager.schedule(new UpdateSoDStateTask(), Config.SOD_STAGE_2_LENGTH - timePast);
}
break;
}
case 3:
{
// not implemented
setSoDState(1, true);
break;
}
default:
{
_log.warning(getClass().getSimpleName() + ": Unknown Seed of Destruction state(" + _SoDState + ")! ");
}
}
}
@@ -178,15 +194,23 @@ public final class SoDManager
switch (_SoDState)
{
case 1:
{
return -1;
}
case 2:
{
return ((_SoDLastStateChangeDate.getTimeInMillis() + Config.SOD_STAGE_2_LENGTH) - System.currentTimeMillis());
}
case 3:
{
// not implemented yet
return -1;
}
default:
{
// this should not happen!
return -1;
}
}
}

View File

@@ -148,17 +148,23 @@ public class SoIManager
{
case 1:
case 4:
{
// EnergySeeds.SoiMouthSpawn();
// EnergySeeds.SoiAbyssGaze2Spawn();
break;
}
case 5:
{
// EnergySeeds.SoiCloseMouthSpawn();
// EnergySeeds.SoiAbyssGaze2Spawn();
break;
}
default:
{
// EnergySeeds.SoiCloseMouthSpawn();
// EnergySeeds.SoiAbyssGaze1Spawn();
break;
}
}
}

View File

@@ -821,13 +821,19 @@ public final class TerritoryWarManager implements Siegable
case 0: // town npcs
case 1: // fortress npcs
case 2: // castle npcs
{
_territoryList.get(castleId).getSpawnList().add(new TerritoryNPCSpawn(castleId, loc, npcId, spawnType, null));
break;
}
case 3: // ward spawns
{
_territoryList.get(castleId).addWardSpawnPlace(loc);
break;
}
default:
{
_log.warning(getClass().getSimpleName() + ": Unknown npc type for " + rs.getInt("id"));
}
}
}
}

View File

@@ -205,17 +205,29 @@ public final class L2ArmorSet
switch (slot)
{
case Inventory.PAPERDOLL_CHEST:
{
return _chestId == itemId;
}
case Inventory.PAPERDOLL_LEGS:
{
return _legs.contains(itemId);
}
case Inventory.PAPERDOLL_HEAD:
{
return _head.contains(itemId);
}
case Inventory.PAPERDOLL_GLOVES:
{
return _gloves.contains(itemId);
}
case Inventory.PAPERDOLL_FEET:
{
return _feet.contains(itemId);
}
default:
{
return false;
}
}
}

View File

@@ -554,58 +554,86 @@ public class L2Clan implements IIdentifiable, INamable
switch (pledgeType)
{
case 0:
{
switch (getLevel())
{
case 3:
{
limit = 30;
break;
}
case 2:
{
limit = 20;
break;
}
case 1:
{
limit = 15;
break;
}
case 0:
{
limit = 10;
break;
}
default:
{
limit = 40;
break;
}
}
break;
}
case -1:
{
limit = 20;
break;
}
case 100:
case 200:
{
switch (getLevel())
{
case 11:
{
limit = 30;
break;
}
default:
{
limit = 20;
break;
}
}
break;
}
case 1001:
case 1002:
case 2001:
case 2002:
{
switch (getLevel())
{
case 9:
case 10:
case 11:
{
limit = 25;
break;
}
default:
{
limit = 10;
break;
}
}
break;
}
default:
{
break;
}
}
return limit;

View File

@@ -502,7 +502,6 @@ public class StatsSet implements IParserAdvUtils
return val == null ? defaultValue : String.valueOf(val);
}
@Override
@SuppressWarnings("unchecked")
public <T extends Enum<T>> T getEnum(String key, Class<T> enumClass)

View File

@@ -430,16 +430,20 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
switch (zone)
{
case PVP:
{
if ((instance != null) && instance.isPvPInstance())
{
return true;
}
return (_zones[ZoneId.PVP.ordinal()] > 0) && (_zones[ZoneId.PEACE.ordinal()] == 0);
}
case PEACE:
{
if ((instance != null) && instance.isPvPInstance())
{
return false;
}
}
}
return _zones[zone.ordinal()] > 0;
}
@@ -1616,15 +1620,19 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
switch (skill.getTargetType())
{
case AREA_SUMMON: // We need it to correct facing
{
target = getSummon();
break;
}
case AURA:
case AURA_CORPSE_MOB:
case FRONT_AURA:
case BEHIND_AURA:
case GROUND:
{
target = this;
break;
}
case SELF:
case PET:
case SERVITOR:
@@ -1634,8 +1642,11 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
case CLAN:
case PARTY_CLAN:
case COMMAND_CHANNEL:
{
doit = true;
}
default:
{
if (targets.length == 0)
{
if (simultaneously)
@@ -1668,6 +1679,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
{
target = (L2Character) getTarget();
}
}
}
beginCast(skill, simultaneously, target, targets);
}
@@ -5142,9 +5154,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
switch (getAttackType())
{
case BOW:
{
return (int) ((1500 * 333 * getStat().getWeaponReuseModifier(null)) / getStat().getPAtkSpd());
}
case CROSSBOW:
{
return (int) ((1200 * 333 * getStat().getWeaponReuseModifier(null)) / getStat().getPAtkSpd());
}
}
}
@@ -5330,10 +5346,14 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
case FRONT_AURA:
case BEHIND_AURA:
case AURA_CORPSE_MOB:
{
break;
}
default:
{
abortCast();
return;
}
}
}
@@ -5788,10 +5808,14 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
{
case 51: // Lure
case 511: // Temptation
{
break;
}
default:
{
// add attacker into list
((L2Character) target).addAttackerToAttackByList(this);
}
}
}
// notify target AI about the attack

View File

@@ -987,24 +987,32 @@ public class L2Npc extends L2Character
case 31129: // Dawn Festival Guides
case 31130: //
case 31131: //
{
filename += "festival/dawn_guide.htm";
break;
}
case 31137: //
case 31138: //
case 31139: // Dusk Festival Guides
case 31140: //
case 31141: //
{
filename += "festival/dusk_guide.htm";
break;
}
case 31092: // Black Marketeer of Mammon
{
filename += "blkmrkt_1.htm";
break;
}
case 31113: // Merchant of Mammon
{
if (Config.ALT_STRICT_SEVENSIGNS)
{
switch (compWinner)
{
case SevenSigns.CABAL_DAWN:
{
if ((playerCabal != compWinner) || (playerCabal != sealAvariceOwner))
{
player.sendPacket(SystemMessageId.ONLY_A_LORD_OF_DAWN_MAY_USE_THIS);
@@ -1012,7 +1020,9 @@ public class L2Npc extends L2Character
return;
}
break;
}
case SevenSigns.CABAL_DUSK:
{
if ((playerCabal != compWinner) || (playerCabal != sealAvariceOwner))
{
player.sendPacket(SystemMessageId.ONLY_A_REVOLUTIONARY_OF_DUSK_MAY_USE_THIS);
@@ -1020,19 +1030,25 @@ public class L2Npc extends L2Character
return;
}
break;
}
default:
{
player.sendPacket(SystemMessageId.THE_SSQ_COMPETITION_PERIOD_IS_UNDERWAY);
return;
}
}
}
filename += "mammmerch_1.htm";
break;
}
case 31126: // Blacksmith of Mammon
{
if (Config.ALT_STRICT_SEVENSIGNS)
{
switch (compWinner)
{
case SevenSigns.CABAL_DAWN:
{
if ((playerCabal != compWinner) || (playerCabal != sealGnosisOwner))
{
player.sendPacket(SystemMessageId.ONLY_A_LORD_OF_DAWN_MAY_USE_THIS);
@@ -1040,7 +1056,9 @@ public class L2Npc extends L2Character
return;
}
break;
}
case SevenSigns.CABAL_DUSK:
{
if ((playerCabal != compWinner) || (playerCabal != sealGnosisOwner))
{
player.sendPacket(SystemMessageId.ONLY_A_REVOLUTIONARY_OF_DUSK_MAY_USE_THIS);
@@ -1048,13 +1066,17 @@ public class L2Npc extends L2Character
return;
}
break;
}
default:
{
player.sendPacket(SystemMessageId.THE_SSQ_COMPETITION_PERIOD_IS_UNDERWAY);
return;
}
}
}
filename += "mammblack_1.htm";
break;
}
case 31132:
case 31133:
case 31134:
@@ -1065,9 +1087,12 @@ public class L2Npc extends L2Character
case 31144:
case 31145:
case 31146:
{
filename += "festival/festival_witch.htm";
break;
}
case 31688:
{
if (player.isNoble())
{
filename = Olympiad.OLYMPIAD_HTML_PATH + "noble_main.htm";
@@ -1077,11 +1102,13 @@ public class L2Npc extends L2Character
filename = (getHtmlPath(npcId, val));
}
break;
}
case 31690:
case 31769:
case 31770:
case 31771:
case 31772:
{
if (player.isHero() || player.isNoble())
{
filename = Olympiad.OLYMPIAD_HTML_PATH + "hero_main.htm";
@@ -1091,7 +1118,9 @@ public class L2Npc extends L2Character
filename = (getHtmlPath(npcId, val));
}
break;
}
case 36402:
{
if (player.getOlympiadBuffCount() > 0)
{
filename = (player.getOlympiadBuffCount() == Config.ALT_OLY_MAX_BUFFS ? Olympiad.OLYMPIAD_HTML_PATH + "olympiad_buffs.htm" : Olympiad.OLYMPIAD_HTML_PATH + "olympiad_5buffs.htm");
@@ -1101,7 +1130,9 @@ public class L2Npc extends L2Character
filename = Olympiad.OLYMPIAD_HTML_PATH + "olympiad_nobuffs.htm";
}
break;
}
case 30298: // Blacksmith Pinter
{
if (player.isAcademyMember())
{
filename = (getHtmlPath(npcId, 1));
@@ -1111,7 +1142,9 @@ public class L2Npc extends L2Character
filename = (getHtmlPath(npcId, val));
}
break;
}
default:
{
if ((npcId >= 31865) && (npcId <= 31918))
{
if (val == 0)
@@ -1131,6 +1164,7 @@ public class L2Npc extends L2Character
// Get the text of the selected HTML file in function of the npcId and of the page number
filename = (getHtmlPath(npcId, val));
break;
}
}
// Send a Server->Client NpcHtmlMessage containing the text of the L2NpcInstance to the L2PcInstance

View File

@@ -612,8 +612,10 @@ public abstract class L2Summon extends L2Playable
{
// OWNER_PET should be cast even if no target has been found
case OWNER_PET:
{
target = getOwner();
break;
}
// PARTY, AURA, SELF should be cast even if no target has been found
case PARTY:
case AURA:
@@ -622,12 +624,16 @@ public abstract class L2Summon extends L2Playable
case SELF:
case AURA_CORPSE_MOB:
case COMMAND_CHANNEL:
{
target = this;
break;
}
default:
{
// Get the first target of the list
target = skill.getFirstOfTargetList(this);
break;
}
}
// Check the validity of the target

View File

@@ -695,29 +695,45 @@ public final class L2AuctioneerInstance extends L2Npc
switch (nearestTownId)
{
case 911:
{
nearestTown = "GLUDIN";
break;
}
case 912:
{
nearestTown = "GLUDIO";
break;
}
case 916:
{
nearestTown = "DION";
break;
}
case 918:
{
nearestTown = "GIRAN";
break;
}
case 1537:
{
nearestTown = "RUNE";
break;
}
case 1538:
{
nearestTown = "GODARD";
break;
}
case 1714:
{
nearestTown = "SCHUTTGART";
break;
}
default:
{
nearestTown = "ADEN";
break;
}
}
return nearestTown;

View File

@@ -81,20 +81,30 @@ public class L2ClanHallDoormenInstance extends L2DoormenInstance
switch (Integer.parseInt(st.nextToken()))
{
case 1:
{
ok = Evolve.doEvolve(player, this, 9882, 10307, 55);
break;
}
case 2:
{
ok = Evolve.doEvolve(player, this, 4422, 10308, 55);
break;
}
case 3:
{
ok = Evolve.doEvolve(player, this, 4423, 10309, 55);
break;
}
case 4:
{
ok = Evolve.doEvolve(player, this, 4424, 10310, 55);
break;
}
case 5:
{
ok = Evolve.doEvolve(player, this, 10426, 10611, 70);
break;
}
}
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
if (ok)

View File

@@ -294,44 +294,70 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (percent)
{
case 20:
{
cost = Config.CH_HPREG1_FEE;
break;
}
case 40:
{
cost = Config.CH_HPREG2_FEE;
break;
}
case 80:
{
cost = Config.CH_HPREG3_FEE;
break;
}
case 100:
{
cost = Config.CH_HPREG4_FEE;
break;
}
case 120:
{
cost = Config.CH_HPREG5_FEE;
break;
}
case 140:
{
cost = Config.CH_HPREG6_FEE;
break;
}
case 160:
{
cost = Config.CH_HPREG7_FEE;
break;
}
case 180:
{
cost = Config.CH_HPREG8_FEE;
break;
}
case 200:
{
cost = Config.CH_HPREG9_FEE;
break;
}
case 220:
{
cost = Config.CH_HPREG10_FEE;
break;
}
case 240:
{
cost = Config.CH_HPREG11_FEE;
break;
}
case 260:
{
cost = Config.CH_HPREG12_FEE;
break;
}
default:
{
cost = Config.CH_HPREG13_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.CH_HPREG_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
@@ -351,20 +377,30 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (percent)
{
case 5:
{
cost = Config.CH_MPREG1_FEE;
break;
}
case 10:
{
cost = Config.CH_MPREG2_FEE;
break;
}
case 15:
{
cost = Config.CH_MPREG3_FEE;
break;
}
case 30:
{
cost = Config.CH_MPREG4_FEE;
break;
}
default:
{
cost = Config.CH_MPREG5_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.CH_MPREG_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Provides additional MP recovery for clan members in the clan hall.<font color=\"00FFFF\">" + percent + "%</font>");
@@ -383,26 +419,40 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (percent)
{
case 5:
{
cost = Config.CH_EXPREG1_FEE;
break;
}
case 10:
{
cost = Config.CH_EXPREG2_FEE;
break;
}
case 15:
{
cost = Config.CH_EXPREG3_FEE;
break;
}
case 25:
{
cost = Config.CH_EXPREG4_FEE;
break;
}
case 35:
{
cost = Config.CH_EXPREG5_FEE;
break;
}
case 40:
{
cost = Config.CH_EXPREG6_FEE;
break;
}
default:
{
cost = Config.CH_EXPREG7_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.CH_EXPREG_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Restores the Exp of any clan member who is resurrected in the clan hall.<font color=\"00FFFF\">" + percent + "%</font>");
@@ -436,48 +486,76 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (percent)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/clanHallManager/functions-cancel_confirmed.htm");
break;
}
case 20:
{
fee = Config.CH_HPREG1_FEE;
break;
}
case 40:
{
fee = Config.CH_HPREG2_FEE;
break;
}
case 80:
{
fee = Config.CH_HPREG3_FEE;
break;
}
case 100:
{
fee = Config.CH_HPREG4_FEE;
break;
}
case 120:
{
fee = Config.CH_HPREG5_FEE;
break;
}
case 140:
{
fee = Config.CH_HPREG6_FEE;
break;
}
case 160:
{
fee = Config.CH_HPREG7_FEE;
break;
}
case 180:
{
fee = Config.CH_HPREG8_FEE;
break;
}
case 200:
{
fee = Config.CH_HPREG9_FEE;
break;
}
case 220:
{
fee = Config.CH_HPREG10_FEE;
break;
}
case 240:
{
fee = Config.CH_HPREG11_FEE;
break;
}
case 260:
{
fee = Config.CH_HPREG12_FEE;
break;
}
default:
{
fee = Config.CH_HPREG13_FEE;
break;
}
}
if (!getClanHall().updateFunctions(player, ClanHall.FUNC_RESTORE_HP, percent, fee, Config.CH_HPREG_FEE_RATIO, (getClanHall().getFunction(ClanHall.FUNC_RESTORE_HP) == null)))
{
@@ -518,24 +596,36 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (percent)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/clanHallManager/functions-cancel_confirmed.htm");
break;
}
case 5:
{
fee = Config.CH_MPREG1_FEE;
break;
}
case 10:
{
fee = Config.CH_MPREG2_FEE;
break;
}
case 15:
{
fee = Config.CH_MPREG3_FEE;
break;
}
case 30:
{
fee = Config.CH_MPREG4_FEE;
break;
}
default:
{
fee = Config.CH_MPREG5_FEE;
break;
}
}
if (!getClanHall().updateFunctions(player, ClanHall.FUNC_RESTORE_MP, percent, fee, Config.CH_MPREG_FEE_RATIO, (getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP) == null)))
{
@@ -576,30 +666,46 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (percent)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/clanHallManager/functions-cancel_confirmed.htm");
break;
}
case 5:
{
fee = Config.CH_EXPREG1_FEE;
break;
}
case 10:
{
fee = Config.CH_EXPREG2_FEE;
break;
}
case 15:
{
fee = Config.CH_EXPREG3_FEE;
break;
}
case 25:
{
fee = Config.CH_EXPREG4_FEE;
break;
}
case 35:
{
fee = Config.CH_EXPREG5_FEE;
break;
}
case 40:
{
fee = Config.CH_EXPREG6_FEE;
break;
}
default:
{
fee = Config.CH_EXPREG7_FEE;
break;
}
}
if (!getClanHall().updateFunctions(player, ClanHall.FUNC_RESTORE_EXP, percent, fee, Config.CH_EXPREG_FEE_RATIO, (getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP) == null)))
{
@@ -637,17 +743,25 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (grade)
{
case 0:
{
html.replace("%change_hp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery hp_cancel\">Deactivate</a>]" + hp_grade0);
break;
}
case 1:
{
html.replace("%change_hp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery hp_cancel\">Deactivate</a>]" + hp_grade1);
break;
}
case 2:
{
html.replace("%change_hp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery hp_cancel\">Deactivate</a>]" + hp_grade2);
break;
}
case 3:
{
html.replace("%change_hp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery hp_cancel\">Deactivate</a>]" + hp_grade3);
break;
}
}
}
else
@@ -658,17 +772,25 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (grade)
{
case 0:
{
html.replace("%change_hp%", hp_grade0);
break;
}
case 1:
{
html.replace("%change_hp%", hp_grade1);
break;
}
case 2:
{
html.replace("%change_hp%", hp_grade2);
break;
}
case 3:
{
html.replace("%change_hp%", hp_grade3);
break;
}
}
}
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_EXP) != null)
@@ -679,17 +801,25 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (grade)
{
case 0:
{
html.replace("%change_exp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery exp_cancel\">Deactivate</a>]" + exp_grade0);
break;
}
case 1:
{
html.replace("%change_exp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery exp_cancel\">Deactivate</a>]" + exp_grade1);
break;
}
case 2:
{
html.replace("%change_exp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery exp_cancel\">Deactivate</a>]" + exp_grade2);
break;
}
case 3:
{
html.replace("%change_exp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery exp_cancel\">Deactivate</a>]" + exp_grade3);
break;
}
}
}
else
@@ -700,17 +830,25 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (grade)
{
case 0:
{
html.replace("%change_exp%", exp_grade0);
break;
}
case 1:
{
html.replace("%change_exp%", exp_grade1);
break;
}
case 2:
{
html.replace("%change_exp%", exp_grade2);
break;
}
case 3:
{
html.replace("%change_exp%", exp_grade3);
break;
}
}
}
if (getClanHall().getFunction(ClanHall.FUNC_RESTORE_MP) != null)
@@ -721,17 +859,25 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (grade)
{
case 0:
{
html.replace("%change_mp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery mp_cancel\">Deactivate</a>]" + mp_grade0);
break;
}
case 1:
{
html.replace("%change_mp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery mp_cancel\">Deactivate</a>]" + mp_grade1);
break;
}
case 2:
{
html.replace("%change_mp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery mp_cancel\">Deactivate</a>]" + mp_grade2);
break;
}
case 3:
{
html.replace("%change_mp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery mp_cancel\">Deactivate</a>]" + mp_grade3);
break;
}
}
}
else
@@ -742,17 +888,25 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (grade)
{
case 0:
{
html.replace("%change_mp%", mp_grade0);
break;
}
case 1:
{
html.replace("%change_mp%", mp_grade1);
break;
}
case 2:
{
html.replace("%change_mp%", mp_grade2);
break;
}
case 3:
{
html.replace("%change_mp%", mp_grade3);
break;
}
}
}
sendHtmlMessage(player, html);
@@ -802,14 +956,20 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (stage)
{
case 1:
{
cost = Config.CH_ITEM1_FEE;
break;
}
case 2:
{
cost = Config.CH_ITEM2_FEE;
break;
}
default:
{
cost = Config.CH_ITEM3_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.CH_ITEM_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Allow the purchase of special items at fixed intervals.");
@@ -828,29 +988,45 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (stage)
{
case 1:
{
cost = Config.CH_SUPPORT1_FEE;
break;
}
case 2:
{
cost = Config.CH_SUPPORT2_FEE;
break;
}
case 3:
{
cost = Config.CH_SUPPORT3_FEE;
break;
}
case 4:
{
cost = Config.CH_SUPPORT4_FEE;
break;
}
case 5:
{
cost = Config.CH_SUPPORT5_FEE;
break;
}
case 6:
{
cost = Config.CH_SUPPORT6_FEE;
break;
}
case 7:
{
cost = Config.CH_SUPPORT7_FEE;
break;
}
default:
{
cost = Config.CH_SUPPORT8_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.CH_SUPPORT_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Enables the use of supplementary magic.");
@@ -869,11 +1045,15 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (stage)
{
case 1:
{
cost = Config.CH_TELE1_FEE;
break;
}
default:
{
cost = Config.CH_TELE2_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.CH_TELE_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Teleports clan members in a clan hall to the target <font color=\"00FFFF\">Stage " + stage + "</font> staging area");
@@ -912,18 +1092,26 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (lvl)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/clanHallManager/functions-cancel_confirmed.htm");
break;
}
case 1:
{
fee = Config.CH_ITEM1_FEE;
break;
}
case 2:
{
fee = Config.CH_ITEM2_FEE;
break;
}
default:
{
fee = Config.CH_ITEM3_FEE;
break;
}
}
if (!getClanHall().updateFunctions(player, ClanHall.FUNC_ITEM_CREATE, lvl, fee, Config.CH_ITEM_FEE_RATIO, (getClanHall().getFunction(ClanHall.FUNC_ITEM_CREATE) == null)))
{
@@ -964,15 +1152,21 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (lvl)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/clanHallManager/functions-cancel_confirmed.htm");
break;
}
case 1:
{
fee = Config.CH_TELE1_FEE;
break;
}
default:
{
fee = Config.CH_TELE2_FEE;
break;
}
}
if (!getClanHall().updateFunctions(player, ClanHall.FUNC_TELEPORT, lvl, fee, Config.CH_TELE_FEE_RATIO, (getClanHall().getFunction(ClanHall.FUNC_TELEPORT) == null)))
{
@@ -1013,33 +1207,51 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (lvl)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/clanHallManager/functions-cancel_confirmed.htm");
break;
}
case 1:
{
fee = Config.CH_SUPPORT1_FEE;
break;
}
case 2:
{
fee = Config.CH_SUPPORT2_FEE;
break;
}
case 3:
{
fee = Config.CH_SUPPORT3_FEE;
break;
}
case 4:
{
fee = Config.CH_SUPPORT4_FEE;
break;
}
case 5:
{
fee = Config.CH_SUPPORT5_FEE;
break;
}
case 6:
{
fee = Config.CH_SUPPORT6_FEE;
break;
}
case 7:
{
fee = Config.CH_SUPPORT7_FEE;
break;
}
default:
{
fee = Config.CH_SUPPORT8_FEE;
break;
}
}
if (!getClanHall().updateFunctions(player, ClanHall.FUNC_SUPPORT, lvl, fee, Config.CH_SUPPORT_FEE_RATIO, (getClanHall().getFunction(ClanHall.FUNC_SUPPORT) == null)))
{
@@ -1083,17 +1295,25 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (grade)
{
case 0:
{
html.replace("%change_support%", "[<a action=\"bypass -h npc_%objectId%_manage other support_cancel\">Deactivate</a>]" + support_grade0);
break;
}
case 1:
{
html.replace("%change_support%", "[<a action=\"bypass -h npc_%objectId%_manage other support_cancel\">Deactivate</a>]" + support_grade1);
break;
}
case 2:
{
html.replace("%change_support%", "[<a action=\"bypass -h npc_%objectId%_manage other support_cancel\">Deactivate</a>]" + support_grade2);
break;
}
case 3:
{
html.replace("%change_support%", "[<a action=\"bypass -h npc_%objectId%_manage other support_cancel\">Deactivate</a>]" + support_grade3);
break;
}
}
}
else
@@ -1104,17 +1324,25 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (grade)
{
case 0:
{
html.replace("%change_support%", support_grade0);
break;
}
case 1:
{
html.replace("%change_support%", support_grade1);
break;
}
case 2:
{
html.replace("%change_support%", support_grade2);
break;
}
case 3:
{
html.replace("%change_support%", support_grade3);
break;
}
}
}
if (getClanHall().getFunction(ClanHall.FUNC_ITEM_CREATE) != null)
@@ -1168,11 +1396,15 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (stage)
{
case 1:
{
cost = Config.CH_CURTAIN1_FEE;
break;
}
default:
{
cost = Config.CH_CURTAIN2_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.CH_CURTAIN_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "These curtains can be used to decorate the clan hall.");
@@ -1191,11 +1423,15 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (stage)
{
case 1:
{
cost = Config.CH_FRONT1_FEE;
break;
}
default:
{
cost = Config.CH_FRONT2_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.CH_FRONT_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Used to decorate the clan hall.");
@@ -1229,15 +1465,21 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (lvl)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/clanHallManager/functions-cancel_confirmed.htm");
break;
}
case 1:
{
fee = Config.CH_CURTAIN1_FEE;
break;
}
default:
{
fee = Config.CH_CURTAIN2_FEE;
break;
}
}
if (!getClanHall().updateFunctions(player, ClanHall.FUNC_DECO_CURTAINS, lvl, fee, Config.CH_CURTAIN_FEE_RATIO, (getClanHall().getFunction(ClanHall.FUNC_DECO_CURTAINS) == null)))
{
@@ -1278,15 +1520,21 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
switch (lvl)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/clanHallManager/functions-cancel_confirmed.htm");
break;
}
case 1:
{
fee = Config.CH_FRONT1_FEE;
break;
}
default:
{
fee = Config.CH_FRONT2_FEE;
break;
}
}
if (!getClanHall().updateFunctions(player, ClanHall.FUNC_DECO_FRONTPLATEFORM, lvl, fee, Config.CH_FRONT_FEE_RATIO, (getClanHall().getFunction(ClanHall.FUNC_DECO_FRONTPLATEFORM) == null)))
{

View File

@@ -203,6 +203,7 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
switch (jobLevel)
{
case 0:
{
if (Config.CLASS_MASTER_SETTINGS.isAllowed(1))
{
sb.append("Come back here when you reached level 20 to change your class.<br>");
@@ -220,7 +221,9 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
sb.append("I can't change your occupation.<br>");
}
break;
}
case 1:
{
if (Config.CLASS_MASTER_SETTINGS.isAllowed(2))
{
sb.append("Come back here when you reached level 40 to change your class.<br>");
@@ -234,7 +237,9 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
sb.append("I can't change your occupation.<br>");
}
break;
}
case 2:
{
if (Config.CLASS_MASTER_SETTINGS.isAllowed(3))
{
sb.append("Come back here when you reached level 76 to change your class.<br>");
@@ -244,9 +249,12 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
sb.append("I can't change your occupation.<br>");
}
break;
}
case 3:
{
sb.append("There is no class change available for you anymore.<br>");
break;
}
}
sb.append("</body></html>");
html.setHtml(sb.toString());
@@ -414,13 +422,21 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
switch (level)
{
case 0:
{
return 20;
}
case 1:
{
return 40;
}
case 2:
{
return 76;
}
default:
{
return Integer.MAX_VALUE;
}
}
}

View File

@@ -103,56 +103,84 @@ public final class L2CubicInstance implements IIdentifiable
switch (_cubicId)
{
case STORM_CUBIC:
{
_skills.add(SkillData.getInstance().getSkill(4049, level));
break;
}
case VAMPIRIC_CUBIC:
{
_skills.add(SkillData.getInstance().getSkill(4050, level));
break;
}
case LIFE_CUBIC:
{
_skills.add(SkillData.getInstance().getSkill(4051, level));
doAction();
break;
}
case VIPER_CUBIC:
{
_skills.add(SkillData.getInstance().getSkill(4052, level));
break;
}
case POLTERGEIST_CUBIC:
{
_skills.add(SkillData.getInstance().getSkill(4053, level));
_skills.add(SkillData.getInstance().getSkill(4054, level));
_skills.add(SkillData.getInstance().getSkill(4055, level));
break;
}
case BINDING_CUBIC:
{
_skills.add(SkillData.getInstance().getSkill(4164, level));
break;
}
case AQUA_CUBIC:
{
_skills.add(SkillData.getInstance().getSkill(4165, level));
break;
}
case SPARK_CUBIC:
{
_skills.add(SkillData.getInstance().getSkill(4166, level));
break;
}
case ATTRACT_CUBIC:
{
_skills.add(SkillData.getInstance().getSkill(5115, level));
_skills.add(SkillData.getInstance().getSkill(5116, level));
break;
}
case SMART_CUBIC_ARCANALORD:
{
_skills.add(SkillData.getInstance().getSkill(4051, 7));
_skills.add(SkillData.getInstance().getSkill(4165, 9));
break;
}
case SMART_CUBIC_ELEMENTALMASTER:
{
_skills.add(SkillData.getInstance().getSkill(4049, 8));
_skills.add(SkillData.getInstance().getSkill(4166, 9));
break;
}
case SMART_CUBIC_SPECTRALMASTER:
{
_skills.add(SkillData.getInstance().getSkill(4049, 8));
_skills.add(SkillData.getInstance().getSkill(4052, 6));
break;
}
case SMART_CUBIC_EVATEMPLAR:
{
_skills.add(SkillData.getInstance().getSkill(4053, 8));
_skills.add(SkillData.getInstance().getSkill(4165, 9));
break;
}
case SMART_CUBIC_SHILLIENTEMPLAR:
{
_skills.add(SkillData.getInstance().getSkill(4049, 8));
_skills.add(SkillData.getInstance().getSkill(5115, 4));
break;
}
}
_disappearTask = ThreadPoolManager.schedule(new CubicDisappear(this), cubicDuration * 1000); // disappear
}
@@ -180,11 +208,15 @@ public final class L2CubicInstance implements IIdentifiable
case SMART_CUBIC_SPECTRALMASTER:
case SMART_CUBIC_EVATEMPLAR:
case SMART_CUBIC_SHILLIENTEMPLAR:
{
_actionTask = ThreadPoolManager.scheduleAtFixedRate(new CubicAction(this, _cubicSkillChance), 0, _cubicDelay);
break;
}
case LIFE_CUBIC:
{
_actionTask = ThreadPoolManager.scheduleAtFixedRate(new CubicHeal(this), 0, _cubicDelay);
break;
}
}
}

View File

@@ -63,6 +63,7 @@ public class L2DawnPriestInstance extends L2SignsPriestInstance
switch (playerCabal)
{
case SevenSigns.CABAL_DAWN:
{
if (isCompResultsPeriod)
{
filename += "dawn_priest_5.htm";
@@ -98,7 +99,9 @@ public class L2DawnPriestInstance extends L2SignsPriestInstance
filename += "dawn_priest_1b.htm";
}
break;
}
case SevenSigns.CABAL_DUSK:
{
if (isSealValidationPeriod)
{
filename += "dawn_priest_3a.htm";
@@ -108,7 +111,9 @@ public class L2DawnPriestInstance extends L2SignsPriestInstance
filename += "dawn_priest_3b.htm";
}
break;
}
default:
{
if (isCompResultsPeriod)
{
filename += "dawn_priest_5.htm";
@@ -137,6 +142,7 @@ public class L2DawnPriestInstance extends L2SignsPriestInstance
filename += "dawn_priest_1a.htm";
}
break;
}
}
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());

View File

@@ -63,6 +63,7 @@ public class L2DuskPriestInstance extends L2SignsPriestInstance
switch (playerCabal)
{
case SevenSigns.CABAL_DUSK:
{
if (isCompResultsPeriod)
{
filename += "dusk_priest_5.htm";
@@ -98,7 +99,9 @@ public class L2DuskPriestInstance extends L2SignsPriestInstance
filename += "dusk_priest_1b.htm";
}
break;
}
case SevenSigns.CABAL_DAWN:
{
if (isSealValidationPeriod)
{
filename += "dusk_priest_3a.htm";
@@ -108,7 +111,9 @@ public class L2DuskPriestInstance extends L2SignsPriestInstance
filename += "dusk_priest_3b.htm";
}
break;
}
default:
{
if (isCompResultsPeriod)
{
filename += "dusk_priest_5.htm";
@@ -137,6 +142,7 @@ public class L2DuskPriestInstance extends L2SignsPriestInstance
filename += "dusk_priest_1a.htm";
}
break;
}
}
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());

View File

@@ -50,91 +50,112 @@ public final class L2FestivalGuideInstance extends L2Npc
{
case 31127:
case 31132:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_31;
_festivalOracle = SevenSigns.CABAL_DAWN;
_blueStonesNeeded = 900;
_greenStonesNeeded = 540;
_redStonesNeeded = 270;
break;
}
case 31128:
case 31133:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_42;
_festivalOracle = SevenSigns.CABAL_DAWN;
_blueStonesNeeded = 1500;
_greenStonesNeeded = 900;
_redStonesNeeded = 450;
break;
}
case 31129:
case 31134:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_53;
_festivalOracle = SevenSigns.CABAL_DAWN;
_blueStonesNeeded = 3000;
_greenStonesNeeded = 1800;
_redStonesNeeded = 900;
break;
}
case 31130:
case 31135:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_64;
_festivalOracle = SevenSigns.CABAL_DAWN;
_blueStonesNeeded = 4500;
_greenStonesNeeded = 2700;
_redStonesNeeded = 1350;
break;
}
case 31131:
case 31136:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_NONE;
_festivalOracle = SevenSigns.CABAL_DAWN;
_blueStonesNeeded = 6000;
_greenStonesNeeded = 3600;
_redStonesNeeded = 1800;
break;
}
case 31137:
case 31142:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_31;
_festivalOracle = SevenSigns.CABAL_DUSK;
_blueStonesNeeded = 900;
_greenStonesNeeded = 540;
_redStonesNeeded = 270;
break;
}
case 31138:
case 31143:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_42;
_festivalOracle = SevenSigns.CABAL_DUSK;
_blueStonesNeeded = 1500;
_greenStonesNeeded = 900;
_redStonesNeeded = 450;
break;
}
case 31139:
case 31144:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_53;
_festivalOracle = SevenSigns.CABAL_DUSK;
_blueStonesNeeded = 3000;
_greenStonesNeeded = 1800;
_redStonesNeeded = 900;
break;
}
case 31140:
case 31145:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_64;
_festivalOracle = SevenSigns.CABAL_DUSK;
_blueStonesNeeded = 4500;
_greenStonesNeeded = 2700;
_redStonesNeeded = 1350;
break;
}
case 31141:
case 31146:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_NONE;
_festivalOracle = SevenSigns.CABAL_DUSK;
_blueStonesNeeded = 6000;
_greenStonesNeeded = 3600;
_redStonesNeeded = 1800;
break;
}
default:
{
_festivalType = SevenSignsFestival.FESTIVAL_LEVEL_MAX_NONE;
_festivalOracle = SevenSigns.CABAL_NULL;
_blueStonesNeeded = 0;
_greenStonesNeeded = 0;
_redStonesNeeded = 0;
}
}
}
@@ -153,13 +174,21 @@ public final class L2FestivalGuideInstance extends L2Npc
switch (stoneType)
{
case SevenSigns.SEAL_STONE_BLUE_ID:
{
return _blueStonesNeeded;
}
case SevenSigns.SEAL_STONE_GREEN_ID:
{
return _greenStonesNeeded;
}
case SevenSigns.SEAL_STONE_RED_ID:
{
return _redStonesNeeded;
}
default:
{
return -1;
}
}
}

View File

@@ -134,18 +134,24 @@ public class L2FortCommanderInstance extends L2DefenderInstance
switch (spawn2.getMessageId())
{
case 1:
{
npcString = NpcStringId.ATTACKING_THE_ENEMY_S_REINFORCEMENTS_IS_NECESSARY_TIME_TO_DIE;
break;
}
case 2:
{
if (attacker instanceof L2Summon)
{
attacker = ((L2Summon) attacker).getOwner();
}
npcString = NpcStringId.EVERYONE_CONCENTRATE_YOUR_ATTACKS_ON_S1_SHOW_THE_ENEMY_YOUR_RESOLVE;
break;
}
case 3:
{
npcString = NpcStringId.SPIRIT_OF_FIRE_UNLEASH_YOUR_POWER_BURN_THE_ENEMY;
break;
}
}
if (npcString != null)
{

View File

@@ -407,11 +407,15 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (percent)
{
case 300:
{
cost = Config.FS_HPREG1_FEE;
break;
}
default: // 400
{
cost = Config.FS_HPREG2_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.FS_HPREG_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
@@ -431,11 +435,15 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (percent)
{
case 40:
{
cost = Config.FS_MPREG1_FEE;
break;
}
default: // 50
{
cost = Config.FS_MPREG2_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.FS_MPREG_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Provides additional MP recovery for clan members in the fortress.<font color=\"00FFFF\">" + percent + "%</font>");
@@ -454,11 +462,15 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (percent)
{
case 45:
{
cost = Config.FS_EXPREG1_FEE;
break;
}
default: // 50
{
cost = Config.FS_EXPREG2_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.FS_EXPREG_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Restores the Exp of any clan member who is resurrected in the fortress.<font color=\"00FFFF\">" + percent + "%</font>");
@@ -492,15 +504,21 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (percent)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/fortress/functions-cancel_confirmed.htm");
break;
}
case 300:
{
fee = Config.FS_HPREG1_FEE;
break;
}
default: // 400
{
fee = Config.FS_HPREG2_FEE;
break;
}
}
if (!getFort().updateFunctions(player, Fort.FUNC_RESTORE_HP, percent, fee, Config.FS_HPREG_FEE_RATIO, (getFort().getFunction(Fort.FUNC_RESTORE_HP) == null)))
{
@@ -537,15 +555,21 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (percent)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/fortress/functions-cancel_confirmed.htm");
break;
}
case 40:
{
fee = Config.FS_MPREG1_FEE;
break;
}
default: // 50
{
fee = Config.FS_MPREG2_FEE;
break;
}
}
if (!getFort().updateFunctions(player, Fort.FUNC_RESTORE_MP, percent, fee, Config.FS_MPREG_FEE_RATIO, (getFort().getFunction(Fort.FUNC_RESTORE_MP) == null)))
{
@@ -582,15 +606,21 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (percent)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/fortress/functions-cancel_confirmed.htm");
break;
}
case 45:
{
fee = Config.FS_EXPREG1_FEE;
break;
}
default: // 50
{
fee = Config.FS_EXPREG2_FEE;
break;
}
}
if (!getFort().updateFunctions(player, Fort.FUNC_RESTORE_EXP, percent, fee, Config.FS_EXPREG_FEE_RATIO, (getFort().getFunction(Fort.FUNC_RESTORE_EXP) == null)))
{
@@ -682,11 +712,15 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (stage)
{
case 1:
{
cost = Config.FS_SUPPORT1_FEE;
break;
}
default:
{
cost = Config.FS_SUPPORT2_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.FS_SUPPORT_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Enables the use of supplementary magic.");
@@ -705,11 +739,15 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (stage)
{
case 1:
{
cost = Config.FS_TELE1_FEE;
break;
}
default:
{
cost = Config.FS_TELE2_FEE;
break;
}
}
html.replace("%cost%", cost + "</font>Adena /" + Config.FS_TELE_FEE_RATIO / 1000 / 60 / 60 / 24 + " Day</font>)");
html.replace("%use%", "Teleports clan members in a fort to the target <font color=\"00FFFF\">Stage " + stage + "</font> staging area");
@@ -743,15 +781,21 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (lvl)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/fortress/functions-cancel_confirmed.htm");
break;
}
case 1:
{
fee = Config.FS_TELE1_FEE;
break;
}
default:
{
fee = Config.FS_TELE2_FEE;
break;
}
}
if (!getFort().updateFunctions(player, Fort.FUNC_TELEPORT, lvl, fee, Config.FS_TELE_FEE_RATIO, (getFort().getFunction(Fort.FUNC_TELEPORT) == null)))
{
@@ -788,15 +832,21 @@ public class L2FortManagerInstance extends L2MerchantInstance
switch (lvl)
{
case 0:
{
fee = 0;
html.setFile(player.getHtmlPrefix(), "data/html/fortress/functions-cancel_confirmed.htm");
break;
}
case 1:
{
fee = Config.FS_SUPPORT1_FEE;
break;
}
default:
{
fee = Config.FS_SUPPORT2_FEE;
break;
}
}
if (!getFort().updateFunctions(player, Fort.FUNC_SUPPORT, lvl, fee, Config.FS_SUPPORT_FEE_RATIO, (getFort().getFunction(Fort.FUNC_SUPPORT) == null)))
{

View File

@@ -81,14 +81,20 @@ public class L2PetManagerInstance extends L2MerchantInstance
switch (val)
{
case 1:
{
exchange(player, 7585, 6650);
break;
}
case 2:
{
exchange(player, 7583, 6648);
break;
}
case 3:
{
exchange(player, 7584, 6649);
break;
}
}
return;
}
@@ -102,20 +108,30 @@ public class L2PetManagerInstance extends L2MerchantInstance
// Info evolve(player, "curent pet summon item", "new pet summon item", "lvl required to evolve")
// To ignore evolve just put value 0 where do you like example: evolve(player, 0, 9882, 55);
case 1:
{
ok = Evolve.doEvolve(player, this, 2375, 9882, 55);
break;
}
case 2:
{
ok = Evolve.doEvolve(player, this, 9882, 10426, 70);
break;
}
case 3:
{
ok = Evolve.doEvolve(player, this, 6648, 10311, 55);
break;
}
case 4:
{
ok = Evolve.doEvolve(player, this, 6650, 10313, 55);
break;
}
case 5:
{
ok = Evolve.doEvolve(player, this, 6649, 10312, 55);
break;
}
}
if (!ok)
{
@@ -134,20 +150,30 @@ public class L2PetManagerInstance extends L2MerchantInstance
{
// Info evolve(player, "curent pet summon item", "new pet summon item", "lvl required to evolve")
case 1:
{
ok = Evolve.doRestore(player, this, 10307, 9882, 55);
break;
}
case 2:
{
ok = Evolve.doRestore(player, this, 10611, 10426, 70);
break;
}
case 3:
{
ok = Evolve.doRestore(player, this, 10308, 4422, 55);
break;
}
case 4:
{
ok = Evolve.doRestore(player, this, 10309, 4423, 55);
break;
}
case 5:
{
ok = Evolve.doRestore(player, this, 10310, 4424, 55);
break;
}
}
if (!ok)
{

View File

@@ -162,6 +162,7 @@ public class L2RaceManagerInstance extends L2Npc
{
case 816: // SystemMessageId.MONSRACE_TICKETS_AVAILABLE_FOR_S1_RACE
case 817: // SystemMessageId.MONSRACE_TICKETS_NOW_AVAILABLE_FOR_S1_RACE
{
if (_state != ACCEPTING_BETS)
{// _log.info("Race Initializing");
_state = ACCEPTING_BETS;
@@ -169,9 +170,11 @@ public class L2RaceManagerInstance extends L2Npc
} // else{_log.info("Race open");}
sm.addInt(_raceNumber);
break;
}
case 818: // SystemMessageId.MONSRACE_TICKETS_STOP_IN_S1_MINUTES
case 820: // SystemMessageId.MONSRACE_S2_BEGINS_IN_S1_MINUTES
case 823: // SystemMessageId.MONSRACE_BEGINS_IN_S1_SECONDS
{
sm.addInt(_minutes);
if (type.getId() == 820)
{
@@ -179,24 +182,31 @@ public class L2RaceManagerInstance extends L2Npc
}
_minutes--;
break;
}
case 819: // SystemMessageId.MONSRACE_S1_TICKET_SALES_CLOSED
{
// _log.info("Sales closed");
sm.addInt(_raceNumber);
_state = WAITING;
_minutes = 2;
break;
}
case 821: // SystemMessageId.MONSRACE_S1_BEGINS_IN_30_SECONDS
case 822: // SystemMessageId.MONSRACE_S1_COUNTDOWN_IN_FIVE_SECONDS
case 825: // SystemMessageId.MONSRACE_S1_RACE_END
{
sm.addInt(_raceNumber);
_minutes = 5;
break;
}
case 826: // SystemMessageId.MONSRACE_FIRST_PLACE_S1_SECOND_S2
{
// _log.info("Placing");
_state = RACE_END;
sm.addInt(MonsterRace.getInstance().getFirstPlace());
sm.addInt(MonsterRace.getInstance().getSecondPlace());
break;
}
}
// _logn.info("Counter: "+minutes);
// _log.info("State: "+state);

View File

@@ -56,7 +56,9 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 25342:
case 25346:
case 25349:
{
setIsRaid(true);
}
}
}
@@ -74,6 +76,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18155:
case 18156:
case 18157:
{
if (_victimSpawnKeyBoxTask != null)
{
_victimSpawnKeyBoxTask.cancel(true);
@@ -85,6 +88,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
}
_victimShout = ThreadPoolManager.schedule(new VictimShout(this), 5000);
break;
}
case 18196:
case 18197:
case 18198:
@@ -101,8 +105,9 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18209:
case 18210:
case 18211:
{
break;
}
case 18231:
case 18232:
case 18233:
@@ -116,21 +121,26 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18241:
case 18242:
case 18243:
{
if (_changeImmortalTask != null)
{
_changeImmortalTask.cancel(true);
}
_changeImmortalTask = ThreadPoolManager.schedule(new ChangeImmortal(this), 1600);
break;
}
case 18256:
{
break;
}
case 25339:
case 25342:
case 25346:
case 25349:
{
setIsRaid(true);
break;
}
}
super.onSpawn();
}
@@ -176,13 +186,14 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18217:
case 18218:
case 18219:
{
if (_onDeadEventTask != null)
{
_onDeadEventTask.cancel(true);
}
_onDeadEventTask = ThreadPoolManager.schedule(new OnDeadEvent(this), 3500);
break;
}
case 18150:
case 18151:
case 18152:
@@ -191,6 +202,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18155:
case 18156:
case 18157:
{
if (_victimSpawnKeyBoxTask != null)
{
_victimSpawnKeyBoxTask.cancel(true);
@@ -207,7 +219,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
}
_onDeadEventTask = ThreadPoolManager.schedule(new OnDeadEvent(this), 3500);
break;
}
case 18141:
case 18142:
case 18143:
@@ -216,6 +228,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18146:
case 18147:
case 18148:
{
if (FourSepulchersManager.getInstance().isViscountMobsAnnihilated(mysteriousBoxId))
{
if (_onDeadEventTask != null)
@@ -225,7 +238,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
_onDeadEventTask = ThreadPoolManager.schedule(new OnDeadEvent(this), 3500);
}
break;
}
case 18220:
case 18221:
case 18222:
@@ -247,6 +260,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18238:
case 18239:
case 18240:
{
if (FourSepulchersManager.getInstance().isDukeMobsAnnihilated(mysteriousBoxId))
{
if (_onDeadEventTask != null)
@@ -256,11 +270,12 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
_onDeadEventTask = ThreadPoolManager.schedule(new OnDeadEvent(this), 3500);
}
break;
}
case 25339:
case 25342:
case 25346:
case 25349:
{
giveCup(killer);
if (_onDeadEventTask != null)
{
@@ -268,6 +283,7 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
}
_onDeadEventTask = ThreadPoolManager.schedule(new OnDeadEvent(this), 8500);
break;
}
}
return true;
}
@@ -298,17 +314,25 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
switch (getId())
{
case 25339:
{
cupId = 7256;
break;
}
case 25342:
{
cupId = 7257;
break;
}
case 25346:
{
cupId = 7258;
break;
}
case 25349:
{
cupId = 7259;
break;
}
}
final L2PcInstance player = killer.getActingPlayer();
@@ -442,9 +466,10 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18217:
case 18218:
case 18219:
{
FourSepulchersManager.getInstance().spawnKeyBox(_activeChar);
break;
}
case 18150:
case 18151:
case 18152:
@@ -453,9 +478,10 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18155:
case 18156:
case 18157:
{
FourSepulchersManager.getInstance().spawnExecutionerOfHalisha(_activeChar);
break;
}
case 18141:
case 18142:
case 18143:
@@ -464,9 +490,10 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18146:
case 18147:
case 18148:
{
FourSepulchersManager.getInstance().spawnMonster(_activeChar.mysteriousBoxId);
break;
}
case 18220:
case 18221:
case 18222:
@@ -488,15 +515,18 @@ public class L2SepulcherMonsterInstance extends L2MonsterInstance
case 18238:
case 18239:
case 18240:
{
FourSepulchersManager.getInstance().spawnArchonOfHalisha(_activeChar.mysteriousBoxId);
break;
}
case 25339:
case 25342:
case 25346:
case 25349:
{
FourSepulchersManager.getInstance().spawnEmperorsGraveNpc(_activeChar.mysteriousBoxId);
break;
}
}
}
}

View File

@@ -104,6 +104,7 @@ public class L2SignsPriestInstance extends L2Npc
switch (val)
{
case 2: // Purchase Record of the Seven Signs
{
if (!player.getInventory().validateCapacity(1))
{
player.sendPacket(SystemMessageId.YOUR_INVENTORY_IS_FULL);
@@ -130,7 +131,9 @@ public class L2SignsPriestInstance extends L2Npc
showChatWindow(player, val, "dusk", false);
}
break;
}
case 33: // "I want to participate" request
{
final int oldCabal = SevenSigns.getInstance().getPlayerCabal(player.getObjectId());
if (oldCabal != SevenSigns.CABAL_NULL)
@@ -185,7 +188,9 @@ public class L2SignsPriestInstance extends L2Npc
showChatWindow(player, val, "dusk", false);
}
break;
}
case 34: // Pay the participation fee request
{
if ((player.getClassId().level() > 0) && ((player.getAdena() >= Config.SSQ_JOIN_DAWN_ADENA_FEE) || (player.getInventory().getInventoryItemCount(Config.SSQ_MANORS_AGREEMENT_ID, -1) > 0)))
{
showChatWindow(player, SevenSigns.SEVEN_SIGNS_HTML_PATH + "signs_33_dawn.htm");
@@ -195,11 +200,15 @@ public class L2SignsPriestInstance extends L2Npc
showChatWindow(player, SevenSigns.SEVEN_SIGNS_HTML_PATH + "signs_33_dawn_no.htm");
}
break;
}
case 3: // Join Cabal Intro 1
case 8: // Festival of Darkness Intro - SevenSigns x [0]1
{
showChatWindow(player, val, SevenSigns.getCabalShortName(cabal), false);
break;
}
case 4: // Join a Cabal - SevenSigns 4 [0]1 x
{
final int newSeal = Integer.parseInt(command.substring(15));
if (player.getClassId().level() >= 1)
@@ -252,19 +261,27 @@ public class L2SignsPriestInstance extends L2Npc
switch (newSeal)
{
case SevenSigns.SEAL_AVARICE:
{
player.sendPacket(SystemMessageId.YOU_VE_CHOSEN_TO_FIGHT_FOR_THE_SEAL_OF_AVARICE_DURING_THIS_QUEST_EVENT_PERIOD);
break;
}
case SevenSigns.SEAL_GNOSIS:
{
player.sendPacket(SystemMessageId.YOU_VE_CHOSEN_TO_FIGHT_FOR_THE_SEAL_OF_GNOSIS_DURING_THIS_QUEST_EVENT_PERIOD);
break;
}
case SevenSigns.SEAL_STRIFE:
{
player.sendPacket(SystemMessageId.YOU_VE_CHOSEN_TO_FIGHT_FOR_THE_SEAL_OF_STRIFE_DURING_THIS_QUEST_EVENT_PERIOD);
break;
}
}
showChatWindow(player, 4, SevenSigns.getCabalShortName(cabal), false);
break;
}
case 5:
{
if (this instanceof L2DawnPriestInstance)
{
if (SevenSigns.getInstance().getPlayerCabal(player.getObjectId()) == SevenSigns.CABAL_NULL)
@@ -288,7 +305,9 @@ public class L2SignsPriestInstance extends L2Npc
}
}
break;
}
case 21:
{
final int contribStoneId = Integer.parseInt(command.substring(14, 18));
final L2ItemInstance contribBlueStones = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_BLUE_ID);
@@ -328,26 +347,32 @@ public class L2SignsPriestInstance extends L2Npc
switch (contribStoneId)
{
case SevenSigns.SEAL_STONE_BLUE_ID:
{
blueContrib = (Config.ALT_MAXIMUM_PLAYER_CONTRIB - score) / SevenSigns.BLUE_CONTRIB_POINTS;
if (blueContrib > contribBlueStoneCount)
{
blueContrib = contributionCount;
}
break;
}
case SevenSigns.SEAL_STONE_GREEN_ID:
{
greenContrib = (Config.ALT_MAXIMUM_PLAYER_CONTRIB - score) / SevenSigns.GREEN_CONTRIB_POINTS;
if (greenContrib > contribGreenStoneCount)
{
greenContrib = contributionCount;
}
break;
}
case SevenSigns.SEAL_STONE_RED_ID:
{
redContrib = (Config.ALT_MAXIMUM_PLAYER_CONTRIB - score) / SevenSigns.RED_CONTRIB_POINTS;
if (redContrib > contribRedStoneCount)
{
redContrib = contributionCount;
}
break;
}
}
if (redContrib > 0)
@@ -412,7 +437,9 @@ public class L2SignsPriestInstance extends L2Npc
}
}
break;
}
case 6: // Contribute Seal Stones - SevenSigns 6 x
{
stoneType = Integer.parseInt(command.substring(13));
final L2ItemInstance blueStones = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_BLUE_ID);
@@ -445,24 +472,31 @@ public class L2SignsPriestInstance extends L2Npc
switch (stoneType)
{
case 1:
{
contribStoneColor = "Blue";
stoneColorContr = "blue";
stoneIdContr = SevenSigns.SEAL_STONE_BLUE_ID;
stoneCountContr = blueStoneCount;
break;
}
case 2:
{
contribStoneColor = "Green";
stoneColorContr = "green";
stoneIdContr = SevenSigns.SEAL_STONE_GREEN_ID;
stoneCountContr = greenStoneCount;
break;
}
case 3:
{
contribStoneColor = "Red";
stoneColorContr = "red";
stoneIdContr = SevenSigns.SEAL_STONE_RED_ID;
stoneCountContr = redStoneCount;
break;
}
case 4:
{
long tempContribScore = contribScore;
redContribCount = (Config.ALT_MAXIMUM_PLAYER_CONTRIB - tempContribScore) / SevenSigns.RED_CONTRIB_POINTS;
if (redContribCount > redStoneCount)
@@ -546,6 +580,7 @@ public class L2SignsPriestInstance extends L2Npc
}
}
return;
}
}
if (this instanceof L2DawnPriestInstance)
@@ -577,7 +612,9 @@ public class L2SignsPriestInstance extends L2Npc
}
}
break;
}
case 7: // Exchange Ancient Adena for Adena - SevenSigns 7 xxxxxxx
{
long ancientAdenaConvert = 0;
try
@@ -611,7 +648,9 @@ public class L2SignsPriestInstance extends L2Npc
showChatWindow(player, SevenSigns.SEVEN_SIGNS_HTML_PATH + "blkmrkt_5.htm");
break;
}
case 9: // Receive Contribution Rewards
{
final int playerCabal = SevenSigns.getInstance().getPlayerCabal(player.getObjectId());
final int winningCabal = SevenSigns.getInstance().getCabalHighestScore();
@@ -644,7 +683,9 @@ public class L2SignsPriestInstance extends L2Npc
}
}
break;
}
case 11: // Teleport to Hunting Grounds
{
try
{
final String portInfo = command.substring(14).trim();
@@ -671,7 +712,9 @@ public class L2SignsPriestInstance extends L2Npc
_log.log(Level.WARNING, "SevenSigns: Error occurred while teleporting player: " + e.getMessage(), e);
}
break;
}
case 16:
{
if (this instanceof L2DawnPriestInstance)
{
showChatWindow(player, val, "dawn", false);
@@ -681,7 +724,9 @@ public class L2SignsPriestInstance extends L2Npc
showChatWindow(player, val, "dusk", false);
}
break;
}
case 17: // Exchange Seal Stones for Ancient Adena (Type Choice) - SevenSigns 17 x
{
stoneType = Integer.parseInt(command.substring(14));
int stoneId = 0;
@@ -693,21 +738,28 @@ public class L2SignsPriestInstance extends L2Npc
switch (stoneType)
{
case 1:
{
stoneColor = "blue";
stoneId = SevenSigns.SEAL_STONE_BLUE_ID;
stoneValue = SevenSigns.SEAL_STONE_BLUE_VALUE;
break;
}
case 2:
{
stoneColor = "green";
stoneId = SevenSigns.SEAL_STONE_GREEN_ID;
stoneValue = SevenSigns.SEAL_STONE_GREEN_VALUE;
break;
}
case 3:
{
stoneColor = "red";
stoneId = SevenSigns.SEAL_STONE_RED_ID;
stoneValue = SevenSigns.SEAL_STONE_RED_VALUE;
break;
}
case 4:
{
final L2ItemInstance blueStonesAll = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_BLUE_ID);
final L2ItemInstance greenStonesAll = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_GREEN_ID);
final L2ItemInstance redStonesAll = player.getInventory().getItemByItemId(SevenSigns.SEAL_STONE_RED_ID);
@@ -756,6 +808,7 @@ public class L2SignsPriestInstance extends L2Npc
showChatWindow(player, 18, "dusk", false);
}
return;
}
}
final L2ItemInstance stoneInstance = player.getInventory().getItemByItemId(stoneId);
@@ -793,7 +846,9 @@ public class L2SignsPriestInstance extends L2Npc
_log.warning("Problem with HTML text " + SevenSigns.SEVEN_SIGNS_HTML_PATH + "signs_17.htm: " + path);
}
break;
}
case 18: // Exchange Seal Stones for Ancient Adena - SevenSigns 18 xxxx xxxxxx
{
final int convertStoneId = Integer.parseInt(command.substring(14, 18));
long convertCount = 0;
@@ -826,14 +881,20 @@ public class L2SignsPriestInstance extends L2Npc
switch (convertStoneId)
{
case SevenSigns.SEAL_STONE_BLUE_ID:
{
ancientAdenaReward = SevenSigns.calcAncientAdenaReward(convertCount, 0, 0);
break;
}
case SevenSigns.SEAL_STONE_GREEN_ID:
{
ancientAdenaReward = SevenSigns.calcAncientAdenaReward(0, convertCount, 0);
break;
}
case SevenSigns.SEAL_STONE_RED_ID:
{
ancientAdenaReward = SevenSigns.calcAncientAdenaReward(0, 0, convertCount);
break;
}
}
if (player.destroyItemByItemId("SevenSigns", convertStoneId, convertCount, this, true))
@@ -876,14 +937,18 @@ public class L2SignsPriestInstance extends L2Npc
break;
}
break;
}
case 19: // Seal Information (for when joining a cabal)
{
final int chosenSeal = Integer.parseInt(command.substring(16));
final String fileSuffix = SevenSigns.getSealName(chosenSeal, true) + "_" + SevenSigns.getCabalShortName(cabal);
showChatWindow(player, val, fileSuffix, false);
break;
}
case 20: // Seal Status (for when joining a cabal)
{
final StringBuilder contentBuffer = new StringBuilder();
if (this instanceof L2DawnPriestInstance)
{
@@ -914,9 +979,12 @@ public class L2SignsPriestInstance extends L2Npc
html.setHtml(contentBuffer.toString());
player.sendPacket(html);
break;
}
default:
{
showChatWindow(player, val, null, false);
break;
}
}
}
else

View File

@@ -84,12 +84,14 @@ public final class L2TeleporterInstance extends L2Npc
{
case 32534: // Seed of Infinity
case 32539:
{
if (player.isFlyingMounted())
{
player.sendPacket(SystemMessageId.YOU_CANNOT_ENTER_A_SEED_WHILE_IN_A_FLYING_TRANSFORMATION_STATE);
return;
}
break;
}
}
if (st.countTokens() <= 0)

View File

@@ -359,9 +359,12 @@ public class L2VillageMasterInstance extends L2NpcInstance
switch (cmdChoice)
{
case 0: // Subclass change menu
{
html.setFile(player.getHtmlPrefix(), getSubClassMenu(player.getRace()));
break;
}
case 1: // Add Subclass - Initial
{
// Avoid giving player an option to add a new sub class, if they have max sub-classes already.
if (player.getTotalSubClasses() >= Config.MAX_SUBCLASS)
{
@@ -400,7 +403,9 @@ public class L2VillageMasterInstance extends L2NpcInstance
return;
}
break;
}
case 2: // Change Class - Initial
{
if (player.getSubClasses().isEmpty())
{
html.setFile(player.getHtmlPrefix(), "data/html/villagemaster/SubClass_ChangeNo.htm");
@@ -433,7 +438,9 @@ public class L2VillageMasterInstance extends L2NpcInstance
}
}
break;
}
case 3: // Change/Cancel Subclass - Initial
{
if ((player.getSubClasses() == null) || player.getSubClasses().isEmpty())
{
html.setFile(player.getHtmlPrefix(), "data/html/villagemaster/SubClass_ModifyEmpty.htm");
@@ -487,7 +494,9 @@ public class L2VillageMasterInstance extends L2NpcInstance
}
}
break;
}
case 4: // Add Subclass - Action (Subclass 4 x[x])
{
/**
* If the character is less than level 75 on any of their previously chosen classes then disallow them to change to their most recently added sub-class choice.
*/
@@ -553,7 +562,9 @@ public class L2VillageMasterInstance extends L2NpcInstance
html.setFile(player.getHtmlPrefix(), getSubClassFail());
}
break;
}
case 5: // Change Class - Action
{
/**
* If the character is less than level 75 on any of their previously chosen classes then disallow them to change to their most recently added sub-class choice. Note: paramOne = classIndex
*/
@@ -594,7 +605,9 @@ public class L2VillageMasterInstance extends L2NpcInstance
player.setActiveClass(paramOne);
player.sendPacket(SystemMessageId.YOU_HAVE_SUCCESSFULLY_SWITCHED_TO_YOUR_SUBCLASS); // Transfer completed.
return;
}
case 6: // Change/Cancel Subclass - Choice
{
// validity check
if ((paramOne < 1) || (paramOne > Config.MAX_SUBCLASS))
{
@@ -619,20 +632,30 @@ public class L2VillageMasterInstance extends L2NpcInstance
switch (paramOne)
{
case 1:
{
html.setFile(player.getHtmlPrefix(), "data/html/villagemaster/SubClass_ModifyChoice1.htm");
break;
}
case 2:
{
html.setFile(player.getHtmlPrefix(), "data/html/villagemaster/SubClass_ModifyChoice2.htm");
break;
}
case 3:
{
html.setFile(player.getHtmlPrefix(), "data/html/villagemaster/SubClass_ModifyChoice3.htm");
break;
}
default:
{
html.setFile(player.getHtmlPrefix(), "data/html/villagemaster/SubClass_ModifyChoice.htm");
}
}
html.replace("%list%", content6.toString());
break;
}
case 7: // Change Subclass - Action
{
/**
* Warning: the information about this subclass will be removed from the subclass list even if false!
*/
@@ -671,6 +694,7 @@ public class L2VillageMasterInstance extends L2NpcInstance
return;
}
break;
}
}
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);

View File

@@ -824,17 +824,25 @@ public class PcStat extends PlayableStat
switch (getVitalityLevel())
{
case 1:
{
vitality = Config.RATE_VITALITY_LEVEL_1;
break;
}
case 2:
{
vitality = Config.RATE_VITALITY_LEVEL_2;
break;
}
case 3:
{
vitality = Config.RATE_VITALITY_LEVEL_3;
break;
}
case 4:
{
vitality = Config.RATE_VITALITY_LEVEL_4;
break;
}
}
}

View File

@@ -255,11 +255,15 @@ public enum PlayerClass
switch (player.getRace())
{
case ELF:
{
subclasses.removeAll(getSet(Race.DARK_ELF, Third));
break;
}
case DARK_ELF:
{
subclasses.removeAll(getSet(Race.ELF, Third));
break;
}
}
subclasses.removeAll(getSet(Race.KAMAEL, Third));

View File

@@ -795,6 +795,7 @@ public class Duel
{
case Team1Win:
case Team2Surrender:
{
restorePlayerConditions(false);
// send SystemMessage
if (_partyDuel)
@@ -810,8 +811,10 @@ public class Duel
broadcastToTeam1(sm);
broadcastToTeam2(sm);
break;
}
case Team1Surrender:
case Team2Win:
{
restorePlayerConditions(false);
// send SystemMessage
if (_partyDuel)
@@ -827,7 +830,9 @@ public class Duel
broadcastToTeam1(sm);
broadcastToTeam2(sm);
break;
}
case Canceled:
{
stopFighting();
// Don't restore hp, mp, cp
restorePlayerConditions(true);
@@ -838,7 +843,9 @@ public class Duel
broadcastToTeam1(sm);
broadcastToTeam2(sm);
break;
}
case Timeout:
{
stopFighting();
// hp,mp,cp seem to be restored in a timeout too...
restorePlayerConditions(false);
@@ -848,6 +855,7 @@ public class Duel
broadcastToTeam1(sm);
broadcastToTeam2(sm);
break;
}
}
final ExDuelEnd duelEnd = _partyDuel ? ExDuelEnd.PARTY_DUEL : ExDuelEnd.PLAYER_DUEL;

View File

@@ -364,12 +364,14 @@ public final class ItemAuction
break;
}
case EXTEND_BY_3_MIN:
{
if ((Config.ALT_ITEM_AUCTION_TIME_EXTENDS_ON_BID > 0) && (getAndSetLastBidPlayerObjectId(player.getObjectId()) != player.getObjectId()))
{
_auctionEndingExtendState = ItemAuctionExtendState.EXTEND_BY_CONFIG_PHASE_A;
_endingTime += Config.ALT_ITEM_AUCTION_TIME_EXTENDS_ON_BID;
}
break;
}
case EXTEND_BY_CONFIG_PHASE_A:
{
if ((getAndSetLastBidPlayerObjectId(player.getObjectId()) != player.getObjectId()) && (_scheduledAuctionEndingExtendState == ItemAuctionExtendState.EXTEND_BY_CONFIG_PHASE_B))

View File

@@ -912,51 +912,91 @@ public abstract class Inventory extends ItemContainer
switch (slot)
{
case L2Item.SLOT_UNDERWEAR:
{
return PAPERDOLL_UNDER;
}
case L2Item.SLOT_R_EAR:
{
return PAPERDOLL_REAR;
}
case L2Item.SLOT_LR_EAR:
case L2Item.SLOT_L_EAR:
{
return PAPERDOLL_LEAR;
}
case L2Item.SLOT_NECK:
{
return PAPERDOLL_NECK;
}
case L2Item.SLOT_R_FINGER:
case L2Item.SLOT_LR_FINGER:
{
return PAPERDOLL_RFINGER;
}
case L2Item.SLOT_L_FINGER:
{
return PAPERDOLL_LFINGER;
}
case L2Item.SLOT_HEAD:
{
return PAPERDOLL_HEAD;
}
case L2Item.SLOT_R_HAND:
case L2Item.SLOT_LR_HAND:
{
return PAPERDOLL_RHAND;
}
case L2Item.SLOT_L_HAND:
{
return PAPERDOLL_LHAND;
}
case L2Item.SLOT_GLOVES:
{
return PAPERDOLL_GLOVES;
}
case L2Item.SLOT_CHEST:
case L2Item.SLOT_FULL_ARMOR:
case L2Item.SLOT_ALLDRESS:
{
return PAPERDOLL_CHEST;
}
case L2Item.SLOT_LEGS:
{
return PAPERDOLL_LEGS;
}
case L2Item.SLOT_FEET:
{
return PAPERDOLL_FEET;
}
case L2Item.SLOT_BACK:
{
return PAPERDOLL_CLOAK;
}
case L2Item.SLOT_HAIR:
case L2Item.SLOT_HAIRALL:
{
return PAPERDOLL_HAIR;
}
case L2Item.SLOT_HAIR2:
{
return PAPERDOLL_HAIR2;
}
case L2Item.SLOT_R_BRACELET:
{
return PAPERDOLL_RBRACELET;
}
case L2Item.SLOT_L_BRACELET:
{
return PAPERDOLL_LBRACELET;
}
case L2Item.SLOT_DECO:
{
return PAPERDOLL_DECO1; // return first we deal with it later
}
case L2Item.SLOT_BELT:
{
return PAPERDOLL_BELT;
}
}
return -1;
}
@@ -1116,70 +1156,110 @@ public abstract class Inventory extends ItemContainer
switch (location)
{
case PAPERDOLL_UNDER:
{
slot = L2Item.SLOT_UNDERWEAR;
break;
}
case PAPERDOLL_LEAR:
{
slot = L2Item.SLOT_L_EAR;
break;
}
case PAPERDOLL_REAR:
{
slot = L2Item.SLOT_R_EAR;
break;
}
case PAPERDOLL_NECK:
{
slot = L2Item.SLOT_NECK;
break;
}
case PAPERDOLL_RFINGER:
{
slot = L2Item.SLOT_R_FINGER;
break;
}
case PAPERDOLL_LFINGER:
{
slot = L2Item.SLOT_L_FINGER;
break;
}
case PAPERDOLL_HAIR:
{
slot = L2Item.SLOT_HAIR;
break;
}
case PAPERDOLL_HAIR2:
{
slot = L2Item.SLOT_HAIR2;
break;
}
case PAPERDOLL_HEAD:
{
slot = L2Item.SLOT_HEAD;
break;
}
case PAPERDOLL_RHAND:
{
slot = L2Item.SLOT_R_HAND;
break;
}
case PAPERDOLL_LHAND:
{
slot = L2Item.SLOT_L_HAND;
break;
}
case PAPERDOLL_GLOVES:
{
slot = L2Item.SLOT_GLOVES;
break;
}
case PAPERDOLL_CHEST:
{
slot = item.getItem().getBodyPart();
break;
}
case PAPERDOLL_LEGS:
{
slot = L2Item.SLOT_LEGS;
break;
}
case PAPERDOLL_CLOAK:
{
slot = L2Item.SLOT_BACK;
break;
}
case PAPERDOLL_FEET:
{
slot = L2Item.SLOT_FEET;
break;
}
case PAPERDOLL_LBRACELET:
{
slot = L2Item.SLOT_L_BRACELET;
break;
}
case PAPERDOLL_RBRACELET:
{
slot = L2Item.SLOT_R_BRACELET;
break;
}
case PAPERDOLL_DECO1:
case PAPERDOLL_DECO2:
case PAPERDOLL_DECO3:
case PAPERDOLL_DECO4:
case PAPERDOLL_DECO5:
case PAPERDOLL_DECO6:
{
slot = L2Item.SLOT_DECO;
break;
}
case PAPERDOLL_BELT:
{
slot = L2Item.SLOT_BELT;
break;
}
}
return slot;
}
@@ -1257,75 +1337,119 @@ public abstract class Inventory extends ItemContainer
switch (slot)
{
case L2Item.SLOT_L_EAR:
{
pdollSlot = PAPERDOLL_LEAR;
break;
}
case L2Item.SLOT_R_EAR:
{
pdollSlot = PAPERDOLL_REAR;
break;
}
case L2Item.SLOT_NECK:
{
pdollSlot = PAPERDOLL_NECK;
break;
}
case L2Item.SLOT_R_FINGER:
{
pdollSlot = PAPERDOLL_RFINGER;
break;
}
case L2Item.SLOT_L_FINGER:
{
pdollSlot = PAPERDOLL_LFINGER;
break;
}
case L2Item.SLOT_HAIR:
{
pdollSlot = PAPERDOLL_HAIR;
break;
}
case L2Item.SLOT_HAIR2:
{
pdollSlot = PAPERDOLL_HAIR2;
break;
}
case L2Item.SLOT_HAIRALL:
{
setPaperdollItem(PAPERDOLL_HAIR, null);
pdollSlot = PAPERDOLL_HAIR;
break;
}
case L2Item.SLOT_HEAD:
{
pdollSlot = PAPERDOLL_HEAD;
break;
}
case L2Item.SLOT_R_HAND:
case L2Item.SLOT_LR_HAND:
{
pdollSlot = PAPERDOLL_RHAND;
break;
}
case L2Item.SLOT_L_HAND:
{
pdollSlot = PAPERDOLL_LHAND;
break;
}
case L2Item.SLOT_GLOVES:
{
pdollSlot = PAPERDOLL_GLOVES;
break;
}
case L2Item.SLOT_CHEST:
case L2Item.SLOT_ALLDRESS:
case L2Item.SLOT_FULL_ARMOR:
{
pdollSlot = PAPERDOLL_CHEST;
break;
}
case L2Item.SLOT_LEGS:
{
pdollSlot = PAPERDOLL_LEGS;
break;
}
case L2Item.SLOT_BACK:
{
pdollSlot = PAPERDOLL_CLOAK;
break;
}
case L2Item.SLOT_FEET:
{
pdollSlot = PAPERDOLL_FEET;
break;
}
case L2Item.SLOT_UNDERWEAR:
{
pdollSlot = PAPERDOLL_UNDER;
break;
}
case L2Item.SLOT_L_BRACELET:
{
pdollSlot = PAPERDOLL_LBRACELET;
break;
}
case L2Item.SLOT_R_BRACELET:
{
pdollSlot = PAPERDOLL_RBRACELET;
break;
}
case L2Item.SLOT_DECO:
{
pdollSlot = PAPERDOLL_DECO1;
break;
}
case L2Item.SLOT_BELT:
{
pdollSlot = PAPERDOLL_BELT;
break;
}
default:
{
_log.info("Unhandled slot type: " + slot);
_log.info(Util.getTraceString(Thread.currentThread().getStackTrace()));
}
}
if (pdollSlot >= 0)
{
@@ -1400,7 +1524,9 @@ public abstract class Inventory extends ItemContainer
case L2Item.SLOT_FEET:
case L2Item.SLOT_GLOVES:
case L2Item.SLOT_HEAD:
{
return;
}
}
}
@@ -1419,7 +1545,6 @@ public abstract class Inventory extends ItemContainer
{
setPaperdollItem(PAPERDOLL_RHAND, null);
}
setPaperdollItem(PAPERDOLL_LHAND, item);
break;
}
@@ -1466,15 +1591,21 @@ public abstract class Inventory extends ItemContainer
break;
}
case L2Item.SLOT_NECK:
{
setPaperdollItem(PAPERDOLL_NECK, item);
break;
}
case L2Item.SLOT_FULL_ARMOR:
{
setPaperdollItem(PAPERDOLL_LEGS, null);
setPaperdollItem(PAPERDOLL_CHEST, item);
break;
}
case L2Item.SLOT_CHEST:
{
setPaperdollItem(PAPERDOLL_CHEST, item);
break;
}
case L2Item.SLOT_LEGS:
{
// handle full armor
@@ -1483,20 +1614,26 @@ public abstract class Inventory extends ItemContainer
{
setPaperdollItem(PAPERDOLL_CHEST, null);
}
setPaperdollItem(PAPERDOLL_LEGS, item);
break;
}
case L2Item.SLOT_FEET:
{
setPaperdollItem(PAPERDOLL_FEET, item);
break;
}
case L2Item.SLOT_GLOVES:
{
setPaperdollItem(PAPERDOLL_GLOVES, item);
break;
}
case L2Item.SLOT_HEAD:
{
setPaperdollItem(PAPERDOLL_HEAD, item);
break;
}
case L2Item.SLOT_HAIR:
{
final L2ItemInstance hair = getPaperdollItem(PAPERDOLL_HAIR);
if ((hair != null) && (hair.getItem().getBodyPart() == L2Item.SLOT_HAIRALL))
{
@@ -1506,10 +1643,11 @@ public abstract class Inventory extends ItemContainer
{
setPaperdollItem(PAPERDOLL_HAIR, null);
}
setPaperdollItem(PAPERDOLL_HAIR, item);
break;
}
case L2Item.SLOT_HAIR2:
{
final L2ItemInstance hair2 = getPaperdollItem(PAPERDOLL_HAIR);
if ((hair2 != null) && (hair2.getItem().getBodyPart() == L2Item.SLOT_HAIRALL))
{
@@ -1519,32 +1657,47 @@ public abstract class Inventory extends ItemContainer
{
setPaperdollItem(PAPERDOLL_HAIR2, null);
}
setPaperdollItem(PAPERDOLL_HAIR2, item);
break;
}
case L2Item.SLOT_HAIRALL:
{
setPaperdollItem(PAPERDOLL_HAIR2, null);
setPaperdollItem(PAPERDOLL_HAIR, item);
break;
}
case L2Item.SLOT_UNDERWEAR:
{
setPaperdollItem(PAPERDOLL_UNDER, item);
break;
}
case L2Item.SLOT_BACK:
{
setPaperdollItem(PAPERDOLL_CLOAK, item);
break;
}
case L2Item.SLOT_L_BRACELET:
{
setPaperdollItem(PAPERDOLL_LBRACELET, item);
break;
}
case L2Item.SLOT_R_BRACELET:
{
setPaperdollItem(PAPERDOLL_RBRACELET, item);
break;
}
case L2Item.SLOT_DECO:
{
equipTalisman(item);
break;
}
case L2Item.SLOT_BELT:
{
setPaperdollItem(PAPERDOLL_BELT, item);
break;
}
case L2Item.SLOT_ALLDRESS:
{
// formal dress
setPaperdollItem(PAPERDOLL_LEGS, null);
setPaperdollItem(PAPERDOLL_LHAND, null);
@@ -1556,8 +1709,11 @@ public abstract class Inventory extends ItemContainer
setPaperdollItem(PAPERDOLL_GLOVES, null);
setPaperdollItem(PAPERDOLL_CHEST, item);
break;
}
default:
{
_log.warning("Unknown body slot " + targetSlot + " for Item ID:" + item.getId());
}
}
}

View File

@@ -1005,10 +1005,14 @@ public final class Formulas
switch (shld)
{
case SHIELD_DEFENSE_SUCCEED:
{
mDef += target.getShldDef(); // kamael
break;
}
case SHIELD_DEFENSE_PERFECT_BLOCK: // perfect block
{
return 1;
}
}
final int mAtk = attacker.getCubicPower();
@@ -1277,11 +1281,15 @@ public final class Formulas
switch (shldSuccess)
{
case SHIELD_DEFENSE_SUCCEED:
{
enemy.sendPacket(SystemMessageId.YOUR_SHIELD_DEFENSE_HAS_SUCCEEDED);
break;
}
case SHIELD_DEFENSE_PERFECT_BLOCK:
{
enemy.sendPacket(SystemMessageId.YOUR_EXCELLENT_SHIELD_DEFENSE_WAS_A_SUCCESS);
break;
}
}
}
@@ -1370,23 +1378,35 @@ public final class Formulas
switch (skill.getBasicProperty())
{
case STR:
{
targetBaseStat = target.getSTR();
break;
}
case DEX:
{
targetBaseStat = target.getDEX();
break;
}
case CON:
{
targetBaseStat = target.getCON();
break;
}
case INT:
{
targetBaseStat = target.getINT();
break;
}
case MEN:
{
targetBaseStat = target.getMEN();
break;
}
case WIT:
{
targetBaseStat = target.getWIT();
break;
}
}
final double baseMod = ((((((magicLevel - target.getLevel()) + 3) * skill.getLvlBonusRate()) + activateRate) + 30.0) - targetBaseStat);
@@ -1552,10 +1572,14 @@ public final class Formulas
switch (shld)
{
case SHIELD_DEFENSE_SUCCEED:
{
mDef += target.getShldDef();
break;
}
case SHIELD_DEFENSE_PERFECT_BLOCK: // perfect block
{
return 1;
}
}
// Bonus Spiritshot
@@ -1976,7 +2000,6 @@ public final class Formulas
final double prof = activeChar.calcStat(Stats.CANCEL_PROF, 0, target, null);
final double resMod = 1 + (((vuln + prof) * -1) / 100);
final double finalRate = rate / resMod;
if (activeChar.isDebug())
{
final StatsSet set = new StatsSet();
@@ -1986,7 +2009,6 @@ public final class Formulas
set.set("rate", finalRate);
Debug.sendSkillDebug(activeChar, target, skill, set);
}
// Prevent initialization.
final List<BuffInfo> buffs = target.getEffectList().hasBuffs() ? new ArrayList<>(target.getEffectList().getBuffs()) : new ArrayList<>(1);
if (target.getEffectList().hasTriggered())

View File

@@ -81,23 +81,29 @@ public class FuncEnchant extends AbstractFunction
switch (item.getItem().getItemGradeSPlus())
{
case S:
{
// M. Atk. increases by 4 for all weapons.
// Starting at +4, M. Atk. bonus double.
value += (4 * enchant) + (8 * overenchant);
break;
}
case A:
case B:
case C:
{
// M. Atk. increases by 3 for all weapons.
// Starting at +4, M. Atk. bonus double.
value += (3 * enchant) + (6 * overenchant);
break;
}
case D:
case NONE:
{
// M. Atk. increases by 2 for all weapons. Starting at +4, M. Atk. bonus double.
// Starting at +4, M. Atk. bonus double.
value += (2 * enchant) + (4 * overenchant);
break;
}
}
return value;
}
@@ -108,6 +114,7 @@ public class FuncEnchant extends AbstractFunction
switch (item.getItem().getItemGradeSPlus())
{
case S:
{
if (item.getWeaponItem().getBodyPart() == L2Item.SLOT_LR_HAND)
{
if ((type == WeaponType.BOW) || (type == WeaponType.CROSSBOW))
@@ -130,7 +137,9 @@ public class FuncEnchant extends AbstractFunction
value += (5 * enchant) + (10 * overenchant);
}
break;
}
case A:
{
if (item.getWeaponItem().getBodyPart() == L2Item.SLOT_LR_HAND)
{
if ((type == WeaponType.BOW) || (type == WeaponType.CROSSBOW))
@@ -153,8 +162,10 @@ public class FuncEnchant extends AbstractFunction
value += (4 * enchant) + (8 * overenchant);
}
break;
}
case B:
case C:
{
if (item.getWeaponItem().getBodyPart() == L2Item.SLOT_LR_HAND)
{
if ((type == WeaponType.BOW) || (type == WeaponType.CROSSBOW))
@@ -177,8 +188,10 @@ public class FuncEnchant extends AbstractFunction
value += (3 * enchant) + (6 * overenchant);
}
break;
}
case D:
case NONE:
{
switch (type)
{
case BOW:
@@ -190,12 +203,15 @@ public class FuncEnchant extends AbstractFunction
break;
}
default:
{
// P. Atk. increases by 2 for all weapons with the exception of bows.
// Starting at +4, P. Atk. bonus double.
value += (2 * enchant) + (4 * overenchant);
break;
}
}
break;
}
}
}
return value;

View File

@@ -65,23 +65,35 @@ public class FuncArmorSet extends AbstractFunction
switch (getStat())
{
case STAT_STR:
{
value += set.getSTR();
break;
}
case STAT_DEX:
{
value += set.getDEX();
break;
}
case STAT_INT:
{
value += set.getINT();
break;
}
case STAT_MEN:
{
value += set.getMEN();
break;
}
case STAT_CON:
{
value += set.getCON();
break;
}
case STAT_WIT:
{
value += set.getWIT();
break;
}
}
}
}

View File

@@ -56,23 +56,35 @@ public class FuncHenna extends AbstractFunction
switch (getStat())
{
case STAT_STR:
{
value += pc.getHennaStatSTR();
break;
}
case STAT_CON:
{
value += pc.getHennaStatCON();
break;
}
case STAT_DEX:
{
value += pc.getHennaStatDEX();
break;
}
case STAT_INT:
{
value += pc.getHennaStatINT();
break;
}
case STAT_WIT:
{
value += pc.getHennaStatWIT();
break;
}
case STAT_MEN:
{
value += pc.getHennaStatMEN();
break;
}
}
}
return value;

View File

@@ -347,9 +347,13 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
{
case INVENTORY:
case PAPERDOLL:
{
break;
}
default:
{
return false;
}
}
if (item.getItem() instanceof L2Weapon)
@@ -358,9 +362,13 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
{
case NONE:
case FISHINGROD:
{
return false;
}
default:
{
break;
}
}
}
else if (item.getItem() instanceof L2Armor)
@@ -371,9 +379,13 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
case L2Item.SLOT_LR_FINGER:
case L2Item.SLOT_LR_EAR:
case L2Item.SLOT_NECK:
{
break;
}
default:
{
return false;
}
}
}
else
@@ -449,15 +461,23 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
{
case C:
case B:
{
return GEMSTONE_D;
}
case A:
case S:
{
return GEMSTONE_C;
}
case S80:
case S84:
{
return GEMSTONE_B;
}
default:
{
return 0;
}
}
}
@@ -472,40 +492,70 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
switch (lifeStoneGrade)
{
case GRADE_ACC:
{
switch (itemGrade)
{
case C:
{
return 200;
}
case B:
{
return 300;
}
case A:
{
return 200;
}
case S:
{
return 250;
}
case S80:
{
return 360;
}
case S84:
{
return 480;
}
default:
{
return 0;
}
}
}
default:
{
switch (itemGrade)
{
case C:
{
return 20;
}
case B:
{
return 30;
}
case A:
{
return 20;
}
case S:
{
return 25;
}
case S80:
case S84:
{
return 36;
}
default:
{
return 0;
}
}
}
}
}
}

View File

@@ -73,6 +73,7 @@ public class MoveToLocationAirShip extends L2GameClientPacket
switch (_command)
{
case 0:
{
if (!ship.canBeControlled())
{
return;
@@ -82,14 +83,18 @@ public class MoveToLocationAirShip extends L2GameClientPacket
ship.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(_param1, _param2, z));
}
break;
}
case 1:
{
if (!ship.canBeControlled())
{
return;
}
ship.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
break;
}
case 2:
{
if (!ship.canBeControlled())
{
return;
@@ -100,7 +105,9 @@ public class MoveToLocationAirShip extends L2GameClientPacket
ship.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(ship.getX(), ship.getY(), z));
}
break;
}
case 3:
{
if (!ship.canBeControlled())
{
return;
@@ -111,18 +118,18 @@ public class MoveToLocationAirShip extends L2GameClientPacket
ship.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(ship.getX(), ship.getY(), z));
}
break;
}
case 4:
{
if (!ship.isInDock() || ship.isMoving())
{
return;
}
final VehiclePathPoint[] dst = AirShipManager.getInstance().getTeleportDestination(ship.getDockId(), _param1);
if (dst == null)
{
return;
}
// Consume fuel, if needed
final int fuelConsumption = AirShipManager.getInstance().getFuelConsumption(ship.getDockId(), _param1);
if (fuelConsumption > 0)
@@ -134,9 +141,9 @@ public class MoveToLocationAirShip extends L2GameClientPacket
}
ship.setFuel(ship.getFuel() - fuelConsumption);
}
ship.executePath(dst);
break;
}
}
}

View File

@@ -138,6 +138,7 @@ public final class RequestActionUse extends L2GameClientPacket
switch (_actionId)
{
case 0: // Sit/Stand
{
if (activeChar.isSitting() || !activeChar.isMoving() || activeChar.isFakeDeath())
{
useSit(activeChar, target);
@@ -147,12 +148,13 @@ public final class RequestActionUse extends L2GameClientPacket
// Sit when arrive using next action.
// Creating next action class.
final NextAction nextAction = new NextAction(CtrlEvent.EVT_ARRIVED, CtrlIntention.AI_INTENTION_MOVE_TO, () -> useSit(activeChar, target));
// Binding next action to AI.
activeChar.getAI().setNextAction(nextAction);
}
break;
}
case 1: // Walk/Run
{
if (activeChar.isRunning())
{
activeChar.setWalking();
@@ -162,16 +164,22 @@ public final class RequestActionUse extends L2GameClientPacket
activeChar.setRunning();
}
break;
}
case 10: // Private Store - Sell
{
activeChar.tryOpenPrivateSellStore(false);
break;
}
case 15: // Change Movement Mode (Pets)
{
if (validateSummon(summon, true))
{
((L2SummonAI) summon.getAI()).notifyFollowStatusChange();
}
break;
}
case 16: // Attack (Pets)
{
if (validateSummon(summon, true))
{
if (summon.canAttack(_ctrlPressed))
@@ -180,31 +188,31 @@ public final class RequestActionUse extends L2GameClientPacket
}
}
break;
}
case 17: // Stop (Pets)
{
if (validateSummon(summon, true))
{
summon.cancelAction();
}
break;
}
case 19: // Unsummon Pet
{
if (!validateSummon(summon, true))
{
break;
}
if (summon.isDead())
{
sendPacket(SystemMessageId.DEAD_PETS_CANNOT_BE_RETURNED_TO_THEIR_SUMMONING_ITEM);
break;
}
if (summon.isAttackingNow() || summon.isInCombat() || summon.isMovementDisabled())
{
sendPacket(SystemMessageId.A_PET_CANNOT_BE_UNSUMMONED_DURING_BATTLE);
break;
}
if (summon.isHungry())
{
if (summon.isPet() && !((L2PetInstance) summon).getPetData().getFood().isEmpty())
@@ -217,16 +225,19 @@ public final class RequestActionUse extends L2GameClientPacket
}
break;
}
summon.unSummon(activeChar);
break;
}
case 21: // Change Movement Mode (Servitors)
{
if (validateSummon(summon, false))
{
((L2SummonAI) summon.getAI()).notifyFollowStatusChange();
}
break;
}
case 22: // Attack (Servitors)
{
if (validateSummon(summon, false))
{
if (summon.canAttack(_ctrlPressed))
@@ -235,22 +246,32 @@ public final class RequestActionUse extends L2GameClientPacket
}
}
break;
}
case 23: // Stop (Servitors)
{
if (validateSummon(summon, false))
{
summon.cancelAction();
}
break;
}
case 28: // Private Store - Buy
{
activeChar.tryOpenPrivateBuyStore();
break;
}
case 32: // Wild Hog Cannon - Wild Cannon
{
useSkill("DDMagic", false);
break;
}
case 36: // Soulless - Toxic Smoke
{
useSkill("RangeDebuff", false);
break;
}
case 37: // Dwarven Manufacture
{
if (activeChar.isAlikeDead())
{
sendPacket(ActionFailed.STATIC_PACKET);
@@ -265,16 +286,21 @@ public final class RequestActionUse extends L2GameClientPacket
{
activeChar.standUp();
}
sendPacket(new RecipeShopManageList(activeChar, true));
break;
}
case 38: // Mount/Dismount
{
activeChar.mountPlayer(summon);
break;
}
case 39: // Soulless - Parasite Burst
{
useSkill("RangeDD", false);
break;
}
case 41: // Wild Hog Cannon - Attack
{
if (validateSummon(summon, false))
{
if ((target != null) && (target.isDoor() || (target instanceof L2SiegeFlagInstance)))
@@ -287,28 +313,44 @@ public final class RequestActionUse extends L2GameClientPacket
}
}
break;
}
case 42: // Kai the Cat - Self Damage Shield
{
useSkill("HealMagic", false);
break;
}
case 43: // Merrow the Unicorn - Hydro Screw
{
useSkill("DDMagic", false);
break;
}
case 44: // Big Boom - Boom Attack
{
useSkill("DDMagic", false);
break;
}
case 45: // Boxer the Unicorn - Master Recharge
{
useSkill("HealMagic", activeChar, false);
break;
}
case 46: // Mew the Cat - Mega Storm Strike
{
useSkill("DDMagic", false);
break;
}
case 47: // Silhouette - Steal Blood
{
useSkill("DDMagic", false);
break;
}
case 48: // Mechanic Golem - Mech. Cannon
{
useSkill("DDMagic", false);
break;
}
case 51: // General Manufacture
{
// Player shouldn't be able to set stores if he/she is alike dead (dead or fake death)
if (activeChar.isAlikeDead())
{
@@ -324,10 +366,11 @@ public final class RequestActionUse extends L2GameClientPacket
{
activeChar.standUp();
}
sendPacket(new RecipeShopManageList(activeChar, false));
break;
}
case 52: // Unsummon Servitor
{
if (validateSummon(summon, false))
{
if (summon.isAttackingNow() || summon.isInCombat())
@@ -338,7 +381,9 @@ public final class RequestActionUse extends L2GameClientPacket
summon.unSummon(activeChar);
}
break;
}
case 53: // Move to target (Servitors)
{
if (validateSummon(summon, false))
{
if ((target != null) && (summon != target) && !summon.isMovementDisabled())
@@ -348,7 +393,9 @@ public final class RequestActionUse extends L2GameClientPacket
}
}
break;
}
case 54: // Move to target (Pets)
{
if (validateSummon(summon, true))
{
if ((target != null) && (summon != target) && !summon.isMovementDisabled())
@@ -358,10 +405,14 @@ public final class RequestActionUse extends L2GameClientPacket
}
}
break;
}
case 61: // Private Store Package Sell
{
activeChar.tryOpenPrivateSellStore(true);
break;
}
case 65: // Bot Report Button
{
if (Config.BOTREPORT_ENABLE)
{
BotReportTable.getInstance().reportBot(activeChar);
@@ -371,7 +422,9 @@ public final class RequestActionUse extends L2GameClientPacket
activeChar.sendMessage("This feature is disabled.");
}
break;
}
case 67: // Steer
{
if (activeChar.isInAirShip())
{
if (activeChar.getAirShip().setCaptain(activeChar))
@@ -380,7 +433,9 @@ public final class RequestActionUse extends L2GameClientPacket
}
}
break;
}
case 68: // Cancel Control
{
if (activeChar.isInAirShip() && activeChar.getAirShip().isCaptain(activeChar))
{
if (activeChar.getAirShip().setCaptain(null))
@@ -389,10 +444,14 @@ public final class RequestActionUse extends L2GameClientPacket
}
}
break;
}
case 69: // Destination Map
{
AirShipManager.getInstance().sendAirShipTeleportList(activeChar);
break;
}
case 70: // Exit Airship
{
if (activeChar.isInAirShip())
{
if (activeChar.getAirShip().isCaptain(activeChar))
@@ -408,369 +467,602 @@ public final class RequestActionUse extends L2GameClientPacket
}
}
break;
}
case 71:
case 72:
case 73:
{
useCoupleSocial(_actionId - 55);
break;
}
case 1000: // Siege Golem - Siege Hammer
{
if ((target != null) && target.isDoor())
{
useSkill(4079, false);
}
break;
}
case 1001: // Sin Eater - Ultimate Bombastic Buster
{
if (validateSummon(summon, true) && (summon.getId() == SIN_EATER_ID))
{
summon.broadcastPacket(new NpcSay(summon.getObjectId(), ChatType.NPC_GENERAL, summon.getId(), NPC_STRINGS[Rnd.get(NPC_STRINGS.length)]));
}
break;
}
case 1003: // Wind Hatchling/Strider - Wild Stun
{
useSkill("PhysicalSpecial", true);
break;
}
case 1004: // Wind Hatchling/Strider - Wild Defense
{
useSkill("Buff", activeChar, true);
break;
}
case 1005: // Star Hatchling/Strider - Bright Burst
{
useSkill("DDMagic", true);
break;
}
case 1006: // Star Hatchling/Strider - Bright Heal
{
useSkill("Heal", activeChar, true);
break;
}
case 1007: // Feline Queen - Blessing of Queen
{
useSkill("Buff1", activeChar, false);
break;
}
case 1008: // Feline Queen - Gift of Queen
{
useSkill("Buff2", activeChar, false);
break;
}
case 1009: // Feline Queen - Cure of Queen
{
useSkill("DDMagic", false);
break;
}
case 1010: // Unicorn Seraphim - Blessing of Seraphim
{
useSkill("Buff1", activeChar, false);
break;
}
case 1011: // Unicorn Seraphim - Gift of Seraphim
{
useSkill("Buff2", activeChar, false);
break;
}
case 1012: // Unicorn Seraphim - Cure of Seraphim
{
useSkill("DDMagic", false);
break;
}
case 1013: // Nightshade - Curse of Shade
{
useSkill("DeBuff1", false);
break;
}
case 1014: // Nightshade - Mass Curse of Shade
{
useSkill("DeBuff2", false);
break;
}
case 1015: // Nightshade - Shade Sacrifice
{
useSkill("Heal", false);
break;
}
case 1016: // Cursed Man - Cursed Blow
{
useSkill("PhysicalSpecial1", false);
break;
}
case 1017: // Cursed Man - Cursed Strike
{
useSkill("PhysicalSpecial2", false);
break;
}
case 1031: // Feline King - Slash
{
useSkill("PhysicalSpecial1", false);
break;
}
case 1032: // Feline King - Spinning Slash
{
useSkill("PhysicalSpecial2", false);
break;
}
case 1033: // Feline King - Hold of King
{
useSkill("PhysicalSpecial3", false);
break;
}
case 1034: // Magnus the Unicorn - Whiplash
{
useSkill("PhysicalSpecial1", false);
break;
}
case 1035: // Magnus the Unicorn - Tridal Wave
{
useSkill("PhysicalSpecial2", false);
break;
}
case 1036: // Spectral Lord - Corpse Kaboom
{
useSkill("PhysicalSpecial1", false);
break;
}
case 1037: // Spectral Lord - Dicing Death
{
useSkill("PhysicalSpecial2", false);
break;
}
case 1038: // Spectral Lord - Dark Curse
{
useSkill("PhysicalSpecial3", false);
break;
}
case 1039: // Swoop Cannon - Cannon Fodder
{
useSkill(5110, false);
break;
}
case 1040: // Swoop Cannon - Big Bang
{
useSkill(5111, false);
break;
}
case 1041: // Great Wolf - Bite Attack
{
useSkill("Skill01", true);
break;
}
case 1042: // Great Wolf - Maul
{
useSkill("Skill03", true);
break;
}
case 1043: // Great Wolf - Cry of the Wolf
{
useSkill("Skill02", true);
break;
}
case 1044: // Great Wolf - Awakening
{
useSkill("Skill04", true);
break;
}
case 1045: // Great Wolf - Howl
{
useSkill(5584, true);
break;
}
case 1046: // Strider - Roar
{
useSkill(5585, true);
break;
}
case 1047: // Divine Beast - Bite
{
useSkill(5580, false);
break;
}
case 1048: // Divine Beast - Stun Attack
{
useSkill(5581, false);
break;
}
case 1049: // Divine Beast - Fire Breath
{
useSkill(5582, false);
break;
}
case 1050: // Divine Beast - Roar
{
useSkill(5583, false);
break;
}
case 1051: // Feline Queen - Bless The Body
{
useSkill("buff3", false);
break;
}
case 1052: // Feline Queen - Bless The Soul
{
useSkill("buff4", false);
break;
}
case 1053: // Feline Queen - Haste
{
useSkill("buff5", false);
break;
}
case 1054: // Unicorn Seraphim - Acumen
{
useSkill("buff3", false);
break;
}
case 1055: // Unicorn Seraphim - Clarity
{
useSkill("buff4", false);
break;
}
case 1056: // Unicorn Seraphim - Empower
{
useSkill("buff5", false);
break;
}
case 1057: // Unicorn Seraphim - Wild Magic
{
useSkill("buff6", false);
break;
}
case 1058: // Nightshade - Death Whisper
{
useSkill("buff3", false);
break;
}
case 1059: // Nightshade - Focus
{
useSkill("buff4", false);
break;
}
case 1060: // Nightshade - Guidance
{
useSkill("buff5", false);
break;
}
case 1061: // Wild Beast Fighter, White Weasel - Death blow
{
useSkill(5745, true);
break;
}
case 1062: // Wild Beast Fighter - Double attack
{
useSkill(5746, true);
break;
}
case 1063: // Wild Beast Fighter - Spin attack
{
useSkill(5747, true);
break;
}
case 1064: // Wild Beast Fighter - Meteor Shower
{
useSkill(5748, true);
break;
}
case 1065: // Fox Shaman, Wild Beast Fighter, White Weasel, Fairy Princess - Awakening
{
useSkill(5753, true);
break;
}
case 1066: // Fox Shaman, Spirit Shaman - Thunder Bolt
{
useSkill(5749, true);
break;
}
case 1067: // Fox Shaman, Spirit Shaman - Flash
{
useSkill(5750, true);
break;
}
case 1068: // Fox Shaman, Spirit Shaman - Lightning Wave
{
useSkill(5751, true);
break;
}
case 1069: // Fox Shaman, Fairy Princess - Flare
{
useSkill(5752, true);
break;
}
case 1070: // White Weasel, Fairy Princess, Improved Baby Buffalo, Improved Baby Kookaburra, Improved Baby Cougar, Spirit Shaman, Toy Knight, Turtle Ascetic - Buff control
{
useSkill(5771, true);
break;
}
case 1071: // Tigress - Power Strike
{
useSkill("DDMagic", true);
break;
}
case 1072: // Toy Knight - Piercing attack
{
useSkill(6046, true);
break;
}
case 1073: // Toy Knight - Whirlwind
{
useSkill(6047, true);
break;
}
case 1074: // Toy Knight - Lance Smash
{
useSkill(6048, true);
break;
}
case 1075: // Toy Knight - Battle Cry
{
useSkill(6049, true);
break;
}
case 1076: // Turtle Ascetic - Power Smash
{
useSkill(6050, true);
break;
}
case 1077: // Turtle Ascetic - Energy Burst
{
useSkill(6051, true);
break;
}
case 1078: // Turtle Ascetic - Shockwave
{
useSkill(6052, true);
break;
}
case 1079: // Turtle Ascetic - Howl
{
useSkill(6053, true);
break;
}
case 1080: // Phoenix Rush
{
useSkill(6041, false);
break;
}
case 1081: // Phoenix Cleanse
{
useSkill(6042, false);
break;
}
case 1082: // Phoenix Flame Feather
{
useSkill(6043, false);
break;
}
case 1083: // Phoenix Flame Beak
{
useSkill(6044, false);
break;
}
case 1084: // Switch State
{
if (summon instanceof L2BabyPetInstance)
{
useSkill(6054, true);
}
break;
}
case 1086: // Panther Cancel
{
useSkill(6094, false);
break;
}
case 1087: // Panther Dark Claw
{
useSkill(6095, false);
break;
}
case 1088: // Panther Fatal Claw
{
useSkill(6096, false);
break;
}
case 1089: // Deinonychus - Tail Strike
{
useSkill(6199, true);
break;
}
case 1090: // Guardian's Strider - Strider Bite
{
useSkill(6205, true);
break;
}
case 1091: // Guardian's Strider - Strider Fear
{
useSkill(6206, true);
break;
}
case 1092: // Guardian's Strider - Strider Dash
{
useSkill(6207, true);
break;
}
case 1093: // Maguen - Maguen Strike
{
useSkill(6618, true);
break;
}
case 1094: // Maguen - Maguen Wind Walk
{
useSkill(6681, true);
break;
}
case 1095: // Elite Maguen - Maguen Power Strike
{
useSkill(6619, true);
break;
}
case 1096: // Elite Maguen - Elite Maguen Wind Walk
{
useSkill(6682, true);
break;
}
case 1097: // Maguen - Maguen Return
{
useSkill(6683, true);
break;
}
case 1098: // Elite Maguen - Maguen Party Return
{
useSkill(6684, true);
break;
}
case 5000: // Baby Rudolph - Reindeer Scratch
{
useSkill(23155, true);
break;
}
case 5001: // Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum - Rosy Seduction
{
useSkill(23167, true);
break;
}
case 5002: // Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum - Critical Seduction
{
useSkill(23168, true);
break;
}
case 5003: // Hyum, Lapham, Hyum, Lapham - Thunder Bolt
{
useSkill(5749, true);
break;
}
case 5004: // Hyum, Lapham, Hyum, Lapham - Flash
{
useSkill(5750, true);
break;
}
case 5005: // Hyum, Lapham, Hyum, Lapham - Lightning Wave
{
useSkill(5751, true);
break;
}
case 5006: // Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum, Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum - Buff Control
{
useSkill(5771, true);
break;
}
case 5007: // Deseloph, Lilias, Deseloph, Lilias - Piercing Attack
{
useSkill(6046, true);
break;
}
case 5008: // Deseloph, Lilias, Deseloph, Lilias - Spin Attack
{
useSkill(6047, true);
break;
}
case 5009: // Deseloph, Lilias, Deseloph, Lilias - Smash
{
useSkill(6048, true);
break;
}
case 5010: // Deseloph, Lilias, Deseloph, Lilias - Ignite
{
useSkill(6049, true);
break;
}
case 5011: // Rekang, Mafum, Rekang, Mafum - Power Smash
{
useSkill(6050, true);
break;
}
case 5012: // Rekang, Mafum, Rekang, Mafum - Energy Burst
{
useSkill(6051, true);
break;
}
case 5013: // Rekang, Mafum, Rekang, Mafum - Shockwave
{
useSkill(6052, true);
break;
}
case 5014: // Rekang, Mafum, Rekang, Mafum - Ignite
{
useSkill(6053, true);
break;
}
case 5015: // Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum, Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum - Switch Stance
{
useSkill(6054, true);
break;
}
// Social Packets
case 12: // Greeting
{
tryBroadcastSocial(2);
break;
}
case 13: // Victory
{
tryBroadcastSocial(3);
break;
}
case 14: // Advance
{
tryBroadcastSocial(4);
break;
}
case 24: // Yes
{
tryBroadcastSocial(6);
break;
}
case 25: // No
{
tryBroadcastSocial(5);
break;
}
case 26: // Bow
{
tryBroadcastSocial(7);
break;
}
case 29: // Unaware
{
tryBroadcastSocial(8);
break;
}
case 30: // Social Waiting
{
tryBroadcastSocial(9);
break;
}
case 31: // Laugh
{
tryBroadcastSocial(10);
break;
}
case 33: // Applaud
{
tryBroadcastSocial(11);
break;
}
case 34: // Dance
{
tryBroadcastSocial(12);
break;
}
case 35: // Sorrow
{
tryBroadcastSocial(13);
break;
}
case 62: // Charm
{
tryBroadcastSocial(14);
break;
}
case 66: // Shyness
{
tryBroadcastSocial(15);
break;
}
default:
{
if (Config.DEBUG)
{
_log.warning(activeChar.getName() + ": unhandled action type " + _actionId);
}
break;
}
}
}

View File

@@ -61,6 +61,7 @@ public final class RequestBlock extends L2GameClientPacket
{
case BLOCK:
case UNBLOCK:
{
// can't use block/unblock for locating invisible characters
if (targetId <= 0)
{
@@ -68,19 +69,16 @@ public final class RequestBlock extends L2GameClientPacket
activeChar.sendPacket(SystemMessageId.YOU_HAVE_FAILED_TO_REGISTER_THE_USER_TO_YOUR_IGNORE_LIST);
return;
}
if (targetAL > 0)
{
// Cannot block a GM character.
activeChar.sendPacket(SystemMessageId.YOU_MAY_NOT_IMPOSE_A_BLOCK_ON_A_GM);
return;
}
if (activeChar.getObjectId() == targetId)
{
return;
}
if (_type == BLOCK)
{
BlockList.addToBlockList(activeChar, targetId);
@@ -90,19 +88,28 @@ public final class RequestBlock extends L2GameClientPacket
BlockList.removeFromBlockList(activeChar, targetId);
}
break;
}
case BLOCKLIST:
{
BlockList.sendListToOwner(activeChar);
break;
}
case ALLBLOCK:
{
activeChar.sendPacket(SystemMessageId.MESSAGE_REFUSAL_MODE);
BlockList.setBlockAll(activeChar, true);
break;
}
case ALLUNBLOCK:
{
activeChar.sendPacket(SystemMessageId.MESSAGE_ACCEPTANCE_MODE);
BlockList.setBlockAll(activeChar, false);
break;
}
default:
{
_log.info("Unknown 0xA9 block type: " + _type);
}
}
}

View File

@@ -74,6 +74,7 @@ public final class RequestConfirmCancelItem extends L2GameClientPacket
switch (item.getItem().getCrystalType())
{
case C:
{
if (item.getCrystalCount() < 1720)
{
price = 95000;
@@ -87,7 +88,9 @@ public final class RequestConfirmCancelItem extends L2GameClientPacket
price = 210000;
}
break;
}
case B:
{
if (item.getCrystalCount() < 1746)
{
price = 240000;
@@ -97,7 +100,9 @@ public final class RequestConfirmCancelItem extends L2GameClientPacket
price = 270000;
}
break;
}
case A:
{
if (item.getCrystalCount() < 2160)
{
price = 330000;
@@ -111,17 +116,24 @@ public final class RequestConfirmCancelItem extends L2GameClientPacket
price = 420000;
}
break;
}
case S:
{
price = 480000;
break;
}
case S80:
case S84:
{
price = 920000;
break;
}
// TODO: S84 TOP price 3.2M
// any other item type is not augmentable
default:
{
return;
}
}
activeChar.sendPacket(new ExPutItemResultForVariationCancel(item, price));

View File

@@ -52,11 +52,15 @@ public final class RequestExCubeGameChangeTeam extends L2GameClientPacket
{
case 0:
case 1:
{
// Change Player Team
HandysBlockCheckerManager.getInstance().changePlayerToTeam(player, _arena, _team);
break;
}
case -1:
// Remove Player (me)
{
// Remove Player (me)
}
{
final int team = HandysBlockCheckerManager.getInstance().getHolder(_arena).getPlayerTeam(player);
// client sends two times this packet if click on exit
@@ -68,8 +72,10 @@ public final class RequestExCubeGameChangeTeam extends L2GameClientPacket
break;
}
default:
{
_log.warning("Wrong Cube Game Team ID: " + _team);
break;
}
}
}

View File

@@ -52,15 +52,21 @@ public final class RequestExCubeGameReadyAnswer extends L2GameClientPacket
switch (_answer)
{
case 0:
{
// Cancel - Answer No
break;
}
case 1:
{
// OK or Time Over
HandysBlockCheckerManager.getInstance().increaseArenaVotes(_arena);
break;
}
default:
{
_log.warning("Unknown Cube Game Answer ID: " + _answer);
break;
}
}
}

View File

@@ -179,17 +179,25 @@ public class RequestExEnchantItemAttribute extends L2GameClientPacket
{
case Stone:
case Roughore:
{
success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_STONE;
break;
}
case Crystal:
{
success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_CRYSTAL;
break;
}
case Jewel:
{
success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_JEWEL;
break;
}
case Energy:
{
success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_ENERGY;
break;
}
}
if (success)
{

View File

@@ -129,6 +129,7 @@ public class RequestExRemoveItemAttribute extends L2GameClientPacket
switch (item.getItem().getCrystalType())
{
case S:
{
if (item.getItem() instanceof L2Weapon)
{
_price = 50000;
@@ -138,7 +139,9 @@ public class RequestExRemoveItemAttribute extends L2GameClientPacket
_price = 40000;
}
break;
}
case S80:
{
if (item.getItem() instanceof L2Weapon)
{
_price = 100000;
@@ -148,7 +151,9 @@ public class RequestExRemoveItemAttribute extends L2GameClientPacket
_price = 80000;
}
break;
}
case S84:
{
if (item.getItem() instanceof L2Weapon)
{
_price = 200000;
@@ -158,6 +163,7 @@ public class RequestExRemoveItemAttribute extends L2GameClientPacket
_price = 160000;
}
break;
}
}
return _price;

View File

@@ -72,6 +72,7 @@ public final class RequestRefineCancel extends L2GameClientPacket
switch (targetItem.getItem().getCrystalType())
{
case C:
{
if (targetItem.getCrystalCount() < 1720)
{
price = 95000;
@@ -85,7 +86,9 @@ public final class RequestRefineCancel extends L2GameClientPacket
price = 210000;
}
break;
}
case B:
{
if (targetItem.getCrystalCount() < 1746)
{
price = 240000;
@@ -95,7 +98,9 @@ public final class RequestRefineCancel extends L2GameClientPacket
price = 270000;
}
break;
}
case A:
{
if (targetItem.getCrystalCount() < 2160)
{
price = 330000;
@@ -109,17 +114,24 @@ public final class RequestRefineCancel extends L2GameClientPacket
price = 420000;
}
break;
}
case S:
{
price = 480000;
break;
}
case S80:
case S84:
{
price = 920000;
break;
}
// any other item type is not augmentable
default:
{
activeChar.sendPacket(new ExVariationCancelResult(0));
return;
}
}
// try to reduce the players adena

View File

@@ -255,8 +255,10 @@ public final class UseItem extends L2GameClientPacket
switch (wpn.getItemType())
{
case NONE:
{
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM);
return;
}
}
break;
}
@@ -271,8 +273,10 @@ public final class UseItem extends L2GameClientPacket
case RAPIER:
case CROSSBOW:
case ANCIENTSWORD:
{
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM);
return;
}
}
break;
}

View File

@@ -40,53 +40,85 @@ public final class EquipUpdate extends L2GameServerPacket
switch (_item.getItem().getBodyPart())
{
case L2Item.SLOT_L_EAR:
{
bodypart = 0x01;
break;
}
case L2Item.SLOT_R_EAR:
{
bodypart = 0x02;
break;
}
case L2Item.SLOT_NECK:
{
bodypart = 0x03;
break;
}
case L2Item.SLOT_R_FINGER:
{
bodypart = 0x04;
break;
}
case L2Item.SLOT_L_FINGER:
{
bodypart = 0x05;
break;
}
case L2Item.SLOT_HEAD:
{
bodypart = 0x06;
break;
}
case L2Item.SLOT_R_HAND:
{
bodypart = 0x07;
break;
}
case L2Item.SLOT_L_HAND:
{
bodypart = 0x08;
break;
}
case L2Item.SLOT_GLOVES:
{
bodypart = 0x09;
break;
}
case L2Item.SLOT_CHEST:
{
bodypart = 0x0a;
break;
}
case L2Item.SLOT_LEGS:
{
bodypart = 0x0b;
break;
}
case L2Item.SLOT_FEET:
{
bodypart = 0x0c;
break;
}
case L2Item.SLOT_BACK:
{
bodypart = 0x0d;
break;
}
case L2Item.SLOT_LR_HAND:
{
bodypart = 0x0e;
break;
}
case L2Item.SLOT_HAIR:
{
bodypart = 0x0f;
break;
}
case L2Item.SLOT_BELT:
{
bodypart = 0x10;
break;
}
}
writeD(bodypart);
}

View File

@@ -88,23 +88,33 @@ public class ExEnchantSkillInfoDetail extends L2GameServerPacket
switch (type)
{
case TYPE_NORMAL_ENCHANT:
{
bookId = EnchantSkillGroupsData.NORMAL_ENCHANT_BOOK;
reqCount = (((_skilllvl % 100) > 1) ? 0 : 1);
break;
}
case TYPE_SAFE_ENCHANT:
{
bookId = EnchantSkillGroupsData.SAFE_ENCHANT_BOOK;
reqCount = 1;
break;
}
case TYPE_UNTRAIN_ENCHANT:
{
bookId = EnchantSkillGroupsData.UNTRAIN_ENCHANT_BOOK;
reqCount = 1;
break;
}
case TYPE_CHANGE_ENCHANT:
{
bookId = EnchantSkillGroupsData.CHANGE_ENCHANT_BOOK;
reqCount = 1;
break;
}
default:
{
return;
}
}
if ((type != TYPE_SAFE_ENCHANT) && !Config.ES_SP_BOOK_NEEDED)

View File

@@ -53,6 +53,7 @@ public class ExShowBaseAttributeCancelWindow extends L2GameServerPacket
switch (item.getItem().getCrystalType())
{
case S:
{
if (item.getItem() instanceof L2Weapon)
{
_price = 50000;
@@ -62,7 +63,9 @@ public class ExShowBaseAttributeCancelWindow extends L2GameServerPacket
_price = 40000;
}
break;
}
case S80:
{
if (item.getItem() instanceof L2Weapon)
{
_price = 100000;
@@ -72,7 +75,9 @@ public class ExShowBaseAttributeCancelWindow extends L2GameServerPacket
_price = 80000;
}
break;
}
case S84:
{
if (item.getItem() instanceof L2Weapon)
{
_price = 200000;
@@ -82,6 +87,7 @@ public class ExShowBaseAttributeCancelWindow extends L2GameServerPacket
_price = 160000;
}
break;
}
}
return _price;

View File

@@ -57,43 +57,65 @@ public class ExShowFortressSiegeInfo extends L2GameServerPacket
switch (_csize)
{
case 3:
{
switch (_csize2)
{
case 0:
{
writeD(0x03);
break;
}
case 1:
{
writeD(0x02);
break;
}
case 2:
{
writeD(0x01);
break;
}
case 3:
{
writeD(0x00);
break;
}
}
break;
}
case 4: // TODO: change 4 to 5 once control room supported
{
switch (_csize2)
// TODO: once control room supported, update writeD(0x0x) to support 5th room
{
// TODO: once control room supported, update writeD(0x0x) to support 5th room
case 0:
{
writeD(0x05);
break;
}
case 1:
{
writeD(0x04);
break;
}
case 2:
{
writeD(0x03);
break;
}
case 3:
{
writeD(0x02);
break;
}
case 4:
{
writeD(0x01);
break;
}
}
break;
}
}
}
else

View File

@@ -56,6 +56,7 @@ public class SSQStatus extends L2GameServerPacket
switch (_page)
{
case 1:
{
// [ddd cc dd ddd c ddd c]
writeD(SevenSigns.getInstance().getCurrentCycle());
@@ -65,29 +66,41 @@ public class SSQStatus extends L2GameServerPacket
switch (currentPeriod)
{
case SevenSigns.PERIOD_COMP_RECRUITING:
{
writeD(SystemMessageId.THIS_IS_THE_INITIAL_PERIOD.getId());
break;
}
case SevenSigns.PERIOD_COMPETITION:
{
writeD(SystemMessageId.THE_SSQ_COMPETITION_PERIOD_IS_UNDERWAY.getId());
break;
}
case SevenSigns.PERIOD_COMP_RESULTS:
{
writeD(SystemMessageId.THIS_IS_A_PERIOD_WHEN_SERVER_STATISTICS_ARE_CALCULATED.getId());
break;
}
case SevenSigns.PERIOD_SEAL_VALIDATION:
{
writeD(SystemMessageId.THIS_IS_THE_SEAL_VALIDATION_PERIOD.getId());
break;
}
}
switch (currentPeriod)
{
case SevenSigns.PERIOD_COMP_RECRUITING:
case SevenSigns.PERIOD_COMP_RESULTS:
{
writeD(SystemMessageId.UNTIL_TODAY_AT_6_00_P_M.getId());
break;
}
case SevenSigns.PERIOD_COMPETITION:
case SevenSigns.PERIOD_SEAL_VALIDATION:
{
writeD(SystemMessageId.UNTIL_NEXT_MONDAY_AT_6_00_P_M.getId());
break;
}
}
writeC(SevenSigns.getInstance().getPlayerCabal(_objectId));
@@ -159,7 +172,9 @@ public class SSQStatus extends L2GameServerPacket
writeC(dawnPercent); // Dawn %
break;
}
case 2:
{
// c cc hc [cd (dc (S))]
writeH(1);
@@ -214,7 +229,9 @@ public class SSQStatus extends L2GameServerPacket
}
}
break;
}
case 3:
{
// c cc [ccc (cccc)]
writeC(10); // Minimum limit for winning cabal to retain their seal
writeC(35); // Minimum limit for winning cabal to claim a seal
@@ -261,7 +278,9 @@ public class SSQStatus extends L2GameServerPacket
}
}
break;
}
case 4:
{
// c cc [cc (ccD)] CT 2.3 update
writeC(winningCabal); // Overall predicted winner
writeC(3); // Total number of seals
@@ -279,13 +298,17 @@ public class SSQStatus extends L2GameServerPacket
switch (sealOwner)
{
case SevenSigns.CABAL_NULL:
{
switch (winningCabal)
{
case SevenSigns.CABAL_NULL:
{
writeC(SevenSigns.CABAL_NULL);
writeD(SystemMessageId.THE_COMPETITION_HAS_ENDED_IN_A_TIE_THEREFORE_NOBODY_HAS_BEEN_AWARDED_THE_SEAL.getId());
break;
}
case SevenSigns.CABAL_DAWN:
{
if (dawnPercent >= 35)
{
writeC(SevenSigns.CABAL_DAWN);
@@ -297,7 +320,9 @@ public class SSQStatus extends L2GameServerPacket
writeD(SystemMessageId.SINCE_THE_SEAL_WAS_NOT_OWNED_DURING_THE_PREVIOUS_PERIOD_AND_SINCE_LESS_THAN_35_PERCENT_OF_PEOPLE_HAVE_VOTED.getId());
}
break;
}
case SevenSigns.CABAL_DUSK:
{
if (duskPercent >= 35)
{
writeC(SevenSigns.CABAL_DUSK);
@@ -309,12 +334,16 @@ public class SSQStatus extends L2GameServerPacket
writeD(SystemMessageId.SINCE_THE_SEAL_WAS_NOT_OWNED_DURING_THE_PREVIOUS_PERIOD_AND_SINCE_LESS_THAN_35_PERCENT_OF_PEOPLE_HAVE_VOTED.getId());
}
break;
}
}
break;
}
case SevenSigns.CABAL_DAWN:
{
switch (winningCabal)
{
case SevenSigns.CABAL_NULL:
{
if (dawnPercent >= 10)
{
writeC(SevenSigns.CABAL_DAWN);
@@ -326,7 +355,9 @@ public class SSQStatus extends L2GameServerPacket
writeD(SystemMessageId.THE_COMPETITION_HAS_ENDED_IN_A_TIE_THEREFORE_NOBODY_HAS_BEEN_AWARDED_THE_SEAL.getId());
}
break;
}
case SevenSigns.CABAL_DAWN:
{
if (dawnPercent >= 10)
{
writeC(sealOwner);
@@ -338,7 +369,9 @@ public class SSQStatus extends L2GameServerPacket
writeD(SystemMessageId.ALTHOUGH_THE_SEAL_WAS_OWNED_DURING_THE_PREVIOUS_PERIOD_LESS_THAN_10_OF_PEOPLE_HAVE_VOTED.getId());
}
break;
}
case SevenSigns.CABAL_DUSK:
{
if (duskPercent >= 35)
{
writeC(SevenSigns.CABAL_DUSK);
@@ -355,12 +388,16 @@ public class SSQStatus extends L2GameServerPacket
writeD(SystemMessageId.ALTHOUGH_THE_SEAL_WAS_OWNED_DURING_THE_PREVIOUS_PERIOD_LESS_THAN_10_OF_PEOPLE_HAVE_VOTED.getId());
}
break;
}
}
break;
}
case SevenSigns.CABAL_DUSK:
{
switch (winningCabal)
{
case SevenSigns.CABAL_NULL:
{
if (duskPercent >= 10)
{
writeC(SevenSigns.CABAL_DUSK);
@@ -372,7 +409,9 @@ public class SSQStatus extends L2GameServerPacket
writeD(SystemMessageId.THE_COMPETITION_HAS_ENDED_IN_A_TIE_THEREFORE_NOBODY_HAS_BEEN_AWARDED_THE_SEAL.getId());
}
break;
}
case SevenSigns.CABAL_DAWN:
{
if (dawnPercent >= 35)
{
writeC(SevenSigns.CABAL_DAWN);
@@ -389,7 +428,9 @@ public class SSQStatus extends L2GameServerPacket
writeD(SystemMessageId.ALTHOUGH_THE_SEAL_WAS_OWNED_DURING_THE_PREVIOUS_PERIOD_LESS_THAN_10_OF_PEOPLE_HAVE_VOTED.getId());
}
break;
}
case SevenSigns.CABAL_DUSK:
{
if (duskPercent >= 10)
{
writeC(sealOwner);
@@ -401,11 +442,14 @@ public class SSQStatus extends L2GameServerPacket
writeD(SystemMessageId.ALTHOUGH_THE_SEAL_WAS_OWNED_DURING_THE_PREVIOUS_PERIOD_LESS_THAN_10_OF_PEOPLE_HAVE_VOTED.getId());
}
break;
}
}
break;
}
}
}
break;
}
}
}
}

View File

@@ -85,17 +85,25 @@ public final class SiegeDefenderList extends L2GameServerPacket
switch (siegeclan.getType())
{
case OWNER:
{
writeD(0x01); // owner
break;
}
case DEFENDER_PENDING:
{
writeD(0x02); // approved
break;
}
case DEFENDER:
{
writeD(0x03); // waiting approved
break;
}
default:
{
writeD(0x00);
break;
}
}
writeD(clan.getAllyId());
writeS(clan.getAllyName());

View File

@@ -99,45 +99,71 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
switch (itemtype)
{
case WEAPON:
{
_objects = createWeaponList(player.getActiveWarehouse().getItems());
break;
}
case ARMOR:
{
_objects = createArmorList(player.getActiveWarehouse().getItems());
break;
}
case ETCITEM:
{
_objects = createEtcItemList(player.getActiveWarehouse().getItems());
break;
}
case MATERIAL:
{
_objects = createMatList(player.getActiveWarehouse().getItems());
break;
}
case RECIPE:
{
_objects = createRecipeList(player.getActiveWarehouse().getItems());
break;
}
case AMULETT:
{
_objects = createAmulettList(player.getActiveWarehouse().getItems());
break;
}
case SPELLBOOK:
{
_objects = createSpellbookList(player.getActiveWarehouse().getItems());
break;
}
case CONSUMABLE:
{
_objects = createConsumableList(player.getActiveWarehouse().getItems());
break;
}
case SHOT:
{
_objects = createShotList(player.getActiveWarehouse().getItems());
break;
}
case SCROLL:
{
_objects = createScrollList(player.getActiveWarehouse().getItems());
break;
}
case SEED:
{
_objects = createSeedList(player.getActiveWarehouse().getItems());
break;
}
case OTHER:
{
_objects = createOtherList(player.getActiveWarehouse().getItems());
break;
}
case ALL:
default:
{
_objects = createAllList(player.getActiveWarehouse().getItems());
break;
}
}
try
@@ -146,36 +172,46 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
{
case A2Z:
case Z2A:
{
Collections.sort(_objects, new WarehouseItemNameComparator(sortorder));
break;
}
case GRADE:
{
if ((itemtype == WarehouseListType.ARMOR) || (itemtype == WarehouseListType.WEAPON))
{
Collections.sort(_objects, new WarehouseItemNameComparator(A2Z));
Collections.sort(_objects, new WarehouseItemGradeComparator(A2Z));
}
break;
}
case LEVEL:
{
if (itemtype == WarehouseListType.RECIPE)
{
Collections.sort(_objects, new WarehouseItemNameComparator(A2Z));
Collections.sort(_objects, new WarehouseItemRecipeComparator(A2Z));
}
break;
}
case TYPE:
{
if (itemtype == WarehouseListType.MATERIAL)
{
Collections.sort(_objects, new WarehouseItemNameComparator(A2Z));
Collections.sort(_objects, new WarehouseItemTypeComparator(A2Z));
}
break;
}
case WEAR:
{
if (itemtype == WarehouseListType.ARMOR)
{
Collections.sort(_objects, new WarehouseItemNameComparator(A2Z));
Collections.sort(_objects, new WarehouseItemBodypartComparator(A2Z));
}
break;
}
}
}
catch (Exception e)

View File

@@ -77,10 +77,15 @@ public final class JavaExecutionContext extends AbstractExecutionContext<JavaScr
switch (classloader)
{
case "ThreadContext":
{
return Thread.currentThread().getContextClassLoader();
}
case "System":
{
return ClassLoader.getSystemClassLoader();
}
default:
{
try
{
return Class.forName(classloader).getClassLoader();
@@ -89,6 +94,7 @@ public final class JavaExecutionContext extends AbstractExecutionContext<JavaScr
{
return ClassLoader.getSystemClassLoader();
}
}
}
}

View File

@@ -57,36 +57,57 @@ public class TaskRaidPointsReset extends Task
switch (entry.getValue())
{
case 1:
{
reputation = Config.RAID_RANKING_1ST;
break;
}
case 2:
{
reputation = Config.RAID_RANKING_2ND;
break;
}
case 3:
{
reputation = Config.RAID_RANKING_3RD;
break;
}
case 4:
{
reputation = Config.RAID_RANKING_4TH;
break;
}
case 5:
{
reputation = Config.RAID_RANKING_5TH;
break;
}
case 6:
{
reputation = Config.RAID_RANKING_6TH;
break;
}
case 7:
{
reputation = Config.RAID_RANKING_7TH;
break;
}
case 8:
{
reputation = Config.RAID_RANKING_8TH;
break;
}
case 9:
{
reputation = Config.RAID_RANKING_9TH;
break;
}
case 10:
{
reputation = Config.RAID_RANKING_10TH;
break;
}
default:
{
if (entry.getValue() <= 50)
{
reputation = Config.RAID_RANKING_UP_TO_50TH;
@@ -96,6 +117,7 @@ public class TaskRaidPointsReset extends Task
reputation = Config.RAID_RANKING_UP_TO_100TH;
}
break;
}
}
c.addReputationScore(reputation, true);
}

View File

@@ -159,19 +159,24 @@ public final class GeoDataConverter
switch (type)
{
case GeoStructure.TYPE_FLAT_L2J_L2OFF:
{
_blocks[ix][iy] = new BlockFlat(buffer, _format);
break;
}
case GeoStructure.TYPE_COMPLEX_L2J:
{
_blocks[ix][iy] = new BlockComplex(buffer, _format);
break;
}
case GeoStructure.TYPE_MULTILAYER_L2J:
{
_blocks[ix][iy] = new BlockMultilayer(buffer, _format);
break;
}
default:
{
throw new IllegalArgumentException("Unknown block type: " + type);
}
}
}
else
@@ -183,16 +188,20 @@ public final class GeoDataConverter
switch (type)
{
case GeoStructure.TYPE_FLAT_L2J_L2OFF:
{
_blocks[ix][iy] = new BlockFlat(buffer, _format);
break;
}
case GeoStructure.TYPE_COMPLEX_L2OFF:
{
_blocks[ix][iy] = new BlockComplex(buffer, _format);
break;
}
default:
{
_blocks[ix][iy] = new BlockMultilayer(buffer, _format);
break;
}
}
}
}