1997{
1999 {
2001 return false;
2002 }
2004 {
2007 return false;
2008 default:
2009 break;
2010 }
2011
2013 {
2014 LOG_ERROR(
"sql.sql",
"SourceType {}, SourceEntry {} in `condition` table, has incorrect ConditionTarget set, ignoring.", cond->
SourceType, cond->
SourceEntry);
2015 return false;
2016 }
2017
2019 {
2021 {
2023 {
2025 return false;
2026 }
2027
2029 {
2030 LOG_ERROR(
"sql.sql",
"Aura condition has non existing effect index ({}) (must be 0..2), skipped", cond->
ConditionValue2);
2031 return false;
2032 }
2035 break;
2036 }
2038 {
2040 if (!proto)
2041 {
2043 return false;
2044 }
2045
2047 {
2049 return false;
2050 }
2051 break;
2052 }
2054 {
2056 if (!proto)
2057 {
2059 return false;
2060 }
2061
2066 break;
2067 }
2069 {
2071 if (!areaEntry)
2072 {
2074 return false;
2075 }
2076
2077 if (areaEntry->
zone != 0)
2078 {
2079 LOG_ERROR(
"sql.sql",
"ZoneID condition requires to be in area ({}) which is a subzone but zone expected, skipped", cond->
ConditionValue1);
2080 return false;
2081 }
2082
2087 break;
2088 }
2090 {
2092 if (!factionEntry)
2093 {
2095 return false;
2096 }
2099 break;
2100 }
2102 {
2104 {
2106 return false;
2107 }
2108
2113 break;
2114 }
2116 {
2118 if (!pSkill)
2119 {
2121 return false;
2122 }
2123
2125 {
2127 return false;
2128 }
2131 break;
2132 }
2139 {
2141 {
2143 return false;
2144 }
2145
2147 {
2149 }
2151 {
2153 }
2154 break;
2155 }
2158 {
2160 return false;
2161 }
2162 break;
2164 {
2167 {
2169 return false;
2170 }
2171
2176 break;
2177 }
2179 {
2181 if (!achievement)
2182 {
2184 return false;
2185 }
2186
2191 break;
2192 }
2194 {
2196 {
2198 return false;
2199 }
2200
2205 break;
2206 }
2208 {
2210 {
2212 return false;
2213 }
2214
2219 break;
2220 }
2222 {
2224 {
2226 return false;
2227 }
2228
2233 break;
2234 }
2236 {
2238 if (!mapId)
2239 {
2241 return false;
2242 }
2243
2248 break;
2249 }
2251 {
2253 {
2255 return false;
2256 }
2257
2262 break;
2263 }
2265 {
2267 {
2269 return false;
2270 }
2273 break;
2274 }
2276 {
2278 {
2280 return false;
2281 }
2283 {
2285 return false;
2286 }
2289 break;
2290 }
2292 {
2294 {
2295 LOG_ERROR(
"sql.sql",
"NearCreature condition has non existing creature template entry ({}), skipped", cond->
ConditionValue1);
2296 return false;
2297 }
2298 break;
2299 }
2301 {
2303 {
2304 LOG_ERROR(
"sql.sql",
"NearGameObject condition has non existing gameobject template entry ({}), skipped", cond->
ConditionValue1);
2305 return false;
2306 }
2309 break;
2310 }
2312 {
2314 {
2317 {
2318 LOG_ERROR(
"sql.sql",
"ObjectEntryGuid condition has non existing creature template entry ({}), skipped", cond->
ConditionValue2);
2319 return false;
2320 }
2322 {
2324 {
2326 {
2328 return false;
2329 }
2330 }
2331 else
2332 {
2333 LOG_ERROR(
"sql.sql",
"ObjectEntryGuid condition has non existing creature guid ({}), skipped", cond->
ConditionValue3);
2334 return false;
2335 }
2336 }
2337 break;
2340 {
2341 LOG_ERROR(
"sql.sql",
"ObjectEntryGuid condition has non existing gameobject template entry ({}), skipped", cond->
ConditionValue2);
2342 return false;
2343 }
2345 {
2347 {
2349 {
2351 return false;
2352 }
2353 }
2354 else
2355 {
2356 LOG_ERROR(
"sql.sql",
"ObjectEntryGuid condition has non existing gameobject guid ({}), skipped", cond->
ConditionValue3);
2357 return false;
2358 }
2359 }
2360 break;
2367 break;
2368 default:
2370 return false;
2371 }
2372 break;
2373 }
2375 {
2377 {
2379 return false;
2380 }
2385 break;
2386 }
2388 {
2390 {
2391 LOG_ERROR(
"sql.sql",
"RelationTo condition has invalid ConditionValue1(ConditionTarget selection) ({}), skipped", cond->
ConditionValue1);
2392 return false;
2393 }
2395 {
2396 LOG_ERROR(
"sql.sql",
"RelationTo condition has ConditionValue1(ConditionTarget selection) set to self ({}), skipped", cond->
ConditionValue1);
2397 return false;
2398 }
2400 {
2401 LOG_ERROR(
"sql.sql",
"RelationTo condition has invalid ConditionValue2(RelationType) ({}), skipped", cond->
ConditionValue2);
2402 return false;
2403 }
2406 break;
2407 }
2409 {
2411 {
2412 LOG_ERROR(
"sql.sql",
"ReactionTo condition has invalid ConditionValue1(ConditionTarget selection) ({}), skipped", cond->
ConditionValue1);
2413 return false;
2414 }
2416 {
2417 LOG_ERROR(
"sql.sql",
"ReactionTo condition has ConditionValue1(ConditionTarget selection) set to self ({}), skipped", cond->
ConditionValue1);
2418 return false;
2419 }
2421 {
2422 LOG_ERROR(
"sql.sql",
"mConditionValue2 condition has invalid ConditionValue2(rankMask) ({}), skipped", cond->
ConditionValue2);
2423 return false;
2424 }
2425 break;
2426 }
2428 {
2430 {
2431 LOG_ERROR(
"sql.sql",
"DistanceTo condition has invalid ConditionValue1(ConditionTarget selection) ({}), skipped", cond->
ConditionValue1);
2432 return false;
2433 }
2435 {
2436 LOG_ERROR(
"sql.sql",
"DistanceTo condition has ConditionValue1(ConditionTarget selection) set to self ({}), skipped", cond->
ConditionValue1);
2437 return false;
2438 }
2440 {
2442 return false;
2443 }
2444 break;
2445 }
2447 {
2454 break;
2455 }
2457 {
2459 {
2461 return false;
2462 }
2465 break;
2466 }
2468 {
2470 {
2472 return false;
2473 }
2475 {
2477 return false;
2478 }
2481 break;
2482 }
2485 break;
2487 {
2490 break;
2491 }
2493 {
2498 break;
2499 }
2501 {
2503 if (!titleEntry)
2504 {
2506 return false;
2507 }
2508 break;
2509 }
2511 {
2513 {
2514 LOG_ERROR(
"condition",
"SpawnMask condition has non existing SpawnMask in value1 ({}), skipped", cond->
ConditionValue1);
2515 return false;
2516 }
2517 break;
2518 }
2520 {
2522 {
2523 LOG_ERROR(
"condition",
"UnitState condition has non existing UnitState in value1 ({}), skipped", cond->
ConditionValue1);
2524 return false;
2525 }
2526 break;
2527 }
2529 {
2531 {
2532 LOG_ERROR(
"condition",
"CreatureType condition has non existing CreatureType in value1 ({}), skipped", cond->
ConditionValue1);
2533 return false;
2534 }
2535 break;
2536 }
2538 {
2540 if (!achievement)
2541 {
2542 LOG_ERROR(
"condition",
"CONDITION_REALM_ACHIEVEMENT has non existing realm first achivement id ({}), skipped.", cond->
ConditionValue1);
2543 return false;
2544 }
2545 break;
2546 }
2548 {
2550 if (!quest)
2551 {
2552 LOG_ERROR(
"sql.sql",
"CONDITION_QUEST_OBJECTIVE_PROGRESS points to non-existing quest ({}), skipped.", cond->
ConditionValue1);
2553 return false;
2554 }
2555
2557 {
2558 LOG_ERROR(
"sql.sql",
"CONDITION_QUEST_OBJECTIVE_PROGRESS has out-of-range quest objective index specified ({}), it must be a number between 0 and 3. skipped.", cond->
ConditionValue2);
2559 return false;
2560 }
2561
2563 {
2565 return false;
2566 }
2567
2569 {
2571 return false;
2572 }
2573 break;
2574 }
2576 {
2578 {
2580 return false;
2581 }
2582 break;
2583 }
2585 {
2586 bool valid = false;
2588 {
2589 case 0:
2591 break;
2592 case 1:
2594 break;
2595 default:
2596 valid = false;
2597 break;
2598 }
2599 if (!valid)
2600 {
2602 return false;
2603 }
2604 break;
2605 }
2608 {
2609 LOG_ERROR(
"sql.sql",
"CONDITION_DIFFICULTY_ID has non existing difficulty in value1 ({}), skipped.", cond->
ConditionValue1);
2610 return false;
2611 }
2612 break;
2615 {
2617 return false;
2618 }
2620 {
2622 return false;
2623 }
2626 break;
2629 {
2631 return false;
2632 }
2633 break;
2638 default:
2639 break;
2640 }
2641 return true;
2642}
@ CONDITION_TAXI
Definition ConditionMgr.h:80
@ CONDITION_PLAYER_QUEUED_RANDOM_DUNGEON
Definition ConditionMgr.h:91
@ CONDITION_MAPID
Definition ConditionMgr.h:56
@ CONDITION_SKILL
Definition ConditionMgr.h:41
@ CONDITION_RACE
Definition ConditionMgr.h:50
@ CONDITION_REACTION_TO
Definition ConditionMgr.h:68
@ CONDITION_NEAR_GAMEOBJECT
Definition ConditionMgr.h:64
@ CONDITION_QUESTREWARDED
Definition ConditionMgr.h:42
@ CONDITION_REALM_ACHIEVEMENT
Definition ConditionMgr.h:73
@ CONDITION_PHASEMASK
Definition ConditionMgr.h:60
@ CONDITION_QUEST_OBJECTIVE_PROGRESS
Definition ConditionMgr.h:82
@ CONDITION_DAILY_QUEST_DONE
Definition ConditionMgr.h:77
@ CONDITION_ACTIVE_EVENT
Definition ConditionMgr.h:46
@ CONDITION_INSTANCE_INFO
Definition ConditionMgr.h:47
@ CONDITION_RELATION_TO
Definition ConditionMgr.h:67
@ CONDITION_STAND_STATE
Definition ConditionMgr.h:76
@ CONDITION_UNIT_IN_COMBAT
Definition ConditionMgr.h:92
@ CONDITION_DRUNKENSTATE
Definition ConditionMgr.h:44
@ CONDITION_AURA
Definition ConditionMgr.h:35
@ CONDITION_ACHIEVEMENT
Definition ConditionMgr.h:51
@ CONDITION_TC_END
Definition ConditionMgr.h:84
@ CONDITION_OBJECT_ENTRY_GUID
Definition ConditionMgr.h:65
@ CONDITION_PET_TYPE
Definition ConditionMgr.h:79
@ CONDITION_DIFFICULTY_ID
Definition ConditionMgr.h:83
@ CONDITION_DISTANCE_TO
Definition ConditionMgr.h:69
@ CONDITION_HP_VAL
Definition ConditionMgr.h:71
@ CONDITION_GENDER
Definition ConditionMgr.h:54
@ CONDITION_TERRAIN_SWAP
Definition ConditionMgr.h:75
@ CONDITION_REPUTATION_RANK
Definition ConditionMgr.h:39
@ CONDITION_HP_PCT
Definition ConditionMgr.h:72
@ CONDITION_QUEST_COMPLETE
Definition ConditionMgr.h:62
@ CONDITION_SPELL
Definition ConditionMgr.h:59
@ CONDITION_ZONEID
Definition ConditionMgr.h:38
@ CONDITION_CHARMED
Definition ConditionMgr.h:78
@ CONDITION_AC_START
Definition ConditionMgr.h:86
@ CONDITION_TYPE_MASK
Definition ConditionMgr.h:66
@ CONDITION_AREAID
Definition ConditionMgr.h:57
@ CONDITION_IN_WATER
Definition ConditionMgr.h:74
@ CONDITION_ITEM
Definition ConditionMgr.h:36
@ CONDITION_WORLD_STATE
Definition ConditionMgr.h:45
@ CONDITION_SPAWNMASK
Definition ConditionMgr.h:53
@ CONDITION_CLASS
Definition ConditionMgr.h:49
@ CONDITION_TEAM
Definition ConditionMgr.h:40
@ CONDITION_NONE
Definition ConditionMgr.h:34
@ CONDITION_QUEST_NONE
Definition ConditionMgr.h:48
@ CONDITION_QUESTSTATE
Definition ConditionMgr.h:81
@ CONDITION_ITEM_EQUIPPED
Definition ConditionMgr.h:37
@ CONDITION_QUEST_SATISFY_EXCLUSIVE
Definition ConditionMgr.h:87
@ CONDITION_LEVEL
Definition ConditionMgr.h:61
@ CONDITION_QUESTTAKEN
Definition ConditionMgr.h:43
@ CONDITION_NEAR_CREATURE
Definition ConditionMgr.h:63
@ CONDITION_TITLE
Definition ConditionMgr.h:52
@ CONDITION_AC_END
Definition ConditionMgr.h:94
@ CONDITION_ALIVE
Definition ConditionMgr.h:70
@ CONDITION_CREATURE_TYPE
Definition ConditionMgr.h:58
@ CONDITION_UNIT_STATE
Definition ConditionMgr.h:55
@ CONDITION_HAS_AURA_TYPE
Definition ConditionMgr.h:88
@ RELATION_MAX
Definition ConditionMgr.h:168
#define MAX_DIFFICULTY
Definition DBCEnums.h:283
@ SPAWNMASK_RAID_ALL
Definition DBCEnums.h:301
DBCStorage< CharTitlesEntry > sCharTitlesStore(CharTitlesEntryfmt)
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
DBCStorage< AchievementEntry > sAchievementStore(Achievementfmt)
DBCStorage< SkillLineEntry > sSkillLineStore(SkillLinefmt)
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
DBCStorage< AreaTableEntry > sAreaTableStore(AreaTableEntryfmt)
#define sGameEventMgr
Definition GameEventMgr.h:201
@ TYPEID_GAMEOBJECT
Definition ObjectGuid.h:37
@ TYPEID_UNIT
Definition ObjectGuid.h:35
@ TYPEID_CORPSE
Definition ObjectGuid.h:39
@ TYPEID_PLAYER
Definition ObjectGuid.h:36
@ TYPEMASK_UNIT
Definition ObjectGuid.h:49
@ TYPEMASK_CORPSE
Definition ObjectGuid.h:53
@ TYPEMASK_GAMEOBJECT
Definition ObjectGuid.h:51
@ TYPEMASK_PLAYER
Definition ObjectGuid.h:50
@ MAX_PET_TYPE
Definition PetDefines.h:34
@ DRUNKEN_SMASHED
Definition Player.h:452
@ MAX_QUEST_STATUS
Definition QuestDef.h:107
#define sRaceMgr
Definition RaceMgr.h:52
@ EFFECT_2
Definition SharedDefines.h:33
@ CREATURE_TYPE_GAS_CLOUD
Definition SharedDefines.h:2634
@ ALLIANCE
Definition SharedDefines.h:756
@ HORDE
Definition SharedDefines.h:755
#define CLASSMASK_ALL_PLAYABLE
Definition SharedDefines.h:142
@ TOTAL_AURAS
Definition SpellAuraDefines.h:380
@ SPELL_AURA_NONE
Definition SpellAuraDefines.h:63
@ UNIT_STAND_STATE_SUBMERGED
Definition UnitDefines.h:44
@ UNIT_STATE_ALL_STATE_SUPPORTED
Definition UnitDefines.h:207
@ COMP_TYPE_MAX
Definition Util.h:584
events
Definition boss_sartura.cpp:43
std::vector< GameEventData > GameEventDataMap
Definition GameEventMgr.h:107
static bool IsValidGender(uint8 Gender)
Definition Player.h:1590
Definition QuestDef.h:210
int32 RequiredNpcOrGo[QUEST_OBJECTIVES_COUNT]
Definition QuestDef.h:305
uint32 RequiredNpcOrGoCount[QUEST_OBJECTIVES_COUNT]
Definition QuestDef.h:306
#define sWorld
Definition World.h:317
ObjectData const creatureData[]
Definition instance_blackwing_lair.cpp:45
ObjectData const goData[]
Definition instance_violet_hold.cpp:48
Definition DBCStructure.h:40
Definition DBCStructure.h:519
uint32 zone
Definition DBCStructure.h:522
Definition DBCStructure.h:632
ConditionTypes ConditionType
Definition ConditionMgr.h:204
ConditionSourceType SourceType
Definition ConditionMgr.h:199
uint32 ConditionValue2
Definition ConditionMgr.h:206
uint8 ConditionTarget
Definition ConditionMgr.h:212
uint32 ConditionValue3
Definition ConditionMgr.h:207
uint32 ConditionValue1
Definition ConditionMgr.h:205
uint32 GetMaxAvailableConditionTargets()
Definition ConditionMgr.cpp:832
Definition CreatureData.h:370
Definition DBCStructure.h:907
Definition GameObjectData.h:715
Definition ItemTemplate.h:619
Definition DBCStructure.h:1325
Definition DBCStructure.h:1583