Sync with L2JServer Jan 2nd 2015.
This commit is contained in:
@ -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()));
|
||||
|
@ -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)
|
||||
|
@ -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)));
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user