Noticias:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Menú Principal

Clases Automaticas

Iniciado por Swarlog, Jul 25, 2025, 11:30 PM

Tema anterior - Siguiente tema

Swarlog

Index: java/config/L2JMods.ini
===================================================================
--- java/config/L2JMods.ini	(revision 60)
+++ java/config/L2JMods.ini	(working copy)
@@ -367,6 +367,9 @@
 # Price per service
 PriceForStrider = 5000000
 
+# Class Manager Handled Remotely at Level 20/40/76
+AllowRemoteClassMasters = False
+
 # ------------------------------------------- #
 #         Change Name's Color Via PvP         #
 # ------------------------------------------- #

Index: java/com/it/roberto/Config.java
===================================================================
--- java/com/it/roberto/Config.java	(revision 60)
+++ java/com/it/roberto/Config.java	(working copy)
@@ -265,6 +265,7 @@
 	public static boolean CLASS_MASTER_STRIDER_UPDATE;
 	public static int STRIDER_LEVEL_FOR_UP;
 	public static int PRICE_FOR_STRIDER;
+	public static boolean ALLOW_REMOTE_CLASS_MASTERS;
 	public static ClassMasterSettings CLASS_MASTER_SETTINGS;
 	public static boolean CLASSMASTER_MSG;
 	public static boolean VIEW_SKILL_CHANCE;
@@ -1220,6 +1221,7 @@
                 CLASS_MASTER_SETTINGS = new ClassMasterSettings(CLASS_MASTER_SETTINGS_LINE);			 
 			    STRIDER_LEVEL_FOR_UP = Integer.parseInt(l2ddtSettings.getProperty("StrideLevelForUp", "55"));
                 PRICE_FOR_STRIDER = Integer.parseInt(l2ddtSettings.getProperty("PriceForStrider", "6000000"));
