Свернуть ↑
package l2open.gameserver.model;
import java.awt.Color;
import java.io.PrintStream;
import java.lang.ref.WeakReference;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.ConcurrentModificationException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledFuture;
import java.util.logging.Level;
import java.util.logging.Logger;
import javolution.text.TextBuilder;
import javolution.util.FastList;
import javolution.util.FastMap;
import l2open.Config;
import l2open.Config.L2WalkerAllowed;
import l2open.database.DatabaseUtils;
import l2open.database.FiltredPreparedStatement;
import l2open.database.FiltredStatement;
import l2open.database.L2DatabaseFactory;
import l2open.database.ThreadConnection;
import l2open.database.mysql;
import l2open.extensions.Bonus;
import l2open.extensions.multilang.CustomMessage;
import l2open.extensions.network.MMOConnection;
import l2open.extensions.scripts.Events;
import l2open.extensions.scripts.Functions;
import l2open.extensions.scripts.Scripts;
import l2open.extensions.scripts.Scripts.ScriptClassAndMe thod;
import l2open.gameserver.GameTimeController;
import l2open.gameserver.RecipeController;
import l2open.gameserver.ThreadPoolManager;
import l2open.gameserver.ai.CtrlEvent;
import l2open.gameserver.ai.CtrlIntention;
import l2open.gameserver.ai.L2CharacterAI;
import l2open.gameserver.ai.L2PlayableAI;
import l2open.gameserver.ai.L2PlayableAI.nextAction;
import l2open.gameserver.ai.L2PlayerAI;
import l2open.gameserver.cache.Msg;
import l2open.gameserver.clientpackets.EnterWorld;
import l2open.gameserver.communitybbs.BB.Forum;
import l2open.gameserver.communitybbs.Manager.ForumsBBSMa nager;
import l2open.gameserver.handler.IItemHandler;
import l2open.gameserver.handler.ItemHandler;
import l2open.gameserver.idfactory.IdFactory;
import l2open.gameserver.instancemanager.CastleManager;
import l2open.gameserver.instancemanager.CastleSiegeManag er;
import l2open.gameserver.instancemanager.ClanHallManager;
import l2open.gameserver.instancemanager.CoupleManager;
import l2open.gameserver.instancemanager.CursedWeaponsMan ager;
import l2open.gameserver.instancemanager.DimensionalRiftM anager;
import l2open.gameserver.instancemanager.DimensionalRiftM anager.DimensionalRiftRoom;
import l2open.gameserver.instancemanager.FortressManager;
import l2open.gameserver.instancemanager.FortressSiegeMan ager;
import l2open.gameserver.instancemanager.PartyRoomManager ;
import l2open.gameserver.instancemanager.QuestManager;
import l2open.gameserver.instancemanager.SiegeManager;
import l2open.gameserver.instancemanager.ZoneManager;
import l2open.gameserver.loginservercon.LSConnection;
import l2open.gameserver.loginservercon.gspackets.ChangeA ccessLevel;
import l2open.gameserver.model.base.ClassId;
import l2open.gameserver.model.base.Experience;
import l2open.gameserver.model.base.PlayerAccess;
import l2open.gameserver.model.base.Race;
import l2open.gameserver.model.base.Transaction;
import l2open.gameserver.model.entity.DimensionalRift;
import l2open.gameserver.model.entity.Duel;
import l2open.gameserver.model.entity.Duel.DuelState;
import l2open.gameserver.model.entity.Hero;
import l2open.gameserver.model.entity.SevenSignsFestival. DarknessFestival;
import l2open.gameserver.model.entity.olympiad.CompType;
import l2open.gameserver.model.entity.olympiad.Olympiad;
import l2open.gameserver.model.entity.olympiad.OlympiadGa me;
import l2open.gameserver.model.entity.residence.Castle;
import l2open.gameserver.model.entity.residence.ClanHall;
import l2open.gameserver.model.entity.residence.Fortress;
import l2open.gameserver.model.entity.residence.Residence ;
import l2open.gameserver.model.entity.residence.Residence Type;
import l2open.gameserver.model.entity.siege.Siege;
import l2open.gameserver.model.entity.siege.territory.Ter ritorySiege;
import l2open.gameserver.model.entity.vehicle.L2AirClan;
import l2open.gameserver.model.entity.vehicle.L2AirShip;
import l2open.gameserver.model.entity.vehicle.L2Ship;
import l2open.gameserver.model.entity.vehicle.L2Vehicle;
import l2open.gameserver.model.instances.L2AgathionInstan ce;
import l2open.gameserver.model.instances.L2ClanHallManage rInstance;
import l2open.gameserver.model.instances.L2CubicInstance;
import l2open.gameserver.model.instances.L2CubicInstance. CubicType;
import l2open.gameserver.model.instances.L2DecoyInstance;
import l2open.gameserver.model.instances.L2DoorInstance;
import l2open.gameserver.model.instances.L2FestivalMonste rInstance;
import l2open.gameserver.model.instances.L2GuardInstance;
import l2open.gameserver.model.instances.L2HennaInstance;
import l2open.gameserver.model.instances.L2MinionInstance ;
import l2open.gameserver.model.instances.L2MonsterInstanc e;
import l2open.gameserver.model.instances.L2NpcInstance;
import l2open.gameserver.model.instances.L2PetInstance;
import l2open.gameserver.model.instances.L2StaticObjectIn stance;
import l2open.gameserver.model.instances.L2TamedBeastInst ance;
import l2open.gameserver.model.instances.L2TerritoryFlagI nstance;
import l2open.gameserver.model.instances.L2TrapInstance;
import l2open.gameserver.model.items.Inventory;
import l2open.gameserver.model.items.L2ItemInstance;
import l2open.gameserver.model.items.L2ItemInstance.ItemL ocation;
import l2open.gameserver.model.items.PcFreight;
import l2open.gameserver.model.items.PcInventory;
import l2open.gameserver.model.items.PcInventoryDummy;
import l2open.gameserver.model.items.PcWarehouse;
import l2open.gameserver.model.items.Warehouse;
import l2open.gameserver.model.items.Warehouse.WarehouseT ype;
import l2open.gameserver.model.quest.Quest;
import l2open.gameserver.model.quest.QuestEventType;
import l2open.gameserver.model.quest.QuestState;
import l2open.gameserver.network.L2GameClient;
import l2open.gameserver.serverpackets.AbnormalStatusUpda te;
import l2open.gameserver.serverpackets.CameraMode;
import l2open.gameserver.serverpackets.ChangeWaitType;
import l2open.gameserver.serverpackets.CharInfo;
import l2open.gameserver.serverpackets.CharMoveToLocation ;
import l2open.gameserver.serverpackets.ConfirmDlg;
import l2open.gameserver.serverpackets.DeleteObject;
import l2open.gameserver.serverpackets.DropItem;
import l2open.gameserver.serverpackets.EtcStatusUpdate;
import l2open.gameserver.serverpackets.ExAirShipInfo;
import l2open.gameserver.serverpackets.ExAutoSoulShot;
import l2open.gameserver.serverpackets.ExBasicActionList;
import l2open.gameserver.serverpackets.ExBrExtraUserInfo;
import l2open.gameserver.serverpackets.ExBrPremiumState;
import l2open.gameserver.serverpackets.ExDuelUpdateUserIn fo;
import l2open.gameserver.serverpackets.ExFishingEnd;
import l2open.gameserver.serverpackets.ExGetBookMarkInfoP acket;
import l2open.gameserver.serverpackets.ExGetOnAirShip;
import l2open.gameserver.serverpackets.ExMoveToLocationAi rShip;
import l2open.gameserver.serverpackets.ExOlympiadMatchEnd ;
import l2open.gameserver.serverpackets.ExOlympiadMode;
import l2open.gameserver.serverpackets.ExOlympiadSpelledI nfo;
import l2open.gameserver.serverpackets.ExSetCompassZoneCo de;
import l2open.gameserver.serverpackets.ExShowScreenMessag e;
import l2open.gameserver.serverpackets.ExShowScreenMessag e.ScreenMessageAlign;
import l2open.gameserver.serverpackets.ExStartScenePlayer ;
import l2open.gameserver.serverpackets.ExStorageMaxCount;
import l2open.gameserver.serverpackets.ExUseSharedGroupIt em;
import l2open.gameserver.serverpackets.ExVitalityPointInf o;
import l2open.gameserver.serverpackets.ExVoteSystemInfo;
import l2open.gameserver.serverpackets.GetItem;
import l2open.gameserver.serverpackets.GetOnVehicle;
import l2open.gameserver.serverpackets.HennaInfo;
import l2open.gameserver.serverpackets.InventoryUpdate;
import l2open.gameserver.serverpackets.ItemList;
import l2open.gameserver.serverpackets.L2GameServerPacket ;
import l2open.gameserver.serverpackets.MagicSkillUse;
import l2open.gameserver.serverpackets.MyTargetSelected;
import l2open.gameserver.serverpackets.NpcHtmlMessage;
import l2open.gameserver.serverpackets.NpcInfo;
import l2open.gameserver.serverpackets.NpcInfoPoly;
import l2open.gameserver.serverpackets.ObserverEnd;
import l2open.gameserver.serverpackets.ObserverStart;
import l2open.gameserver.serverpackets.PartySmallWindowUp date;
import l2open.gameserver.serverpackets.PartySpelled;
import l2open.gameserver.serverpackets.PetInfo;
import l2open.gameserver.serverpackets.PetItemList;
import l2open.gameserver.serverpackets.PlaySound;
import l2open.gameserver.serverpackets.PledgeShowInfoUpda te;
import l2open.gameserver.serverpackets.PledgeShowMemberLi stDelete;
import l2open.gameserver.serverpackets.PledgeShowMemberLi stDeleteAll;
import l2open.gameserver.serverpackets.PledgeShowMemberLi stUpdate;
import l2open.gameserver.serverpackets.PledgeStatusChange d;
import l2open.gameserver.serverpackets.PrivateStoreListBu y;
import l2open.gameserver.serverpackets.PrivateStoreListSe ll;
import l2open.gameserver.serverpackets.PrivateStoreMsgBuy ;
import l2open.gameserver.serverpackets.PrivateStoreMsgSel l;
import l2open.gameserver.serverpackets.QuestList;
import l2open.gameserver.serverpackets.RecipeShopMsg;
import l2open.gameserver.serverpackets.RecipeShopSellList ;
import l2open.gameserver.serverpackets.Relationchanged;
import l2open.gameserver.serverpackets.Ride;
import l2open.gameserver.serverpackets.SendTradeDone;
import l2open.gameserver.serverpackets.SetupGauge;
import l2open.gameserver.serverpackets.ShortBuffStatusUpd ate;
import l2open.gameserver.serverpackets.ShortCutInit;
import l2open.gameserver.serverpackets.ShortCutRegister;
import l2open.gameserver.serverpackets.SkillCoolTime;
import l2open.gameserver.serverpackets.SkillList;
import l2open.gameserver.serverpackets.Snoop;
import l2open.gameserver.serverpackets.SocialAction;
import l2open.gameserver.serverpackets.SpawnEmitter;
import l2open.gameserver.serverpackets.SpawnItem;
import l2open.gameserver.serverpackets.SpawnItemPoly;
import l2open.gameserver.serverpackets.SpecialCamera;
import l2open.gameserver.serverpackets.StaticObject;
import l2open.gameserver.serverpackets.StatusUpdate;
import l2open.gameserver.serverpackets.SystemMessage;
import l2open.gameserver.serverpackets.TargetSelected;
import l2open.gameserver.serverpackets.TargetUnselected;
import l2open.gameserver.serverpackets.TeleportToLocation ;
import l2open.gameserver.serverpackets.UserInfo;
import l2open.gameserver.serverpackets.VehicleDeparture;
import l2open.gameserver.serverpackets.VehicleInfo;
import l2open.gameserver.skills.Env;
import l2open.gameserver.skills.SkillTimeStamp;
import l2open.gameserver.skills.Stats;
import l2open.gameserver.skills.effects.EffectTemplate;
import l2open.gameserver.skills.skillclasses.Transformati on;
import l2open.gameserver.tables.CharTemplateTable;
import l2open.gameserver.tables.ClanTable;
import l2open.gameserver.tables.HennaTable;
import l2open.gameserver.tables.ItemTable;
import l2open.gameserver.tables.MapRegion;
import l2open.gameserver.tables.NpcTable;
import l2open.gameserver.tables.PetDataTable;
import l2open.gameserver.tables.ReflectionTable;
import l2open.gameserver.tables.SkillTable;
import l2open.gameserver.tables.SkillTreeTable;
import l2open.gameserver.taskmanager.AutoSaveManager;
import l2open.gameserver.taskmanager.BreakWarnManager;
import l2open.gameserver.taskmanager.VitalityManager;
import l2open.gameserver.templates.L2Armor.ArmorType;
import l2open.gameserver.templates.L2CharTemplate;
import l2open.gameserver.templates.L2Henna;
import l2open.gameserver.templates.L2Item;
import l2open.gameserver.templates.L2Item.Grade;
import l2open.gameserver.templates.L2NpcTemplate;
import l2open.gameserver.templates.L2PlayerTemplate;
import l2open.gameserver.templates.L2Weapon;
import l2open.gameserver.templates.L2Weapon.WeaponType;
import l2open.util.EffectsComparator;
import l2open.util.FloodProtectors;
import l2open.util.GArray;
import l2open.util.GCSArray;
import l2open.util.Location;
import l2open.util.Log;
import l2open.util.Rnd;
import l2open.util.SqlBatch;
import l2open.util.Strings;
import l2open.util.Util;
public final class L2Player extends L2Playable
{
public HashMap<Integer, L2SubClass> _classlist = new HashMap(4);
public static final short STORE_PRIVATE_NONE = 0;
public static final short STORE_PRIVATE_SELL = 1;
public static final short STORE_PRIVATE_BUY = 3;
public static final short STORE_PRIVATE_MANUFACTURE = 5;
public static final short STORE_OBSERVING_GAMES = 7;
public static final short STORE_PRIVATE_SELL_PACKAGE = 8;
public static final int RANK_VAGABOND = 0;
public static final int RANK_VASSAL = 1;
public static final int RANK_HEIR = 2;
public static final int RANK_KNIGHT = 3;
public static final int RANK_WISEMAN = 4;
public static final int RANK_BARON = 5;
public static final int RANK_VISCOUNT = 6;
public static final int RANK_COUNT = 7;
public static final int RANK_MARQUIS = 8;
public static final int DUKE = 9;
public static final int GRAND_DUKE = 10;
public static final int KING = 11;
public static final int IMPERATOR = 12;