Several braces code format.

This commit is contained in:
MobiusDev
2017-09-08 17:33:31 +00:00
parent f0043b3271
commit edb23d3285
618 changed files with 10828 additions and 121 deletions

View File

@@ -205,20 +205,30 @@ public final class CastleChamberlain extends AbstractNpcAI
switch (func)
{
case Castle.FUNC_RESTORE_EXP:
{
fee = (level == 45) ? Config.CS_EXPREG1_FEE : Config.CS_EXPREG2_FEE;
break;
}
case Castle.FUNC_RESTORE_HP:
{
fee = (level == 300) ? Config.CS_HPREG1_FEE : Config.CS_HPREG2_FEE;
break;
}
case Castle.FUNC_RESTORE_MP:
{
fee = (level == 40) ? Config.CS_MPREG1_FEE : Config.CS_MPREG2_FEE;
break;
}
case Castle.FUNC_SUPPORT:
{
fee = (level == 5) ? Config.CS_SUPPORT1_FEE : Config.CS_SUPPORT2_FEE;
break;
}
case Castle.FUNC_TELEPORT:
{
fee = (level == 1) ? Config.CS_TELE1_FEE : Config.CS_TELE2_FEE;
break;
}
}
return fee;
}
@@ -229,20 +239,30 @@ public final class CastleChamberlain extends AbstractNpcAI
switch (func)
{
case Castle.FUNC_RESTORE_EXP:
{
ratio = Config.CS_EXPREG_FEE_RATIO;
break;
}
case Castle.FUNC_RESTORE_HP:
{
ratio = Config.CS_HPREG_FEE_RATIO;
break;
}
case Castle.FUNC_RESTORE_MP:
{
ratio = Config.CS_MPREG_FEE_RATIO;
break;
}
case Castle.FUNC_SUPPORT:
{
ratio = Config.CS_SUPPORT_FEE_RATIO;
break;
}
case Castle.FUNC_TELEPORT:
{
ratio = Config.CS_TELE_FEE_RATIO;
break;
}
}
return ratio;
}
@@ -257,14 +277,20 @@ public final class CastleChamberlain extends AbstractNpcAI
switch (level)
{
case 2:
{
price = Config.OUTER_DOOR_UPGRADE_PRICE2;
break;
}
case 3:
{
price = Config.OUTER_DOOR_UPGRADE_PRICE3;
break;
}
case 5:
{
price = Config.OUTER_DOOR_UPGRADE_PRICE5;
break;
}
}
break;
}
@@ -273,14 +299,20 @@ public final class CastleChamberlain extends AbstractNpcAI
switch (level)
{
case 2:
{
price = Config.INNER_DOOR_UPGRADE_PRICE2;
break;
}
case 3:
{
price = Config.INNER_DOOR_UPGRADE_PRICE3;
break;
}
case 5:
{
price = Config.INNER_DOOR_UPGRADE_PRICE5;
break;
}
}
break;
}
@@ -289,14 +321,20 @@ public final class CastleChamberlain extends AbstractNpcAI
switch (level)
{
case 2:
{
price = Config.WALL_UPGRADE_PRICE2;
break;
}
case 3:
{
price = Config.WALL_UPGRADE_PRICE3;
break;
}
case 5:
{
price = Config.WALL_UPGRADE_PRICE5;
break;
}
}
break;
}
@@ -310,17 +348,25 @@ public final class CastleChamberlain extends AbstractNpcAI
switch (level)
{
case 1:
{
price = Config.TRAP_UPGRADE_PRICE1;
break;
}
case 2:
{
price = Config.TRAP_UPGRADE_PRICE2;
break;
}
case 3:
{
price = Config.TRAP_UPGRADE_PRICE3;
break;
}
case 4:
{
price = Config.TRAP_UPGRADE_PRICE4;
break;
}
}
return price;
}
@@ -379,14 +425,20 @@ public final class CastleChamberlain extends AbstractNpcAI
switch (fortress.getFortState())
{
case 1:
{
fortStatus = "1300122";
break;
}
case 2:
{
fortStatus = "1300124";
break;
}
default:
{
fortStatus = "1300123";
break;
}
}
sb.append("<fstring>1300" + fortId + "</fstring>");
sb.append(" (<fstring>" + fortType + "</fstring>)");
@@ -1144,15 +1196,22 @@ public final class CastleChamberlain extends AbstractNpcAI
switch (evt.getRequest())
{
case 3: // Seed info
{
player.sendPacket(new ExShowSeedInfo(castleId, evt.isNextPeriod(), true));
break;
}
case 4: // Crop info
{
player.sendPacket(new ExShowCropInfo(castleId, evt.isNextPeriod(), true));
break;
}
case 5: // Basic info
{
player.sendPacket(new ExShowManorDefaultInfo(true));
break;
}
case 7: // Seed settings
{
if (manor.isManorApproved())
{
player.sendPacket(SystemMessageId.A_MANOR_CANNOT_BE_SET_UP_BETWEEN_4_30_AM_AND_8_PM);
@@ -1160,7 +1219,9 @@ public final class CastleChamberlain extends AbstractNpcAI
}
player.sendPacket(new ExShowSeedSetting(castleId));
break;
}
case 8: // Crop settings
{
if (manor.isManorApproved())
{
player.sendPacket(SystemMessageId.A_MANOR_CANNOT_BE_SET_UP_BETWEEN_4_30_AM_AND_8_PM);
@@ -1168,8 +1229,11 @@ public final class CastleChamberlain extends AbstractNpcAI
}
player.sendPacket(new ExShowCropSetting(castleId));
break;
}
default:
{
_log.warning(getClass().getSimpleName() + ": Player " + player.getName() + " (" + player.getObjectId() + ") send unknown request id " + evt.getRequest() + "!");
}
}
}
}

