Selaa lähdekoodia

BETA: Fix for RecipeController.java (with Zoey76's Improvements).

MELERIX 13 vuotta sitten
vanhempi
sitoutus
f304309f48
1 muutettua tiedostoa jossa 11 lisäystä ja 12 poistoa
  1. 11 12
      L2J_Server_BETA/java/com/l2jserver/gameserver/RecipeController.java

+ 11 - 12
L2J_Server_BETA/java/com/l2jserver/gameserver/RecipeController.java

@@ -45,7 +45,6 @@ import com.l2jserver.gameserver.network.serverpackets.RecipeShopItemInfo;
 import com.l2jserver.gameserver.network.serverpackets.SetupGauge;
 import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
-import com.l2jserver.gameserver.taskmanager.AttackStanceTaskManager;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
 
@@ -60,7 +59,8 @@ public class RecipeController
 	
 	public void requestBookOpen(L2PcInstance player, boolean isDwarvenCraft)
 	{
-		if (Config.ALT_GAME_CREATION && !_activeMakers.containsKey(player.getObjectId()))
+		// Check if player is trying to alter recipe book while engaged in manufacturing.
+		if (!_activeMakers.containsKey(player.getObjectId()))
 		{
 			RecipeBookItemList response = new RecipeBookItemList(isDwarvenCraft, player.getMaxMp());
 			response.addRecipes(isDwarvenCraft ? player.getDwarvenRecipeBook() : player.getCommonRecipeBook());
@@ -92,10 +92,10 @@ public class RecipeController
 			return;
 		}
 		
-		// check if busy
-		if (Config.ALT_GAME_CREATION && _activeMakers.containsKey(manufacturer.getObjectId()))
+		// Check if manufacturer is under manufacturing store or private store.
+		if (Config.ALT_GAME_CREATION && (_activeMakers.containsKey(manufacturer.getObjectId()) || manufacturer.isInStoreMode()))
 		{
-			player.sendMessage("Manufacturer is busy, please try later.");
+			player.sendPacket(SystemMessageId.CLOSE_STORE_WINDOW_AND_TRY_AGAIN);
 			return;
 		}
 		
@@ -116,7 +116,8 @@ public class RecipeController
 	
 	public void requestMakeItem(L2PcInstance player, int recipeListId)
 	{
-		if (AttackStanceTaskManager.getInstance().getAttackStanceTask(player) || player.isInDuel())
+		// Check if player is trying to operate a private store or private workshop while engaged in combat.
+		if (player.isInCombat() || player.isInDuel())
 		{
 			player.sendPacket(SystemMessageId.CANT_OPERATE_PRIVATE_STORE_DURING_COMBAT);
 			return;
@@ -137,10 +138,8 @@ public class RecipeController
 			return;
 		}
 		
-		RecipeItemMaker maker;
-		
-		// check if already busy (possible in alt mode only)
-		if (Config.ALT_GAME_CREATION && ((maker = _activeMakers.get(player.getObjectId())) != null))
+		// Check if player is busy (possible if alt game creation is enabled)
+		if (Config.ALT_GAME_CREATION && _activeMakers.containsKey(player.getObjectId()))
 		{
 			SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S2_S1);
 			sm.addItemName(recipeList.getItemId());
@@ -149,7 +148,7 @@ public class RecipeController
 			return;
 		}
 		
-		maker = new RecipeItemMaker(player, recipeList, player);
+		final RecipeItemMaker maker = new RecipeItemMaker(player, recipeList, player);
 		if (maker._isValid)
 		{
 			if (Config.ALT_GAME_CREATION)
@@ -316,7 +315,7 @@ public class RecipeController
 				return;
 			}
 			
-			if (Config.ALT_GAME_CREATION && _activeMakers.containsKey(_player.getObjectId()))
+			if (Config.ALT_GAME_CREATION && !_activeMakers.containsKey(_player.getObjectId()))
 			{
 				if (_target != _player)
 				{