2
0
Эх сурвалжийг харах

config for masterwork crafting (rare crafting (2 items) still possible even if masterwork disabled)

janiii 16 жил өмнө
parent
commit
7fe0f9a0f3

+ 4 - 0
L2_GameServer/java/config/Character.properties

@@ -354,6 +354,10 @@ CastleZoneFameAquirePoints = 125
 # Default: True
 # Default: True
 CraftingEnabled = True
 CraftingEnabled = True
 
 
+# Enable/Disable crafting of Masterwork items (If set to true, masterwork items can be created when crafting).
+# Default: True
+CraftMasterwork = True
+
 # Limits for recipes
 # Limits for recipes
 # Default: 50, 50
 # Default: 50, 50
 DwarfRecipeLimit = 50
 DwarfRecipeLimit = 50

+ 3 - 0
L2_GameServer/java/net/sf/l2j/Config.java

@@ -129,6 +129,7 @@ public final class Config
 	public static int CASTLE_ZONE_FAME_TASK_FREQUENCY;
 	public static int CASTLE_ZONE_FAME_TASK_FREQUENCY;
 	public static int CASTLE_ZONE_FAME_AQUIRE_POINTS;
 	public static int CASTLE_ZONE_FAME_AQUIRE_POINTS;
 	public static boolean IS_CRAFTING_ENABLED;
 	public static boolean IS_CRAFTING_ENABLED;
+	public static boolean CRAFT_MASTERWORK;
 	public static int DWARF_RECIPE_LIMIT;
 	public static int DWARF_RECIPE_LIMIT;
 	public static int COMMON_RECIPE_LIMIT;
 	public static int COMMON_RECIPE_LIMIT;
 	public static boolean ALT_GAME_CREATION;
 	public static boolean ALT_GAME_CREATION;
@@ -1207,6 +1208,7 @@ public final class Config
 					CASTLE_ZONE_FAME_TASK_FREQUENCY = Integer.parseInt(Character.getProperty("CastleZoneFameTaskFrequency","300"));
 					CASTLE_ZONE_FAME_TASK_FREQUENCY = Integer.parseInt(Character.getProperty("CastleZoneFameTaskFrequency","300"));
 					CASTLE_ZONE_FAME_AQUIRE_POINTS = Integer.parseInt(Character.getProperty("CastleZoneFameAquirePoints","125"));
 					CASTLE_ZONE_FAME_AQUIRE_POINTS = Integer.parseInt(Character.getProperty("CastleZoneFameAquirePoints","125"));
 					IS_CRAFTING_ENABLED = Boolean.parseBoolean(Character.getProperty("CraftingEnabled", "true"));
 					IS_CRAFTING_ENABLED = Boolean.parseBoolean(Character.getProperty("CraftingEnabled", "true"));
+					CRAFT_MASTERWORK = Boolean.parseBoolean(Character.getProperty("CraftMasterwork", "True"));
 					DWARF_RECIPE_LIMIT = Integer.parseInt(Character.getProperty("DwarfRecipeLimit","50"));
 					DWARF_RECIPE_LIMIT = Integer.parseInt(Character.getProperty("DwarfRecipeLimit","50"));
 					COMMON_RECIPE_LIMIT = Integer.parseInt(Character.getProperty("CommonRecipeLimit","50"));
 					COMMON_RECIPE_LIMIT = Integer.parseInt(Character.getProperty("CommonRecipeLimit","50"));
 					ALT_GAME_CREATION = Boolean.parseBoolean(Character.getProperty("AltGameCreation", "false"));
 					ALT_GAME_CREATION = Boolean.parseBoolean(Character.getProperty("AltGameCreation", "false"));
@@ -2194,6 +2196,7 @@ public final class Config
 		else if (pName.equalsIgnoreCase("AltPartyRange2")) ALT_PARTY_RANGE2 = Integer.parseInt(pValue);
 		else if (pName.equalsIgnoreCase("AltPartyRange2")) ALT_PARTY_RANGE2 = Integer.parseInt(pValue);
 
 
 		else if (pName.equalsIgnoreCase("CraftingEnabled")) IS_CRAFTING_ENABLED = Boolean.parseBoolean(pValue);
 		else if (pName.equalsIgnoreCase("CraftingEnabled")) IS_CRAFTING_ENABLED = Boolean.parseBoolean(pValue);
+		else if (pName.equalsIgnoreCase("CraftMasterwork")) CRAFT_MASTERWORK = Boolean.parseBoolean(pValue);
 		else if (pName.equalsIgnoreCase("LifeCrystalNeeded")) LIFE_CRYSTAL_NEEDED = Boolean.parseBoolean(pValue);
 		else if (pName.equalsIgnoreCase("LifeCrystalNeeded")) LIFE_CRYSTAL_NEEDED = Boolean.parseBoolean(pValue);
 		else if (pName.equalsIgnoreCase("SpBookNeeded")) SP_BOOK_NEEDED = Boolean.parseBoolean(pValue);
 		else if (pName.equalsIgnoreCase("SpBookNeeded")) SP_BOOK_NEEDED = Boolean.parseBoolean(pValue);
 		else if (pName.equalsIgnoreCase("AutoLoot")) AUTO_LOOT = Boolean.parseBoolean(pValue);
 		else if (pName.equalsIgnoreCase("AutoLoot")) AUTO_LOOT = Boolean.parseBoolean(pValue);

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/RecipeController.java

@@ -916,7 +916,7 @@ public class RecipeController
 			L2Item template = ItemTable.getInstance().getTemplate(itemId);
 			L2Item template = ItemTable.getInstance().getTemplate(itemId);
 			
 			
 			// check that the current recipe has a rare production or not
 			// check that the current recipe has a rare production or not
-			if (rareProdId != -1)
+			if (rareProdId != -1 && (rareProdId == itemId || Config.CRAFT_MASTERWORK))
 			{
 			{
 				if (Rnd.get(100) < _recipeList.getRarity())
 				if (Rnd.get(100) < _recipeList.getRarity())
 				{
 				{