diff --git a/src/game/QuestDef.cpp b/src/game/QuestDef.cpp index af5ef628c..2feaaa152 100644 --- a/src/game/QuestDef.cpp +++ b/src/game/QuestDef.cpp @@ -262,3 +262,11 @@ int32 Quest::GetRewOrReqMoney() const return int32(RewOrReqMoney * sWorld.getConfig(CONFIG_FLOAT_RATE_DROP_MONEY)); } + +bool Quest::IsAllowedInRaid() const +{ + if (QUEST_TYPE_RAID || Type == QUEST_TYPE_RAID_10 || Type == QUEST_TYPE_RAID_25) + return true; + + return sWorld.getConfig(CONFIG_BOOL_QUEST_IGNORE_RAID); +} \ No newline at end of file diff --git a/src/game/QuestDef.h b/src/game/QuestDef.h index 8d6a44df5..6e62e378a 100644 --- a/src/game/QuestDef.h +++ b/src/game/QuestDef.h @@ -258,7 +258,7 @@ class Quest bool IsWeekly() const { return QuestFlags & QUEST_FLAGS_WEEKLY; } bool IsDailyOrWeekly() const { return QuestFlags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY); } bool IsAutoAccept() const { return QuestFlags & QUEST_FLAGS_AUTO_ACCEPT; } - bool IsAllowedInRaid() const { return Type == QUEST_TYPE_RAID || Type == QUEST_TYPE_RAID_10 || Type == QUEST_TYPE_RAID_25; } + bool IsAllowedInRaid() const; // multiple values std::string ObjectiveText[QUEST_OBJECTIVES_COUNT]; diff --git a/src/game/World.cpp b/src/game/World.cpp index 14eccd523..f29bc10c0 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -681,6 +681,8 @@ void World::LoadConfigSettings(bool reload) setConfigMinMax(CONFIG_UINT32_QUEST_WEEKLY_RESET_WEEK_DAY, "Quests.Weekly.ResetWeekDay", 3, 0, 6); setConfigMinMax(CONFIG_UINT32_QUEST_WEEKLY_RESET_HOUR, "Quests.Weekly.ResetHour", 6, 0 , 23); + setConfig(CONFIG_BOOL_QUEST_IGNORE_RAID, "Quests.IgnoreRaid", false); + setConfig(CONFIG_BOOL_DETECT_POS_COLLISION, "DetectPosCollision", true); setConfig(CONFIG_BOOL_RESTRICTED_LFG_CHANNEL, "Channel.RestrictedLfg", true); diff --git a/src/game/World.h b/src/game/World.h index 76de70898..616f68b32 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -290,6 +290,7 @@ enum eConfigBoolValues CONFIG_BOOL_ALWAYS_MAX_SKILL_FOR_LEVEL, CONFIG_BOOL_WEATHER, CONFIG_BOOL_EVENT_ANNOUNCE, + CONFIG_BOOL_QUEST_IGNORE_RAID, CONFIG_BOOL_DETECT_POS_COLLISION, CONFIG_BOOL_RESTRICTED_LFG_CHANNEL, CONFIG_BOOL_SILENTLY_GM_JOIN_TO_CHANNEL, diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 486d34f3e..7b476a76b 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -609,6 +609,11 @@ LogColors = "" # Hour in one from weekly days when weekly quests reset (0..23) # Default: 6 # +# Quests.IgnoreRaid +# Non-raid quests allowed in raids +# Default: 0 (not allowed) +# 1 (allowed) +# # Guild.EventLogRecordsCount # Count of guild event log records stored in guild_eventlog table # Increase to store more guild events in table, minimum is 100 @@ -745,6 +750,7 @@ Quests.HighLevelHideDiff = 7 Quests.Daily.ResetHour = 6 Quests.Weekly.ResetWeekDay = 3 Quests.Weekly.ResetHour = 6 +Quests.IgnoreRaid = 0 Guild.EventLogRecordsCount = 100 Guild.BankEventLogRecordsCount = 25 TimerBar.Fatigue.GMLevel = 4 diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 88d36b30a..0da153b5d 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10168" + #define REVISION_NR "10169" #endif // __REVISION_NR_H__