View File

@@ -103,25 +103,35 @@ public final class CastleTeleporter extends AbstractNpcAI
final int unknowInt = Integer.parseInt(st.nextToken());
final StatsSet npcParams = npc.getParameters();
Location teleLoc = null;
switch (unknowInt)
{
case 0:
{
teleLoc = getTeleportLocation(npcParams, "01", "02", "03");
break;
}
case 1:
{
teleLoc = getTeleportLocation(npcParams, "11", "12", "13");
break;
}
case 2:
{
teleLoc = getTeleportLocation(npcParams, "21", "22", "23");
break;
}
case 3:
{
teleLoc = getTeleportLocation(npcParams, "31", "32", "33");
break;
}
case 4:
{
teleLoc = getTeleportLocation(npcParams, "41", "42", "43");
break;
}
case 5:
{
if (isOwner(player, npc))
{
teleLoc = new Location(npcParams.getInt("pos_x51"), npcParams.getInt("pos_y51"), npcParams.getInt("pos_z51"));
@@ -131,6 +141,7 @@ public final class CastleTeleporter extends AbstractNpcAI
return "CastleTeleporter-noAuthority.html";
}
break;
}
}
if (teleLoc != null)
@@ -209,7 +220,9 @@ public final class CastleTeleporter extends AbstractNpcAI
case 35308:
case 35352:
case 35544:
{
return "CastleTeleporter-01";
}
case 35093:
case 35135:
case 35177:
@@ -217,7 +230,9 @@ public final class CastleTeleporter extends AbstractNpcAI
case 35309:
case 35353:
case 35545:
{
return "CastleTeleporter-02";
}
case 35094:
case 35136:
case 35178:
@@ -225,7 +240,9 @@ public final class CastleTeleporter extends AbstractNpcAI
case 35310:
case 35354:
case 35546:
{
return "CastleTeleporter-03";
}
}
return String.valueOf(npc.getId());
}

View File

