Several braces code format.
This commit is contained in:
@@ -58,6 +58,7 @@ public class FortUpdater implements Runnable
|
||||
switch (_updaterType)
|
||||
{
|
||||
case PERIODIC_UPDATE:
|
||||
{
|
||||
_runCount++;
|
||||
if ((_fort.getOwnerClan() == null) || (_fort.getOwnerClan() != _clan))
|
||||
{
|
||||
@@ -81,7 +82,9 @@ public class FortUpdater implements Runnable
|
||||
}
|
||||
_fort.saveFortVariables();
|
||||
break;
|
||||
}
|
||||
case MAX_OWN_TIME:
|
||||
{
|
||||
if ((_fort.getOwnerClan() == null) || (_fort.getOwnerClan() != _clan))
|
||||
{
|
||||
return;
|
||||
@@ -92,6 +95,7 @@ public class FortUpdater implements Runnable
|
||||
_fort.setFortState(0, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@@ -208,6 +208,7 @@ public class LoginServerThread extends Thread
|
||||
switch (packetType)
|
||||
{
|
||||
case 0x00:
|
||||
{
|
||||
final InitLS init = new InitLS(incoming);
|
||||
if (init.getRevision() != REVISION)
|
||||
{
|
||||
@@ -236,12 +237,16 @@ public class LoginServerThread extends Thread
|
||||
_blowfish = new NewCrypt(blowfishKey);
|
||||
sendPacket(new AuthRequest(_requestID, _acceptAlternate, _hexID, _gamePort, _reserveHost, _maxPlayer, _subnets, _hosts));
|
||||
break;
|
||||
}
|
||||
case 0x01:
|
||||
{
|
||||
final LoginServerFail lsf = new LoginServerFail(incoming);
|
||||
LOGGER.info(getClass().getSimpleName() + ": Damn! Registeration Failed: " + lsf.getReasonString());
|
||||
// login will close the connection here
|
||||
break;
|
||||
}
|
||||
case 0x02:
|
||||
{
|
||||
final AuthResponse aresp = new AuthResponse(incoming);
|
||||
final int serverID = aresp.getServerId();
|
||||
_serverName = aresp.getServerName();
|
||||
@@ -288,7 +293,9 @@ public class LoginServerThread extends Thread
|
||||
sendPacket(new PlayerInGame(playerList));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 0x03:
|
||||
{
|
||||
final PlayerAuthResponse par = new PlayerAuthResponse(incoming);
|
||||
final String account = par.getAccount();
|
||||
WaitingClient wcToRemove = null;
|
||||
@@ -324,17 +331,24 @@ public class LoginServerThread extends Thread
|
||||
_waitingClients.remove(wcToRemove);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 0x04:
|
||||
{
|
||||
final KickPlayer kp = new KickPlayer(incoming);
|
||||
doKickPlayer(kp.getAccount());
|
||||
break;
|
||||
}
|
||||
case 0x05:
|
||||
{
|
||||
final RequestCharacters rc = new RequestCharacters(incoming);
|
||||
getCharsOnServer(rc.getAccount());
|
||||
break;
|
||||
}
|
||||
case 0x06:
|
||||
{
|
||||
new ChangePasswordResponse(incoming);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -721,31 +735,45 @@ public class LoginServerThread extends Thread
|
||||
switch (status)
|
||||
{
|
||||
case ServerStatus.STATUS_AUTO:
|
||||
{
|
||||
sendServerStatus(ServerStatus.SERVER_LIST_STATUS, ServerStatus.STATUS_AUTO);
|
||||
_status = status;
|
||||
break;
|
||||
}
|
||||
case ServerStatus.STATUS_DOWN:
|
||||
{
|
||||
sendServerStatus(ServerStatus.SERVER_LIST_STATUS, ServerStatus.STATUS_DOWN);
|
||||
_status = status;
|
||||
break;
|
||||
}
|
||||
case ServerStatus.STATUS_FULL:
|
||||
{
|
||||
sendServerStatus(ServerStatus.SERVER_LIST_STATUS, ServerStatus.STATUS_FULL);
|
||||
_status = status;
|
||||
break;
|
||||
}
|
||||
case ServerStatus.STATUS_GM_ONLY:
|
||||
{
|
||||
sendServerStatus(ServerStatus.SERVER_LIST_STATUS, ServerStatus.STATUS_GM_ONLY);
|
||||
_status = status;
|
||||
break;
|
||||
}
|
||||
case ServerStatus.STATUS_GOOD:
|
||||
{
|
||||
sendServerStatus(ServerStatus.SERVER_LIST_STATUS, ServerStatus.STATUS_GOOD);
|
||||
_status = status;
|
||||
break;
|
||||
}
|
||||
case ServerStatus.STATUS_NORMAL:
|
||||
{
|
||||
sendServerStatus(ServerStatus.SERVER_LIST_STATUS, ServerStatus.STATUS_NORMAL);
|
||||
_status = status;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw new IllegalArgumentException("Status does not exists:" + status);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -133,14 +133,20 @@ public class DoppelgangerAI extends L2CharacterAI
|
||||
switch (getIntention())
|
||||
{
|
||||
case AI_INTENTION_ATTACK:
|
||||
{
|
||||
thinkAttack();
|
||||
break;
|
||||
}
|
||||
case AI_INTENTION_CAST:
|
||||
{
|
||||
thinkCast();
|
||||
break;
|
||||
}
|
||||
case AI_INTENTION_INTERACT:
|
||||
{
|
||||
thinkInteract();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
@@ -173,7 +179,9 @@ public class DoppelgangerAI extends L2CharacterAI
|
||||
case AI_INTENTION_IDLE:
|
||||
case AI_INTENTION_MOVE_TO:
|
||||
case AI_INTENTION_PICK_UP:
|
||||
{
|
||||
getActor().followSummoner(_startFollow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1094,14 +1094,20 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
switch (getIntention())
|
||||
{
|
||||
case AI_INTENTION_ACTIVE:
|
||||
{
|
||||
thinkActive();
|
||||
break;
|
||||
}
|
||||
case AI_INTENTION_ATTACK:
|
||||
{
|
||||
thinkAttack();
|
||||
break;
|
||||
}
|
||||
case AI_INTENTION_CAST:
|
||||
{
|
||||
thinkCast();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@@ -129,8 +129,10 @@ public class NpcData implements IGameXmlReader
|
||||
}
|
||||
case "race":
|
||||
case "sex":
|
||||
{
|
||||
set.set(npc_node.getNodeName(), npc_node.getTextContent().toUpperCase());
|
||||
break;
|
||||
}
|
||||
case "equipment":
|
||||
{
|
||||
set.set("chestId", parseInteger(attrs, "chest"));
|
||||
@@ -218,23 +220,35 @@ public class NpcData implements IGameXmlReader
|
||||
switch (attackAttributeType.toUpperCase())
|
||||
{
|
||||
case "FIRE":
|
||||
{
|
||||
set.set("baseFire", parseInteger(attrs, "value"));
|
||||
break;
|
||||
}
|
||||
case "WATER":
|
||||
{
|
||||
set.set("baseWater", parseInteger(attrs, "value"));
|
||||
break;
|
||||
}
|
||||
case "WIND":
|
||||
{
|
||||
set.set("baseWind", parseInteger(attrs, "value"));
|
||||
break;
|
||||
}
|
||||
case "EARTH":
|
||||
{
|
||||
set.set("baseEarth", parseInteger(attrs, "value"));
|
||||
break;
|
||||
}
|
||||
case "DARK":
|
||||
{
|
||||
set.set("baseDark", parseInteger(attrs, "value"));
|
||||
break;
|
||||
}
|
||||
case "HOLY":
|
||||
{
|
||||
set.set("baseHoly", parseInteger(attrs, "value"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -279,8 +293,10 @@ public class NpcData implements IGameXmlReader
|
||||
break;
|
||||
}
|
||||
case "hit_time":
|
||||
{
|
||||
set.set("hit_time", npc_node.getTextContent()); // TODO: Implement me default 600 (value in ms)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@@ -1175,41 +1175,65 @@ public final class SkillTreesData implements IGameXmlReader
|
||||
switch (skillType)
|
||||
{
|
||||
case CLASS:
|
||||
{
|
||||
sl = getClassSkill(id, lvl, player.getClassId());
|
||||
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;
|
||||
}
|
||||
case REVELATION:
|
||||
{
|
||||
sl = getRevelationSkill(SubclassType.BASECLASS, id, lvl);
|
||||
break;
|
||||
}
|
||||
case REVELATION_DUALCLASS:
|
||||
{
|
||||
sl = getRevelationSkill(SubclassType.DUALCLASS, id, lvl);
|
||||
break;
|
||||
}
|
||||
case ALCHEMY:
|
||||
{
|
||||
sl = getAlchemySkill(id, lvl);
|
||||
break;
|
||||
}
|
||||
case DUALCLASS:
|
||||
{
|
||||
sl = getDualClassSkill(id, lvl);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return sl;
|
||||
}
|
||||
|
@@ -575,19 +575,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);
|
||||
|
@@ -260,6 +260,7 @@ public final class CastleManorManager implements IGameXmlReader, IStorable
|
||||
switch (_mode)
|
||||
{
|
||||
case MODIFIABLE:
|
||||
{
|
||||
_nextModeChange.set(Calendar.HOUR_OF_DAY, Config.ALT_MANOR_APPROVE_TIME);
|
||||
_nextModeChange.set(Calendar.MINUTE, Config.ALT_MANOR_APPROVE_MIN);
|
||||
if (_nextModeChange.before(Calendar.getInstance()))
|
||||
@@ -267,14 +268,19 @@ public final class CastleManorManager implements IGameXmlReader, IStorable
|
||||
_nextModeChange.add(Calendar.DATE, 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MAINTENANCE:
|
||||
{
|
||||
_nextModeChange.set(Calendar.HOUR_OF_DAY, Config.ALT_MANOR_REFRESH_TIME);
|
||||
_nextModeChange.set(Calendar.MINUTE, Config.ALT_MANOR_REFRESH_MIN + Config.ALT_MANOR_MAINTENANCE_MIN);
|
||||
break;
|
||||
}
|
||||
case APPROVED:
|
||||
{
|
||||
_nextModeChange.set(Calendar.HOUR_OF_DAY, Config.ALT_MANOR_REFRESH_TIME);
|
||||
_nextModeChange.set(Calendar.MINUTE, Config.ALT_MANOR_REFRESH_MIN);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Schedule mode change
|
||||
ThreadPoolManager.schedule(this::changeMode, (_nextModeChange.getTimeInMillis() - System.currentTimeMillis()));
|
||||
|
@@ -51,20 +51,28 @@ public final class GraciaSeedsManager
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,9 +97,12 @@ public final class GraciaSeedsManager
|
||||
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)
|
||||
@@ -104,12 +115,17 @@ public final class GraciaSeedsManager
|
||||
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 + ")! ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,15 +193,23 @@ public final class GraciaSeedsManager
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -27,25 +27,45 @@ public final class TownManager
|
||||
switch (townId)
|
||||
{
|
||||
case 912:
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
case 916:
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
case 918:
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
case 922:
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
case 924:
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
case 926:
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
case 1538:
|
||||
{
|
||||
return 7;
|
||||
}
|
||||
case 1537:
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
case 1714:
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -567,58 +567,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;
|
||||
@@ -1903,23 +1931,37 @@ public class L2Clan implements IIdentifiable, INamable
|
||||
switch (pledgeType)
|
||||
{
|
||||
case SUBUNIT_ACADEMY:
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
case SUBUNIT_ROYAL1:
|
||||
{
|
||||
pledgeType = getAvailablePledgeTypes(SUBUNIT_ROYAL2);
|
||||
break;
|
||||
}
|
||||
case SUBUNIT_ROYAL2:
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
case SUBUNIT_KNIGHT1:
|
||||
{
|
||||
pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT2);
|
||||
break;
|
||||
}
|
||||
case SUBUNIT_KNIGHT2:
|
||||
{
|
||||
pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT3);
|
||||
break;
|
||||
}
|
||||
case SUBUNIT_KNIGHT3:
|
||||
{
|
||||
pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT4);
|
||||
break;
|
||||
}
|
||||
case SUBUNIT_KNIGHT4:
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return pledgeType;
|
||||
@@ -2593,6 +2635,7 @@ public class L2Clan implements IIdentifiable, INamable
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
// Upgrade to 6
|
||||
if ((getReputationScore() >= Config.CLAN_LEVEL_6_COST) && (getMembersCount() >= Config.CLAN_LEVEL_6_REQUIREMENT))
|
||||
{
|
||||
@@ -2603,8 +2646,9 @@ public class L2Clan implements IIdentifiable, INamable
|
||||
increaseClanLevel = true;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
// Upgrade to 7
|
||||
if ((getReputationScore() >= Config.CLAN_LEVEL_7_COST) && (getMembersCount() >= Config.CLAN_LEVEL_7_REQUIREMENT))
|
||||
{
|
||||
@@ -2615,7 +2659,9 @@ public class L2Clan implements IIdentifiable, INamable
|
||||
increaseClanLevel = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
// Upgrade to 8
|
||||
if ((getReputationScore() >= Config.CLAN_LEVEL_8_COST) && (getMembersCount() >= Config.CLAN_LEVEL_8_REQUIREMENT))
|
||||
{
|
||||
@@ -2626,7 +2672,9 @@ public class L2Clan implements IIdentifiable, INamable
|
||||
increaseClanLevel = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
// Upgrade to 9
|
||||
if ((getReputationScore() >= Config.CLAN_LEVEL_9_COST) && (player.getInventory().getItemByItemId(9910) != null) && (getMembersCount() >= Config.CLAN_LEVEL_9_REQUIREMENT))
|
||||
{
|
||||
@@ -2645,7 +2693,9 @@ public class L2Clan implements IIdentifiable, INamable
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
{
|
||||
// Upgrade to 10
|
||||
if ((getReputationScore() >= Config.CLAN_LEVEL_10_COST) && (player.getInventory().getItemByItemId(9911) != null) && (getMembersCount() >= Config.CLAN_LEVEL_10_REQUIREMENT))
|
||||
{
|
||||
@@ -2664,7 +2714,9 @@ public class L2Clan implements IIdentifiable, INamable
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 10:
|
||||
{
|
||||
// Upgrade to 11
|
||||
if ((getReputationScore() >= Config.CLAN_LEVEL_11_COST) && (getMembersCount() >= Config.CLAN_LEVEL_11_REQUIREMENT))
|
||||
{
|
||||
@@ -2675,8 +2727,11 @@ public class L2Clan implements IIdentifiable, INamable
|
||||
increaseClanLevel = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!increaseClanLevel)
|
||||
|
@@ -430,12 +430,15 @@ public class L2ClanMember
|
||||
switch (clan.getLevel())
|
||||
{
|
||||
case 4:
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
pledgeClass = 3;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
pledgeClass = 4;
|
||||
@@ -445,17 +448,24 @@ public class L2ClanMember
|
||||
pledgeClass = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
switch (player.getPledgeType())
|
||||
{
|
||||
case -1:
|
||||
{
|
||||
pledgeClass = 1;
|
||||
break;
|
||||
}
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 2;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
pledgeClass = 5;
|
||||
@@ -466,34 +476,48 @@ public class L2ClanMember
|
||||
{
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 4;
|
||||
break;
|
||||
}
|
||||
case -1:
|
||||
default:
|
||||
{
|
||||
pledgeClass = 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
switch (player.getPledgeType())
|
||||
{
|
||||
case -1:
|
||||
{
|
||||
pledgeClass = 1;
|
||||
break;
|
||||
}
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 3;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 2;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
pledgeClass = 7;
|
||||
@@ -504,40 +528,56 @@ public class L2ClanMember
|
||||
{
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 6;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 5;
|
||||
break;
|
||||
}
|
||||
case -1:
|
||||
default:
|
||||
{
|
||||
pledgeClass = 4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
switch (player.getPledgeType())
|
||||
{
|
||||
case -1:
|
||||
{
|
||||
pledgeClass = 1;
|
||||
break;
|
||||
}
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 4;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 3;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
pledgeClass = 8;
|
||||
@@ -548,40 +588,56 @@ public class L2ClanMember
|
||||
{
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 7;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 6;
|
||||
break;
|
||||
}
|
||||
case -1:
|
||||
default:
|
||||
{
|
||||
pledgeClass = 5;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
{
|
||||
switch (player.getPledgeType())
|
||||
{
|
||||
case -1:
|
||||
{
|
||||
pledgeClass = 1;
|
||||
break;
|
||||
}
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 5;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 4;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
pledgeClass = 9;
|
||||
@@ -592,40 +648,56 @@ public class L2ClanMember
|
||||
{
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 8;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 7;
|
||||
break;
|
||||
}
|
||||
case -1:
|
||||
default:
|
||||
{
|
||||
pledgeClass = 6;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 10:
|
||||
{
|
||||
switch (player.getPledgeType())
|
||||
{
|
||||
case -1:
|
||||
{
|
||||
pledgeClass = 1;
|
||||
break;
|
||||
}
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 6;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 5;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
pledgeClass = 10;
|
||||
@@ -636,40 +708,56 @@ public class L2ClanMember
|
||||
{
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 9;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 8;
|
||||
break;
|
||||
}
|
||||
case -1:
|
||||
default:
|
||||
{
|
||||
pledgeClass = 7;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 11:
|
||||
{
|
||||
switch (player.getPledgeType())
|
||||
{
|
||||
case -1:
|
||||
{
|
||||
pledgeClass = 1;
|
||||
break;
|
||||
}
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 7;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 6;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
pledgeClass = 11;
|
||||
@@ -680,26 +768,36 @@ public class L2ClanMember
|
||||
{
|
||||
case 100:
|
||||
case 200:
|
||||
{
|
||||
pledgeClass = 10;
|
||||
break;
|
||||
}
|
||||
case 1001:
|
||||
case 1002:
|
||||
case 2001:
|
||||
case 2002:
|
||||
{
|
||||
pledgeClass = 9;
|
||||
break;
|
||||
}
|
||||
case -1:
|
||||
default:
|
||||
{
|
||||
pledgeClass = 8;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
pledgeClass = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -200,17 +200,29 @@ public class L2PetLevelData
|
||||
switch (stat)
|
||||
{
|
||||
case WALK_SPEED:
|
||||
{
|
||||
return _walkSpeedOnRide;
|
||||
}
|
||||
case RUN_SPEED:
|
||||
{
|
||||
return _runSpeedOnRide;
|
||||
}
|
||||
case SWIM_WALK_SPEED:
|
||||
{
|
||||
return _slowSwimSpeedOnRide;
|
||||
}
|
||||
case SWIM_RUN_SPEED:
|
||||
{
|
||||
return _fastSwimSpeedOnRide;
|
||||
}
|
||||
case FLY_RUN_SPEED:
|
||||
{
|
||||
return _slowFlySpeedOnRide;
|
||||
}
|
||||
case FLY_WALK_SPEED:
|
||||
{
|
||||
return _fastFlySpeedOnRide;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@@ -80,17 +80,29 @@ public final class MobGroup
|
||||
switch (mobGroupAI.getAlternateAI())
|
||||
{
|
||||
case L2ControllableMobAI.AI_NORMAL:
|
||||
{
|
||||
return "Idle";
|
||||
}
|
||||
case L2ControllableMobAI.AI_FORCEATTACK:
|
||||
{
|
||||
return "Force Attacking";
|
||||
}
|
||||
case L2ControllableMobAI.AI_FOLLOW:
|
||||
{
|
||||
return "Following";
|
||||
}
|
||||
case L2ControllableMobAI.AI_CAST:
|
||||
{
|
||||
return "Casting";
|
||||
}
|
||||
case L2ControllableMobAI.AI_ATTACK_GROUP:
|
||||
{
|
||||
return "Attacking Group";
|
||||
}
|
||||
default:
|
||||
{
|
||||
return "Idle";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@@ -1518,29 +1518,45 @@ public class L2Attackable extends L2Npc
|
||||
switch (skillId)
|
||||
{
|
||||
case 4303: // Strong type x2
|
||||
{
|
||||
count *= 2;
|
||||
break;
|
||||
}
|
||||
case 4304: // Strong type x3
|
||||
{
|
||||
count *= 3;
|
||||
break;
|
||||
}
|
||||
case 4305: // Strong type x4
|
||||
{
|
||||
count *= 4;
|
||||
break;
|
||||
}
|
||||
case 4306: // Strong type x5
|
||||
{
|
||||
count *= 5;
|
||||
break;
|
||||
}
|
||||
case 4307: // Strong type x6
|
||||
{
|
||||
count *= 6;
|
||||
break;
|
||||
}
|
||||
case 4308: // Strong type x7
|
||||
{
|
||||
count *= 7;
|
||||
break;
|
||||
}
|
||||
case 4309: // Strong type x8
|
||||
{
|
||||
count *= 8;
|
||||
break;
|
||||
}
|
||||
case 4310: // Strong type x9
|
||||
{
|
||||
count *= 9;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -423,16 +423,20 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
switch (zone)
|
||||
{
|
||||
case PVP:
|
||||
{
|
||||
if ((instance != null) && instance.isPvP())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return (_zones[ZoneId.PVP.ordinal()] > 0) && (_zones[ZoneId.PEACE.ordinal()] == 0);
|
||||
}
|
||||
case PEACE:
|
||||
{
|
||||
if ((instance != null) && instance.isPvP())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return _zones[zone.ordinal()] > 0;
|
||||
}
|
||||
|
@@ -750,6 +750,7 @@ public class L2Npc extends L2Character
|
||||
switch (npcId)
|
||||
{
|
||||
case 31688:
|
||||
{
|
||||
if (player.isNoble())
|
||||
{
|
||||
filename = Olympiad.OLYMPIAD_HTML_PATH + "noble_main.htm";
|
||||
@@ -759,11 +760,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";
|
||||
@@ -773,7 +776,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");
|
||||
@@ -783,7 +788,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));
|
||||
@@ -793,7 +800,9 @@ public class L2Npc extends L2Character
|
||||
filename = (getHtmlPath(npcId, val));
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
if (((npcId >= 31093) && (npcId <= 31094)) || ((npcId >= 31172) && (npcId <= 31201)) || ((npcId >= 31239) && (npcId <= 31254)))
|
||||
{
|
||||
return;
|
||||
@@ -801,6 +810,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
|
||||
|
@@ -128,18 +128,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.isSummon())
|
||||
{
|
||||
attacker = ((L2Summon) attacker).getOwner();
|
||||
}
|
||||
npcString = NpcStringId.EVERYONE_CONCENTRATE_YOUR_ATTACKS_ON_S1_SHOW_THE_ENEMY_YOUR_RESOLVE;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
npcString = NpcStringId.FIRE_SPIRIT_UNLEASH_YOUR_POWER_BURN_THE_ENEMY;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (npcString != null)
|
||||
{
|
||||
|
@@ -364,11 +364,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>)");
|
||||
@@ -388,11 +392,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>");
|
||||
@@ -411,11 +419,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>");
|
||||
@@ -449,15 +461,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().getFortFunction(Fort.FUNC_RESTORE_HP) == null)))
|
||||
{
|
||||
@@ -494,15 +512,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().getFortFunction(Fort.FUNC_RESTORE_MP) == null)))
|
||||
{
|
||||
@@ -539,15 +563,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().getFortFunction(Fort.FUNC_RESTORE_EXP) == null)))
|
||||
{
|
||||
@@ -639,11 +669,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.");
|
||||
@@ -662,11 +696,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");
|
||||
@@ -700,15 +738,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().getFortFunction(Fort.FUNC_TELEPORT) == null)))
|
||||
{
|
||||
@@ -745,15 +789,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().getFortFunction(Fort.FUNC_SUPPORT) == null)))
|
||||
{
|
||||
|
@@ -964,32 +964,50 @@ public final class L2PcInstance extends L2Playable
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
result |= RelationChanged.RELATION_PARTYLEADER; // 0x10
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
result |= RelationChanged.RELATION_PARTY4; // 0x8
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
result |= RelationChanged.RELATION_PARTY3 + RelationChanged.RELATION_PARTY2 + RelationChanged.RELATION_PARTY1; // 0x7
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
result |= RelationChanged.RELATION_PARTY3 + RelationChanged.RELATION_PARTY2; // 0x6
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
result |= RelationChanged.RELATION_PARTY3 + RelationChanged.RELATION_PARTY1; // 0x5
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
result |= RelationChanged.RELATION_PARTY3; // 0x4
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
result |= RelationChanged.RELATION_PARTY2 + RelationChanged.RELATION_PARTY1; // 0x3
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
result |= RelationChanged.RELATION_PARTY2; // 0x2
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
result |= RelationChanged.RELATION_PARTY1; // 0x1
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12107,17 +12125,25 @@ public final class L2PcInstance extends L2Playable
|
||||
switch (getPrivateStoreType())
|
||||
{
|
||||
case SELL:
|
||||
{
|
||||
activeChar.sendPacket(new PrivateStoreMsgSell(this));
|
||||
break;
|
||||
}
|
||||
case PACKAGE_SELL:
|
||||
{
|
||||
activeChar.sendPacket(new ExPrivateStoreSetWholeMsg(this));
|
||||
break;
|
||||
}
|
||||
case BUY:
|
||||
{
|
||||
activeChar.sendPacket(new PrivateStoreMsgBuy(this));
|
||||
break;
|
||||
}
|
||||
case MANUFACTURE:
|
||||
{
|
||||
activeChar.sendPacket(new RecipeShopMsg(this));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -72,14 +72,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;
|
||||
}
|
||||
@@ -93,20 +99,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)
|
||||
{
|
||||
@@ -125,20 +141,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)
|
||||
{
|
||||
|
@@ -164,6 +164,7 @@ public class L2RaceManagerInstance extends L2Npc
|
||||
{
|
||||
case 816: // SystemMessageId.TICKETS_ARE_NOW_AVAILABLE_FOR_MONSTER_RACE_S1
|
||||
case 817: // SystemMessageId.NOW_SELLING_TICKETS_FOR_MONSTER_RACE_S1
|
||||
{
|
||||
if (_state != ACCEPTING_BETS)
|
||||
{// LOGGER.info("Race Initializing");
|
||||
_state = ACCEPTING_BETS;
|
||||
@@ -171,9 +172,11 @@ public class L2RaceManagerInstance extends L2Npc
|
||||
} // else{LOGGER.info("Race open");}
|
||||
sm.addInt(_raceNumber);
|
||||
break;
|
||||
}
|
||||
case 818: // SystemMessageId.TICKET_SALES_FOR_THE_MONSTER_RACE_WILL_END_IN_S1_MINUTE_S
|
||||
case 820: // SystemMessageId.MONSTER_RACE_S2_WILL_BEGIN_IN_S1_MINUTE_S
|
||||
case 823: // SystemMessageId.THE_RACE_WILL_BEGIN_IN_S1_SECOND_S
|
||||
{
|
||||
sm.addInt(_minutes);
|
||||
if (type.getId() == 820)
|
||||
{
|
||||
@@ -181,24 +184,31 @@ public class L2RaceManagerInstance extends L2Npc
|
||||
}
|
||||
_minutes--;
|
||||
break;
|
||||
}
|
||||
case 819: // SystemMessageId.TICKETS_SALES_ARE_CLOSED_FOR_MONSTER_RACE_S1_ODDS_ARE_POSTED
|
||||
{
|
||||
// LOGGER.info("Sales closed");
|
||||
sm.addInt(_raceNumber);
|
||||
_state = WAITING;
|
||||
_minutes = 2;
|
||||
break;
|
||||
}
|
||||
case 821: // SystemMessageId.MONSTER_RACE_S1_WILL_BEGIN_IN_30_SECONDS
|
||||
case 822: // SystemMessageId.MONSTER_RACE_S1_IS_ABOUT_TO_BEGIN_COUNTDOWN_IN_FIVE_SECONDS
|
||||
case 825: // SystemMessageId.MONSTER_RACE_S1_IS_FINISHED
|
||||
{
|
||||
sm.addInt(_raceNumber);
|
||||
_minutes = 5;
|
||||
break;
|
||||
}
|
||||
case 826: // SystemMessageId.FIRST_PRIZE_GOES_TO_THE_PLAYER_IN_LANE_S1_SECOND_PRIZE_GOES_TO_THE_PLAYER_IN_LANE_S2
|
||||
{
|
||||
// LOGGER.info("Placing");
|
||||
_state = RACE_END;
|
||||
sm.addInt(MonsterRace.getInstance().getFirstPlace());
|
||||
sm.addInt(MonsterRace.getInstance().getSecondPlace());
|
||||
break;
|
||||
}
|
||||
}
|
||||
// _logn.info("Counter: "+minutes);
|
||||
// LOGGER.info("State: "+state);
|
||||
|
@@ -349,12 +349,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)
|
||||
|
@@ -506,19 +506,33 @@ public class CharStat
|
||||
switch (attackAttribute)
|
||||
{
|
||||
case FIRE:
|
||||
{
|
||||
return (int) getValue(Stats.FIRE_POWER);
|
||||
}
|
||||
case WATER:
|
||||
{
|
||||
return (int) getValue(Stats.WATER_POWER);
|
||||
}
|
||||
case WIND:
|
||||
{
|
||||
return (int) getValue(Stats.WIND_POWER);
|
||||
}
|
||||
case EARTH:
|
||||
{
|
||||
return (int) getValue(Stats.EARTH_POWER);
|
||||
}
|
||||
case HOLY:
|
||||
{
|
||||
return (int) getValue(Stats.HOLY_POWER);
|
||||
}
|
||||
case DARK:
|
||||
{
|
||||
return (int) getValue(Stats.DARK_POWER);
|
||||
}
|
||||
default:
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -527,19 +541,33 @@ public class CharStat
|
||||
switch (defenseAttribute)
|
||||
{
|
||||
case FIRE:
|
||||
{
|
||||
return (int) getValue(Stats.FIRE_RES);
|
||||
}
|
||||
case WATER:
|
||||
{
|
||||
return (int) getValue(Stats.WATER_RES);
|
||||
}
|
||||
case WIND:
|
||||
{
|
||||
return (int) getValue(Stats.WIND_RES);
|
||||
}
|
||||
case EARTH:
|
||||
{
|
||||
return (int) getValue(Stats.EARTH_RES);
|
||||
}
|
||||
case HOLY:
|
||||
{
|
||||
return (int) getValue(Stats.HOLY_RES);
|
||||
}
|
||||
case DARK:
|
||||
{
|
||||
return (int) getValue(Stats.DARK_RES);
|
||||
}
|
||||
default:
|
||||
{
|
||||
return (int) getValue(Stats.BASE_ATTRIBUTE_RES);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -59,7 +59,9 @@ public class ConditionGameTime extends Condition
|
||||
switch (_check)
|
||||
{
|
||||
case NIGHT:
|
||||
{
|
||||
return GameTimeController.getInstance().isNight() == _required;
|
||||
}
|
||||
}
|
||||
return !_required;
|
||||
}
|
||||
|
@@ -59,17 +59,29 @@ public class ConditionPlayerBaseStats extends Condition
|
||||
switch (_stat)
|
||||
{
|
||||
case Int:
|
||||
{
|
||||
return player.getINT() >= _value;
|
||||
}
|
||||
case Str:
|
||||
{
|
||||
return player.getSTR() >= _value;
|
||||
}
|
||||
case Con:
|
||||
{
|
||||
return player.getCON() >= _value;
|
||||
}
|
||||
case Dex:
|
||||
{
|
||||
return player.getDEX() >= _value;
|
||||
}
|
||||
case Men:
|
||||
{
|
||||
return player.getMEN() >= _value;
|
||||
}
|
||||
case Wit:
|
||||
{
|
||||
return player.getWIT() >= _value;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@@ -49,39 +49,57 @@ public class ConditionPlayerState extends Condition
|
||||
switch (_check)
|
||||
{
|
||||
case RESTING:
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
return (player.isSitting() == _required);
|
||||
}
|
||||
return !_required;
|
||||
}
|
||||
case MOVING:
|
||||
{
|
||||
return effector.isMoving() == _required;
|
||||
}
|
||||
case RUNNING:
|
||||
{
|
||||
return effector.isRunning() == _required;
|
||||
}
|
||||
case STANDING:
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
return (_required != (player.isSitting() || player.isMoving()));
|
||||
}
|
||||
return (_required != effector.isMoving());
|
||||
}
|
||||
case FLYING:
|
||||
{
|
||||
return (effector.isFlying() == _required);
|
||||
}
|
||||
case BEHIND:
|
||||
{
|
||||
return (effector.isBehindTarget() == _required);
|
||||
}
|
||||
case FRONT:
|
||||
{
|
||||
return (effector.isInFrontOfTarget() == _required);
|
||||
}
|
||||
case CHAOTIC:
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
return ((player.getReputation() < 0) == _required);
|
||||
}
|
||||
return !_required;
|
||||
}
|
||||
case OLYMPIAD:
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
return (player.isInOlympiadMode() == _required);
|
||||
}
|
||||
return !_required;
|
||||
}
|
||||
}
|
||||
return !_required;
|
||||
}
|
||||
|
@@ -462,17 +462,23 @@ public final class BlockCheckerEngine
|
||||
switch (_round)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
// Schedule second spawn round
|
||||
_task = ThreadPoolManager.schedule(new SpawnRound(20, 2), 60000);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
// Schedule third spawn round
|
||||
_task = ThreadPoolManager.schedule(new SpawnRound(14, 3), 60000);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
// Schedule Event End Count Down
|
||||
_task = ThreadPoolManager.schedule(new EndEvent(), 180000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// random % 2, if == 0 will spawn a red block
|
||||
// if != 0, will spawn a blue block
|
||||
|
@@ -760,6 +760,7 @@ public class Duel
|
||||
{
|
||||
case Team1Win:
|
||||
case Team2Surrender:
|
||||
{
|
||||
restorePlayerConditions(false);
|
||||
sm = _partyDuel ? SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_HAS_WON_THE_DUEL) : SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_WON_THE_DUEL);
|
||||
sm.addString(_playerA.getName());
|
||||
@@ -767,8 +768,10 @@ public class Duel
|
||||
broadcastToTeam1(sm);
|
||||
broadcastToTeam2(sm);
|
||||
break;
|
||||
}
|
||||
case Team1Surrender:
|
||||
case Team2Win:
|
||||
{
|
||||
restorePlayerConditions(false);
|
||||
sm = _partyDuel ? SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_HAS_WON_THE_DUEL) : SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_WON_THE_DUEL);
|
||||
sm.addString(_playerB.getName());
|
||||
@@ -776,7 +779,9 @@ public class Duel
|
||||
broadcastToTeam1(sm);
|
||||
broadcastToTeam2(sm);
|
||||
break;
|
||||
}
|
||||
case Canceled:
|
||||
{
|
||||
stopFighting();
|
||||
// Don't restore hp, mp, cp
|
||||
restorePlayerConditions(true);
|
||||
@@ -785,7 +790,9 @@ public class Duel
|
||||
broadcastToTeam1(sm);
|
||||
broadcastToTeam2(sm);
|
||||
break;
|
||||
}
|
||||
case Timeout:
|
||||
{
|
||||
stopFighting();
|
||||
restorePlayerConditions(false);
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_DUEL_HAS_ENDED_IN_A_TIE);
|
||||
@@ -793,6 +800,7 @@ public class Duel
|
||||
broadcastToTeam1(sm);
|
||||
broadcastToTeam2(sm);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Send end duel packet
|
||||
|
@@ -627,17 +627,25 @@ public class FortSiege implements Siegable
|
||||
switch (spawn2.getMessageId())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
npcString = NpcStringId.YOU_MAY_HAVE_BROKEN_OUR_ARROWS_BUT_YOU_WILL_NEVER_BREAK_OUR_WILL_ARCHERS_RETREAT;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
npcString = NpcStringId.AIIEEEE_COMMAND_CENTER_THIS_IS_GUARD_UNIT_WE_NEED_BACKUP_RIGHT_AWAY;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
npcString = NpcStringId.AT_LAST_THE_MAGIC_CIRCLE_THAT_PROTECTS_THE_FORTRESS_HAS_WEAKENED_VOLUNTEERS_STAND_BACK;
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
npcString = NpcStringId.I_FEEL_SO_MUCH_GRIEF_THAT_I_CAN_T_EVEN_TAKE_CARE_OF_MYSELF_THERE_ISN_T_ANY_REASON_FOR_ME_TO_STAY_HERE_ANY_LONGER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (npcString != null)
|
||||
{
|
||||
@@ -908,13 +916,19 @@ public class FortSiege implements Siegable
|
||||
switch (teleportWho)
|
||||
{
|
||||
case Owner:
|
||||
{
|
||||
players = getOwnersInZone();
|
||||
break;
|
||||
}
|
||||
case Attacker:
|
||||
{
|
||||
players = getAttackersInZone();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
players = getPlayersInZone();
|
||||
}
|
||||
}
|
||||
|
||||
for (L2PcInstance player : players)
|
||||
|
@@ -225,10 +225,15 @@ public class L2Event
|
||||
switch (eventState)
|
||||
{
|
||||
case OFF:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
case STANDBY:
|
||||
{
|
||||
return _registeredPlayers.contains(player);
|
||||
}
|
||||
case ON:
|
||||
{
|
||||
for (Set<L2PcInstance> teamList : _teams.values())
|
||||
{
|
||||
if (teamList.contains(player))
|
||||
@@ -236,9 +241,9 @@ public class L2Event
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -343,12 +348,18 @@ public class L2Event
|
||||
switch (eventState)
|
||||
{
|
||||
case ON:
|
||||
{
|
||||
return "Cannot start event, it is already on.";
|
||||
}
|
||||
case STANDBY:
|
||||
{
|
||||
return "Cannot start event, it is on standby mode.";
|
||||
}
|
||||
case OFF: // Event is off, so no problem turning it on.
|
||||
{
|
||||
eventState = EventState.STANDBY;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Register the event at AntiFeedManager and clean it for just in case if the event is already registered.
|
||||
@@ -409,12 +420,18 @@ public class L2Event
|
||||
switch (eventState)
|
||||
{
|
||||
case ON:
|
||||
{
|
||||
return "Cannot start event, it is already on.";
|
||||
}
|
||||
case STANDBY:
|
||||
{
|
||||
eventState = EventState.ON;
|
||||
break;
|
||||
}
|
||||
case OFF: // Event is off, so no problem turning it on.
|
||||
{
|
||||
return "Cannot start event, it is off. Participation start is required.";
|
||||
}
|
||||
}
|
||||
|
||||
// Clean the things we will use, just in case.
|
||||
@@ -478,8 +495,11 @@ public class L2Event
|
||||
switch (eventState)
|
||||
{
|
||||
case OFF:
|
||||
{
|
||||
return "Cannot finish event, it is already off.";
|
||||
}
|
||||
case STANDBY:
|
||||
{
|
||||
for (L2PcInstance player : _registeredPlayers)
|
||||
{
|
||||
removeAndResetPlayer(player);
|
||||
@@ -494,7 +514,9 @@ public class L2Event
|
||||
_eventName = "";
|
||||
eventState = EventState.OFF;
|
||||
return "The event has been stopped at STANDBY mode, all players unregistered and all event npcs unspawned.";
|
||||
}
|
||||
case ON:
|
||||
{
|
||||
for (Set<L2PcInstance> teamList : _teams.values())
|
||||
{
|
||||
for (L2PcInstance player : teamList)
|
||||
@@ -516,6 +538,7 @@ public class L2Event
|
||||
_eventCreator = "";
|
||||
_eventInfo = "";
|
||||
return "The event has been stopped, all players unregistered and all event npcs unspawned.";
|
||||
}
|
||||
}
|
||||
|
||||
return "The event has been successfully finished.";
|
||||
|
@@ -2517,21 +2517,31 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime
|
||||
switch (((L2EtcItem) item).getItemType())
|
||||
{
|
||||
case POTION:
|
||||
{
|
||||
count *= Config.RATE_QUEST_REWARD_POTION;
|
||||
break;
|
||||
}
|
||||
case ENCHT_WP:
|
||||
case ENCHT_AM:
|
||||
case SCROLL:
|
||||
{
|
||||
count *= Config.RATE_QUEST_REWARD_SCROLL;
|
||||
break;
|
||||
}
|
||||
case RECIPE:
|
||||
{
|
||||
count *= Config.RATE_QUEST_REWARD_RECIPE;
|
||||
break;
|
||||
}
|
||||
case MATERIAL:
|
||||
{
|
||||
count *= Config.RATE_QUEST_REWARD_MATERIAL;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
count *= Config.RATE_QUEST_REWARD;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -336,11 +336,15 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl
|
||||
switch (_enterLocationType)
|
||||
{
|
||||
case RANDOM:
|
||||
{
|
||||
loc = _enterLocations.get(Rnd.get(_enterLocations.size()));
|
||||
break;
|
||||
}
|
||||
case FIXED:
|
||||
{
|
||||
loc = _enterLocations.get(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return loc;
|
||||
}
|
||||
@@ -365,11 +369,15 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl
|
||||
switch (_exitLocationType)
|
||||
{
|
||||
case RANDOM:
|
||||
{
|
||||
location = _exitLocations.get(Rnd.get(_exitLocations.size()));
|
||||
break;
|
||||
}
|
||||
case FIXED:
|
||||
{
|
||||
location = _exitLocations.get(0);
|
||||
break;
|
||||
}
|
||||
case ORIGIN:
|
||||
{
|
||||
final PlayerVariables vars = player.getVariables();
|
||||
|
@@ -49,14 +49,20 @@ public final class ConditionHasResidence extends Condition
|
||||
switch (params.getEnum("type", ResidenceType.class))
|
||||
{
|
||||
case CASTLE:
|
||||
{
|
||||
test = clan.getCastleId() == id;
|
||||
break;
|
||||
}
|
||||
case FORTRESS:
|
||||
{
|
||||
test = clan.getFortId() == id;
|
||||
break;
|
||||
}
|
||||
case CLANHALL:
|
||||
{
|
||||
test = clan.getHideoutId() == id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return test;
|
||||
}
|
||||
|
@@ -362,6 +362,7 @@ public final class ItemAuction
|
||||
break;
|
||||
}
|
||||
case EXTEND_BY_3_MIN:
|
||||
{
|
||||
if (Config.ALT_ITEM_AUCTION_TIME_EXTENDS_ON_BID > 0)
|
||||
{
|
||||
if (getAndSetLastBidPlayerObjectId(player.getObjectId()) != player.getObjectId())
|
||||
@@ -371,6 +372,7 @@ public final class ItemAuction
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case EXTEND_BY_CONFIG_PHASE_A:
|
||||
{
|
||||
if (getAndSetLastBidPlayerObjectId(player.getObjectId()) != player.getObjectId())
|
||||
@@ -429,14 +431,17 @@ public final class ItemAuction
|
||||
switch (getAuctionState())
|
||||
{
|
||||
case CREATED:
|
||||
{
|
||||
return false;
|
||||
|
||||
}
|
||||
case FINISHED:
|
||||
{
|
||||
if (_startingTime < (System.currentTimeMillis() - TimeUnit.MILLISECONDS.convert(Config.ALT_ITEM_AUCTION_EXPIRED_AFTER, TimeUnit.DAYS)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
final int playerObjId = player.getObjectId();
|
||||
|
@@ -245,7 +245,6 @@ public final class ItemAuctionInstance
|
||||
nextAuction = createAuction(System.currentTimeMillis() + START_TIME_SPACE);
|
||||
break;
|
||||
}
|
||||
|
||||
case 1:
|
||||
{
|
||||
switch (auctions[0].getAuctionState())
|
||||
@@ -263,23 +262,22 @@ public final class ItemAuctionInstance
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case STARTED:
|
||||
{
|
||||
currentAuction = auctions[0];
|
||||
nextAuction = createAuction(Math.max(currentAuction.getEndingTime() + FINISH_TIME_SPACE, System.currentTimeMillis() + START_TIME_SPACE));
|
||||
break;
|
||||
}
|
||||
|
||||
case FINISHED:
|
||||
{
|
||||
currentAuction = auctions[0];
|
||||
nextAuction = createAuction(System.currentTimeMillis() + START_TIME_SPACE);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -287,10 +285,8 @@ public final class ItemAuctionInstance
|
||||
default:
|
||||
{
|
||||
Arrays.sort(auctions, Comparator.comparingLong(ItemAuction::getStartingTime).reversed());
|
||||
|
||||
// just to make sure we won't skip any auction because of little different times
|
||||
final long currentTime = System.currentTimeMillis();
|
||||
|
||||
for (ItemAuction auction : auctions)
|
||||
{
|
||||
if (auction.getAuctionState() == ItemAuctionState.STARTED)
|
||||
@@ -304,7 +300,6 @@ public final class ItemAuctionInstance
|
||||
break; // only first
|
||||
}
|
||||
}
|
||||
|
||||
for (ItemAuction auction : auctions)
|
||||
{
|
||||
if ((auction.getStartingTime() > currentTime) && (currentAuction != auction))
|
||||
@@ -313,7 +308,6 @@ public final class ItemAuctionInstance
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (nextAuction == null)
|
||||
{
|
||||
nextAuction = createAuction(System.currentTimeMillis() + START_TIME_SPACE);
|
||||
@@ -414,12 +408,10 @@ public final class ItemAuctionInstance
|
||||
{
|
||||
throw new IllegalStateException("Could not set auction state: " + ItemAuctionState.STARTED + ", expected: " + state);
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Auction " + _auction.getAuctionId() + " has started for instance " + _auction.getInstanceId());
|
||||
checkAndSetCurrentAndNextAuction();
|
||||
break;
|
||||
}
|
||||
|
||||
case STARTED:
|
||||
{
|
||||
switch (_auction.getAuctionEndingExtendState())
|
||||
@@ -434,7 +426,6 @@ public final class ItemAuctionInstance
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case EXTEND_BY_3_MIN:
|
||||
{
|
||||
if (_auction.getScheduledAuctionEndingExtendState() != ItemAuctionExtendState.EXTEND_BY_3_MIN)
|
||||
@@ -445,7 +436,6 @@ public final class ItemAuctionInstance
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case EXTEND_BY_CONFIG_PHASE_A:
|
||||
{
|
||||
if (_auction.getScheduledAuctionEndingExtendState() != ItemAuctionExtendState.EXTEND_BY_CONFIG_PHASE_B)
|
||||
@@ -456,7 +446,6 @@ public final class ItemAuctionInstance
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case EXTEND_BY_CONFIG_PHASE_B:
|
||||
{
|
||||
if (_auction.getScheduledAuctionEndingExtendState() != ItemAuctionExtendState.EXTEND_BY_CONFIG_PHASE_A)
|
||||
@@ -479,7 +468,9 @@ public final class ItemAuctionInstance
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
throw new IllegalStateException("Invalid state: " + state);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -838,55 +838,99 @@ 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;
|
||||
}
|
||||
case L2Item.SLOT_BROOCH:
|
||||
{
|
||||
return PAPERDOLL_BROOCH;
|
||||
}
|
||||
case L2Item.SLOT_BROOCH_JEWEL:
|
||||
{
|
||||
return PAPERDOLL_BROOCH_JEWEL1;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
@@ -1062,81 +1106,125 @@ 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;
|
||||
}
|
||||
case PAPERDOLL_BROOCH:
|
||||
{
|
||||
slot = L2Item.SLOT_BROOCH;
|
||||
break;
|
||||
}
|
||||
case PAPERDOLL_BROOCH_JEWEL1:
|
||||
case PAPERDOLL_BROOCH_JEWEL2:
|
||||
case PAPERDOLL_BROOCH_JEWEL3:
|
||||
case PAPERDOLL_BROOCH_JEWEL4:
|
||||
case PAPERDOLL_BROOCH_JEWEL5:
|
||||
case PAPERDOLL_BROOCH_JEWEL6:
|
||||
{
|
||||
slot = L2Item.SLOT_BROOCH_JEWEL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return slot;
|
||||
}
|
||||
@@ -1214,81 +1302,129 @@ 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;
|
||||
}
|
||||
case L2Item.SLOT_BROOCH:
|
||||
{
|
||||
pdollSlot = PAPERDOLL_BROOCH;
|
||||
break;
|
||||
}
|
||||
case L2Item.SLOT_BROOCH_JEWEL:
|
||||
{
|
||||
pdollSlot = PAPERDOLL_BROOCH_JEWEL1;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
LOGGER.info("Unhandled slot type: " + slot);
|
||||
LOGGER.info(CommonUtil.getTraceString(Thread.currentThread().getStackTrace()));
|
||||
}
|
||||
}
|
||||
if (pdollSlot >= 0)
|
||||
{
|
||||
@@ -1363,7 +1499,9 @@ public abstract class Inventory extends ItemContainer
|
||||
case L2Item.SLOT_FEET:
|
||||
case L2Item.SLOT_GLOVES:
|
||||
case L2Item.SLOT_HEAD:
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1382,7 +1520,6 @@ public abstract class Inventory extends ItemContainer
|
||||
{
|
||||
setPaperdollItem(PAPERDOLL_RHAND, null);
|
||||
}
|
||||
|
||||
setPaperdollItem(PAPERDOLL_LHAND, item);
|
||||
break;
|
||||
}
|
||||
@@ -1429,15 +1566,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
|
||||
@@ -1446,20 +1589,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))
|
||||
{
|
||||
@@ -1469,10 +1618,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))
|
||||
{
|
||||
@@ -1482,32 +1632,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);
|
||||
@@ -1519,14 +1684,21 @@ public abstract class Inventory extends ItemContainer
|
||||
setPaperdollItem(PAPERDOLL_GLOVES, null);
|
||||
setPaperdollItem(PAPERDOLL_CHEST, item);
|
||||
break;
|
||||
}
|
||||
case L2Item.SLOT_BROOCH:
|
||||
{
|
||||
setPaperdollItem(PAPERDOLL_BROOCH, item);
|
||||
break;
|
||||
}
|
||||
case L2Item.SLOT_BROOCH_JEWEL:
|
||||
{
|
||||
equipBroochJewel(item);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
LOGGER.warning("Unknown body slot " + targetSlot + " for Item ID: " + item.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -414,11 +414,17 @@ public abstract class L2Item extends ListenersContainer implements IIdentifiable
|
||||
{
|
||||
case TYPE2_SHIELD_ARMOR:
|
||||
case TYPE2_ACCESSORY:
|
||||
{
|
||||
return _crystalCount + (getCrystalType().getCrystalEnchantBonusArmor() * ((3 * enchantLevel) - 6));
|
||||
}
|
||||
case TYPE2_WEAPON:
|
||||
{
|
||||
return _crystalCount + (getCrystalType().getCrystalEnchantBonusWeapon() * ((2 * enchantLevel) - 3));
|
||||
}
|
||||
default:
|
||||
{
|
||||
return _crystalCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (enchantLevel > 0)
|
||||
@@ -427,11 +433,17 @@ public abstract class L2Item extends ListenersContainer implements IIdentifiable
|
||||
{
|
||||
case TYPE2_SHIELD_ARMOR:
|
||||
case TYPE2_ACCESSORY:
|
||||
{
|
||||
return _crystalCount + (getCrystalType().getCrystalEnchantBonusArmor() * enchantLevel);
|
||||
}
|
||||
case TYPE2_WEAPON:
|
||||
{
|
||||
return _crystalCount + (getCrystalType().getCrystalEnchantBonusWeapon() * enchantLevel);
|
||||
}
|
||||
default:
|
||||
{
|
||||
return _crystalCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@@ -1327,20 +1327,26 @@ public final class L2ItemInstance extends L2Object
|
||||
switch (_mana)
|
||||
{
|
||||
case 10:
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.S1_S_REMAINING_MANA_IS_NOW_10);
|
||||
sm.addItemName(_item);
|
||||
player.sendPacket(sm);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.S1_S_REMAINING_MANA_IS_NOW_5);
|
||||
sm.addItemName(_item);
|
||||
player.sendPacket(sm);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.S1_S_REMAINING_MANA_IS_NOW_1_IT_WILL_DISAPPEAR_SOON);
|
||||
sm.addItemName(_item);
|
||||
player.sendPacket(sm);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (_mana == 0) // The life time has expired
|
||||
|
@@ -187,6 +187,7 @@ public class Olympiad extends ListenersContainer
|
||||
switch (_period)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if ((_olympiadEnd == 0) || (_olympiadEnd < Calendar.getInstance().getTimeInMillis()))
|
||||
{
|
||||
setNewOlympiadEnd();
|
||||
@@ -196,7 +197,9 @@ public class Olympiad extends ListenersContainer
|
||||
scheduleWeeklyChange();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
if (_validationEnd > Calendar.getInstance().getTimeInMillis())
|
||||
{
|
||||
loadNoblesRank();
|
||||
@@ -210,9 +213,12 @@ public class Olympiad extends ListenersContainer
|
||||
setNewOlympiadEnd();
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
LOGGER.warning(getClass().getSimpleName() + ": Omg something went wrong in loading!! Period = " + _period);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
try (Connection con = DatabaseFactory.getInstance().getConnection();
|
||||
@@ -922,19 +928,29 @@ public class Olympiad extends ListenersContainer
|
||||
switch (_noblesRank.get(objId))
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
points += Config.ALT_OLY_RANK1_POINTS;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
points += Config.ALT_OLY_RANK2_POINTS;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
points += Config.ALT_OLY_RANK3_POINTS;
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
points += Config.ALT_OLY_RANK4_POINTS;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
points += Config.ALT_OLY_RANK5_POINTS;
|
||||
}
|
||||
}
|
||||
|
||||
// Win/no win matches point bonus
|
||||
|
@@ -57,13 +57,19 @@ public final class OlympiadAnnouncer implements Runnable
|
||||
switch (task.getGame().getType())
|
||||
{
|
||||
case NON_CLASSED:
|
||||
{
|
||||
npcString = NpcStringId.OLYMPIAD_CLASS_FREE_INDIVIDUAL_MATCH_IS_GOING_TO_BEGIN_IN_ARENA_S1_IN_A_MOMENT;
|
||||
break;
|
||||
}
|
||||
case CLASSED:
|
||||
{
|
||||
npcString = NpcStringId.OLYMPIAD_CLASS_INDIVIDUAL_MATCH_IS_GOING_TO_BEGIN_IN_ARENA_S1_IN_A_MOMENT;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (L2Spawn spawn : _managers)
|
||||
|
@@ -144,9 +144,13 @@ public enum SkillOperateType
|
||||
case DA2:
|
||||
case DA4:
|
||||
case DA5:
|
||||
{
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,9 +169,13 @@ public enum SkillOperateType
|
||||
case DA2:
|
||||
case DA4:
|
||||
case DA5:
|
||||
{
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,9 +242,13 @@ public enum SkillOperateType
|
||||
case CA1:
|
||||
case CA2:
|
||||
case CA5:
|
||||
{
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,9 +270,13 @@ public enum SkillOperateType
|
||||
case DA3:
|
||||
case DA4:
|
||||
case DA5:
|
||||
{
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -590,11 +590,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -854,10 +858,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
|
||||
@@ -1118,7 +1126,6 @@ public final class Formulas
|
||||
{
|
||||
// Resist Modifier.
|
||||
final int cancelMagicLvl = skill.getMagicLevel();
|
||||
|
||||
if (activeChar.isDebug())
|
||||
{
|
||||
final StatsSet set = new StatsSet();
|
||||
@@ -1128,7 +1135,6 @@ public final class Formulas
|
||||
set.set("rate", rate);
|
||||
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())
|
||||
@@ -1360,13 +1366,21 @@ public final class Formulas
|
||||
switch (resist.getResistLevel())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
return 1.0;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
return 0.6;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
return 0.3;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1508,13 +1522,19 @@ public final class Formulas
|
||||
switch (attackType)
|
||||
{
|
||||
case BOW:
|
||||
{
|
||||
return (1500 * 345) / activeChar.getPAtkSpd();
|
||||
}
|
||||
case CROSSBOW:
|
||||
case TWOHANDCROSSBOW:
|
||||
{
|
||||
return (1200 * 345) / activeChar.getPAtkSpd();
|
||||
}
|
||||
case DAGGER:
|
||||
{
|
||||
// atkSpd /= 1.15;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return calcPAtkSpd(activeChar.getPAtkSpd());
|
||||
|
@@ -50,16 +50,24 @@ public abstract class L2ZoneRespawn extends L2ZoneType
|
||||
switch (type)
|
||||
{
|
||||
case "other":
|
||||
{
|
||||
addOtherSpawn(x, y, z);
|
||||
break;
|
||||
}
|
||||
case "chaotic":
|
||||
{
|
||||
addChaoticSpawn(x, y, z);
|
||||
break;
|
||||
}
|
||||
case "banish":
|
||||
{
|
||||
addBanishSpawn(x, y, z);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
_log.warning(getClass().getSimpleName() + ": Unknown location type: " + type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -75,24 +75,37 @@ public final class L2EffectZone extends L2ZoneType
|
||||
switch (name)
|
||||
{
|
||||
case "chance":
|
||||
{
|
||||
_chance = Integer.parseInt(value);
|
||||
break;
|
||||
}
|
||||
case "initialDelay":
|
||||
{
|
||||
_initialDelay = Integer.parseInt(value);
|
||||
break;
|
||||
}
|
||||
case "reuse":
|
||||
{
|
||||
_reuse = Integer.parseInt(value);
|
||||
break;
|
||||
}
|
||||
case "bypassSkillConditions":
|
||||
{
|
||||
_bypassConditions = Boolean.parseBoolean(value);
|
||||
break;
|
||||
}
|
||||
case "maxDynamicSkillCount":
|
||||
{
|
||||
_skills = new ConcurrentHashMap<>(Integer.parseInt(value));
|
||||
break;
|
||||
}
|
||||
case "showDangerIcon":
|
||||
{
|
||||
_isShowDangerIcon = Boolean.parseBoolean(value);
|
||||
break;
|
||||
}
|
||||
case "skillIdLvl":
|
||||
{
|
||||
final String[] propertySplit = value.split(";");
|
||||
_skills = new ConcurrentHashMap<>(propertySplit.length);
|
||||
for (String skill : propertySplit)
|
||||
@@ -118,6 +131,7 @@ public final class L2EffectZone extends L2ZoneType
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
super.setParameter(name, value);
|
||||
|
@@ -669,13 +669,21 @@ public final class L2GameClient extends ChannelInboundHandler<L2GameClient>
|
||||
switch (state)
|
||||
{
|
||||
case CONNECTED:
|
||||
{
|
||||
return "[IP: " + (address == null ? "disconnected" : address.getHostAddress()) + "]";
|
||||
}
|
||||
case AUTHENTICATED:
|
||||
{
|
||||
return "[Account: " + getAccountName() + " - IP: " + (address == null ? "disconnected" : address.getHostAddress()) + "]";
|
||||
}
|
||||
case IN_GAME:
|
||||
{
|
||||
return "[Character: " + (getActiveChar() == null ? "disconnected" : getActiveChar().getName() + "[" + getActiveChar().getObjectId() + "]") + " - Account: " + getAccountName() + " - IP: " + (address == null ? "disconnected" : address.getHostAddress()) + "]";
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw new IllegalStateException("Missing state on switch");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (NullPointerException e)
|
||||
|
@@ -66,13 +66,17 @@ public final class CharacterDelete implements IClientIncomingPacket
|
||||
switch (failType)
|
||||
{
|
||||
case NONE:// Success!
|
||||
{
|
||||
client.sendPacket(new CharDeleteSuccess());
|
||||
final CharSelectInfoPackage charInfo = client.getCharSelection(_charSlot);
|
||||
EventDispatcher.getInstance().notifyEvent(new OnPlayerDelete(charInfo.getObjectId(), charInfo.getName(), client), Containers.Players());
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
client.sendPacket(new CharDeleteFail(failType));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@@ -74,6 +74,7 @@ public class MoveToLocationAirShip implements IClientIncomingPacket
|
||||
switch (_command)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if (!ship.canBeControlled())
|
||||
{
|
||||
return;
|
||||
@@ -83,14 +84,18 @@ public class MoveToLocationAirShip implements IClientIncomingPacket
|
||||
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;
|
||||
@@ -101,7 +106,9 @@ public class MoveToLocationAirShip implements IClientIncomingPacket
|
||||
ship.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(ship.getX(), ship.getY(), z));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (!ship.canBeControlled())
|
||||
{
|
||||
return;
|
||||
@@ -112,7 +119,9 @@ public class MoveToLocationAirShip implements IClientIncomingPacket
|
||||
ship.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(ship.getX(), ship.getY(), z));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (!ship.isInDock() || ship.isMoving())
|
||||
{
|
||||
return;
|
||||
@@ -138,6 +147,7 @@ public class MoveToLocationAirShip implements IClientIncomingPacket
|
||||
|
||||
ship.executePath(dst);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -114,6 +114,7 @@ public final class RequestActionUse implements IClientIncomingPacket
|
||||
switch (_actionId)
|
||||
{
|
||||
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())
|
||||
{
|
||||
@@ -139,9 +140,12 @@ public final class RequestActionUse implements IClientIncomingPacket
|
||||
|
||||
client.sendPacket(new RecipeShopManageList(activeChar, false));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
_log.warning(activeChar.getName() + ": unhandled action type " + _actionId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -61,6 +61,7 @@ public final class RequestBlock implements IClientIncomingPacket
|
||||
{
|
||||
case BLOCK:
|
||||
case UNBLOCK:
|
||||
{
|
||||
// can't use block/unblock for locating invisible characters
|
||||
if (targetId <= 0)
|
||||
{
|
||||
@@ -90,19 +91,28 @@ public final class RequestBlock implements IClientIncomingPacket
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -53,11 +53,15 @@ public final class RequestExCubeGameChangeTeam implements IClientIncomingPacket
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
{
|
||||
// Change Player Team
|
||||
HandysBlockCheckerManager.getInstance().changePlayerToTeam(player, _arena, _team);
|
||||
break;
|
||||
}
|
||||
case -1:
|
||||
{
|
||||
// Remove Player (me)
|
||||
}
|
||||
{
|
||||
final int team = HandysBlockCheckerManager.getInstance().getHolder(_arena).getPlayerTeam(player);
|
||||
// client sends two times this packet if click on exit
|
||||
@@ -69,8 +73,10 @@ public final class RequestExCubeGameChangeTeam implements IClientIncomingPacket
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
_log.warning("Wrong Cube Game Team ID: " + _team);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -52,15 +52,21 @@ public final class RequestExCubeGameReadyAnswer implements IClientIncomingPacket
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -320,17 +320,25 @@ public class RequestExEnchantItemAttribute implements IClientIncomingPacket
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -70,63 +70,91 @@ public class RequestCommissionList implements IClientIncomingPacket
|
||||
switch (_treeViewDepth)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
final CommissionTreeType commissionTreeType = CommissionTreeType.findByClientId(_itemType);
|
||||
if (commissionTreeType != null)
|
||||
{
|
||||
filter = filter.and(i -> commissionTreeType.getCommissionItemTypes().contains(i.getCommissionItemType()));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
final CommissionItemType commissionItemType = CommissionItemType.findByClientId(_itemType);
|
||||
if (commissionItemType != null)
|
||||
{
|
||||
filter = filter.and(i -> i.getCommissionItemType() == commissionItemType);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (_type)
|
||||
{
|
||||
case 0: // General
|
||||
{
|
||||
filter = filter.and(i -> true); // TODO: condition
|
||||
break;
|
||||
}
|
||||
case 1: // Rare
|
||||
{
|
||||
filter = filter.and(i -> true); // TODO: condition
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (_grade)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.NONE);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.D);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.C);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.B);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.A);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.S);
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.S80);
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.R);
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.R95);
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
{
|
||||
filter = filter.and(i -> i.getCrystalType() == CrystalType.R99);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
filter = filter.and(i -> _query.isEmpty() || i.getName().toLowerCase().contains(_query.toLowerCase()));
|
||||
|
@@ -59,43 +59,65 @@ public class ExShowFortressSiegeInfo implements IClientOutgoingPacket
|
||||
switch (_csize)
|
||||
{
|
||||
case 3:
|
||||
{
|
||||
switch (_csize2)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
packet.writeD(0x03);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
packet.writeD(0x02);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
packet.writeD(0x01);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
packet.writeD(0x00);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4: // TODO: change 4 to 5 once control room supported
|
||||
{
|
||||
switch (_csize2)
|
||||
// TODO: once control room supported, update packet.writeD(0x0x) to support 5th room
|
||||
{
|
||||
// TODO: once control room supported, update packet.writeD(0x0x) to support 5th room
|
||||
case 0:
|
||||
{
|
||||
packet.writeD(0x05);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
packet.writeD(0x04);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
packet.writeD(0x03);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
packet.writeD(0x02);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
packet.writeD(0x01);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@@ -80,10 +80,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();
|
||||
@@ -92,6 +97,7 @@ public final class JavaExecutionContext extends AbstractExecutionContext<JavaScr
|
||||
{
|
||||
return ClassLoader.getSystemClassLoader();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -210,6 +210,7 @@ public final class FloodProtectorAction
|
||||
switch (state)
|
||||
{
|
||||
case IN_GAME:
|
||||
{
|
||||
if (_client.getActiveChar() != null)
|
||||
{
|
||||
output.append(_client.getActiveChar().getName());
|
||||
@@ -218,21 +219,28 @@ public final class FloodProtectorAction
|
||||
output.append(") ");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AUTHENTICATED:
|
||||
{
|
||||
if (_client.getAccountName() != null)
|
||||
{
|
||||
output.append(_client.getAccountName());
|
||||
output.append(" ");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CONNECTED:
|
||||
{
|
||||
if (address != null)
|
||||
{
|
||||
output.append(address);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw new IllegalStateException("Missing state on switch");
|
||||
}
|
||||
}
|
||||
|
||||
Arrays.stream(lines).forEach(output::append);
|
||||
|
Reference in New Issue
Block a user