Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from mangosone:master #158

Merged
merged 2 commits into from
Jul 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmake/MangosParams.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(MANGOS_EXP "TBC")
set(MANGOS_PKG "Mangos One")
set(MANGOS_WORLD_VER 2023102200)
set(MANGOS_WORLD_VER 2023062700)
set(MANGOS_REALM_VER 2021010100)
set(MANGOS_AHBOT_VER 2021010100)
2 changes: 1 addition & 1 deletion dep
Submodule dep updated 744 files
34 changes: 20 additions & 14 deletions src/game/Object/Player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3755,11 +3755,12 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool learn_low_rank, bo
UpdateFreeTalentPoints(false);
}

// update free primary prof.points (if any, can be none in case GM .learn prof. learning)
// update free primary prof.points (if not overflow setting, can be in case GM use before .learn prof. learning)
if (sSpellMgr.IsPrimaryProfessionFirstRankSpell(spell_id))
{
uint32 freeProfs = GetFreePrimaryProfessionPoints() + 1;
if (freeProfs <= sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL))
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)
{
SetFreePrimaryProfessions(freeProfs);
}
Expand Down Expand Up @@ -4443,7 +4444,16 @@ 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))
{
Expand All @@ -4460,18 +4470,12 @@ 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 || trainer_spell->reqSkill && GetBaseSkillValue(trainer_spell->reqSkill) < trainer_spell->reqSkillValue)
{
return TRAINER_SPELL_RED;
}
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;
}

// exist, already checked at loading
SpellEntry const* spell = sSpellStore.LookupEntry(trainer_spell->spell);
Expand Down Expand Up @@ -21973,7 +21977,9 @@ template void Player::UpdateVisibilityOf(WorldObject const* viewPoint, DynamicOb

void Player::InitPrimaryProfessions()
{
SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_UINT32_MAX_PRIMARY_TRADE_SKILL));
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);
}

void Player::SendComboPoints()
Expand Down
4 changes: 4 additions & 0 deletions src/game/WorldHandlers/World.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -637,6 +637,10 @@ 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);
Expand Down
3 changes: 3 additions & 0 deletions src/game/WorldHandlers/World.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ 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,
Expand Down
15 changes: 15 additions & 0 deletions src/mangosd/mangosd.conf.dist.in
Original file line number Diff line number Diff line change
Expand Up @@ -706,6 +706,18 @@ 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
Expand Down Expand Up @@ -820,6 +832,9 @@ 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
Expand Down
Loading