@@ -61,11 +61,16 @@ public final class CastleWarehouse extends AbstractNpcAI
case "warehouse-01.html":
case "warehouse-02.html":
case "warehouse-03.html":
{
break;
}
case "warehouse-04.html":
{
htmltext = (!isMyLord) ? "warehouse-no.html" : getHtm(player.getHtmlPrefix(), "warehouse-04.html").replace("%blood%", Integer.toString(player.getClan().getBloodAllianceCount()));
break;
}
case "Receive":
{
if (!isMyLord)
{
htmltext = "warehouse-no.html";
@@ -81,7 +86,9 @@ public final class CastleWarehouse extends AbstractNpcAI
htmltext = "warehouse-06.html";
}
break;
}
case "Exchange":
{
if (!isMyLord)
{
htmltext = "warehouse-no.html";
@@ -97,9 +104,12 @@ public final class CastleWarehouse extends AbstractNpcAI
htmltext = "warehouse-07.html";
}
break;
}
default:
{
htmltext = null;
break;
}
}
return htmltext;
}

View File

@@ -272,10 +272,14 @@ public final class ClanHallManager extends AbstractNpcAI
case 1:
case 2:
case 3:
{
((L2MerchantInstance) npc).showBuyWindow(player, Integer.parseInt(npc.getId() + "0" + (itemLevel - 1)));
break;
}
default:
{
htmltext = "ClanHallManager-noFunction.html";
}
}
break;
}

View File

@@ -86,13 +86,19 @@ public final class AdminClanHall implements IAdminCommandHandler
switch (actionVal)
{
case "inside":
{
loc = clanHall.getOwnerLocation();
break;
}
case "outside":
{
loc = clanHall.getBanishLocation();
break;
}
default:
{
loc = player.getLocation();
}
}
player.teleToLocation(loc);
}

View File

@@ -192,26 +192,40 @@ public class AdminLogin implements IAdminCommandHandler
switch (currentType)
{
case 0x01:
{
nameType += "Normal";
break;
}
case 0x02:
{
nameType += "Relax";
break;
}
case 0x04:
{
nameType += "Test";
break;
}
case 0x08:
{
nameType += "NoLabel";
break;
}
case 0x10:
{
nameType += "Restricted";
break;
}
case 0x20:
{
nameType += "Event";
break;
}
case 0x40:
{
nameType += "Free";
break;
}
}
}
}

View File

@@ -128,34 +128,50 @@ public final class AdminPForge implements IAdminCommandHandler
case 'B':
case 'x':
case 'X':
{
// array
break;
}
case 'c':
case 'C':
{
// byte
break;
}
case 'h':
case 'H':
{
// word
break;
}
case 'd':
case 'D':
{
// dword
break;
}
case 'q':
case 'Q':
{
// qword
break;
}
case 'f':
case 'F':
{
// double
break;
}
case 's':
case 'S':
{
// string
break;
}
default:
{
return false;
}
}
}
@@ -169,7 +185,9 @@ public final class AdminPForge implements IAdminCommandHandler
case "sc":
case "sb":
case "cs":
{
return true;
}
}
return false;
@@ -401,9 +419,12 @@ public final class AdminPForge implements IAdminCommandHandler
switch (value)
{
case "$oid":
{
value = String.valueOf(activeChar.getObjectId());
break;
}
case "$boid":
{
boat = activeChar.getBoat();
if (boat != null)
{
@@ -414,28 +435,44 @@ public final class AdminPForge implements IAdminCommandHandler
value = "0";
}
break;
}
case "$title":
{
value = activeChar.getTitle();
break;
}
case "$name":
{
value = activeChar.getName();
break;
}
case "$x":
{
value = String.valueOf(activeChar.getX());
break;
}
case "$y":
{
value = String.valueOf(activeChar.getY());
break;
}
case "$z":
{
value = String.valueOf(activeChar.getZ());
break;
}
case "$heading":
{
value = String.valueOf(activeChar.getHeading());
break;
}
case "$toid":
{
value = String.valueOf(activeChar.getTargetId());
break;
}
case "$tboid":
{
target = activeChar.getTarget();
if ((target != null) && (target instanceof L2Playable))
{
@@ -450,7 +487,9 @@ public final class AdminPForge implements IAdminCommandHandler
}
}
break;
}
case "$ttitle":
{
target = activeChar.getTarget();
if ((target != null) && (target instanceof L2Character))
{
@@ -461,7 +500,9 @@ public final class AdminPForge implements IAdminCommandHandler
value = "";
}
break;
}
case "$tname":
{
target = activeChar.getTarget();
if (target != null)
{
@@ -472,7 +513,9 @@ public final class AdminPForge implements IAdminCommandHandler
value = "";
}
break;
}
case "$tx":
{
target = activeChar.getTarget();
if (target != null)
{
@@ -483,7 +526,9 @@ public final class AdminPForge implements IAdminCommandHandler
value = "0";
}
break;
}
case "$ty":
{
target = activeChar.getTarget();
if (target != null)
{
@@ -494,7 +539,9 @@ public final class AdminPForge implements IAdminCommandHandler
value = "0";
}
break;
}
case "$tz":
{
target = activeChar.getTarget();
if (target != null)
{
@@ -505,7 +552,9 @@ public final class AdminPForge implements IAdminCommandHandler
value = "0";
}
break;
}
case "$theading":
{
target = activeChar.getTarget();
if (target != null)
{
@@ -516,6 +565,7 @@ public final class AdminPForge implements IAdminCommandHandler
value = "0";
}
break;
}
}
if (method.equals("sc") || method.equals("sb"))

