Unhardcoded bonus enchant scrolls.
This commit is contained in:
		| @@ -35,6 +35,22 @@ | ||||
| 								</xs:restriction> | ||||
| 							</xs:simpleType> | ||||
| 						</xs:attribute> | ||||
| 						<xs:attribute name="randomEnchantMin" use="optional"> | ||||
| 							<xs:simpleType> | ||||
| 								<xs:restriction base="xs:positiveInteger"> | ||||
| 									<xs:minInclusive value="1" /> | ||||
| 									<xs:maxInclusive value="127" /> | ||||
| 								</xs:restriction> | ||||
| 							</xs:simpleType> | ||||
| 						</xs:attribute> | ||||
| 						<xs:attribute name="randomEnchantMax" use="optional"> | ||||
| 							<xs:simpleType> | ||||
| 								<xs:restriction base="xs:positiveInteger"> | ||||
| 									<xs:minInclusive value="1" /> | ||||
| 									<xs:maxInclusive value="127" /> | ||||
| 								</xs:restriction> | ||||
| 							</xs:simpleType> | ||||
| 						</xs:attribute> | ||||
| 						<xs:attribute name="maxEnchantFighter"> | ||||
| 							<xs:simpleType> | ||||
| 								<xs:restriction base="xs:positiveInteger"> | ||||
|   | ||||
| @@ -60,6 +60,8 @@ public abstract class AbstractEnchantItem | ||||
| 	private final int _minEnchantLevel; | ||||
| 	private final int _maxEnchantLevel; | ||||
| 	private final int _safeEnchantLevel; | ||||
| 	private final int _randomEnchantMin; | ||||
| 	private final int _randomEnchantMax; | ||||
| 	private final double _bonusRate; | ||||
| 	 | ||||
| 	public AbstractEnchantItem(StatSet set) | ||||
| @@ -77,6 +79,8 @@ public abstract class AbstractEnchantItem | ||||
| 		_minEnchantLevel = set.getInt("minEnchant", 0); | ||||
| 		_maxEnchantLevel = set.getInt("maxEnchant", 127); | ||||
| 		_safeEnchantLevel = set.getInt("safeEnchant", 0); | ||||
| 		_randomEnchantMin = set.getInt("randomEnchantMin", 1); | ||||
| 		_randomEnchantMax = set.getInt("randomEnchantMax", _randomEnchantMin); | ||||
| 		_bonusRate = set.getDouble("bonusRate", 0); | ||||
| 	} | ||||
| 	 | ||||
| @@ -141,6 +145,22 @@ public abstract class AbstractEnchantItem | ||||
| 		return _safeEnchantLevel; | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * @return the minimum random enchant level of this scroll/item | ||||
| 	 */ | ||||
| 	public int getRandomEnchantMin() | ||||
| 	{ | ||||
| 		return _randomEnchantMin; | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * @return the maximum random enchant level of this scroll/item | ||||
| 	 */ | ||||
| 	public int getRandomEnchantMax() | ||||
| 	{ | ||||
| 		return _randomEnchantMax; | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * @param itemToEnchant the item to be enchanted | ||||
| 	 * @param supportItem | ||||
|   | ||||
| @@ -183,21 +183,15 @@ public class RequestEnchantItem implements IClientIncomingPacket | ||||
| 					// Increase enchant level only if scroll's base template has chance, some armors can success over +20 but they shouldn't have increased. | ||||
| 					if (scrollTemplate.getChance(player, item) > 0) | ||||
| 					{ | ||||
| 						if (scrollTemplate.isGiant()) | ||||
| 						if (supportTemplate != null) | ||||
| 						{ | ||||
| 							if (((supportTemplate != null) && (supportTemplate.getId() == 23785)) || ((supportTemplate != null) && (supportTemplate.getId() == 23786))) // Lesser Giant's Lucky Enchant Stones. Increase from +2 to +4 | ||||
| 							{ | ||||
| 								item.setEnchantLevel(Math.min(item.getEnchantLevel() + 2 + Rnd.get(3), scrollTemplate.getMaxEnchantLevel())); | ||||
| 							} | ||||
| 							else | ||||
| 							{ | ||||
| 								item.setEnchantLevel(Math.min(item.getEnchantLevel() + 1 + Rnd.get(3), scrollTemplate.getMaxEnchantLevel())); | ||||
| 							} | ||||
| 							item.setEnchantLevel(Math.min(item.getEnchantLevel() + Rnd.get(supportTemplate.getRandomEnchantMin(), supportTemplate.getRandomEnchantMax()), supportTemplate.getMaxEnchantLevel())); | ||||
| 						} | ||||
| 						else | ||||
| 						{ | ||||
| 							item.setEnchantLevel(item.getEnchantLevel() + 1); | ||||
| 							item.setEnchantLevel(Math.min(item.getEnchantLevel() + Rnd.get(scrollTemplate.getRandomEnchantMin(), scrollTemplate.getRandomEnchantMax()), scrollTemplate.getMaxEnchantLevel())); | ||||
| 						} | ||||
| 						 | ||||
| 						item.updateDatabase(); | ||||
| 					} | ||||
| 					client.sendPacket(new EnchantResult(EnchantResult.SUCCESS, item)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment