diff --git a/cmake/MangosParams.cmake b/cmake/MangosParams.cmake index bc020d8eb..9020f2d09 100644 --- a/cmake/MangosParams.cmake +++ b/cmake/MangosParams.cmake @@ -1,5 +1,5 @@ set(MANGOS_EXP "TBC") set(MANGOS_PKG "Mangos One") -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 6e93eb30c..9255d651f 100644 --- a/src/game/Object/Player.cpp +++ b/src/game/Object/Player.cpp @@ -3755,12 +3755,11 @@ 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; - uint32 maxProfs = GetSession()->GetSecurity() < AccountTypes(sWorld.getConfig(CONFIG_UINT32_TRADE_SKILL_GMIGNORE_MAX_PRIMARY_COUNT)) ? sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL) : 10; - if (freeProfs <= maxProfs) + if (freeProfs <= sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL)) { SetFreePrimaryProfessions(freeProfs); } @@ -4444,16 +4443,7 @@ TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell return TRAINER_SPELL_RED; } - bool prof = SpellMgr::IsProfessionSpell(trainer_spell->spell); - // 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->spell)) { @@ -4470,12 +4460,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->spell); @@ -21977,9 +21973,7 @@ template void Player::UpdateVisibilityOf(WorldObject const* viewPoint, DynamicOb void Player::InitPrimaryProfessions() { - uint32 maxProfs = GetSession()->GetSecurity() < AccountTypes(sWorld.getConfig(CONFIG_UINT32_TRADE_SKILL_GMIGNORE_MAX_PRIMARY_COUNT)) - ? sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL) : 10; - SetFreePrimaryProfessions(maxProfs); + SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL)); } void Player::SendComboPoints() diff --git a/src/game/WorldHandlers/World.cpp b/src/game/WorldHandlers/World.cpp index c2454e60e..bc23331e3 100644 --- a/src/game/WorldHandlers/World.cpp +++ b/src/game/WorldHandlers/World.cpp @@ -637,10 +637,6 @@ void World::LoadConfigSettings(bool reload) setConfigMinMax(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL, "MaxPrimaryTradeSkill", 2, 0, 10); - 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 d2be4e0bd..be71f6552 100644 --- a/src/game/WorldHandlers/World.h +++ b/src/game/WorldHandlers/World.h @@ -115,9 +115,6 @@ enum eConfigUInt32Values CONFIG_UINT32_MAX_SPELL_CASTS_IN_CHAIN, 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 196215f73..6b69a6258 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -706,18 +706,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 @@ -832,9 +820,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