[Bug Fix] Apply Race & Class restrictions to Auto-Combines (#4452)

This commit is contained in:
catapultam-habeo 2024-08-19 20:57:34 -05:00 committed by GitHub
parent 9987029791
commit 4979da6932
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -625,6 +625,41 @@ void Object::HandleAutoCombine(Client* user, const RecipeAutoCombine_Struct* rac
return;
}
if (spec.tradeskill == EQ::skills::SkillAlchemy) {
if (!user->GetClass() == Class::Shaman) {
user->Message(Chat::Red, "This tradeskill can only be performed by a shaman.");
auto outapp = new EQApplicationPacket(OP_TradeSkillCombine, 0);
user->QueuePacket(outapp);
safe_delete(outapp);
return;
}
else if (user->GetLevel() < MIN_LEVEL_ALCHEMY) {
user->Message(Chat::Red, "You cannot perform alchemy until you reach level %i.", MIN_LEVEL_ALCHEMY);
auto outapp = new EQApplicationPacket(OP_TradeSkillCombine, 0);
user->QueuePacket(outapp);
safe_delete(outapp);
return;
}
}
else if (spec.tradeskill == EQ::skills::SkillTinkering) {
if (user->GetRace() != GNOME) {
user->Message(Chat::Red, "Only gnomes can tinker.");
auto outapp = new EQApplicationPacket(OP_TradeSkillCombine, 0);
user->QueuePacket(outapp);
safe_delete(outapp);
return;
}
}
else if (spec.tradeskill == EQ::skills::SkillMakePoison) {
if (!user->GetClass() == Class::Rogue) {
user->Message(Chat::Red, "Only rogues can mix poisons.");
auto outapp = new EQApplicationPacket(OP_TradeSkillCombine, 0);
user->QueuePacket(outapp);
safe_delete(outapp);
return;
}
}
//pull the list of components
const auto query = fmt::format("SELECT item_id, componentcount "
"FROM tradeskill_recipe_entries "