View File

@@ -375,14 +375,20 @@ public class AdminSpawn implements IAdminCommandHandler
{
default:
case 0:
{
_log.info("('',1," + i + "," + x + "," + y + "," + z + ",0,0," + h + ",60,0,0),");
break;
}
case 1:
{
_log.info("<spawn npcId=\"" + i + "\" x=\"" + x + "\" y=\"" + y + "\" z=\"" + z + "\" heading=\"" + h + "\" respawn=\"0\" />");
break;
}
case 2:
{
_log.info("{ " + i + ", " + x + ", " + y + ", " + z + ", " + h + " },");
break;
}
}
}

View File

@@ -328,23 +328,35 @@ public class AdminTeleport implements IAdminCommandHandler
switch (player.getRace())
{
case ELF:
{
regionName = "elf_town";
break;
}
case DARK_ELF:
{
regionName = "darkelf_town";
break;
}
case ORC:
{
regionName = "orc_town";
break;
}
case DWARF:
{
regionName = "dwarf_town";
break;
}
case KAMAEL:
{
regionName = "kamael_town";
break;
}
case HUMAN:
default:
{
regionName = "talking_island_town";
}
}
player.teleToLocation(MapRegionManager.getInstance().getMapRegionByName(regionName).getSpawnLoc(), true, null);

View File

@@ -44,11 +44,15 @@ public class Augment implements IBypassHandler
switch (Integer.parseInt(command.substring(8, 9).trim()))
{
case 1:
{
activeChar.sendPacket(ExShowVariationMakeWindow.STATIC_PACKET);
return true;
}
case 2:
{
activeChar.sendPacket(ExShowVariationCancelWindow.STATIC_PACKET);
return true;
}
}
}
catch (Exception e)

View File

@@ -78,11 +78,15 @@ public class KarmaCount extends AbstractEffect
switch (_mode)
{
case 0: // diff
{
final int newReputation = Math.min(player.getReputation() + _amount, 0);
player.setReputation(newReputation);
break;
}
case 1: // reset
{
player.setReputation(0);
}
}
}
}

View File

@@ -48,13 +48,19 @@ public class EventItem implements IItemHandler
switch (itemId)
{
case 13787: // Handy's Block Checker Bond
{
used = useBlockCheckerItem(activeChar, item);
break;
}
case 13788: // Handy's Block Checker Land Mine
{
used = useBlockCheckerItem(activeChar, item);
break;
}
default:
{
_log.warning("EventItemHandler: Item with id: " + itemId + " is not handled");
}
}
return used;
}

View File

