Sync with L2JServer Jan 2nd 2015.

This commit is contained in:
mobius
2015-01-02 16:44:45 +00:00
parent 94b2621431
commit 54c0ceafb8
439 changed files with 63249 additions and 62327 deletions

View File

@ -476,7 +476,7 @@ public class L2DoorInstance extends L2Character
OnEventTrigger oe = null;
if (getEmitter() > 0)
{
oe = new OnEventTrigger(this, getOpen());
oe = new OnEventTrigger(getEmitter(), getOpen());
}
for (L2PcInstance player : knownPlayers)
@ -708,7 +708,7 @@ public class L2DoorInstance extends L2Character
{
if (getEmitter() > 0)
{
activeChar.sendPacket(new OnEventTrigger(this, getOpen()));
activeChar.sendPacket(new OnEventTrigger(getEmitter(), getOpen()));
}
activeChar.sendPacket(new StaticObject(this, activeChar.isGM()));

View File

@ -279,6 +279,7 @@ import com.l2jserver.gameserver.network.serverpackets.ExStorageMaxCount;
import com.l2jserver.gameserver.network.serverpackets.ExSubjobInfo;
import com.l2jserver.gameserver.network.serverpackets.ExUseSharedGroupItem;
import com.l2jserver.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import com.l2jserver.gameserver.network.serverpackets.ExUserInfoCubic;
import com.l2jserver.gameserver.network.serverpackets.ExUserInfoInvenWeight;
import com.l2jserver.gameserver.network.serverpackets.FlyToLocation.FlyType;
import com.l2jserver.gameserver.network.serverpackets.GameGuardQuery;
@ -2188,7 +2189,7 @@ public final class L2PcInstance extends L2Playable
int slot = getInventory().getSlotFromItem(item);
// we can't unequip talisman by body slot
if (slot == L2Item.SLOT_DECO)
if ((slot == L2Item.SLOT_DECO) || (slot == L2Item.SLOT_BROOCH_JEWEL))
{
items = getInventory().unEquipItemInSlotAndRecord(item.getLocationSlot());
}
@ -4282,7 +4283,6 @@ public final class L2PcInstance extends L2Playable
// Send a Server->Client packet CharInfo to all L2PcInstance in _KnownPlayers of the L2PcInstance
broadcastPacket(new CharInfo(this));
broadcastPacket(new ExBrExtraUserInfo(this));
}
public final void broadcastUserInfo(UserInfoType... types)
@ -4302,10 +4302,8 @@ public final class L2PcInstance extends L2Playable
UserInfo ui = new UserInfo(this, false);
ui.addComponentType(UserInfoType.CLAN);
sendPacket(ui);
sendPacket(new ExBrExtraUserInfo(this));
// Send a Server->Client packet TitleUpdate to all L2PcInstance in _KnownPlayers of the L2PcInstance
broadcastPacket(new NicknameChanged(this));
}
@ -9195,7 +9193,8 @@ public final class L2PcInstance extends L2Playable
cubic.cancelDisappear();
}
_cubics.clear();
broadcastUserInfo();
sendPacket(new ExUserInfoCubic(this));
broadcastPacket(new CharInfo(this));
}
}
@ -9216,7 +9215,8 @@ public final class L2PcInstance extends L2Playable
}
if (broadcast)
{
broadcastUserInfo();
sendPacket(new ExUserInfoCubic(this));
broadcastPacket(new CharInfo(this));
}
}
}
@ -9568,6 +9568,7 @@ public final class L2PcInstance extends L2Playable
cubic.cancelDisappear();
}
_cubics.clear();
sendPacket(new ExUserInfoCubic(this));
}
if (getParty() != null)

View File

@ -131,7 +131,7 @@ public final class L2TeleporterInstance extends L2Npc
}
if (shouldPayFee(player, loc))
{
finalName += " - " + loc.getFeeCount() + " " + getItemName(loc.getFeeId(), true);
finalName += " - " + calculateFee(player, type, loc) + " " + getItemName(loc.getFeeId(), true);
}
sb.append("<button align=left icon=" + (!questLocations.contains(loc.getNpcStringId()) ? "teleport" : "quest") + " action=\"bypass -h npc_" + getObjectId() + "_teleport " + type.ordinal() + " " + id + "\" msg=\"811;" + confirmDesc + "\">" + finalName + "</button>");
});
@ -192,7 +192,7 @@ public final class L2TeleporterInstance extends L2Npc
{
player.sendPacket(SystemMessageId.YOU_CANNOT_TELEPORT_WHILE_IN_POSSESSION_OF_A_WARD);
}
else if (shouldPayFee(player, loc) && !player.destroyItemByItemId("Teleport", loc.getFeeId(), loc.getFeeCount(), this, true))
else if (shouldPayFee(player, loc) && !player.destroyItemByItemId("Teleport", loc.getFeeId(), calculateFee(player, type, loc), this, true))
{
if (loc.getFeeId() == Inventory.ADENA_ID)
{
@ -217,6 +217,35 @@ public final class L2TeleporterInstance extends L2Npc
}
}
/**
* For characters below level 77 teleport service is free.<br>
* From 8.00 pm to 00.00 from Monday till Tuesday for all characters there's a 50% discount on teleportation services
* @param player
* @param type
* @param loc
* @return
*/
private long calculateFee(L2PcInstance player, TeleportType type, TeleportLocation loc)
{
if (player.getLevel() < 77)
{
return 0;
}
if (type == TeleportType.NORMAL)
{
final Calendar cal = Calendar.getInstance();
final int hour = cal.get(Calendar.HOUR_OF_DAY);
final int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if ((hour >= 20) && ((dayOfWeek >= Calendar.MONDAY) && (dayOfWeek <= Calendar.TUESDAY)))
{
return loc.getFeeCount() / 2;
}
}
return loc.getFeeCount();
}
protected boolean shouldPayFee(L2PcInstance player, TeleportLocation loc)
{
return Config.ALT_GAME_FREE_TELEPORT || ((player.getLevel() >= 76) && ((loc.getFeeId() != 0) && (loc.getFeeCount() > 0)));

View File

@ -913,4 +913,13 @@ public class PcStat extends PlayableStat
return bonus;
}
/**
* Gets the maximum brooch jewel count.
* @return the maximum brooch jewel count
*/
public int getBroochJewelSlots()
{
return (int) calcStat(Stats.BROOCH_JEWELS, 0);
}
}