diff --git a/cmake/MangosParams.cmake b/cmake/MangosParams.cmake index 3165760ec..55302c304 100644 --- a/cmake/MangosParams.cmake +++ b/cmake/MangosParams.cmake @@ -1,5 +1,5 @@ set(MANGOS_EXP "WOTLK") set(MANGOS_PKG "Mangos Two") -set(MANGOS_WORLD_VER 2023062700) +set(MANGOS_WORLD_VER 2023102200) set(MANGOS_REALM_VER 2021010100) set(MANGOS_AHBOT_VER 2021010100) diff --git a/src/game/Object/Player.cpp b/src/game/Object/Player.cpp index 2892c341c..d7b54d88c 100644 --- a/src/game/Object/Player.cpp +++ b/src/game/Object/Player.cpp @@ -4010,12 +4010,16 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool learn_low_rank, bo UpdateFreeTalentPoints(false); } - // update free primary prof.points (if not overflow setting, can be in case GM use before .learn prof. learning) + // update free primary prof.points (if any, can be none in case GM .learn prof. learning) if (sSpellMgr.IsPrimaryProfessionFirstRankSpell(spell_id)) { uint32 freeProfs = GetFreePrimaryProfessionPoints() + 1; +<<<<<<< HEAD uint32 maxProfs = GetSession()->GetSecurity() < AccountTypes(sWorld.getConfig(CONFIG_UINT32_TRADE_SKILL_GMIGNORE_MAX_PRIMARY_COUNT)) ? sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL) : 11; if (freeProfs <= maxProfs) +======= + if (freeProfs <= sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL)) +>>>>>>> 360ddbdf8 (Fix Trade Skill Limit (#192)) { SetFreePrimaryProfessions(freeProfs); } @@ -4745,17 +4749,6 @@ TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell return TRAINER_SPELL_RED; } - bool prof = SpellMgr::IsProfessionSpell(trainer_spell->learnedSpell); - - // check level requirement - if (!prof || GetSession()->GetSecurity() < AccountTypes(sWorld.getConfig(CONFIG_UINT32_TRADE_SKILL_GMIGNORE_LEVEL))) - { - if (getLevel() < reqLevel) - { - return TRAINER_SPELL_RED; - } - } - if (SpellChainNode const* spell_chain = sSpellMgr.GetSpellChainNode(trainer_spell->learnedSpell)) { // check prev.rank requirement @@ -4771,12 +4764,18 @@ TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell } } + // check level requirement + bool prof = SpellMgr::IsProfessionSpell(trainer_spell->spell); + if (prof || trainer_spell->reqLevel && (trainer_spell->reqLevel) < reqLevel) + { + return TRAINER_SPELL_RED; + } + // check skill requirement - if (!prof || GetSession()->GetSecurity() < AccountTypes(sWorld.getConfig(CONFIG_UINT32_TRADE_SKILL_GMIGNORE_SKILL))) - if (trainer_spell->reqSkill && GetBaseSkillValue(trainer_spell->reqSkill) < trainer_spell->reqSkillValue) - { - return TRAINER_SPELL_RED; - } + if (prof || trainer_spell->reqSkill && GetBaseSkillValue(trainer_spell->reqSkill) < trainer_spell->reqSkillValue) + { + return TRAINER_SPELL_RED; + } // exist, already checked at loading SpellEntry const* spell = sSpellStore.LookupEntry(trainer_spell->learnedSpell); @@ -23458,9 +23457,13 @@ void Player::SetPhaseMask(uint32 newPhaseMask, bool update) void Player::InitPrimaryProfessions() { +<<<<<<< HEAD uint32 maxProfs = GetSession()->GetSecurity() < AccountTypes(sWorld.getConfig(CONFIG_UINT32_TRADE_SKILL_GMIGNORE_MAX_PRIMARY_COUNT)) ? sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL) : 11; SetFreePrimaryProfessions(maxProfs); +======= + SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL)); +>>>>>>> 360ddbdf8 (Fix Trade Skill Limit (#192)) } void Player::SendComboPoints() diff --git a/src/game/WorldHandlers/World.cpp b/src/game/WorldHandlers/World.cpp index d9af7dcba..c9e00f512 100644 --- a/src/game/WorldHandlers/World.cpp +++ b/src/game/WorldHandlers/World.cpp @@ -660,10 +660,6 @@ void World::LoadConfigSettings(bool reload) setConfigMinMax(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL, "MaxPrimaryTradeSkill", 2, 0, 11); - setConfigMinMax(CONFIG_UINT32_TRADE_SKILL_GMIGNORE_MAX_PRIMARY_COUNT, "TradeSkill.GMIgnore.MaxPrimarySkillsCount", SEC_CONSOLE, SEC_PLAYER, SEC_CONSOLE); - setConfigMinMax(CONFIG_UINT32_TRADE_SKILL_GMIGNORE_LEVEL, "TradeSkill.GMIgnore.Level", SEC_CONSOLE, SEC_PLAYER, SEC_CONSOLE); - setConfigMinMax(CONFIG_UINT32_TRADE_SKILL_GMIGNORE_SKILL, "TradeSkill.GMIgnore.Skill", SEC_CONSOLE, SEC_PLAYER, SEC_CONSOLE); - setConfigMinMax(CONFIG_UINT32_MIN_PETITION_SIGNS, "MinPetitionSigns", 9, 0, 9); setConfig(CONFIG_UINT32_GM_LOGIN_STATE, "GM.LoginState", 2); diff --git a/src/game/WorldHandlers/World.h b/src/game/WorldHandlers/World.h index 0feddc274..2580b5ca9 100644 --- a/src/game/WorldHandlers/World.h +++ b/src/game/WorldHandlers/World.h @@ -124,9 +124,6 @@ enum eConfigUInt32Values CONFIG_UINT32_BIRTHDAY_TIME, CONFIG_UINT32_RABBIT_DAY, CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL, - CONFIG_UINT32_TRADE_SKILL_GMIGNORE_MAX_PRIMARY_COUNT, - CONFIG_UINT32_TRADE_SKILL_GMIGNORE_LEVEL, - CONFIG_UINT32_TRADE_SKILL_GMIGNORE_SKILL, CONFIG_UINT32_MIN_PETITION_SIGNS, CONFIG_UINT32_GM_LOGIN_STATE, CONFIG_UINT32_GM_VISIBLE_STATE, diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 3a6edad56..287050534 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -738,18 +738,6 @@ SD3ErrorLogFile = "scriptdev3-errors.log" # Default: 2 # Max : 10 # -# TradeSkill.GMIgnore.MaxPrimarySkillsCount -# GM level starting from max primary skill count requirement ignored. -# Default: 4 (Console as noneone) -# -# TradeSkill.GMIgnore.Level -# GM level starting from trade skill level requirement ignored. -# Default: 4 (Console as noneone) -# -# TradeSkill.GMIgnore.Skill -# GM level starting from trade skill skill requirement ignored. -# Default: 4 (Console as noneone) -# # MinPetitionSigns # Min signatures count to creating guild (0..9). # Default: 9 @@ -895,9 +883,6 @@ TimerBar.Breath.Max = 180 TimerBar.Fire.GMLevel = 4 TimerBar.Fire.Max = 1 MaxPrimaryTradeSkill = 2 -TradeSkill.GMIgnore.MaxPrimarySkillsCount = 4 -TradeSkill.GMIgnore.Level = 4 -TradeSkill.GMIgnore.Skill = 4 MinPetitionSigns = 9 MaxGroupXPDistance = 74 MailDeliveryDelay = 3600