Ejemplo n.º 1
0
bool Client::CanIncreaseTradeskill(SkillUseTypes tradeskill) {
	uint32 rawskill = GetRawSkill(tradeskill);
	uint16 maxskill = MaxSkill(tradeskill);

	if (rawskill >= maxskill) //Max skill sanity check
		return false;

	uint8 Baking	= (GetRawSkill(SkillBaking) > 200) ? 1 : 0;
	uint8 Smithing	= (GetRawSkill(SkillBlacksmithing) > 200) ? 1 : 0;
	uint8 Brewing	= (GetRawSkill(SkillBrewing) > 200) ? 1 : 0;
	uint8 Fletching	= (GetRawSkill(SkillFletching) > 200) ? 1 : 0;
	uint8 Jewelry	= (GetRawSkill(SkillJewelryMaking) > 200) ? 1 : 0;
	uint8 Pottery	= (GetRawSkill(SkillPottery) > 200) ? 1 : 0;
	uint8 Tailoring	= (GetRawSkill(SkillTailoring) > 200) ? 1 : 0;
	uint8 SkillTotal = Baking + Smithing + Brewing + Fletching + Jewelry + Pottery + Tailoring; //Tradeskills above 200
	//New Tanaan AA: Each level allows an additional tradeskill above 200 (first one is free)
	uint8 aaLevel = spellbonuses.TradeSkillMastery + itembonuses.TradeSkillMastery + aabonuses.TradeSkillMastery; 
	
	switch (tradeskill) {
		case SkillBaking:
		case SkillBlacksmithing:
		case SkillBrewing:
		case SkillFletching:
		case SkillJewelryMaking:
		case SkillPottery:
		case SkillTailoring:
			if (aaLevel == 6)
				break; //Maxed AA
			if (SkillTotal == 0)
				break; //First tradeskill freebie
			if ((SkillTotal == (aaLevel + 1)) && (rawskill > 200))
				break; //One of the tradeskills already allowed to go over 200
			if ((SkillTotal >= (aaLevel + 1)) && (rawskill >= 200))
				return false; //One or more tradeskills already at or beyond limit
				break;
		default:
			break; //Other skills unchecked and ability to increase assumed true
	}
	return true;
}
Ejemplo n.º 2
0
bool Client::CanIncreaseTradeskill(SkillType tradeskill) {
	uint32 rawskill = GetRawSkill(tradeskill);
	uint16 maxskill = MaxSkill(tradeskill);

	if (rawskill >= maxskill) //Max skill sanity check
		return false;

	uint8 Baking    = (GetRawSkill(BAKING) > 200) ? 1 : 0;
	uint8 Smithing  = (GetRawSkill(BLACKSMITHING) > 200) ? 1 : 0;
	uint8 Brewing   = (GetRawSkill(BREWING) > 200) ? 1 : 0;
	uint8 Fletching = (GetRawSkill(FLETCHING) > 200) ? 1 : 0;
	uint8 Jewelry   = (GetRawSkill(JEWELRY_MAKING) > 200) ? 1 : 0;
	uint8 Pottery   = (GetRawSkill(POTTERY) > 200) ? 1 : 0;
	uint8 Tailoring = (GetRawSkill(TAILORING) > 200) ? 1 : 0;
	uint8 SkillTotal = Baking + Smithing + Brewing + Fletching + Jewelry + Pottery + Tailoring; //Tradeskills above 200
	uint32 aaLevel  = GetAA(aaNewTanaanCraftingMastery); //New Tanaan AA: Each level allows an additional tradeskill above 200 (first one is free)
	
	switch (tradeskill) {
		case BAKING:
		case BLACKSMITHING:
		case BREWING:
		case FLETCHING:
		case JEWELRY_MAKING:
		case POTTERY:
		case TAILORING:
			if (aaLevel == 6)
				break; //Maxed AA
			if (SkillTotal == 0)
				break; //First tradeskill freebie
			if ((SkillTotal == (aaLevel + 1)) && (rawskill > 200))
				break; //One of the tradeskills already allowed to go over 200
			if ((SkillTotal >= (aaLevel + 1)) && (rawskill >= 200))
				return false; //One or more tradeskills already at or beyond limit
				break;
		default:
			break; //Other skills unchecked and ability to increase assumed true
	}
	return true;
}