+    			ALLOW_REMOTE_CLASS_MASTERS = Boolean.valueOf(l2ddtSettings.getProperty("AllowRemoteClassMasters", "False"));
 			    ENABLE_MODIFY_SKILL_DURATION = Boolean.parseBoolean(l2ddtSettings.getProperty("EnableModifySkillDuration", "False"));
 			    if (ENABLE_MODIFY_SKILL_DURATION)
 			    {
Index: java/com/it/roberto/gameserver/clientpackets/CharacterCreate.java
===================================================================
--- java/com/it/roberto/gameserver/clientpackets/CharacterCreate.java	(revision 53)
+++ java/com/it/roberto/gameserver/clientpackets/CharacterCreate.java	(working copy)
@@ -162,7 +162,8 @@
 	private void initNewChar(L2GameClient client, L2PcInstance newChar)
 	{
 		if (Config.DEBUG) _log.fine("Character init start");
-		L2World.getInstance().storeObject(newChar);
+		L2World.getInstance();
+		L2World.storeObject(newChar);
 
 		L2PcTemplate template = newChar.getTemplate();
 
Index: java/com/it/roberto/gameserver/clientpackets/EnterWorld.java
===================================================================
--- java/com/it/roberto/gameserver/clientpackets/EnterWorld.java	(revision 57)
+++ java/com/it/roberto/gameserver/clientpackets/EnterWorld.java	(working copy)
@@ -17,7 +17,6 @@
 import com.it.roberto.gameserver.ai.CtrlIntention;
 import com.it.roberto.gameserver.Announcements;
 import com.it.roberto.gameserver.GmListTable;
-import com.it.roberto.gameserver.LoginServerThread;
 import com.it.roberto.gameserver.Olympiad;
 import com.it.roberto.gameserver.SevenSigns;
 import com.it.roberto.gameserver.TaskPriority;
@@ -36,7 +35,10 @@
 import com.it.roberto.gameserver.model.L2Effect;
 import com.it.roberto.gameserver.model.L2ItemInstance;
 import com.it.roberto.gameserver.model.L2World;
+import com.it.roberto.gameserver.model.actor.instance.L2ClassMasterInstance;
 import com.it.roberto.gameserver.model.actor.instance.L2PcInstance;
+import com.it.roberto.gameserver.model.base.ClassLevel;
+import com.it.roberto.gameserver.model.base.PlayerClass;
 import com.it.roberto.gameserver.model.entity.ClanHall;
 import com.it.roberto.gameserver.model.entity.Couple;
 import com.it.roberto.gameserver.model.entity.Hero;
@@ -64,10 +66,8 @@
 import com.it.roberto.gameserver.serverpackets.ShortCutInit;
 import com.it.roberto.gameserver.serverpackets.SignsSky;
 import com.it.roberto.gameserver.serverpackets.SystemMessage;
-//import com.it.roberto.gameserver.serverpackets.UserInfo;
 import com.it.roberto.gameserver.util.FloodProtector;
 import com.it.roberto.gameserver.model.base.Experience;
-import com.it.roberto.util.Rnd;
 import com.it.roberto.gameserver.templates.L2Item;  
 import com.it.roberto.gameserver.util.Util;
 
@@ -437,6 +437,24 @@
             activeChar.sendMessage("You have been teleported to the nearest town due to you being in siege zone");
 		}
 		RegionBBSManager.getInstance().changeCommunityBoard();
+ 		
+		if(Config.ALLOW_REMOTE_CLASS_MASTERS)
+		{
+			ClassLevel lvlnow = PlayerClass.values()[activeChar.getClassId().getId()].getLevel();
+
+			if(activeChar.getLevel() >= 20 && lvlnow == ClassLevel.First)
+			{
+				L2ClassMasterInstance.getInstance().onAction(activeChar);
+			}
+			else if(activeChar.getLevel() >= 40 && lvlnow == ClassLevel.Second)
+			{
+				L2ClassMasterInstance.getInstance().onAction(activeChar);
+			}
+			else if(activeChar.getLevel() >= 76 && lvlnow == ClassLevel.Third)
+			{
+				L2ClassMasterInstance.getInstance().onAction(activeChar);
+			}
+		}
 		
         if(Config.ALLOW_VIP_NCOLOR && activeChar.isVip())
         	activeChar.getAppearance().setNameColor(Config.VIP_NCOLOR);
Index: java/com/it/roberto/gameserver/clientpackets/RequestBypassToServer.java
===================================================================
--- java/com/it/roberto/gameserver/clientpackets/RequestBypassToServer.java	(revision 53)
+++ java/com/it/roberto/gameserver/clientpackets/RequestBypassToServer.java	(working copy)
@@ -13,6 +13,7 @@
 import com.it.roberto.gameserver.model.L2CharPosition;
 import com.it.roberto.gameserver.model.L2Object;
 import com.it.roberto.gameserver.model.L2World;
+import com.it.roberto.gameserver.model.actor.instance.L2ClassMasterInstance;
 import com.it.roberto.gameserver.model.actor.instance.L2NpcInstance;
 import com.it.roberto.gameserver.model.actor.instance.L2PcInstance;
 import com.it.roberto.gameserver.model.entity.L2Event;
@@ -96,6 +97,11 @@
 					L2Object object = L2World.getInstance().findObject(Integer.parseInt(id));
 
 					if (_command.substring(endOfId+1).startsWith("event_participate")) L2Event.inscribePlayer(activeChar);
+					else if((Config.ALLOW_CLASS_MASTERS && Config.ALLOW_REMOTE_CLASS_MASTERS && object instanceof L2ClassMasterInstance)
+							|| (object instanceof L2NpcInstance && endOfId > 0 && activeChar.isInsideRadius(object, L2NpcInstance.INTERACTION_DISTANCE, false, false)))
+						{
+							((L2NpcInstance) object).onBypassFeedback(activeChar, _command.substring(endOfId + 1));
+						}
 					else if (_command.substring(endOfId+1).startsWith("ctf_player_join "))
                     {
                         String teamName = _command.substring(endOfId+1).substring(16); 
Index: java/com/it/roberto/gameserver/model/actor/instance/L2ClassMasterInstance.java
===================================================================
--- java/com/it/roberto/gameserver/model/actor/instance/L2ClassMasterInstance.java	(revision 53)
+++ java/com/it/roberto/gameserver/model/actor/instance/L2ClassMasterInstance.java	(working copy)
@@ -5,10 +5,11 @@
 import com.it.roberto.gameserver.ai.CtrlIntention;
 import com.it.roberto.gameserver.datatables.CharTemplateTable;
 import com.it.roberto.gameserver.datatables.ItemTable;
-import com.it.roberto.gameserver.model.L2ItemInstance;
+import com.it.roberto.gameserver.datatables.NpcTable;
 import com.it.roberto.gameserver.model.base.ClassId;
 import com.it.roberto.gameserver.model.quest.Quest;
 import com.it.roberto.gameserver.model.L2Summon;
+import com.it.roberto.gameserver.model.L2World;
 import com.it.roberto.gameserver.network.SystemMessageId;
 import com.it.roberto.gameserver.serverpackets.ActionFailed;
 import com.it.roberto.gameserver.serverpackets.MyTargetSelected;
@@ -19,11 +20,11 @@
 import com.it.roberto.gameserver.clientpackets.Say2;
 import com.it.roberto.gameserver.serverpackets.ItemList;
 import com.it.roberto.gameserver.templates.L2NpcTemplate;
-import java.util.logging.Logger;
 
 public final class L2ClassMasterInstance extends L2FolkInstance
 {
-    private final static Logger _log = Logger.getLogger(L2ClassMasterInstance.class.getName());
+	private static L2ClassMasterInstance instance=null;
+	/*private final static Logger _log = Logger.getLogger(L2ClassMasterInstance.class.getName());*/
 
     public L2ClassMasterInstance(int objectId, L2NpcTemplate template)
     {
@@ -33,7 +34,7 @@
 	@Override
 	public void onAction(L2PcInstance player)
 	{
-		if (!canTarget(player)) return;
+		if (!canTarget(player) && !Config.ALLOW_REMOTE_CLASS_MASTERS) return;
 
 		// Check if the L2PcInstance already target the L2NpcInstance
 		if (getObjectId() != player.getTargetId())
@@ -49,7 +50,7 @@
 		}
 		else
 		{
-			if (!canInteract(player))
+			if (!canInteract(player) && !Config.ALLOW_REMOTE_CLASS_MASTERS)
 			{
 				player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
 				return;
@@ -301,4 +302,16 @@
         else player.setBaseClass(player.getActiveClass());
         player.broadcastUserInfo();
     }
+
+	public static L2ClassMasterInstance getInstance()
+	{
+		
+		if(instance==null)
+		{
+			instance = new L2ClassMasterInstance(31228, NpcTable.getInstance().getTemplate(31228));
+			L2World.storeObject(instance);
+		}
+		
+		return instance;
+	}
 }
Index: java/com/it/roberto/gameserver/model/ItemContainer.java
===================================================================
--- java/com/it/roberto/gameserver/model/ItemContainer.java	(revision 55)
+++ java/com/it/roberto/gameserver/model/ItemContainer.java	(working copy)
@@ -522,7 +522,8 @@
 				item = L2ItemInstance.restoreFromDb(objectId);
 				if (item == null) continue;
 
-				L2World.getInstance().storeObject(item);
+				L2World.getInstance();
+				L2World.storeObject(item);
 
 				// If stackable item is found in inventory just add to current quantity
 				if (item.isStackable() && getItemByItemId(item.getItemId()) != null)
Index: java/com/it/roberto/gameserver/network/L2GameClient.java
===================================================================
--- java/com/it/roberto/gameserver/network/L2GameClient.java	(revision 55)
+++ java/com/it/roberto/gameserver/network/L2GameClient.java	(working copy)
@@ -135,7 +135,8 @@
 		activeChar = pActiveChar;
 		if (activeChar != null)
 		{
-			L2World.getInstance().storeObject(getActiveChar());
+			L2World.getInstance();
+			L2World.storeObject(getActiveChar());
 		}
 	}
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java	(working copy)
@@ -1,17 +1,16 @@
 package com.it.roberto.gameserver.model.actor.stat;
 
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
 import java.util.logging.Logger;
 
 import com.it.roberto.Config;
-import com.it.roberto.L2DatabaseFactory;
 import com.it.roberto.gameserver.model.quest.QuestState;
 import com.it.roberto.gameserver.model.L2Character;
+import com.it.roberto.gameserver.model.actor.instance.L2ClassMasterInstance;
 import com.it.roberto.gameserver.model.actor.instance.L2PcInstance;
 import com.it.roberto.gameserver.model.actor.instance.L2PetInstance;
+import com.it.roberto.gameserver.model.base.ClassLevel;
 import com.it.roberto.gameserver.model.base.Experience;
+import com.it.roberto.gameserver.model.base.PlayerClass;
 import com.it.roberto.gameserver.network.SystemMessageId;
 import com.it.roberto.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
 import com.it.roberto.gameserver.network.serverpackets.SocialAction;
@@ -98,7 +97,26 @@
 		if (getLevel() + value > Experience.MAX_LEVEL - 1) return false;
 
         boolean levelIncreased = super.addLevel(value);
+        
+		if(Config.ALLOW_REMOTE_CLASS_MASTERS)
+		{
+			ClassLevel lvlnow = PlayerClass.values()[getActiveChar().getClassId().getId()].getLevel();
+			if(getLevel() >= 20 && lvlnow == ClassLevel.First)
+			{
+				L2ClassMasterInstance.getInstance().onAction(getActiveChar());
+			}
+			else if(getLevel() >= 40 && lvlnow == ClassLevel.Second)
+			{
+				L2ClassMasterInstance.getInstance().onAction(getActiveChar());
+			}
+			else if(getLevel() >= 76 && lvlnow == ClassLevel.Third)
+			{
+				L2ClassMasterInstance.getInstance().onAction(getActiveChar());
+			}
 
+			lvlnow = null;
+		}
+
         if (levelIncreased)
         {
         	QuestState qs = getActiveChar().getQuestState("255_Tutorial"); 
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/L2World.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/L2World.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/L2World.java	(working copy)
@@ -24,7 +24,6 @@
 import javolution.util.FastMap;
 import com.it.roberto.Config;
 import com.it.roberto.gameserver.GmListTable;
-import com.it.roberto.gameserver.ThreadPoolManager;
 import com.it.roberto.gameserver.model.actor.instance.L2PcInstance;
 import com.it.roberto.gameserver.model.actor.instance.L2PetInstance;
 import com.it.roberto.gameserver.model.actor.instance.L2PlayableInstance;
@@ -68,7 +67,7 @@
     private Map<String, L2PcInstance> _allPlayers;
 
     /** L2ObjectHashMap(L2Object) containing all visible objects */
-    private L2ObjectMap<L2Object> _allObjects;
+    private static L2ObjectMap<L2Object> _allObjects;
 
     /** List with the pets instances and their owner id */
     private FastMap<Integer,L2PetInstance> _petsInstance;
@@ -106,7 +105,7 @@
      * <li> Withdraw an item from the warehouse, create an item</li>
      * <li> Spawn a L2Character (PC, NPC, Pet)</li><BR>
      */
-    public void storeObject(L2Object object)
+    public static void storeObject(L2Object object)
     {
     	if(_allObjects.get(object.getObjectId()) != null)
     	{
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/L2Object.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/L2Object.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/L2Object.java	(working copy)
@@ -10,7 +10,6 @@
 import com.it.roberto.gameserver.model.actor.position.ObjectPosition;
 import com.it.roberto.gameserver.network.L2GameClient;
 import com.it.roberto.gameserver.model.quest.QuestState;
-import com.it.roberto.gameserver.templates.L2NpcTemplate;
 import com.it.roberto.gameserver.model.actor.instance.L2PetInstance;
 import com.it.roberto.gameserver.model.actor.instance.L2SummonInstance;
 import com.it.roberto.gameserver.network.serverpackets.ActionFailed;
@@ -247,8 +246,9 @@
 			getPosition().setWorldRegion(L2World.getInstance().getRegion(getPosition().getWorldPosition()));
 
 		}
+		L2World.getInstance();
 		// Add the L2Object spawn in the _allobjects of L2World
-		L2World.getInstance().storeObject(this);
+		L2World.storeObject(this);
 
 		// these can synchronize on others instancies, so they're out of
 		// synchronized, to avoid deadlocks
@@ -290,8 +290,9 @@
 			getPosition().setWorldRegion(L2World.getInstance().getRegion(getPosition().getWorldPosition()));
 		}
 
+		L2World.getInstance();
 		// Add the L2Object spawn in the _allobjects of L2World
-		L2World.getInstance().storeObject(this);
+		L2World.storeObject(this);
 		// Add the L2Object spawn to _visibleObjects and if necessary to _allplayers of its L2WorldRegion
 		getPosition().getWorldRegion().addVisibleObject(this);
 		// this can synchronize on others instancies, so it's out of
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/zone/type/L2TownZone.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/zone/type/L2TownZone.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/zone/type/L2TownZone.java	(working copy)
@@ -6,17 +6,22 @@
 import com.it.roberto.gameserver.model.actor.instance.L2PcInstance;
 import com.it.roberto.gameserver.model.zone.L2ZoneType;
 import com.it.roberto.util.Rnd;
-import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
 public class L2TownZone extends L2ZoneType
 {
-
+    private String _townName;
+    private int _townId;
+    private int _redirectTownId;
+    private int _taxById;
+    private boolean _noPeace;
+	private FastList<int[]> _spawnLoc;
+    
     public L2TownZone(int id)
     {
 		super(id);
         _taxById = 0;
-        _spawnLocs = new FastList();
+		_spawnLoc = new FastList<int[]>();
         _redirectTownId = 9;
         _noPeace = false;
     }
@@ -54,7 +59,7 @@
         if(node1 != null)
             ai[2] = Integer.parseInt(node1.getNodeValue());
         if(ai != null)
-            _spawnLocs.add(ai);
+            _spawnLoc.add(ai);
     }
 
     protected void onEnter(L2Character l2character)
@@ -97,7 +102,7 @@
     public final int[] getSpawnLoc()
     {
         int ai[] = new int[3];
-        ai = (int[])_spawnLocs.get(Rnd.get(_spawnLocs.size()));
+        ai = (int[])_spawnLoc.get(Rnd.get(_spawnLoc.size()));
         return ai;
     }
 
@@ -105,11 +110,4 @@
     {
         return _taxById;
     }
-
-    private String _townName;
-    private int _townId;
-    private int _redirectTownId;
-    private int _taxById;
-    private boolean _noPeace;
-    private FastList _spawnLocs;
 }
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/Inventory.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/Inventory.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/model/Inventory.java	(working copy)
@@ -1181,7 +1181,8 @@
 	                    }
 	            }
 	            
-	            L2World.getInstance().storeObject(item);
+	            L2World.getInstance();
+				L2World.storeObject(item);
 	            
 	            // If stackable item is found in inventory just add to current quantity
 	            if (item.isStackable() && getItemByItemId(item.getItemId()) != null)
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/skills/effects/EffectSignetMDam.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/skills/effects/EffectSignetMDam.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/skills/effects/EffectSignetMDam.java	(working copy)
@@ -51,7 +51,8 @@
         L2EffectPointInstance effectPoint = new L2EffectPointInstance(IdFactory.getInstance().getNextId(),  template,  getEffector());
         effectPoint.setCurrentHp(effectPoint.getMaxHp());
         effectPoint.setCurrentMp(effectPoint.getMaxMp());
-        L2World.getInstance().storeObject(effectPoint);
+        L2World.getInstance();
+		L2World.storeObject(effectPoint);
         
         int x = getEffector().getX();
         int y = getEffector().getY();
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSignet.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSignet.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSignet.java	(working copy)
@@ -34,7 +34,8 @@
         L2EffectPointInstance effectPoint = new L2EffectPointInstance(IdFactory.getInstance().getNextId(),  template,  caster);
         effectPoint.setCurrentHp(effectPoint.getMaxHp());
         effectPoint.setCurrentMp(effectPoint.getMaxMp());
-        L2World.getInstance().storeObject(effectPoint);
+        L2World.getInstance();
+		L2World.storeObject(effectPoint);
         
         int x = caster.getX();
         int y = caster.getY();
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSummon.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSummon.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSummon.java	(working copy)
@@ -185,7 +185,8 @@
     	summon.setRunning();
 		activeChar.setPet(summon);
 
-    	L2World.getInstance().storeObject(summon);
+    	L2World.getInstance();
+		L2World.storeObject(summon);
         summon.spawnMe(activeChar.getX()+50, activeChar.getY()+100, activeChar.getZ());
 
     	summon.setFollowStatus(true);
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/handler/itemhandlers/SummonItems.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/handler/itemhandlers/SummonItems.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/handler/itemhandlers/SummonItems.java	(working copy)
@@ -104,7 +104,8 @@
                 spawn.setLocx(activeChar.getX());
                 spawn.setLocy(activeChar.getY());
                 spawn.setLocz(activeChar.getZ());
-				L2World.getInstance().storeObject(spawn.spawnOne(true));
+				L2World.getInstance();
+				L2World.storeObject(spawn.spawnOne(true));
                 activeChar.destroyItem("Summon", item.getObjectId(), 1, null, false);
                 activeChar.sendMessage("Created " + npcTemplate.name + " at x: " + spawn.getLocx() + " y: " + spawn.getLocy() + " z: " + spawn.getLocz());
             }
@@ -139,7 +140,8 @@
 
     		activeChar.sendPacket(new MagicSkillUser(activeChar, 2046, 1, 1000, 600000));
     		activeChar.sendPacket(new SystemMessage(SystemMessageId.SUMMON_A_PET));
-            L2World.getInstance().storeObject(petSummon);
+            L2World.getInstance();
+            L2World.storeObject(petSummon);
     		petSummon.spawnMe(activeChar.getX()+50, activeChar.getY()+100, activeChar.getZ());
             activeChar.sendPacket(new PetInfo(petSummon));
     		petSummon.startFeed(false);
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/handler/itemhandlers/ChristmasTree.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/handler/itemhandlers/ChristmasTree.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/handler/itemhandlers/ChristmasTree.java	(working copy)
@@ -72,7 +72,8 @@
             spawn.setLocx(target.getX());
             spawn.setLocy(target.getY());
             spawn.setLocz(target.getZ());
-            L2World.getInstance().storeObject(spawn.spawnOne(true));
+            L2World.getInstance();
+			L2World.storeObject(spawn.spawnOne(true));
 
             activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false);
 
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/instancemanager/MercTicketManager.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/instancemanager/MercTicketManager.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/instancemanager/MercTicketManager.java	(working copy)
@@ -211,7 +211,8 @@
 		    	    		dropticket.setLocation(L2ItemInstance.ItemLocation.INVENTORY);
 		    	    		dropticket.dropMe(null, x, y, z);
 		    	            dropticket.setDropTime(0); //avoids it from beeing removed by the auto item destroyer
-		    	            L2World.getInstance().storeObject(dropticket);
+		    	            L2World.getInstance();
+							L2World.storeObject(dropticket);
 		    	            getDroppedTickets().add(dropticket);
 	                	}
 	                	break;
@@ -322,7 +323,8 @@
         		dropticket.setLocation(L2ItemInstance.ItemLocation.INVENTORY);
                 dropticket.dropMe(null, x, y, z);
                 dropticket.setDropTime(0); //avoids it from beeing removed by the auto item destroyer
-                L2World.getInstance().storeObject(dropticket);	//add to the world
+                L2World.getInstance();
+				L2World.storeObject(dropticket);	//add to the world
                 // and keep track of this ticket in the list
                 _droppedTickets.add(dropticket);
 
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/instancemanager/ItemsOnGroundManager.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/instancemanager/ItemsOnGroundManager.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/instancemanager/ItemsOnGroundManager.java	(working copy)
@@ -92,7 +92,8 @@
             while (result.next())
             {
                 L2ItemInstance item = new L2ItemInstance(result.getInt(1), result.getInt(2));
-                L2World.getInstance().storeObject(item);
+                L2World.getInstance();
+				L2World.storeObject(item);
                 if (item.isStackable() && result.getInt(3) > 1) //this check and..
                 	item.setCount(result.getInt(3));
                 if (result.getInt(4) > 0)			// this, are really necessary?
Index: D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/datatables/ItemTable.java
===================================================================
--- D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/datatables/ItemTable.java	(revision 69)
+++ D:/FELIPE/LINEAGE 2/Projetos/L2Jblack_Core/java/net/sf/l2j/gameserver/datatables/ItemTable.java	(working copy)
@@ -670,8 +670,9 @@
 
 		if (Config.DEBUG) _log.fine("ItemTable: Item created  oid:" + item.getObjectId()+ " itemid:" + itemId);
 
+		L2World.getInstance();
 		// Add the L2ItemInstance object to _allObjects of L2world
-		L2World.getInstance().storeObject(item);
+		L2World.storeObject(item);
 
 		// Set Item parameters
 		if (item.isStackable() && count > 1) item.setCount(count);