@@ -57,18 +57,24 @@ public final class SocialAction implements IPlayerActionHandler
case 15: // Shyness
case 28: // Propose
case 29: // Provoke
{
useSocial(activeChar, data.getOptionId());
break;
}
case 30: // Beauty Shop
{
if (useSocial(activeChar, data.getOptionId()))
{
activeChar.broadcastInfo();
}
break;
}
case 16: // Exchange Bows
case 17: // High Five
case 18: // Couple Dance
{
useCoupleSocial(activeChar, data.getOptionId());
}
}
}

View File

@@ -62,53 +62,85 @@ public class Enchant implements ITelnetCommand
switch (itemType)
{
case 1:
{
itemType = Inventory.PAPERDOLL_HEAD;
break;
}
case 2:
{
itemType = Inventory.PAPERDOLL_CHEST;
break;
}
case 3:
{
itemType = Inventory.PAPERDOLL_GLOVES;
break;
}
case 4:
{
itemType = Inventory.PAPERDOLL_FEET;
break;
}
case 5:
{
itemType = Inventory.PAPERDOLL_LEGS;
break;
}
case 6:
{
itemType = Inventory.PAPERDOLL_RHAND;
break;
}
case 7:
{
itemType = Inventory.PAPERDOLL_LHAND;
break;
}
case 8:
{
itemType = Inventory.PAPERDOLL_LEAR;
break;
}
case 9:
{
itemType = Inventory.PAPERDOLL_REAR;
break;
}
case 10:
{
itemType = Inventory.PAPERDOLL_LFINGER;
break;
}
case 11:
{
itemType = Inventory.PAPERDOLL_RFINGER;
break;
}
case 12:
{
itemType = Inventory.PAPERDOLL_NECK;
break;
}
case 13:
{
itemType = Inventory.PAPERDOLL_UNDER;
break;
}
case 14:
{
itemType = Inventory.PAPERDOLL_CLOAK;
break;
}
case 15:
{
itemType = Inventory.PAPERDOLL_BELT;
break;
}
default:
{
itemType = 0;
break;
}
}
final boolean success = setEnchant(player, enchant, itemType);
return success ? "Item has been successfully enchanted." : "Failed to enchant player's item!";

View File

@@ -47,20 +47,30 @@ public class PartyInfo implements IUserCommandHandler
switch (party.getDistributionType())
{
case FINDERS_KEEPERS:
{
activeChar.sendPacket(SystemMessageId.LOOTING_METHOD_FINDERS_KEEPERS);
break;
}
case RANDOM:
{
activeChar.sendPacket(SystemMessageId.LOOTING_METHOD_RANDOM);
break;
}
case RANDOM_INCLUDING_SPOIL:
{
activeChar.sendPacket(SystemMessageId.LOOTING_METHOD_RANDOM_INCLUDING_SPOIL);
break;
}
case BY_TURN:
{
activeChar.sendPacket(SystemMessageId.LOOTING_METHOD_BY_TURN);
break;
}
case BY_TURN_INCLUDING_SPOIL:
{
activeChar.sendPacket(SystemMessageId.LOOTING_METHOD_BY_TURN_INCLUDING_SPOIL);
break;
}
}
// Not used in Infinite Odissey

View File

@@ -41,6 +41,7 @@ public class CastleVCmd implements IVoicedCommandHandler
switch (command)
{
case "opendoors":
{
if (!params.equals("castle"))
{
activeChar.sendMessage("Only Castle doors can be open.");
@@ -79,7 +80,9 @@ public class CastleVCmd implements IVoicedCommandHandler
door.openMe();
}
break;
}
case "closedoors":
{
if (!params.equals("castle"))
{
activeChar.sendMessage("Only Castle doors can be closed.");
@@ -115,12 +118,15 @@ public class CastleVCmd implements IVoicedCommandHandler
door2.closeMe();
}
break;
}
case "ridewyvern":
{
if (activeChar.isClanLeader() && (activeChar.getClan().getCastleId() > 0))
{
activeChar.mount(12621, 0, true);
}
break;
}
}
return true;
}

