1853{
1855 {
1857 return false;
1858 }
1860 {
1863 return false;
1864 default:
1865 break;
1866 }
1867
1869 {
1870 LOG_ERROR(
"sql.sql",
"SourceType {}, SourceEntry {} in `condition` table, has incorrect ConditionTarget set, ignoring.", cond->
SourceType, cond->
SourceEntry);
1871 return false;
1872 }
1873
1875 {
1877 {
1879 {
1881 return false;
1882 }
1883
1885 {
1886 LOG_ERROR(
"sql.sql",
"Aura condition has non existing effect index ({}) (must be 0..2), skipped", cond->
ConditionValue2);
1887 return false;
1888 }
1891 break;
1892 }
1894 {
1896 if (!proto)
1897 {
1899 return false;
1900 }
1901
1903 {
1905 return false;
1906 }
1907 break;
1908 }
1910 {
1912 if (!proto)
1913 {
1915 return false;
1916 }
1917
1922 break;
1923 }
1925 {
1927 if (!areaEntry)
1928 {
1930 return false;
1931 }
1932
1933 if (areaEntry->
zone != 0)
1934 {
1935 LOG_ERROR(
"sql.sql",
"ZoneID condition requires to be in area ({}) which is a subzone but zone expected, skipped", cond->
ConditionValue1);
1936 return false;
1937 }
1938
1943 break;
1944 }
1946 {
1948 if (!factionEntry)
1949 {
1951 return false;
1952 }
1955 break;
1956 }
1958 {
1960 {
1962 return false;
1963 }
1964
1969 break;
1970 }
1972 {
1974 if (!pSkill)
1975 {
1977 return false;
1978 }
1979
1981 {
1983 return false;
1984 }
1987 break;
1988 }
1995 {
1997 {
1999 return false;
2000 }
2001
2003 {
2005 }
2007 {
2009 }
2010 break;
2011 }
2014 {
2016 return false;
2017 }
2018 break;
2020 {
2023 {
2025 return false;
2026 }
2027
2032 break;
2033 }
2035 {
2037 if (!achievement)
2038 {
2040 return false;
2041 }
2042
2047 break;
2048 }
2050 {
2052 {
2054 return false;
2055 }
2056
2061 break;
2062 }
2064 {
2066 {
2068 return false;
2069 }
2070
2075 break;
2076 }
2078 {
2080 {
2082 return false;
2083 }
2084
2089 break;
2090 }
2092 {
2094 if (!mapId)
2095 {
2097 return false;
2098 }
2099
2104 break;
2105 }
2107 {
2109 {
2111 return false;
2112 }
2113
2118 break;
2119 }
2121 {
2123 {
2125 return false;
2126 }
2129 break;
2130 }
2132 {
2134 {
2136 return false;
2137 }
2139 {
2141 return false;
2142 }
2145 break;
2146 }
2148 {
2150 {
2151 LOG_ERROR(
"sql.sql",
"NearCreature condition has non existing creature template entry ({}), skipped", cond->
ConditionValue1);
2152 return false;
2153 }
2154 break;
2155 }
2157 {
2159 {
2160 LOG_ERROR(
"sql.sql",
"NearGameObject condition has non existing gameobject template entry ({}), skipped", cond->
ConditionValue1);
2161 return false;
2162 }
2165 break;
2166 }
2168 {
2170 {
2173 {
2174 LOG_ERROR(
"sql.sql",
"ObjectEntryGuid condition has non existing creature template entry ({}), skipped", cond->
ConditionValue2);
2175 return false;
2176 }
2178 {
2180 {
2182 {
2184 return false;
2185 }
2186 }
2187 else
2188 {
2189 LOG_ERROR(
"sql.sql",
"ObjectEntryGuid condition has non existing creature guid ({}), skipped", cond->
ConditionValue3);
2190 return false;
2191 }
2192 }
2193 break;
2196 {
2197 LOG_ERROR(
"sql.sql",
"ObjectEntryGuid condition has non existing gameobject template entry ({}), skipped", cond->
ConditionValue2);
2198 return false;
2199 }
2201 {
2203 {
2205 {
2207 return false;
2208 }
2209 }
2210 else
2211 {
2212 LOG_ERROR(
"sql.sql",
"ObjectEntryGuid condition has non existing gameobject guid ({}), skipped", cond->
ConditionValue3);
2213 return false;
2214 }
2215 }
2216 break;
2223 break;
2224 default:
2226 return false;
2227 }
2228 break;
2229 }
2231 {
2233 {
2235 return false;
2236 }
2241 break;
2242 }
2244 {
2246 {
2247 LOG_ERROR(
"sql.sql",
"RelationTo condition has invalid ConditionValue1(ConditionTarget selection) ({}), skipped", cond->
ConditionValue1);
2248 return false;
2249 }
2251 {
2252 LOG_ERROR(
"sql.sql",
"RelationTo condition has ConditionValue1(ConditionTarget selection) set to self ({}), skipped", cond->
ConditionValue1);
2253 return false;
2254 }
2256 {
2257 LOG_ERROR(
"sql.sql",
"RelationTo condition has invalid ConditionValue2(RelationType) ({}), skipped", cond->
ConditionValue2);
2258 return false;
2259 }
2262 break;
2263 }
2265 {
2267 {
2268 LOG_ERROR(
"sql.sql",
"ReactionTo condition has invalid ConditionValue1(ConditionTarget selection) ({}), skipped", cond->
ConditionValue1);
2269 return false;
2270 }
2272 {
2273 LOG_ERROR(
"sql.sql",
"ReactionTo condition has ConditionValue1(ConditionTarget selection) set to self ({}), skipped", cond->
ConditionValue1);
2274 return false;
2275 }
2277 {
2278 LOG_ERROR(
"sql.sql",
"mConditionValue2 condition has invalid ConditionValue2(rankMask) ({}), skipped", cond->
ConditionValue2);
2279 return false;
2280 }
2281 break;
2282 }
2284 {
2286 {
2287 LOG_ERROR(
"sql.sql",
"DistanceTo condition has invalid ConditionValue1(ConditionTarget selection) ({}), skipped", cond->
ConditionValue1);
2288 return false;
2289 }
2291 {
2292 LOG_ERROR(
"sql.sql",
"DistanceTo condition has ConditionValue1(ConditionTarget selection) set to self ({}), skipped", cond->
ConditionValue1);
2293 return false;
2294 }
2296 {
2298 return false;
2299 }
2300 break;
2301 }
2303 {
2310 break;
2311 }
2313 {
2315 {
2317 return false;
2318 }
2321 break;
2322 }
2324 {
2326 {
2328 return false;
2329 }
2331 {
2333 return false;
2334 }
2337 break;
2338 }
2341 break;
2343 {
2346 break;
2347 }
2349 {
2354 break;
2355 }
2357 {
2359 if (!titleEntry)
2360 {
2362 return false;
2363 }
2364 break;
2365 }
2367 {
2369 {
2370 LOG_ERROR(
"condition",
"SpawnMask condition has non existing SpawnMask in value1 ({}), skipped", cond->
ConditionValue1);
2371 return false;
2372 }
2373 break;
2374 }
2376 {
2378 {
2379 LOG_ERROR(
"condition",
"UnitState condition has non existing UnitState in value1 ({}), skipped", cond->
ConditionValue1);
2380 return false;
2381 }
2382 break;
2383 }
2385 {
2387 {
2388 LOG_ERROR(
"condition",
"CreatureType condition has non existing CreatureType in value1 ({}), skipped", cond->
ConditionValue1);
2389 return false;
2390 }
2391 break;
2392 }
2394 {
2396 if (!achievement)
2397 {
2398 LOG_ERROR(
"condition",
"CONDITION_REALM_ACHIEVEMENT has non existing realm first achivement id ({}), skipped.", cond->
ConditionValue1);
2399 return false;
2400 }
2401 break;
2402 }
2404 {
2406 if (!quest)
2407 {
2408 LOG_ERROR(
"sql.sql",
"CONDITION_QUEST_OBJECTIVE_PROGRESS points to non-existing quest ({}), skipped.", cond->
ConditionValue1);
2409 return false;
2410 }
2411
2413 {
2414 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);
2415 return false;
2416 }
2417
2419 {
2421 return false;
2422 }
2423
2425 {
2427 return false;
2428 }
2429 break;
2430 }
2432 {
2434 {
2436 return false;
2437 }
2438 break;
2439 }
2441 {
2442 bool valid = false;
2444 {
2445 case 0:
2447 break;
2448 case 1:
2450 break;
2451 default:
2452 valid = false;
2453 break;
2454 }
2455 if (!valid)
2456 {
2458 return false;
2459 }
2460 break;
2461 }
2464 {
2465 LOG_ERROR(
"sql.sql",
"CONDITION_DIFFICULTY_ID has non existing difficulty in value1 ({}), skipped.", cond->
ConditionValue1);
2466 return false;
2467 }
2468 break;
2471 {
2473 return false;
2474 }
2475 break;
2479 default:
2480 break;
2481 }
2482 return true;
2483}
@ CONDITION_TAXI
Definition ConditionMgr.h:80
@ 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_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:92
@ 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:166
#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:33
@ DRUNKEN_SMASHED
Definition Player.h:462
@ MAX_QUEST_STATUS
Definition QuestDef.h:107
@ EFFECT_2
Definition SharedDefines.h:33
@ CREATURE_TYPE_GAS_CLOUD
Definition SharedDefines.h:2651
@ ALLIANCE
Definition SharedDefines.h:779
@ HORDE
Definition SharedDefines.h:778
#define CLASSMASK_ALL_PLAYABLE
Definition SharedDefines.h:157
#define RACEMASK_ALL_PLAYABLE
Definition SharedDefines.h:97
@ TOTAL_AURAS
Definition SpellAuraDefines.h:380
@ SPELL_AURA_NONE
Definition SpellAuraDefines.h:63
@ UNIT_STAND_STATE_SUBMERGED
Definition UnitDefines.h:41
@ UNIT_STATE_ALL_STATE_SUPPORTED
Definition UnitDefines.h:202
@ COMP_TYPE_MAX
Definition Util.h:593
events
Definition boss_sartura.cpp:43
std::vector< GameEventData > GameEventDataMap
Definition GameEventMgr.h:107
static bool IsValidGender(uint8 Gender)
Definition Player.h:1575
Definition QuestDef.h:210
int32 RequiredNpcOrGo[QUEST_OBJECTIVES_COUNT]
Definition QuestDef.h:304
uint32 RequiredNpcOrGoCount[QUEST_OBJECTIVES_COUNT]
Definition QuestDef.h:305
#define sWorld
Definition World.h:317
ObjectData const creatureData[]
Definition instance_blackwing_lair.cpp:45
Definition DBCStructure.h:40
Definition DBCStructure.h:519
uint32 zone
Definition DBCStructure.h:522
Definition DBCStructure.h:632
ConditionTypes ConditionType
Definition ConditionMgr.h:202
ConditionSourceType SourceType
Definition ConditionMgr.h:197
uint32 ConditionValue2
Definition ConditionMgr.h:204
uint8 ConditionTarget
Definition ConditionMgr.h:210
uint32 ConditionValue3
Definition ConditionMgr.h:205
uint32 ConditionValue1
Definition ConditionMgr.h:203
uint32 GetMaxAvailableConditionTargets()
Definition ConditionMgr.cpp:802
Definition CreatureData.h:370
Definition DBCStructure.h:907
Definition GameObjectData.h:698
Definition ItemTemplate.h:619
Definition DBCStructure.h:1326
Definition DBCStructure.h:1584