Code format braces.
This commit is contained in:
@@ -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.
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
@@ -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)))
|
||||
{
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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());
|
||||
|
@@ -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());
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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)))
|
||||
{
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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));
|
||||
|
@@ -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;
|
||||
|
@@ -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))
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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())
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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));
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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());
|
||||
|
@@ -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)
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user