View File

@@ -355,16 +355,21 @@ public final class Rnd
switch (type)
{
case UNSECURE_ATOMIC:
{
return new RandomContainer(new Random());
}
case UNSECURE_VOLATILE:
{
return new RandomContainer(new NonAtomicRandom());
}
case UNSECURE_THREAD_LOCAL:
{
return new RandomContainer(new ThreadLocalRandom());
}
case SECURE:
{
return new RandomContainer(new SecureRandom());
}
}
throw new IllegalArgumentException();

View File

@@ -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)

View File

@@ -210,6 +210,7 @@ public class LoginServerThread extends Thread
switch (packetType)
{
case 0x00:
{
final InitLS init = new InitLS(incoming);
if (init.getRevision() != REVISION)
{
@@ -238,12 +239,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();
@@ -290,7 +295,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;
@@ -327,17 +334,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;
}
}
}
}
@@ -724,31 +738,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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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)

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -496,19 +496,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);

View File

@@ -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()));

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -568,58 +568,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;
@@ -1904,23 +1932,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;
@@ -2594,6 +2636,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))
{
@@ -2604,8 +2647,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))
{
@@ -2616,7 +2660,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))
{
@@ -2627,7 +2673,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))
{
@@ -2646,7 +2694,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))
{
@@ -2665,7 +2715,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))
{
@@ -2676,8 +2728,11 @@ public class L2Clan implements IIdentifiable, INamable
increaseClanLevel = true;
}
break;
}
default:
{
return false;
}
}
if (!increaseClanLevel)

View File

@@ -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;
}
}
}

View File

@@ -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;

View File

@@ -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)

View File

@@ -1464,29 +1464,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;
}
}
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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)
{

View File

@@ -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)))
{

View File

@@ -965,32 +965,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;
}
}
}
}
@@ -12109,17 +12127,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;
}
}
}

View File

@@ -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)
{

View File

@@ -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)

View File

@@ -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);
}
}
}

View File

@@ -59,7 +59,9 @@ public class ConditionGameTime extends Condition
switch (_check)
{
case NIGHT:
{
return GameTimeController.getInstance().isNight() == _required;
}
}
return !_required;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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.";

View File

@@ -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;
}
}
}
}

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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);
}
}
}
}

View File

@@ -854,55 +854,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;
}
@@ -1078,81 +1122,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;
}
@@ -1230,81 +1318,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)
{
@@ -1379,7 +1515,9 @@ public abstract class Inventory extends ItemContainer
case L2Item.SLOT_FEET:
case L2Item.SLOT_GLOVES:
case L2Item.SLOT_HEAD:
{
return;
}
}
}
@@ -1398,7 +1536,6 @@ public abstract class Inventory extends ItemContainer
{
setPaperdollItem(PAPERDOLL_RHAND, null);
}
setPaperdollItem(PAPERDOLL_LHAND, item);
break;
}
@@ -1445,15 +1582,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
@@ -1462,20 +1605,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))
{
@@ -1485,10 +1634,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))
{
@@ -1498,32 +1648,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);
@@ -1535,14 +1700,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());
}
}
}

View File

@@ -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

View File

@@ -1334,20 +1334,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

View File

@@ -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

View File

@@ -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)

View File

@@ -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;
}
}
}
}

View File

@@ -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());

View File

@@ -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);
}
}
}
}

View File

@@ -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);

View File

@@ -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)

View File

@@ -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)

View File

@@ -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;
}
}
}
}

View File

@@ -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;
}
}
}
}

View File

@@ -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);
}
}
}
}

View File

@@ -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;
}
}
}
}

View File

@@ -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;
}
}
}
}

View File

@@ -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;
}
}
}
}

View File

@@ -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()));

View File

@@ -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

View File

@@ -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();
}
}
}
}

View File

@@ -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);

View File

@@ -55,68 +55,104 @@ public class L2JGameServerPacketHandler
switch (state)
{
case CONNECTED:
{
switch (opcode)
{
case 0x00:
{
msg = new BlowFishKey(data, server);
break;
}
default:
{
_log.warning("Unknown Opcode (" + Integer.toHexString(opcode).toUpperCase() + ") in state " + state.name() + " from GameServer, closing connection.");
server.forceClose(LoginServerFail.NOT_AUTHED);
break;
}
}
break;
}
case BF_CONNECTED:
{
switch (opcode)
{
case 0x01:
{
msg = new GameServerAuth(data, server);
break;
}
default:
{
_log.warning("Unknown Opcode (" + Integer.toHexString(opcode).toUpperCase() + ") in state " + state.name() + " from GameServer, closing connection.");
server.forceClose(LoginServerFail.NOT_AUTHED);
break;
}
}
break;
}
case AUTHED:
{
switch (opcode)
{
case 0x02:
{
msg = new PlayerInGame(data, server);
break;
}
case 0x03:
{
msg = new PlayerLogout(data, server);
break;
}
case 0x04:
{
msg = new ChangeAccessLevel(data, server);
break;
}
case 0x05:
{
msg = new PlayerAuthRequest(data, server);
break;
}
case 0x06:
{
msg = new ServerStatus(data, server);
break;
}
case 0x07:
{
msg = new PlayerTracert(data);
break;
}
case 0x08:
{
msg = new ReplyCharacters(data, server);
break;
}
case 0x09:
{
// msg = new RequestSendMail(data);
break;
}
case 0x0A:
{
msg = new RequestTempBan(data);
break;
}
case 0x0B:
{
new ChangePassword(data);
break;
}
default:
{
_log.warning("Unknown Opcode (" + Integer.toHexString(opcode).toUpperCase() + ") in state " + state.name() + " from GameServer, closing connection.");
server.forceClose(LoginServerFail.NOT_AUTHED);
break;
}
}
break;
}
}
return msg;
}

View File

@@ -52,11 +52,15 @@ public final class L2LoginPacketHandler implements IPacketHandler<L2LoginClient>
switch (opcode)
{
case 0x07:
{
packet = new AuthGameGuard();
break;
}
default:
{
debugOpcode(opcode, state);
break;
}
}
break;
}
@@ -65,11 +69,15 @@ public final class L2LoginPacketHandler implements IPacketHandler<L2LoginClient>
switch (opcode)
{
case 0x00:
{
packet = new RequestAuthLogin();
break;
}
default:
{
debugOpcode(opcode, state);
break;
}
}
break;
}

View File

@@ -141,6 +141,7 @@ public class RequestAuthLogin extends L2LoginClientPacket
switch (result)
{
case AUTH_SUCCESS:
{
client.setAccount(info.getLogin());
client.setState(LoginClientState.AUTHED_LOGIN);
client.setSessionKey(lc.assignSessionKeyToClient(info.getLogin(), client));
@@ -154,13 +155,19 @@ public class RequestAuthLogin extends L2LoginClientPacket
client.sendPacket(new ServerList(client));
}
break;
}
case INVALID_PASSWORD:
{
client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG);
break;
}
case ACCOUNT_BANNED:
{
client.close(new AccountKicked(AccountKickedReason.REASON_PERMANENTLY_BANNED));
return;
}
case ALREADY_ON_LS:
{
final L2LoginClient oldClient = lc.getAuthedClient(info.getLogin());
if (oldClient != null)
{
@@ -171,12 +178,13 @@ public class RequestAuthLogin extends L2LoginClientPacket
// kick also current client
client.close(LoginFailReason.REASON_ACCOUNT_IN_USE);
break;
}
case ALREADY_ON_GS:
{
final GameServerInfo gsi = lc.getAccountOnGameServer(info.getLogin());
if (gsi != null)
{
client.close(LoginFailReason.REASON_ACCOUNT_IN_USE);
// kick from there
if (gsi.isAuthed())
{
@@ -184,6 +192,7 @@ public class RequestAuthLogin extends L2LoginClientPacket
}
}
break;
}
}
}
}