164{
166
167
169 {
172 return;
173 }
174
175
177
178 if (unit)
180 else if (gob)
182
184 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: Invoker: {} ({})", tempInvoker->GetName(), tempInvoker->GetGUID().ToString());
185
187
190 if (unit)
191 invoker = unit;
192 else if (gob)
193 invoker = gob;
194
196
198 {
200 {
203
205 {
206 if (
IsCreature((target)) && !target->ToCreature()->IsPet())
207 {
209 {
212 }
213 else
215 break;
216 }
218 {
221 break;
222 }
223 }
224
225 if (!talkTarget)
227
228 if (!talker)
229 break;
230
232 {
234 break;
235 }
236
241
244 break;
245 }
247 {
249 {
253 {
256 }
257
258 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SIMPLE_TALK: talker: {} ({}), textGroupId: {}",
260 }
261 break;
262 }
264 {
266 {
268 {
269 target->ToUnit()->HandleEmoteCommand(e.
action.
emote.emote);
270 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_PLAY_EMOTE: target: {} ({}), emote: {}",
271 target->GetName(), target->GetGUID().ToString(), e.
action.
emote.emote);
272 }
273 }
274 break;
275 }
277 {
279 {
281 {
284 else
286 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SOUND: target: {} ({}), sound: {}, onlyself: {}",
288 }
289 }
290 break;
291 }
293 {
301 for (unsigned int sound : sounds)
302 {
303 if (sound)
304 {
305 temp[count] = sound;
306 ++count;
307 }
308 }
309
310 if (count == 0)
311 {
312 break;
313 }
314
316 {
318 {
321 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_RANDOM_SOUND: target: {} ({}), sound: {}, onlyself: {}",
323 }
324 }
325
326 break;
327 }
329 {
331
333 {
335 {
337
339 {
341 if (
Player* player = i->GetSource())
342 {
344 {
346 {
348 targets.push_back(player);
349 }
350 else
351 targets.push_back(player);
352 }
353 }
354 }
355 }
356 }
357 else
359
360 if (!targets.empty())
361 {
363 {
365 {
367 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_MUSIC: target: {} ({}), sound: {}, onlySelf: {}, type: {}",
369 }
370 }
371 }
372 break;
373 }
375 {
377
379 {
381 {
383
385 {
387 if (
Player* player = i->GetSource())
388 {
390 {
392 {
394 targets.push_back(player);
395 }
396 else
397 targets.push_back(player);
398 }
399 }
400 }
401 }
402 }
403 else
405
406 if (targets.empty())
407 break;
408
416 for (unsigned int sound : sounds)
417 {
418 if (sound)
419 {
420 temp[count] = sound;
421 ++count;
422 }
423 }
424
425 if (count == 0)
426 {
427 break;
428 }
429
431 {
433 {
436 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_RANDOM_MUSIC: target: {} ({}), sound: {}, onlyself: {}, type: {}",
438 }
439 }
440
441 break;
442 }
444 {
446 {
448 {
450 {
452 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_FACTION: Creature entry {}, GuidLow {} set faction to {}",
454 }
455 else
456 {
458 {
459 if (target->ToCreature()->GetFaction() != ci->faction)
460 {
461 target->ToCreature()->SetFaction(ci->faction);
462 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_FACTION: Creature entry {}, GuidLow {} set faction to {}",
463 target->GetEntry(), target->GetGUID().ToString(), ci->faction);
464 }
465 }
466 }
467 }
468 }
469 break;
470 }
472 {
474 {
476 continue;
477
479 {
480
482 {
484 {
487 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL: Creature entry {}, GuidLow {} set displayid to {}",
489 }
490 }
491
492 else
493 {
495 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL: Creature entry {}, GuidLow {} set displayid to {}",
497 }
498 }
499 else
500 {
501 target->ToCreature()->DeMorph();
502 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL: Creature entry {}, GuidLow {} demorphs.",
503 target->GetEntry(), target->GetGUID().ToString());
504 }
505 }
506 break;
507 }
509 {
511 {
513 {
514 target->ToPlayer()->FailQuest(e.
action.
quest.quest);
515 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_FAIL_QUEST: Player guidLow {} fails quest {}",
516 target->GetGUID().ToString(), e.
action.
quest.quest);
517 }
518 }
519 break;
520 }
522 {
524 {
526 {
528 {
530 {
531 if (player->CanTakeQuest(q, true))
532 {
534 {
536 menu.SendQuestGiverQuestDetails(q,
me->
GetGUID(),
true);
537 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_OFFER_QUEST: Player guidLow {} - offering quest {}",
539 }
540 }
541 }
542 else
543 {
544 player->AddQuestAndCheckCompletion(q, nullptr);
545 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_OFFER_QUEST: Player guidLow {} - quest {} added",
547 }
548 }
549 }
550 }
551 break;
552 }
554 {
556 {
558 continue;
559
561 }
562 break;
563 }
565 {
566 std::vector<uint32> emotes;
568 std::back_inserter(emotes), [](
uint32 emote) { return emote != 0; });
569
571 {
573 {
575 target->ToUnit()->HandleEmoteCommand(emote);
576 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_RANDOM_EMOTE: Creature guidLow {} handle random emote {}",
577 target->GetGUID().ToString(), emote);
578 }
579 }
580 break;
581 }
583 {
585 break;
586
588 for (ThreatContainer::StorageType::const_iterator i = threatList.begin(); i != threatList.end(); ++i)
589 {
591 {
593 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_THREAT_ALL_PCT: Creature {} modify threat for unit {}, value {}",
595 }
596 }
597 break;
598 }
600 {
602 break;
603
605 {
607 {
609 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_THREAT_SINGLE_PCT: Creature guidLow {} modify threat for unit {}, value {}",
611 }
612 }
613 break;
614 }
616 {
618 {
619
621 if (
Vehicle* vehicle = target->ToUnit()->GetVehicleKit())
622 for (
auto & Seat : vehicle->
Seats)
624 player->AreaExploredOrEventHappens(e.action.quest.quest);
625
627 {
628 target->ToPlayer()->AreaExploredOrEventHappens(e.
action.
quest.quest);
629
630 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS: Player guidLow {} credited quest {}",
631 target->GetGUID().ToString(), e.
action.
quest.quest);
632 }
633 }
634 break;
635 }
637 {
638 if (targets.empty())
639 break;
640
642
645
648
649 bool failedSpellCast = false, successfulSpellCast = false;
650
652 {
653
656
658 continue;
659
660 if (caster && caster !=
me)
661 {
663 }
665 {
666
668 continue;
669
670
673 break;
674
675
677 continue;
678
679
682
688
690 bool isWithinMeleeRange = distanceToTarget <= meleeRange;
693
696
697
698 if (isWithinLOSInMap && isWithinMeleeRange && isRangedAttack && isTargetRooted && canCastSpell && !
me->
IsVehicle())
699 {
700 failedSpellCast = true;
701
703 continue;
704
705 float minDistance = std::max(meleeRange, spellMinRange) - distanceToTarget +
NOMINAL_MELEE_RANGE;
707 continue;
708 }
709
710 if (distanceToTarget > spellMaxRange && isWithinLOSInMap)
711 {
712 failedSpellCast = true;
713
715 continue;
716
719
720 continue;
721 }
722 else if (distanceToTarget < spellMinRange || !(isWithinLOSInMap || isSpellIgnoreLOS))
723 {
724 failedSpellCast = true;
725
727 continue;
728
732 continue;
733 }
734
737 {
740 else
742 }
743
746
748 {
753 }
754
755 if (spellCastFailed)
756 failedSpellCast = true;
757 else
758 successfulSpellCast = true;
759
760 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_CAST: Unit {} casts spell {} on target {} with castflags {}",
762 }
763 }
764
765
766 if (failedSpellCast && !successfulSpellCast)
767 {
769
770 return;
771 }
772
773 break;
774 }
776 {
777 if (targets.empty())
778 break;
779
782
785 {
787 {
789 }
790 else
791 {
793 }
794 }
795
797 {
799 if (!uTarget)
800 continue;
801
803 {
805 {
807 }
808
810 }
811 }
812 break;
813 }
815 {
816
818 if (!tempLastInvoker)
819 break;
820
821 if (targets.empty())
822 break;
823
826
828 {
830 continue;
831
832 if (!
IsUnit(tempLastInvoker))
833 continue;
834
836 {
838 {
840 }
841
844 {
846 {
848 }
849 else
850 {
852 }
853 }
854
856 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_INVOKER_CAST: Invoker {} casts spell {} on target {} with castflags {}",
858 }
859 else
860 {
861 LOG_DEBUG(
"scripts.ai",
"Spell {} not cast because it has flag SMARTCAST_AURA_NOT_PRESENT and the target {} already has the aura",
863 }
864 }
865 break;
866 }
868 {
870 {
872 {
874 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_ADD_AURA: Adding aura {} to unit {}",
876 }
877 }
878 break;
879 }
881 {
883 {
885 {
887
888
890 {
892 }
893
895 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_ACTIVATE_GOBJECT. Gameobject {} activated",
go->
GetGUID().
ToString());
896 }
897 }
898
899 break;
900 }
902 {
904 {
906 {
907 target->ToGameObject()->ResetDoorOrButton();
908 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_RESET_GOBJECT. Gameobject {} (entry: {}) reset",
909 target->GetGUID().ToString(), target->GetEntry());
910 }
911 }
912 break;
913 }
915 {
917 {
919 {
921 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_EMOTE_STATE. Unit {} set emotestate to {}",
922 target->GetGUID().ToString(), e.
action.
emote.emote);
923 }
924 }
925 break;
926 }
928 {
930 {
932 {
934 {
936 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_UNIT_FLAG. Unit {} added flag {} to UNIT_FIELD_FLAGS",
938 }
939 else
940 {
942 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_UNIT_FLAG. Unit {} added flag {} to UNIT_FIELD_FLAGS_2",
944 }
945 }
946 }
947 break;
948 }
950 {
952 {
954 {
956 {
958 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_REMOVE_UNIT_FLAG. Unit {} removed flag {} to UNIT_FIELD_FLAGS",
960 }
961 else
962 {
964 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_REMOVE_UNIT_FLAG. Unit {} removed flag {} to UNIT_FIELD_FLAGS_2",
966 }
967 }
968 }
969 break;
970 }
972 {
974 break;
975
977 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_AUTO_ATTACK: Creature: {} bool on = {}",
979 break;
980 }
982 {
984 break;
985
988 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_ALLOW_COMBAT_MOVEMENT: Creature {} bool on = {}",
990 break;
991 }
993 {
995 break;
996
998 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SET_EVENT_PHASE: Creature {} set event phase {}",
1000 break;
1001 }
1003 {
1005 break;
1006
1009 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_INC_EVENT_PHASE: Creature {} inc event phase by {}, "
1011 break;
1012 }
1014 {
1016 break;
1017
1020 if (target->ToCreature()->IsAIEnabled)
1021 target->ToCreature()->AI()->EnterEvadeMode();
1022
1023 break;
1024 }
1026 {
1027
1029 break;
1030
1033 {
1036 }
1037 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_FLEE_FOR_ASSIST: Creature {} DoFleeToGetAssistance",
me->
GetGUID().
ToString());
1038 break;
1039 }
1041 {
1043 break;
1044
1046 break;
1047 }
1049 {
1051 {
1053 continue;
1054
1056
1059 {
1061 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_CALL_GROUPEVENTHAPPENS: Player {}, group credit for quest {}",
1063 }
1064
1065
1067 {
1068 for (
auto& Seat : vehicle->
Seats)
1069 {
1071 {
1073 }
1074 }
1075 }
1076 }
1077 break;
1078 }
1080 {
1082 {
1084 continue;
1085
1087 {
1089 {
1092 }
1093 else
1095 }
1096 else
1097 target->ToUnit()->RemoveAllAuras();
1098
1099 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_REMOVEAURASFROMSPELL: Unit {}, spell {}",
1101 }
1102 break;
1103 }
1105 {
1107 break;
1108
1110 {
1112 break;
1113 }
1114
1116 {
1118 {
1121 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_FOLLOW: Creature {} following target {}",
1123 break;
1124 }
1125 }
1126 break;
1127 }
1129 {
1131 break;
1132
1133 std::vector<uint32> phases;
1135 std::back_inserter(phases), [](
uint32 phase) { return phase != 0; });
1136
1139 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_RANDOM_PHASE: Creature {} sets event phase to {}",
1141 break;
1142 }
1144 {
1146 break;
1147
1150 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_RANDOM_PHASE_RANGE: Creature {} sets event phase to {}",
1152 break;
1153 }
1155 {
1157 {
1159 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: (trigger == true) Player {}, Killcredit: {}",
1161 }
1163 {
1165 break;
1166
1168 {
1170 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player {}, Killcredit: {}",
1172 }
1173 }
1174 else
1175 {
1177 {
1179 continue;
1180
1182 if (!player)
1183 continue;
1184
1186 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player {}, Killcredit: {}",
1188 }
1189 }
1190 break;
1191 }
1193 {
1195 if (!obj)
1196 obj = unit;
1197
1198 if (!obj)
1199 break;
1200
1202 if (!instance)
1203 {
1204 LOG_ERROR(
"scripts.ai.sai",
"SmartScript: Event {} attempt to set instance data without instance script. EntryOrGuid {}", e.
GetEventType(), e.
entryOrGuid);
1205 break;
1206 }
1207
1209 {
1210 case 0:
1211 {
1214 } break;
1215 case 1:
1216 {
1219 } break;
1220 default:
1221 {
1222 break;
1223 }
1224 }
1225 break;
1226 }
1228 {
1230 if (!obj)
1231 obj = unit;
1232
1233 if (!obj)
1234 break;
1235
1237 if (!instance)
1238 {
1240 break;
1241 }
1242
1243 if (targets.empty())
1244 break;
1245
1247 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_SET_INST_DATA64: Field: {}, data: {}",
1249 break;
1250 }
1252 {
1255 target->ToCreature()->UpdateEntry(e.action.updateTemplate.creature, target->ToCreature()->GetCreatureData(), e.action.updateTemplate.updateLevel != 0);
1256 break;
1257 }
1259 {
1261 {
1263 {
1265 {
1266
1268 {
1269 me->KillSelf();
1270 LOG_DEBUG("sql.sql", "SmartScript::ProcessAction: SMART_ACTION_DIE: Creature {}", me->GetGUID().ToString());
1271 }
1273 }
1274 }
1276 {
1279 }
1280 break;
1281 }
1283 {
1284 if (targets.empty())
1285 break;
1286
1288 {
1291
1294 if (
IsPlayer(unit) && !unit->ToPlayer()->isDead())
1295 {
1299 }
1300 }
1301 else
1302 {
1304 {
1306 {
1307 target->ToCreature()->SetInCombatWithZone();
1308 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_SET_IN_COMBAT_WITH_ZONE: Creature {}, target: {}",
1310 }
1311 }
1312 }
1313
1314 break;
1315 }
1317 {
1319 {
1321 {
1324 {
1327 }
1328 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_CALL_FOR_HELP: Creature {}, target: {}",
1330 }
1331 }
1332 break;
1333 }
1335 {
1337 {
1339 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_SET_SHEATH: Creature {}, State: {}",
1341 }
1342 break;
1343 }
1345 {
1347 {
1349 {
1351 LOG_ERROR(
"sql.sql",
"SmartScript: SMART_ACTION_FORCE_DESPAWN has removeObjectFromWorld set. delay and forceRespawnTimer ignored.");
1352
1354 creature->AddObjectToRemoveList();
1357 }
1358 else
1359 {
1361
1362
1363 if (despawnDelay <= 0ms)
1364 despawnDelay = 1ms;
1365
1368 creature->DespawnOrUnsummon(despawnDelay, forceRespawnTimer);
1371 }
1372 }
1373
1374 break;
1375 }
1377 {
1379 {
1384 }
1385 break;
1386 }
1388 {
1390 {
1392 continue;
1393
1395 {
1397 {
1400 }
1401 else
1403 }
1404 else
1405 target->ToUnit()->Dismount();
1406 }
1407 break;
1408 }
1410 {
1412 {
1414 {
1416 if (!ai)
1417 continue;
1418
1421 else
1423 }
1424 }
1425 break;
1426 }
1428 {
1430 {
1432 {
1434
1436 {
1439 else
1441 }
1442 else
1444 }
1446 {
1448
1450 {
1453 else
1455 }
1456 else
1458 }
1459 }
1460 break;
1461 }
1463 {
1465 break;
1466
1467 float x, y, z;
1470 break;
1471 }
1473 {
1475 break;
1476
1478 break;
1479 }
1481 {
1484 target->ToUnit()->SetVisible(e.action.visibility.state);
1485
1486 break;
1487 }
1489 {
1491 target->setActive(e.action.setActive.state);
1492 break;
1493 }
1495 {
1497 break;
1498
1499 if (targets.empty())
1500 break;
1501
1502
1505 break;
1506 }
1508 {
1510 if (
Unit* unitTarget = target->ToUnit())
1511 unitTarget->AttackStop();
1512 break;
1513 }
1515 {
1519 if (!summoner)
1520 break;
1521
1523
1525 {
1530 {
1533 else
1536 {
1538 summon->AI()->AttackStart(unit);
1540 summon->AI()->AttackStart(
me);
1541 }
1542 }
1543 break;
1544 }
1545
1546 float x, y, z, o;
1548 {
1549 target->GetPosition(x, y, z, o);
1555 {
1557 summon->AI()->AttackStart(unit);
1559 summon->AI()->AttackStart(target->ToUnit());
1561 summon->AI()->AttackStart(
me);
1562 }
1563 }
1564
1566 break;
1567
1569 {
1571 summon->AI()->AttackStart(unit);
1573 summon->AI()->AttackStart(
me);
1574 }
1575 break;
1576 }
1578 {
1580 break;
1581
1582 if (!targets.empty())
1583 {
1584 float x, y, z, o;
1586 {
1587
1588
1589
1590
1591 target->GetPosition(x, y, z, o);
1598 else
1600 }
1601 }
1602
1604 break;
1605
1607 break;
1608 }
1610 {
1612 {
1614 continue;
1615
1616 Unit::Kill(target->ToUnit(), target->ToUnit());
1617 }
1618
1619 break;
1620 }
1622 {
1624 break;
1625 }
1627 {
1629 {
1631 continue;
1632
1634 }
1635 break;
1636 }
1638 {
1640 {
1642 continue;
1643
1645 }
1646 break;
1647 }
1649 {
1651 break;
1652 }
1654 {
1656 {
1661 }
1662 break;
1663 }
1665 {
1667 break;
1668
1670
1673
1674
1676 break;
1677 }
1679 {
1681 {
1683 {
1685 }
1686 }
1687
1688 break;
1689 }
1691 {
1693 break;
1694
1696 break;
1697 }
1699 {
1700 if (!targets.empty())
1701 {
1703 {
1705 {
1708 else
1709 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SET_COUNTER is not using SmartAI, skipping");
1710 }
1712 {
1715 else
1716 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SET_COUNTER is not using SmartGameObjectAI, skipping");
1717 }
1718 }
1719 }
1720 else
1722 break;
1723 }
1725 {
1727 break;
1728
1732
1734 {
1736 {
1738 break;
1739 }
1740 }
1741
1744
1749 break;
1750 }
1752 {
1754 break;
1755
1758 break;
1759 }
1761 {
1763 break;
1764
1769 break;
1770 }
1772 {
1774 break;
1775
1777 break;
1778 }
1780 {
1782 break;
1783
1785 {
1786 float randomOri =
frand(0.0f, 2 * M_PI);
1790 break;
1791 }
1792
1794 {
1799 break;
1800 }
1801
1803 {
1807 }
1809 {
1813 }
1814 else if (!targets.empty())
1815 {
1819 }
1820
1821 break;
1822 }
1824 {
1826 {
1828 continue;
1829
1831 }
1832 break;
1833 }
1835 {
1837 break;
1838
1840
1842
1844 {
1846 {
1850 trans->CalculatePassengerPosition(dest.x, dest.y, dest.z);
1851
1854
1855 break;
1856 }
1858 {
1860 {
1871 );
1872
1873 }
1874
1875 break;
1876 }
1877
1878 default:
1879 {
1880
1881 if (targets.empty())
1882 return;
1883 else
1885
1886 float x, y, z;
1888
1893
1896
1897 break;
1898 }
1899 }
1900
1901 break;
1902 }
1904 {
1906 {
1908 {
1910
1914 }
1915 }
1916
1917 break;
1918 }
1920 {
1922 {
1926 {
1927
1930 else
1932 }
1933 }
1934 break;
1935 }
1937 {
1940 target->ToPlayer()->PlayerTalkClass->SendCloseGossip();
1941 break;
1942 }
1944 {
1946 {
1948 {
1949 std::array<uint32, MAX_EQUIPMENT_ITEMS> slot;
1951 {
1953 if (!eInfo)
1954 {
1955 LOG_ERROR(
"sql.sql",
"SmartScript: SMART_ACTION_EQUIP uses non-existent equipment info id {} for creature {}", equipId,
npc->GetEntry());
1956 break;
1957 }
1958
1959 npc->SetCurrentEquipmentId(equipId);
1960
1961 std::copy(std::begin(eInfo->
ItemEntry), std::end(eInfo->
ItemEntry), std::begin(slot));
1962 }
1963 else
1965
1969 }
1970 }
1971 break;
1972 }
1974 {
1979
1984
1988
1992
2000 break;
2001 }
2004
2005
2008 break;
2011 break;
2013 {
2015 {
2017 {
2024 break;
2025 }
2027 {
2034 break;
2035 }
2036 }
2037
2038 break;
2039 }
2042 break;
2045 break;
2047 {
2049 break;
2050
2053
2055 if (
Creature* creature = target->ToCreature())
2056 if (
IsSmart(creature) && creature->GetVictim())
2058 creature->GetMotionMaster()->MoveChase(creature->GetVictim(), attackDistance, attackAngle);
2059
2060 break;
2061 }
2063 {
2065 {
2067 break;
2068 }
2069
2071 {
2073 {
2076 }
2078 {
2081 }
2082 }
2083 break;
2084 }
2086 {
2089 target->ToUnit()->ReplaceAllNpcFlags(
NPCFlags(e.action.unitFlag.flag));
2090 break;
2091 }
2093 {
2096 target->ToUnit()->SetNpcFlag(
NPCFlags(e.action.unitFlag.flag));
2097 break;
2098 }
2100 {
2103 target->ToUnit()->RemoveNpcFlag(
NPCFlags(e.action.unitFlag.flag));
2104 break;
2105 }
2107 {
2108 if (targets.empty())
2109 break;
2110
2112 GetTargets(casters,
CreateSmartEvent(
SMART_EVENT_UPDATE_IC, 0, 0, 0, 0, 0, 0, 0,
SMART_ACTION_NONE, 0, 0, 0, 0, 0, 0, (
SMARTAI_TARGETS)e.
action.
crossCast.
targetType, e.
action.
crossCast.
targetParam1, e.
action.
crossCast.
targetParam2, e.
action.
crossCast.
targetParam3, 0, 0), unit);
2113
2115 {
2117 continue;
2118
2120
2121 bool interruptedSpell = false;
2122
2124 {
2126 continue;
2127
2129 {
2131 {
2133 interruptedSpell = true;
2134 }
2135
2137 }
2138 else
2140 }
2141 }
2142 break;
2143 }
2145 {
2146 std::vector<uint32> actionLists;
2148 std::back_inserter(actionLists), [](
uint32 actionList) { return actionList != 0; });
2149
2152 {
2154 break;
2155 }
2156
2158 {
2160 {
2163 }
2165 {
2168 }
2169 }
2170 break;
2171 }
2173 {
2176 {
2178 break;
2179 }
2180
2182 {
2184 {
2187 }
2189 {
2192 }
2193 }
2194 break;
2195 }
2197 {
2200 target->ToPlayer()->ActivateTaxiPathTo(e.action.taxi.id);
2201 break;
2202 }
2204 {
2205 bool foundTarget = false;
2206
2208 {
2210 {
2211 foundTarget = true;
2212
2215 else
2217 }
2218 }
2219
2221 {
2224 else
2226 }
2227 break;
2228 }
2230 {
2233 target->ToUnit()->SetByteFlag(
UNIT_FIELD_BYTES_1, e.action.setunitByte.type, e.action.setunitByte.byte1);
2234 break;
2235 }
2237 {
2240 target->ToUnit()->RemoveByteFlag(
UNIT_FIELD_BYTES_1, e.action.delunitByte.type, e.action.delunitByte.byte1);
2241 break;
2242 }
2244 {
2247 target->ToUnit()->InterruptNonMeleeSpells(e.action.interruptSpellCasting.withDelayed != 0, e.action.interruptSpellCasting.spell_id, e.action.interruptSpellCasting.withInstant != 0);
2248 break;
2249 }
2251 {
2254 target->ToGameObject()->SendCustomAnim(e.action.sendGoCustomAnim.anim);
2255 break;
2256 }
2258 {
2262 break;
2263 }
2265 {
2269 break;
2270 }
2272 {
2276 break;
2277 }
2279 {
2281 {
2283 {
2288 }
2289
2290 break;
2291 }
2292
2293 if (targets.empty())
2294 break;
2295
2296
2298 {
2302 }
2303 else
2304 {
2307 {
2310 }
2311 }
2312
2313 break;
2314 }
2316 {
2319 target->ToGameObject()->SetLootState((
LootState)e.action.setGoLootState.state);
2320 break;
2321 }
2323 {
2326 target->ToGameObject()->SetGoState((
GOState)e.action.goState.state);
2327 break;
2328 }
2330 {
2332
2333 if (!ref)
2334 ref = unit;
2335
2336 if (!ref)
2337 break;
2338
2340 if (!storedTargets)
2341 break;
2342
2344 {
2346 {
2349 else
2350 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SEND_TARGET_TO_TARGET is not using SmartAI, skipping");
2351 }
2353 {
2356 else
2357 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SEND_TARGET_TO_TARGET is not using SmartGameObjectAI, skipping");
2358 }
2359 }
2360 break;
2361 }
2363 {
2365 break;
2366
2367 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SEND_GOSSIP_MENU: gossipMenuId {}, gossipNpcTextId {}",
2369
2371 if (
Player* player = target->ToPlayer())
2372 {
2375 else
2377
2379 }
2380
2381 break;
2382 }
2384 {
2385 if (!targets.empty())
2386 {
2387 float x, y, z, o;
2390 {
2392 {
2395 }
2396 else
2398 }
2399 }
2401 {
2403 {
2404 float x, y, z, o;
2407 }
2408 else
2410 }
2411 break;
2412 }
2414 {
2417 target->ToCreature()->SetRegeneratingHealth(e.action.setHealthRegen.regenHealth);
2418
2419 break;
2420 }
2422 {
2425 target->ToCreature()->SetControlled(e.action.setRoot.root != 0,
UNIT_STATE_ROOT);
2426 break;
2427 }
2429 {
2432 target->ToGameObject()->SetUInt32Value(
GAMEOBJECT_FLAGS, e.action.goFlag.flag);
2433 break;
2434 }
2436 {
2440 break;
2441 }
2443 {
2446 target->ToGameObject()->RemoveFlag(
GAMEOBJECT_FLAGS, e.action.goFlag.flag);
2447 break;
2448 }
2450 {
2451 std::list<TempSummon*> summonList;
2453
2454 for (std::list<TempSummon*>::const_iterator itr = summonList.begin(); itr != summonList.end(); ++itr)
2455 {
2457 (*itr)->AI()->AttackStart(unit);
2459 (*itr)->AI()->AttackStart(
me);
2460 }
2461
2462 break;
2463 }
2465 {
2468 target->ToUnit()->SetPower(
Powers(e.action.power.powerType), e.action.power.newPower);
2469 break;
2470 }
2472 {
2475 target->ToUnit()->SetPower(
Powers(e.action.power.powerType), target->ToUnit()->GetPower(
Powers(e.action.power.powerType)) + e.action.power.newPower);
2476 break;
2477 }
2479 {
2482 target->ToUnit()->SetPower(
Powers(e.action.power.powerType), target->ToUnit()->GetPower(
Powers(e.action.power.powerType)) - e.action.power.newPower);
2483 break;
2484 }
2486 {
2489 {
2490 LOG_ERROR(
"scripts.ai.sai",
"SmartScript::ProcessAction: At case SMART_ACTION_GAME_EVENT_STOP, inactive event (id: {})", eventId);
2491 break;
2492 }
2494 break;
2495 }
2497 {
2500 {
2501 LOG_ERROR(
"scripts.ai.sai",
"SmartScript::ProcessAction: At case SMART_ACTION_GAME_EVENT_START, already activated event (id: {})", eventId);
2502 break;
2503 }
2505 break;
2506 }
2508 {
2510
2512 {
2513 LOG_ERROR(
"scripts.ai.sai",
"SmartScript::ProcessAction: SMART_ACTION_START_CLOSEST_WAYPOINT: Invalid PathSource {} for entryOrGuid {} source_type {} event_id {} link {}",
2515 break;
2516 }
2517
2518 float distanceToClosest = std::numeric_limits<float>::max();
2520
2522 {
2524 {
2526 {
2528 {
2530
2531 switch (pathSource)
2532 {
2535 break;
2538 break;
2539 }
2540
2541 if (!path || path->empty())
2542 continue;
2543
2544 auto itrWp = path->find(1);
2545 if (itrWp != path->end())
2546 {
2548 float distToThisPath = creature->GetExactDistSq(wpData.
x, wpData.
y, wpData.
z);
2549
2550 if (distToThisPath < distanceToClosest)
2551 {
2552 distanceToClosest = distToThisPath;
2553 closestWpId = pathId;
2554 }
2555 }
2556 }
2557
2558 if (closestWpId)
2559 {
2562
2563 CAST_AI(
SmartAI, creature->AI())->StartPath(forcedMovement, closestWpId, repeat,
nullptr, pathSource);
2564 }
2565 }
2566 }
2567 }
2568 break;
2569 }
2571 {
2574 target->ToUnit()->ExitVehicle();
2575
2576 break;
2577 }
2579 {
2582 {
2585 }
2586
2587 break;
2588 }
2590 {
2593 target->ToCreature()->m_CombatDistance = e.action.combatDistance.dist;
2594
2595 break;
2596 }
2598 {
2601 target->ToCreature()->m_SightDistance = e.action.sightDistance.dist;
2602 break;
2603 }
2605 {
2608 target->ToCreature()->GetMotionMaster()->MoveFleeing(
me, e.action.flee.withEmote);
2609 break;
2610 }
2612 {
2615 me->AddThreat(target->ToUnit(), float(e.action.threatPCT.threatINC) - float(e.action.threatPCT.threatDEC));
2616 break;
2617 }
2619 {
2622 target->ToCreature()->LoadEquipment(e.action.loadEquipment.id, e.action.loadEquipment.force != 0);
2623 break;
2624 }
2626 {
2629 break;
2630 }
2632 {
2635 target->ToUnit()->Dismount();
2636 break;
2637 }
2639 {
2642 target->ToUnit()->SetHover(e.action.setHover.state);
2643 break;
2644 }
2646 {
2649 target->ToUnit()->ApplySpellImmune(e.action.immunity.id, e.action.immunity.type, e.action.immunity.value, true);
2650
2651 break;
2652 }
2654 {
2657 target->ToUnit()->ApplySpellImmune(e.action.immunity.id, e.action.immunity.type, e.action.immunity.value, false);
2658 break;
2659 }
2661 {
2664 target->ToUnit()->GetMotionMaster()->MoveFall();
2665
2666 break;
2667 }
2669 {
2671 break;
2672 }
2674 {
2677 target->ToUnit()->RemoveAllGameObjects();
2678 break;
2679 }
2681 {
2683 {
2685 {
2690 }
2691 }
2692 break;
2693 }
2695 {
2699
2700 break;
2701 }
2703 {
2706 if (
Player* player = target->ToUnit()->GetCharmerOrOwnerPlayerOrPlayerItself())
2707 {
2709 break;
2710 }
2711
2712 break;
2713 }
2715 {
2720 break;
2721 }
2723 {
2725
2726 if (!targets.empty())
2730
2731 break;
2732 }
2734 {
2736 break;
2737
2739 {
2741 {
2743 {
2745 }
2746
2748 {
2758
2761 {
2762
2764
2766 else
2767
2769 }
2770 }
2771 }
2772 }
2773 break;
2774 }
2776 {
2778 break;
2779
2780 if (targets.empty())
2781 break;
2782
2784
2789
2790
2791
2792
2793
2794 float factor = std::exp(k * delta_phi);
2795
2796
2797 float summonRadius = a;
2798
2800 {
2801
2802
2804
2805 do
2806 {
2808 summonPosition.RelocatePolarOffset(phi, summonRadius);
2809
2811
2812 phi += delta_phi;
2813 summonRadius *= factor;
2814 } while (summonRadius <= r_max);
2815 }
2816
2817 break;
2818 }
2820 {
2822 break;
2823
2825
2828
2830 {
2831 float deltaAngle = 0.0f;
2832 if (radius > 0)
2833 deltaAngle = distInARow / radius;
2834
2836 if (deltaAngle > 0)
2837 count += coneAngle / deltaAngle;
2838
2839 float currentAngle = -static_cast<float>(count) * deltaAngle / 2.0f;
2840
2843 else if (!targets.empty())
2844 {
2846 }
2847
2848 for (
uint32 index = 0; index < count; ++index)
2849 {
2851 spawnPosition.RelocatePolarOffset(currentAngle, radius);
2852 currentAngle += deltaAngle;
2853
2855 }
2856 }
2857
2858 break;
2859 }
2861 {
2863 {
2865 {
2866 playerTarget->RemoveArenaSpellCooldowns();
2868 playerTarget->RemoveAurasDueToSpell(57723);
2869 playerTarget->RemoveAurasDueToSpell(2825);
2870 playerTarget->RemoveAurasDueToSpell(32182);
2871 }
2872 }
2873
2874 break;
2875 }
2877 {
2880 {
2881 if (targets.empty())
2882 break;
2883
2885 {
2887 {
2889 {
2890 unitTarget->AI()->DoAction(actionId);
2891 }
2892 }
2894 {
2895 gobjTarget->AI()->DoAction(actionId);
2896 }
2897 }
2898
2899 }
2900 else
2901 {
2904 {
2905 instanceScript = baseObj->GetInstanceScript();
2906 }
2907
2909 {
2911 }
2912
2913 if (instanceScript)
2914 {
2915 instanceScript->
DoAction(actionId);
2916 }
2917 }
2918 break;
2919 }
2921 {
2923 break;
2924
2926 break;
2927 }
2929 {
2931 {
2934 }
2935 break;
2936 }
2938 {
2940 if (
Unit* targetUnit = target->ToUnit())
2941 targetUnit->SetHealth(targetUnit->CountPctFromMaxHealth(e.action.setHealthPct.percent));
2942 break;
2943 }
2945 {
2948 float speed = float(speedInteger) + float(speedFraction) / std::pow(10, std::floor(std::log10(float(speedFraction ? speedFraction : 1)) + 1));
2949
2952 target->ToCreature()->SetSpeed(
UnitMoveType(e.action.movementSpeed.movementType), speed);
2953
2954 break;
2955 }
2957 {
2959 {
2961 continue;
2962
2964 }
2965 break;
2966 }
2968 {
2970 {
2972
2974 {
2976 {
2977 guidToSend = invoker->
GetGUID();
2978 }
2979 }
2980
2982 {
2984 }
2986 {
2988 }
2989 }
2990 break;
2991 }
2993 {
2994
2996 {
2997 case 0:
2998 {
3000 {
3002 {
3005 c->DespawnOrUnsummon();
3006 }
3007 }
3008 break;
3009 }
3010 case 1:
3011 {
3013 {
3015 {
3017 c->Respawn(true);
3019 }
3020 }
3021 break;
3022 }
3023 case 2:
3024 {
3026 {
3028 {
3030
3031
3034 else
3035 c->Respawn(true);
3036
3037
3040
3041
3044 }
3045 }
3046 break;
3047 }
3048 default:
3049 break;
3050 }
3051 break;
3052 }
3054 {
3056
3058 {
3060 {
3062 }
3063 }
3064 break;
3065 }
3067 {
3069 break;
3070
3072
3075
3077 {
3079 {
3083 }
3084 break;
3085 }
3086
3088 {
3089 float currentAngle = startAngle + (itr * stepAngle);
3091 }
3092
3093 break;
3094 }
3096 {
3098 {
3100 {
3103 }
3104 }
3105 break;
3106 }
3108 {
3110 {
3113 target->ToCreature()->GetMotionMaster()->MoveIdle();
3114
3115 break;
3116 }
3117
3118 uint8 membCount = targets.size();
3122 {
3124 {
3125 float angle = (membCount > 4 ? (M_PI * 2)/membCount : (M_PI / 2));
3127 {
3129 {
3131 itr++;
3132 }
3133 }
3134 break;
3135 }
3137 {
3139 {
3141 {
3143 itr++;
3144 }
3145 }
3146 break;
3147 }
3149 {
3151 {
3153 {
3155 itr++;
3156 }
3157 }
3158 break;
3159 }
3161 {
3163 {
3165 {
3167 itr++;
3168 }
3169 }
3170 break;
3171 }
3173 {
3175 {
3177 {
3179 itr++;
3180 }
3181 }
3182 break;
3183 }
3185 {
3187 {
3189 {
3191 itr++;
3192 }
3193 }
3194 break;
3195 }
3196 default:
3197 break;
3198 }
3199
3200 break;
3201 }
3203 {
3205 {
3206 case 0:
3207 {
3209 target->ToCreature()->SetFacingTo((target->ToCreature()->HasUnitMovementFlag(
MOVEMENTFLAG_ONTRANSPORT) && target->ToCreature()->GetTransGUID() ? target->ToCreature()->GetTransportHomePosition() : target->ToCreature()->GetHomePosition()).GetOrientation());
3210
3211 break;
3212 }
3213 case 1:
3214 {
3216 target->ToCreature()->SetFacingTo(e.target.o);
3217
3218 break;
3219 }
3220 case 2:
3221 {
3223 target->ToCreature()->SetFacingToObject(
me);
3224
3225 break;
3226 }
3227 case 3:
3228 {
3230 GetTargets(facingTargets,
CreateSmartEvent(
SMART_EVENT_UPDATE_IC, 0, 0, 0, 0, 0, 0, 0,
SMART_ACTION_NONE, 0, 0, 0, 0, 0, 0, (
SMARTAI_TARGETS)e.
action.
orientationTarget.
targetType, e.
action.
orientationTarget.
targetParam1, e.
action.
orientationTarget.
targetParam2, e.
action.
orientationTarget.
targetParam3, e.
action.
orientationTarget.
targetParam4, 0), unit);
3231
3234 target->ToCreature()->SetFacingToObject(facingTarget);
3235
3236 break;
3237 }
3238 default:
3239 break;
3240 }
3241 break;
3242 }
3244 {
3246 {
3248 {
3250 {
3253 }
3254 }
3255 }
3256
3257 break;
3258 }
3260 {
3262 {
3264 {
3266 {
3270 }
3271 }
3272 }
3273
3274 break;
3275 }
3277 {
3280 target->ToUnit()->StopMoving();
3281
3282 break;
3283 }
3285 {
3288 target->ToUnit()->PauseMovement(e.action.move.timer);
3289
3290 break;
3291 }
3293 {
3296 target->ToUnit()->ResumeMovement(e.action.move.timer);
3297
3298 break;
3299 }
3301 {
3303 break;
3304 }
3306 {
3309 {
3312 }
3313 break;
3314 }
3316 {
3319 target->ToUnit()->SetAnimTier(
AnimTier(e.action.animTier.animTier));
3320 break;
3321 }
3323 {
3325 {
3327 {
3329 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_SET_GOSSIP_MENU: Creature {} set gossip menu to {}",
3331 }
3332 }
3333 break;
3334 }
3335 default:
3337 break;
3338 }
3339
3341 {
3343 if (linked.has_value())
3344 {
3345 auto& linkedEvent = linked.value().get();
3347 executionStack.emplace_back(SmartScriptFrame{ linkedEvent, unit, var0, var1, bvar, spell, gob });
3348 else
3349 LOG_ERROR(
"sql.sql",
"SmartScript::ProcessAction: Entry {} SourceType {}, Event {}, Link Event {} found but has wrong type (should be 61, is {}).", e.
entryOrGuid, e.
GetScriptType(), e.
event_id, e.
link, linkedEvent.GetEventType());
3350 }
3351 else
3353 }
3354}
npc
Definition BattlegroundSA.h:47
#define DEFAULT_LOCALE
Definition Common.h:131
#define MAX_EQUIPMENT_ITEMS
Definition CreatureData.h:35
@ TEXT_RANGE_NORMAL
Definition CreatureTextMgr.h:30
std::int8_t int8
Definition Define.h:105
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
Definition Duration.h:27
std::chrono::seconds Seconds
Seconds shorthand typedef.
Definition Duration.h:30
#define sGameEventMgr
Definition GameEventMgr.h:201
GOState
Definition GameObjectData.h:704
LootState
Definition GameObject.h:109
@ GO_READY
Definition GameObject.h:111
EncounterState
Definition InstanceScript.h:57
@ BROADCAST_TEXT_CALL_FOR_HELP
Definition Language.h:24
@ BROADCAST_TEXT_FLEE_FOR_ASSIST
Definition Language.h:25
@ MOTION_SLOT_CONTROLLED
Definition MotionMaster.h:65
@ MOTION_SLOT_ACTIVE
Definition MotionMaster.h:64
PathSource
Definition MotionMaster.h:93
ForcedMovement
Definition MotionMaster.h:84
@ FORCED_MOVEMENT_NONE
Definition MotionMaster.h:85
AnimTier
Definition MotionMaster.h:99
#define NOMINAL_MELEE_RANGE
Definition ObjectDefines.h:47
#define sObjectMgr
Definition ObjectMgr.h:1686
TempSummonType
Definition Object.h:47
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:50
@ TEMPSUMMON_CORPSE_DESPAWN
Definition Object.h:52
float frand(float min, float max)
Definition Random.cpp:57
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
void SendGossipMenuFor(Player *player, uint32 npcTextID, ObjectGuid const &guid)
Definition ScriptedGossip.cpp:45
void ClearGossipMenuFor(Player *player)
Definition ScriptedGossip.cpp:22
@ GAMEOBJECT_TYPE_DOOR
Definition SharedDefines.h:1571
@ POWER_MANA
Definition SharedDefines.h:280
@ CHAT_MSG_MONSTER_EMOTE
Definition SharedDefines.h:3408
@ CHAT_MSG_ADDON
Definition SharedDefines.h:3391
@ LANG_UNIVERSAL
Definition SharedDefines.h:746
@ LANG_ADDON
Definition SharedDefines.h:764
@ SPELL_ATTR2_IGNORE_LINE_OF_SIGHT
Definition SharedDefines.h:469
@ TEAM_NEUTRAL
Definition SharedDefines.h:773
SpellCastResult
Definition SharedDefines.h:959
@ SPELL_FAILED_OUT_OF_RANGE
Definition SharedDefines.h:1057
@ SPELL_CAST_OK
Definition SharedDefines.h:1149
@ SPELL_FAILED_SPELL_IN_PROGRESS
Definition SharedDefines.h:1065
@ SMART_EVENT_FLAG_TEMP_IGNORE_CHANCE_ROLL
Definition SmartScriptMgr.h:1945
SMARTAI_TARGETS
Definition SmartScriptMgr.h:1535
@ SMART_TARGET_RANDOM_POINT
Definition SmartScriptMgr.h:1574
#define sSmartWaypointMgr
Definition SmartScriptMgr.h:2248
SMART_ACTION
Definition SmartScriptMgr.h:541
@ SMART_ACTION_REMOVE_TIMED_EVENT
Definition SmartScriptMgr.h:616
@ SMART_ACTION_NONE
Definition SmartScriptMgr.h:542
@ SMART_ACTION_SET_GO_FLAG
Definition SmartScriptMgr.h:646
@ SMART_ACTION_UPDATE_TEMPLATE
Definition SmartScriptMgr.h:578
@ SMART_ACTION_SET_HEALTH_REGEN
Definition SmartScriptMgr.h:644
@ SMART_ACTION_SET_GOSSIP_MENU
Definition SmartScriptMgr.h:727
@ SMART_ACTION_ACTIVATE_GOBJECT
Definition SmartScriptMgr.h:551
@ SMART_ACTION_GAME_EVENT_START
Definition SmartScriptMgr.h:654
@ SMART_ACTION_CALL_RANDOM_RANGE_TIMED_ACTIONLIST
Definition SmartScriptMgr.h:630
@ SMART_ACTION_REMOVE_UNIT_FIELD_BYTES_1
Definition SmartScriptMgr.h:633
@ SMART_ACTION_SET_INST_DATA64
Definition SmartScriptMgr.h:577
@ SMART_ACTION_SET_FACTION
Definition SmartScriptMgr.h:544
@ SMART_ACTION_THREAT_SINGLE_PCT
Definition SmartScriptMgr.h:555
@ SMART_ACTION_OFFER_QUEST
Definition SmartScriptMgr.h:549
@ SMART_ACTION_REMOVE_ALL_GAMEOBJECTS
Definition SmartScriptMgr.h:668
@ SMART_ACTION_RISE_UP
Definition SmartScriptMgr.h:656
@ SMART_ACTION_SET_INGAME_PHASE_MASK
Definition SmartScriptMgr.h:586
@ SMART_ACTION_SET_UNIT_FIELD_BYTES_1
Definition SmartScriptMgr.h:632
@ SMART_ACTION_CLOSE_GOSSIP
Definition SmartScriptMgr.h:614
@ SMART_ACTION_DISABLE_EVADE
Definition SmartScriptMgr.h:659
@ SMART_ACTION_CONE_SUMMON
Definition SmartScriptMgr.h:706
@ SMART_ACTION_ADD_GO_FLAG
Definition SmartScriptMgr.h:647
@ SMART_ACTION_ESCORT_START
Definition SmartScriptMgr.h:595
@ SMART_ACTION_ADD_DYNAMIC_FLAG
Definition SmartScriptMgr.h:637
@ SMART_ACTION_KILL_UNIT
Definition SmartScriptMgr.h:593
@ SMART_ACTION_LOAD_EQUIPMENT
Definition SmartScriptMgr.h:666
@ SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS
Definition SmartScriptMgr.h:557
@ SMART_ACTION_ATTACK_START
Definition SmartScriptMgr.h:591
@ SMART_ACTION_MOVEMENT_RESUME
Definition SmartScriptMgr.h:723
@ SMART_ACTION_SET_UNIT_FLAG
Definition SmartScriptMgr.h:560
@ SMART_ACTION_NO_ENVIRONMENT_UPDATE
Definition SmartScriptMgr.h:699
@ SMART_ACTION_CALL_GROUPEVENTHAPPENS
Definition SmartScriptMgr.h:568
@ SMART_ACTION_MOUNT_TO_ENTRY_OR_MODEL
Definition SmartScriptMgr.h:585
@ SMART_ACTION_INVOKER_CAST
Definition SmartScriptMgr.h:676
@ SMART_ACTION_MOVEMENT_STOP
Definition SmartScriptMgr.h:721
@ SMART_ACTION_SET_SCALE
Definition SmartScriptMgr.h:714
@ SMART_ACTION_JUMP_TO_POS
Definition SmartScriptMgr.h:639
@ SMART_ACTION_CALL_RANDOM_TIMED_ACTIONLIST
Definition SmartScriptMgr.h:629
@ SMART_ACTION_SEND_GOSSIP_MENU
Definition SmartScriptMgr.h:640
@ SMART_ACTION_SET_COUNTER
Definition SmartScriptMgr.h:605
@ SMART_ACTION_FLEE_FOR_ASSIST
Definition SmartScriptMgr.h:567
@ SMART_ACTION_EQUIP
Definition SmartScriptMgr.h:613
@ SMART_ACTION_SET_ROOT
Definition SmartScriptMgr.h:645
@ SMART_ACTION_ATTACK_STOP
Definition SmartScriptMgr.h:711
@ SMART_ACTION_SUMMON_GO
Definition SmartScriptMgr.h:592
@ SMART_ACTION_SET_HOVER
Definition SmartScriptMgr.h:693
@ SMART_ACTION_SIMPLE_TALK
Definition SmartScriptMgr.h:626
@ SMART_ACTION_STOP_MOTION
Definition SmartScriptMgr.h:698
@ SMART_ACTION_VORTEX_SUMMON
Definition SmartScriptMgr.h:708
@ SMART_ACTION_WORLD_SCRIPT
Definition SmartScriptMgr.h:724
@ SMART_ACTION_MUSIC
Definition SmartScriptMgr.h:702
@ SMART_ACTION_SET_ORIENTATION_TARGET
Definition SmartScriptMgr.h:718
@ SMART_ACTION_SET_UNIT_MOVEMENT_FLAGS
Definition SmartScriptMgr.h:690
@ SMART_ACTION_ADD_AURA
Definition SmartScriptMgr.h:617
@ SMART_ACTION_THREAT_ALL_PCT
Definition SmartScriptMgr.h:556
@ SMART_ACTION_WAYPOINT_START
Definition SmartScriptMgr.h:719
@ SMART_ACTION_ESCORT_STOP
Definition SmartScriptMgr.h:597
@ SMART_ACTION_RESPAWN_TARGET
Definition SmartScriptMgr.h:612
@ SMART_ACTION_FOLLOW_GROUP
Definition SmartScriptMgr.h:717
@ SMART_ACTION_SOUND
Definition SmartScriptMgr.h:546
@ SMART_ACTION_ESCORT_PAUSE
Definition SmartScriptMgr.h:596
@ SMART_ACTION_MOVE_TO_POS_TARGET
Definition SmartScriptMgr.h:687
@ SMART_ACTION_SET_MOVEMENT_SPEED
Definition SmartScriptMgr.h:678
@ SMART_ACTION_PLAY_CINEMATIC
Definition SmartScriptMgr.h:677
@ SMART_ACTION_ADD_NPC_FLAG
Definition SmartScriptMgr.h:624
@ SMART_ACTION_EVADE
Definition SmartScriptMgr.h:566
@ SMART_ACTION_FAIL_QUEST
Definition SmartScriptMgr.h:548
@ SMART_ACTION_INTERRUPT_SPELL
Definition SmartScriptMgr.h:634
@ SMART_ACTION_ADD_POWER
Definition SmartScriptMgr.h:651
@ SMART_ACTION_SET_ANIM_TIER
Definition SmartScriptMgr.h:726
@ SMART_ACTION_REMOVE_DYNAMIC_FLAG
Definition SmartScriptMgr.h:638
@ SMART_ACTION_RANDOM_SOUND
Definition SmartScriptMgr.h:657
@ SMART_ACTION_RANDOM_MUSIC
Definition SmartScriptMgr.h:703
@ SMART_ACTION_SET_COMBAT_DISTANCE
Definition SmartScriptMgr.h:691
@ SMART_ACTION_SET_POWER
Definition SmartScriptMgr.h:650
@ SMART_ACTION_SEND_TARGET_TO_TARGET
Definition SmartScriptMgr.h:642
@ SMART_ACTION_REMOVE_POWER
Definition SmartScriptMgr.h:652
@ SMART_ACTION_ADD_IMMUNITY
Definition SmartScriptMgr.h:694
@ SMART_ACTION_SET_DYNAMIC_FLAG
Definition SmartScriptMgr.h:636
@ SMART_ACTION_FALL
Definition SmartScriptMgr.h:696
@ SMART_ACTION_GO_SET_GO_STATE
Definition SmartScriptMgr.h:660
@ SMART_ACTION_CUSTOM_CAST
Definition SmartScriptMgr.h:705
@ SMART_ACTION_REMOVE_ITEM
Definition SmartScriptMgr.h:599
@ SMART_ACTION_SEND_GO_CUSTOM_ANIM
Definition SmartScriptMgr.h:635
@ SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL
Definition SmartScriptMgr.h:545
@ SMART_ACTION_REMOVE_UNIT_FLAG
Definition SmartScriptMgr.h:561
@ SMART_ACTION_RANDOM_PHASE
Definition SmartScriptMgr.h:572
@ SMART_ACTION_SET_EMOTE_STATE
Definition SmartScriptMgr.h:559
@ SMART_ACTION_CROSS_CAST
Definition SmartScriptMgr.h:628
@ SMART_ACTION_GAME_EVENT_STOP
Definition SmartScriptMgr.h:653
@ SMART_ACTION_SCRIPTED_SPAWN
Definition SmartScriptMgr.h:713
@ SMART_ACTION_ESCORT_RESUME
Definition SmartScriptMgr.h:607
@ SMART_ACTION_CALL_SCRIPT_RESET
Definition SmartScriptMgr.h:620
@ SMART_ACTION_CU_ENCOUNTER_START
Definition SmartScriptMgr.h:709
@ SMART_ACTION_COMBAT_STOP
Definition SmartScriptMgr.h:569
@ SMART_ACTION_EXIT_VEHICLE
Definition SmartScriptMgr.h:689
@ SMART_ACTION_SET_HEALTH_PCT
Definition SmartScriptMgr.h:680
@ SMART_ACTION_AUTO_ATTACK
Definition SmartScriptMgr.h:562
@ SMART_ACTION_SET_INVINCIBILITY_HP_LEVEL
Definition SmartScriptMgr.h:584
@ SMART_ACTION_SET_VISIBILITY
Definition SmartScriptMgr.h:589
@ SMART_ACTION_RANDOM_PHASE_RANGE
Definition SmartScriptMgr.h:573
@ SMART_ACTION_MOVEMENT_PAUSE
Definition SmartScriptMgr.h:722
@ SMART_ACTION_GO_SET_LOOT_STATE
Definition SmartScriptMgr.h:641
@ SMART_ACTION_PLAYER_TALK
Definition SmartScriptMgr.h:707
@ SMART_ACTION_SELF_CAST
Definition SmartScriptMgr.h:627
@ SMART_ACTION_SET_SWIM
Definition SmartScriptMgr.h:603
@ SMART_ACTION_SET_SIGHT_DIST
Definition SmartScriptMgr.h:663
@ SMART_ACTION_SET_INST_DATA
Definition SmartScriptMgr.h:576
@ SMART_ACTION_REMOVE_GO_FLAG
Definition SmartScriptMgr.h:648
@ SMART_ACTION_LOAD_GRID
Definition SmartScriptMgr.h:701
@ SMART_ACTION_CALL_FOR_HELP
Definition SmartScriptMgr.h:581
@ SMART_ACTION_SUMMON_RADIAL
Definition SmartScriptMgr.h:715
@ SMART_ACTION_ADD_THREAT
Definition SmartScriptMgr.h:665
@ SMART_ACTION_DISMOUNT
Definition SmartScriptMgr.h:692
@ SMART_ACTION_TELEPORT
Definition SmartScriptMgr.h:604
@ SMART_ACTION_PLAYMOVIE
Definition SmartScriptMgr.h:610
@ SMART_ACTION_TRIGGER_RANDOM_TIMED_EVENT
Definition SmartScriptMgr.h:667
@ SMART_ACTION_FOLLOW
Definition SmartScriptMgr.h:571
@ SMART_ACTION_PLAY_EMOTE
Definition SmartScriptMgr.h:547
@ SMART_ACTION_SET_CORPSE_DELAY
Definition SmartScriptMgr.h:658
@ SMART_ACTION_WAYPOINT_DATA_RANDOM
Definition SmartScriptMgr.h:720
@ SMART_ACTION_SET_GUID
Definition SmartScriptMgr.h:712
@ SMART_ACTION_SET_SHEATH
Definition SmartScriptMgr.h:582
@ SMART_ACTION_SET_ORIENTATION
Definition SmartScriptMgr.h:608
@ SMART_ACTION_SET_NPC_FLAG
Definition SmartScriptMgr.h:623
@ SMART_ACTION_MOVE_TO_POS
Definition SmartScriptMgr.h:611
@ SMART_ACTION_RANDOM_EMOTE
Definition SmartScriptMgr.h:552
@ SMART_ACTION_INC_EVENT_PHASE
Definition SmartScriptMgr.h:565
@ SMART_ACTION_CREATE_TIMED_EVENT
Definition SmartScriptMgr.h:609
@ SMART_ACTION_SET_EVENT_FLAG_RESET
Definition SmartScriptMgr.h:697
@ SMART_ACTION_DIE
Definition SmartScriptMgr.h:579
@ SMART_ACTION_RESET_SCRIPT_BASE_OBJECT
Definition SmartScriptMgr.h:619
@ SMART_ACTION_REMOVE_NPC_FLAG
Definition SmartScriptMgr.h:625
@ SMART_ACTION_SET_FLY
Definition SmartScriptMgr.h:602
@ SMART_ACTION_INSTALL_AI_TEMPLATE
Definition SmartScriptMgr.h:600
@ SMART_ACTION_SUMMON_CREATURE
Definition SmartScriptMgr.h:554
@ SMART_ACTION_CALL_TIMED_ACTIONLIST
Definition SmartScriptMgr.h:622
@ SMART_ACTION_SET_IN_COMBAT_WITH_ZONE
Definition SmartScriptMgr.h:580
@ SMART_ACTION_DO_ACTION
Definition SmartScriptMgr.h:710
@ SMART_ACTION_SET_HOME_POS
Definition SmartScriptMgr.h:643
@ SMART_ACTION_ADD_ITEM
Definition SmartScriptMgr.h:598
@ SMART_ACTION_SET_ACTIVE
Definition SmartScriptMgr.h:590
@ SMART_ACTION_SET_RANGED_MOVEMENT
Definition SmartScriptMgr.h:621
@ SMART_ACTION_ACTIVATE_TAXI
Definition SmartScriptMgr.h:594
@ SMART_ACTION_START_CLOSEST_WAYPOINT
Definition SmartScriptMgr.h:655
@ SMART_ACTION_SUMMON_CREATURE_GROUP
Definition SmartScriptMgr.h:649
@ SMART_ACTION_REMOVE_IMMUNITY
Definition SmartScriptMgr.h:695
@ SMART_ACTION_PLAY_SPELL_VISUAL
Definition SmartScriptMgr.h:716
@ SMART_ACTION_SET_REACT_STATE
Definition SmartScriptMgr.h:550
@ SMART_ACTION_DISABLE_REWARD
Definition SmartScriptMgr.h:725
@ SMART_ACTION_RANDOM_MOVE
Definition SmartScriptMgr.h:631
@ SMART_ACTION_OVERRIDE_SCRIPT_BASE_OBJECT
Definition SmartScriptMgr.h:618
@ SMART_ACTION_TRIGGER_TIMED_EVENT
Definition SmartScriptMgr.h:615
@ SMART_ACTION_REMOVEAURASFROMSPELL
Definition SmartScriptMgr.h:570
@ SMART_ACTION_FLEE
Definition SmartScriptMgr.h:664
@ SMART_ACTION_ZONE_UNDER_ATTACK
Definition SmartScriptMgr.h:700
@ FOLLOW_TYPE_CIRCLE
Definition SmartScriptMgr.h:1965
@ FOLLOW_TYPE_SEMI_CIRCLE_BEHIND
Definition SmartScriptMgr.h:1966
@ FOLLOW_TYPE_SEMI_CIRCLE_FRONT
Definition SmartScriptMgr.h:1967
@ FOLLOW_TYPE_COLUMN
Definition SmartScriptMgr.h:1969
@ FOLLOW_TYPE_ANGULAR
Definition SmartScriptMgr.h:1970
@ FOLLOW_TYPE_LINE
Definition SmartScriptMgr.h:1968
SMART_EVENT
Definition SmartScriptMgr.h:98
@ SMART_EVENT_TIMED_EVENT_TRIGGERED
Definition SmartScriptMgr.h:158
@ SMART_EVENT_ESCORT_REACHED
Definition SmartScriptMgr.h:139
@ SMART_EVENT_LINK
Definition SmartScriptMgr.h:160
uint32 SAIBool
Definition SmartScriptMgr.h:31
SmartActionSummonCreatureFlags
Definition SmartScriptMgr.h:733
@ SMART_ESCORT_TARGETS
Definition SmartScriptMgr.h:40
@ SMARTCAST_TRIGGERED
Definition SmartScriptMgr.h:1951
@ SMARTCAST_ENABLE_COMBAT_MOVE_ON_LOS
Definition SmartScriptMgr.h:1959
@ SMARTCAST_COMBAT_MOVE
Definition SmartScriptMgr.h:1956
@ SMARTCAST_INTERRUPT_PREVIOUS
Definition SmartScriptMgr.h:1950
@ SMARTCAST_AURA_NOT_PRESENT
Definition SmartScriptMgr.h:1955
@ SMARTCAST_THREATLIST_NOT_SINGLE
Definition SmartScriptMgr.h:1957
@ SMARTCAST_TARGET_POWER_MANA
Definition SmartScriptMgr.h:1958
@ AURA_REMOVE_BY_EXPIRE
Definition SpellAuraDefines.h:395
@ SPELLVALUE_BASE_POINT1
Definition SpellDefines.h:114
@ SPELLVALUE_BASE_POINT2
Definition SpellDefines.h:115
@ SPELLVALUE_BASE_POINT0
Definition SpellDefines.h:113
TriggerCastFlags
Definition SpellDefines.h:132
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
Definition SpellDefines.h:150
@ TRIGGERED_NONE
Definition SpellDefines.h:133
#define sSpellMgr
Definition SpellMgr.h:826
#define CAST_AI(a, b)
Definition UnitAI.h:26
#define ENSURE_AI(a, b)
Definition UnitAI.h:27
@ MOVEMENTFLAG_ONTRANSPORT
Definition UnitDefines.h:378
NPCFlags
Non Player Character flags.
Definition UnitDefines.h:317
SheathState
Definition UnitDefines.h:125
@ UNIT_STATE_LOST_CONTROL
Definition UnitDefines.h:216
@ UNIT_STATE_ROOT
Definition UnitDefines.h:180
@ UNIT_STATE_NO_ENVIRONMENT_UPD
Definition UnitDefines.h:198
@ UNIT_STATE_NO_COMBAT_MOVEMENT
Definition UnitDefines.h:201
UnitMoveType
Definition UnitDefines.h:352
@ MOVE_RUN
Definition UnitDefines.h:354
@ UNIT_FLAG_SILENCED
Definition UnitDefines.h:267
ReactStates
Definition Unit.h:554
@ UNIT_FIELD_FLAGS_2
Definition UpdateFields.h:118
@ UNIT_VIRTUAL_ITEM_SLOT_ID
Definition UpdateFields.h:116
@ UNIT_FIELD_FLAGS
Definition UpdateFields.h:117
@ UNIT_NPC_EMOTESTATE
Definition UpdateFields.h:140
@ UNIT_FIELD_BYTES_1
Definition UpdateFields.h:131
@ UNIT_DYNAMIC_FLAGS
Definition UpdateFields.h:136
@ GAMEOBJECT_FLAGS
Definition UpdateFields.h:399
#define sWaypointMgr
Definition WaypointMgr.h:79
std::map< uint32, WaypointData > WaypointPath
Definition WaypointMgr.h:48
#define sWorldState
Definition WorldState.h:377
WorldStateEvent
Definition WorldState.h:42
Say
Definition boss_broodlord_lashlayer.cpp:29
Seats
Definition boss_flame_leviathan.cpp:168
phase
Definition boss_skadi.cpp:99
Definition ChatTextBuilder.h:31
Definition SpellAuras.h:87
Definition CreatureAI.h:71
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0ms)
Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
Definition CreatureAI.cpp:53
void SetReputationRewardDisabled(bool disable)
Definition Creature.h:361
void SetHomePosition(float x, float y, float z, float o)
Definition Creature.h:338
void Respawn(bool force=false)
Definition Creature.cpp:1991
void GetRespawnPosition(float &x, float &y, float &z, float *ori=nullptr, float *dist=nullptr) const
Definition Creature.cpp:2906
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition Creature.h:340
void SendZoneUnderAttackMessage(Player *attacker)
Send a message to LocalDefense channel for players opposition team in the zone.
Definition Creature.cpp:2767
void GetTransportHomePosition(float &x, float &y, float &z, float &ori) const
Definition Creature.h:345
void DoFleeToGetAssistance()
Definition Creature.cpp:1055
bool IsRooted() const
Definition Creature.h:88
void SetCorpseDelay(uint32 delay)
Definition Creature.h:74
void SetLootRewardDisabled(bool disable)
Definition Creature.h:363
void SetReactState(ReactStates state)
A creature can have 3 ReactStates : Agressive, Passive, Neutral.
Definition Creature.h:99
void LoadPath(uint32 pathid)
Definition Creature.h:349
Definition SpellDefines.h:165
void AddSpellMod(SpellValueMod mod, int32 value)
Definition SpellDefines.h:167
void AddEventAtOffset(BasicEvent *event, Milliseconds offset, uint8 eventGroup=0)
Definition EventProcessor.h:108
Definition GameObjectAI.h:33
virtual void SetData(uint32, uint32)
Definition GameObjectAI.h:62
void UseDoorOrButton(uint32 time_to_restore=0, bool alternative=false, Unit *user=nullptr)
Definition GameObject.cpp:1394
bool isSpawnedByDefault() const
Definition GameObject.h:195
void SetLootState(LootState s, Unit *unit=nullptr)
Definition GameObject.cpp:2416
void SetRespawnTime(int32 respawn)
Definition GameObject.cpp:1268
GameobjectTypes GetGoType() const
Definition GameObject.h:202
void Respawn()
Definition GameObject.cpp:1283
void DespawnOrUnsummon(Milliseconds delay=0ms, Seconds forcedRespawnTime=0s)
Definition GameObject.cpp:916
void CastSpell(Unit *target, uint32 spell)
Definition GameObject.cpp:2061
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:385
virtual void DoAction(int32)
Definition InstanceScript.h:274
static std::string GetBossStateName(uint8 state)
Definition InstanceScript.cpp:826
Definition LinkedList.h:139
bool IsEmpty() const
Definition LinkedList.h:97
Definition MapRefMgr.h:26
iterator begin()
Definition MapRefMgr.h:36
iterator end()
Definition MapRefMgr.h:37
void LoadGrid(float x, float y)
Definition Map.cpp:214
PlayerList const & GetPlayers() const
Definition Map.h:326
void MoveWaypoint(uint32 path_id, bool repeatable, PathSource pathSource=PathSource::WAYPOINT_MGR)
Move the unit following a specific path. Doesn't work with UNIT_FLAG_DISABLE_MOVE.
Definition MotionMaster.cpp:901
void MovementExpired(bool reset=true)
Definition MotionMaster.h:205
void MoveJump(Position const &pos, float speedXY, float speedZ, uint32 id=0)
Definition MotionMaster.h:254
void MoveIdle()
Definition MotionMaster.cpp:233
void MoveFollow(Unit *target, float dist, float angle, MovementSlot slot=MOTION_SLOT_ACTIVE, bool inheritWalkState=true, bool inheritSpeed=true)
The unit will follow this target. Doesn't work with UNIT_FLAG_DISABLE_MOVE.
Definition MotionMaster.cpp:446
void MovePoint(uint32 id, const Position &pos, ForcedMovement forcedMovement=FORCED_MOVEMENT_NONE, float speed=0.f, bool generatePath=true, bool forceDestination=true, std::optional< AnimTier > animTier=std::nullopt)
Definition MotionMaster.h:238
void MoveRandom(float wanderDistance=0.0f)
Enable a random movement in desired range around the unit. Doesn't work with UNIT_FLAG_DISABLE_MOVE.
Definition MotionMaster.cpp:243
static ObjectGuid const Empty
Definition ObjectGuid.h:120
std::string ToString() const
Definition ObjectGuid.cpp:47
static CreatureModel const * ChooseDisplayId(CreatureTemplate const *cinfo, CreatureData const *data=nullptr)
Definition ObjectMgr.cpp:1635
bool HasFlag(uint16 index, uint32 flag) const
Definition Object.cpp:871
virtual void SetObjectScale(float scale)
Definition Object.h:120
void GroupEventHappens(uint32 questId, WorldObject const *pEventObject)
Definition PlayerQuest.cpp:1850
void SendCinematicStart(uint32 CinematicSequenceId) const
Definition Player.cpp:5690
void PrepareGossipMenu(WorldObject *source, uint32 menuId=0, bool showQuests=false)
Definition PlayerGossip.cpp:32
void RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject *pRewardSource)
Definition Player.cpp:12723
Definition QuestDef.h:210
void SetInvincibilityHpLevel(uint32 level)
Definition SmartAI.h:185
void SetData(uint32 id, uint32 value) override
Definition SmartAI.h:164
void IncPhase(uint32 p)
Definition SmartScript.cpp:5415
void StoreTargetList(ObjectVector const &targets, uint32 id)
Definition SmartScript.h:93
void RetryLater(SmartScriptHolder &e, bool ignoreChanceRoll=false)
Definition SmartScript.cpp:5103
void StoreCounter(uint32 id, uint32 value, uint32 reset, uint32 subtract)
Definition SmartScript.h:108
std::optional< std::reference_wrapper< SmartScriptHolder > > FindLinkedEvent(uint32 link)
Definition SmartScript.h:269
std::deque< SmartScriptFrame > executionStack
Definition SmartScript.h:286
void SetPhaseReset(bool allow)
Definition SmartScript.h:205
void GetTargets(ObjectVector &targets, SmartScriptHolder const &e, WorldObject *invoker=nullptr) const
Definition SmartScript.cpp:3483
void OnReset()
Definition SmartScript.cpp:109
void InstallTemplate(SmartScriptHolder const &e)
Definition SmartScript.cpp:3371
ObjectGuid goOrigGUID
Definition SmartScript.h:229
void DecPhase(uint32 p)
Definition SmartScript.cpp:5421
ObjectGuid meOrigGUID
Definition SmartScript.h:227
Definition SpellInfo.h:316
SpellSchoolMask GetSchoolMask() const
Definition SpellInfo.cpp:1878
bool HasAttribute(SpellAttr0 attribute) const
Definition SpellInfo.h:415
int32 CalcPowerCost(Unit const *caster, SpellSchoolMask schoolMask, Spell *spell=nullptr) const
Definition SpellInfo.cpp:2297
float GetThreatListSize() const
Definition ThreatMgr.h:225
void ModifyThreatByPercent(Unit *victim, int32 percent)
Definition ThreatMgr.cpp:576
Definition VehicleDefines.h:130
virtual void SetData(uint32, uint32)
Definition UnitAI.h:219
virtual void AttackStart(Unit *)
Definition UnitAI.cpp:27
uint8 getGender() const
Definition Unit.h:838
void SetFacingToObject(WorldObject *object, Milliseconds timed=0ms)
Definition Unit.cpp:20521
void SetFacingTo(float ori)
Definition Unit.cpp:20511
void CombatStop(bool includingCast=false)
Definition Unit.cpp:10651
float GetSpeed(UnitMoveType mtype) const
Definition Unit.cpp:14601
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true, bool bySelf=false)
Definition Unit.cpp:4180
float GetSpellMinRangeForTarget(Unit const *target, SpellInfo const *spellInfo) const
Definition Unit.cpp:15285
void AddThreat(Unit *victim, float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *threatSpell=nullptr)
Definition Unit.cpp:14771
Player * GetCharmerOrOwnerPlayerOrPlayerItself() const
Definition Unit.cpp:10831
static void Kill(Unit *killer, Unit *victim, bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition Unit.cpp:17973
MotionMaster * GetMotionMaster()
Definition Unit.h:1738
void SetUnitMovementFlags(uint32 f)
Definition Unit.h:766
SpellCastResult CastCustomSpell(Unit *victim, uint32 spellId, int32 const *bp0, int32 const *bp1, int32 const *bp2, bool triggered, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1251
void SetInCombatWith(Unit *enemy, uint32 duration=0)
Definition Unit.cpp:13745
bool IsAlive() const
Definition Unit.h:1773
void StopMoving()
Definition Unit.cpp:16879
void SendPlaySpellVisual(uint32 id)
Definition Unit.cpp:19173
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition Unit.cpp:5851
virtual void SetSheath(SheathState sheathed)
Definition Unit.h:1757
float GetSpellMaxRangeForTarget(Unit const *target, SpellInfo const *spellInfo) const
Definition Unit.cpp:15265
bool HasUnitMovementFlag(uint32 f) const
Definition Unit.h:764
TransportBase * GetDirectTransport() const
Definition Unit.cpp:19029
void SendMovementFlagUpdate(bool self=false)
Definition Unit.cpp:16933
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1194
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:5032
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition Unit.cpp:14606
ObjectGuid GetTransGUID() const override
Definition Unit.cpp:19018
bool IsAIEnabled
Definition Unit.h:2079
bool HasUnitState(const uint32 f) const
Definition Unit.h:726
float GetPowerPct(Powers power) const
Definition Unit.h:1122
void SetDisableGravity(bool disable)
Definition Unit.cpp:20562
float GetMeleeRange(Unit const *target) const
Definition Unit.cpp:683
uint32 GetPower(Powers power) const
Definition Unit.h:1120
void KillSelf(bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition Unit.h:1219
void SetInFront(WorldObject const *target)
Definition Unit.cpp:20505
bool isDead() const
Definition Unit.h:1775
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition Object.cpp:2352
Map * FindMap() const
Definition Object.h:621
bool IsWithinLOSInMap(WorldObject const *obj, VMAP::ModelIgnoreFlags ignoreFlags=VMAP::ModelIgnoreFlags::Nothing, LineOfSightChecks checks=LINEOFSIGHT_ALL_CHECKS, Optional< float > collisionHeight={ }, Optional< float > combatReach={ }) const
Definition Object.cpp:1373
void GetNearPoint(WorldObject const *searcher, float &x, float &y, float &z, float searcher_size, float distance2d, float absAngle, float controlZ=0, Position const *startPos=nullptr) const
Definition Object.cpp:2637
bool GetClosePoint(float &x, float &y, float &z, float size, float distance2d=0, float angle=0, WorldObject const *forWho=nullptr, bool force=false) const
Definition Object.cpp:2710
std::string const & GetName() const
Definition Object.h:524
void AddObjectToRemoveList()
Definition Object.cpp:2144
EventProcessor m_Events
Definition Object.h:730
float GetDistance(WorldObject const *obj) const
Definition Object.cpp:1271
uint32 GetAreaId() const
Definition Object.cpp:3064
uint32 GetZoneId() const
Definition Object.cpp:3056
float GetObjectSize() const
Definition Object.cpp:2782
GameObject * SummonGameObject(uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime, bool checkTransport=true, GOSummonType summonType=GO_SUMMON_TIMED_OR_CORPSE_DESPAWN)
Definition Object.cpp:2366
void GetRandomPoint(const Position &srcPos, float distance, float &rand_x, float &rand_y, float &rand_z) const
Definition Object.cpp:1528
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
Definition Object.cpp:2429
virtual float GetCombatReach() const
Definition Object.h:502
Creature * SummonTrigger(float x, float y, float z, float ang, uint32 dur, bool setLevel=false, CreatureAI *(*GetAI)(Creature *)=nullptr)
Definition Object.cpp:2401
Player session in the World.
Definition WorldSession.h:375
virtual void SetData(uint32, uint32)
Definition ZoneScript.h:52
virtual void SetGuidData(uint32, ObjectGuid)
Definition ZoneScript.h:45
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
Definition Containers.h:133
std::string ToString(Type &&val, Params &&... params)
Definition StringConvert.h:250
Definition ObjectAccessor.h:61
Player * GetPlayer(Map const *, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:220
Definition CreatureData.h:169
uint32 CreatureDisplayID
Definition CreatureData.h:179
float DisplayScale
Definition CreatureData.h:180
Definition CreatureData.h:356
uint32 ItemEntry[MAX_EQUIPMENT_ITEMS]
Definition CreatureData.h:357
float m_positionZ
Definition Position.h:57
float m_positionX
Definition Position.h:55
float GetPositionZ() const
Definition Position.h:123
float m_positionY
Definition Position.h:56
float GetOrientation() const
Definition Position.h:124
void SetOrientation(float orientation)
Definition Position.h:116
float GetPositionX() const
Definition Position.h:121
void GetPosition(float &x, float &y) const
Definition Position.h:126
float GetPositionY() const
Definition Position.h:122
void RelocatePolarOffset(float angle, float dist, float z=0.0f)
Definition Position.cpp:34
float GetAngle(const Position *pos) const
Definition Position.cpp:85
Definition SmartScriptMgr.h:744
struct SmartAction::@75::@98 combatMove
uint32 followState
Definition SmartScriptMgr.h:1453
uint32 visualId
Definition SmartScriptMgr.h:1448
uint32 targetParam2
Definition SmartScriptMgr.h:848
struct SmartAction::@75::@100 incEventPhase
struct SmartAction::@75::@106 killedMonster
SAIBool disableForceDestination
Definition SmartScriptMgr.h:1205
std::array< uint32, SMART_ACTION_PARAM_COUNT > emotes
Definition SmartScriptMgr.h:831
uint32 forcedMovement
Definition SmartScriptMgr.h:1030
uint32 repeatMax
Definition SmartScriptMgr.h:1107
uint32 phaseMin
Definition SmartScriptMgr.h:933
uint32 targetsLimit
Definition SmartScriptMgr.h:839
struct SmartAction::@75::@181 movementSpeed
struct SmartAction::@75::@186 setScale
SAIBool transport
Definition SmartScriptMgr.h:1201
struct SmartAction::@75::@192 wpDataRandom
struct SmartAction::@75::@82 randomSound
struct SmartAction::@75::@120 summonGO
uint32 startAngle
Definition SmartScriptMgr.h:1441
SAIBool reset
Definition SmartScriptMgr.h:1092
std::array< uint32, SMART_ACTION_PARAM_COUNT > actionLists
Definition SmartScriptMgr.h:1155
struct SmartAction::@75::@185 scriptSpawn
uint32 delay
Definition SmartScriptMgr.h:754
struct SmartAction::@75::@163 startClosestWaypoint
uint32 random
Definition SmartScriptMgr.h:1336
uint32 quickChange
Definition SmartScriptMgr.h:1335
uint32 targetParam4
Definition SmartScriptMgr.h:1465
uint32 dist
Definition SmartScriptMgr.h:918
uint32 group
Definition SmartScriptMgr.h:1258
SAIBool disable
Definition SmartScriptMgr.h:1390
struct SmartAction::@75::@180 corpseDelay
struct SmartAction::@75::@194 worldStateScript
struct SmartAction::@75::@111 callHelp
uint32 spell
Definition SmartScriptMgr.h:836
uint32 minHP
Definition SmartScriptMgr.h:985
struct SmartAction::@75::@177 summonVortex
uint32 flags
Definition SmartScriptMgr.h:845
struct SmartAction::@75::@97 autoAttack
SAIBool loot
Definition SmartScriptMgr.h:1508
uint32 distanceBetweenSummons
Definition SmartScriptMgr.h:1351
uint32 data
Definition SmartScriptMgr.h:945
struct SmartAction::@75::@105 randomPhaseRange
uint32 entry
Definition SmartScriptMgr.h:920
struct SmartAction::@75::@91 crossCast
struct SmartAction::@75::@129 setSwim
uint32 quest
Definition SmartScriptMgr.h:815
struct SmartAction::@75::@150 moveToPosTarget
struct SmartAction::@75::@172 orientation
struct SmartAction::@75::@78 simpleTalk
uint32 triggerFlags
Definition SmartScriptMgr.h:838
struct SmartAction::@75::@87 questOffer
uint32 bp1
Definition SmartScriptMgr.h:1366
uint32 distance
Definition SmartScriptMgr.h:778
SAIBool removeObjectFromWorld
Definition SmartScriptMgr.h:980
uint32 min
Definition SmartScriptMgr.h:1104
uint32 spawnTimerMax
Definition SmartScriptMgr.h:1425
uint32 subtract
Definition SmartScriptMgr.h:1093
struct SmartAction::@75::@110 die
uint32 a
Definition SmartScriptMgr.h:1375
struct SmartAction::@75::@151 sendGossipMenu
struct SmartAction::@75::@104 randomPhase
struct SmartAction::@75::@198 setGossipMenu
struct SmartAction::@75::@133 timeEvent
SAIBool invokerGUID
Definition SmartScriptMgr.h:1417
struct SmartAction::@75::@191 wpData
uint32 percent
Definition SmartScriptMgr.h:986
uint32 dec
Definition SmartScriptMgr.h:902
uint32 milliseconds
Definition SmartScriptMgr.h:962
struct SmartAction::@75::@125 item
uint32 summonEntry
Definition SmartScriptMgr.h:1348
struct SmartAction::@75::@84 randomMusic
uint32 followType
Definition SmartScriptMgr.h:1454
uint32 instanceTarget
Definition SmartScriptMgr.h:1385
struct SmartAction::@75::@196 reward
uint32 credit
Definition SmartScriptMgr.h:921
uint32 controlled
Definition SmartScriptMgr.h:1202
uint32 alternative
Definition SmartScriptMgr.h:854
uint32 targetParam1
Definition SmartScriptMgr.h:847
uint32 mapID
Definition SmartScriptMgr.h:1085
uint32 stopMovement
Definition SmartScriptMgr.h:1342
struct SmartAction::@75::@134 movie
struct SmartAction::@75::@94 summonCreature
uint32 charges
Definition SmartScriptMgr.h:913
struct SmartAction::@75::@113 forceDespawn
struct SmartAction::@75::@103 follow
uint32 model
Definition SmartScriptMgr.h:771
uint32 duration
Definition SmartScriptMgr.h:752
SAIBool attackInvoker
Definition SmartScriptMgr.h:867
SAIBool useTalkTarget
Definition SmartScriptMgr.h:753
SAIBool run
Definition SmartScriptMgr.h:1068
struct SmartAction::@75::@176 castCustom
uint32 value
Definition SmartScriptMgr.h:1091
struct SmartAction::@75::@140 timedActionList
uint32 movementExpired
Definition SmartScriptMgr.h:1343
struct SmartAction::@75::@117 moveRandom
uint32 targetParam3
Definition SmartScriptMgr.h:849
uint32 respawnDelay
Definition SmartScriptMgr.h:1426
SAIBool swim
Definition SmartScriptMgr.h:1080
uint32 combatReach
Definition SmartScriptMgr.h:1204
uint32 sound2
Definition SmartScriptMgr.h:784
struct SmartAction::@75::@188 spellVisual
uint32 spawnPos
Definition SmartScriptMgr.h:1306
struct SmartAction::@75::@92 activateObject
struct SmartAction::@75::@167 setHomePos
struct SmartAction::@75::@161 gameEventStop
uint32 pathId2
Definition SmartScriptMgr.h:1282
uint32 creature
Definition SmartScriptMgr.h:770
struct SmartAction::@75::@190 orientationTarget
uint32 spawnTimerMin
Definition SmartScriptMgr.h:1424
struct SmartAction::@75::@132 storeTargets
struct SmartAction::@75::@114 invincHP
uint32 angle
Definition SmartScriptMgr.h:919
uint32 field
Definition SmartScriptMgr.h:944
uint32 range
Definition SmartScriptMgr.h:859
struct SmartAction::@75::@95 threatPCT
struct SmartAction::@75::@89 randomEmote
struct SmartAction::@75::@162 gameEventStart
uint32 flag
Definition SmartScriptMgr.h:1125
uint32 sound3
Definition SmartScriptMgr.h:785
uint32 targetsummon
Definition SmartScriptMgr.h:1019
struct SmartAction::@75::@145 jump
uint32 chance
Definition SmartScriptMgr.h:1108
struct SmartAction::@75::@131 setCounter
uint32 state
Definition SmartScriptMgr.h:826
struct SmartAction::@75::@90 cast
struct SmartAction::@75::@108 setInstanceData64
uint32 sound1
Definition SmartScriptMgr.h:783
struct SmartAction::@75::@80 morphOrMount
struct SmartAction::@75::@116 setData
uint32 forceRespawnTimer
Definition SmartScriptMgr.h:979
uint32 speed
Definition SmartScriptMgr.h:1074
uint32 sound4
Definition SmartScriptMgr.h:786
struct SmartAction::@75::@147 flee
uint32 targetType
Definition SmartScriptMgr.h:846
uint32 repetitions
Definition SmartScriptMgr.h:1440
struct SmartAction::@75::@174 coneSummon
uint32 aliveState
Definition SmartScriptMgr.h:923
SAIBool onlySelf
Definition SmartScriptMgr.h:777
uint32 attackScriptOwner
Definition SmartScriptMgr.h:868
uint32 speedxy
Definition SmartScriptMgr.h:1178
uint32 pointId
Definition SmartScriptMgr.h:1200
SAIBool attack
Definition SmartScriptMgr.h:886
uint32 repeatMin
Definition SmartScriptMgr.h:1106
struct SmartAction::@75::@122 wpStart
uint32 scale
Definition SmartScriptMgr.h:1433
SAIBool fly
Definition SmartScriptMgr.h:1073
uint32 textGroupID
Definition SmartScriptMgr.h:751
uint32 castFlags
Definition SmartScriptMgr.h:837
struct SmartAction::@75::@179 disableEvade
std::array< uint32, SMART_ACTION_PARAM_COUNT > phases
Definition SmartScriptMgr.h:928
SAIBool dontDespawn
Definition SmartScriptMgr.h:1428
uint32 turnAngle
Definition SmartScriptMgr.h:1337
uint32 textId
Definition SmartScriptMgr.h:1358
uint32 gossipMenuId
Definition SmartScriptMgr.h:1216
uint32 speedz
Definition SmartScriptMgr.h:1179
SAIBool repeat
Definition SmartScriptMgr.h:1032
struct SmartAction::@75::@173 stopMotion
uint32 gossipNpcTextId
Definition SmartScriptMgr.h:1217
uint32 mask
Definition SmartScriptMgr.h:991
uint32 pathId1
Definition SmartScriptMgr.h:1281
uint32 phi_delta
Definition SmartScriptMgr.h:1378
uint32 count
Definition SmartScriptMgr.h:1053
struct SmartAction::@75::@112 setSheath
uint32 inc
Definition SmartScriptMgr.h:901
uint32 phaseMax
Definition SmartScriptMgr.h:934
struct SmartAction::@75::@130 teleport
uint32 timer
Definition SmartScriptMgr.h:1395
uint32 ContactDistance
Definition SmartScriptMgr.h:1203
struct SmartAction::@75::@79 faction
PathSource pathSource
Definition SmartScriptMgr.h:1285
struct SmartAction::@75::@135 equip
uint32 k
Definition SmartScriptMgr.h:1376
uint32 distanceBetweenRings
Definition SmartScriptMgr.h:1350
uint32 coneLength
Definition SmartScriptMgr.h:1352
uint32 counterId
Definition SmartScriptMgr.h:1090
SAIBool withEmote
Definition SmartScriptMgr.h:968
struct SmartAction::@75::@146 movementFlag
uint32 param
Definition SmartScriptMgr.h:1490
uint32 max
Definition SmartScriptMgr.h:1105
uint32 selfJump
Definition SmartScriptMgr.h:1180
struct SmartAction::@75::@183 cinematic
uint32 maxId
Definition SmartScriptMgr.h:1318
uint32 r_max
Definition SmartScriptMgr.h:1377
struct SmartAction::@75::@136 unitFlag
uint32 speedFraction
Definition SmartScriptMgr.h:1402
struct SmartAction::@75::@88 react
struct SmartAction::@75::@119 setActive
struct SmartAction::@75::@159 creatureGroup
SAIBool fail
Definition SmartScriptMgr.h:1047
struct SmartAction::@75::@124 wpStop
SAIBool directAdd
Definition SmartScriptMgr.h:821
uint32 bp2
Definition SmartScriptMgr.h:1367
uint32 disableGravity
Definition SmartScriptMgr.h:1075
uint32 sound
Definition SmartScriptMgr.h:776
uint32 threatINC
Definition SmartScriptMgr.h:874
uint32 coneAngle
Definition SmartScriptMgr.h:1353
uint32 summonDuration
Definition SmartScriptMgr.h:1349
struct SmartAction::@75::@148 RespawnTarget
struct SmartAction::@75::@175 playerTalk
uint32 threatDEC
Definition SmartScriptMgr.h:875
SAIBool reputation
Definition SmartScriptMgr.h:1507
uint32 stepAngle
Definition SmartScriptMgr.h:1442
struct SmartAction::@75::@153 sendTargetToTarget
uint32 reactState
Definition SmartScriptMgr.h:1035
uint32 speedInteger
Definition SmartScriptMgr.h:1401
struct SmartAction::@75::@77 talk
uint32 index
Definition SmartScriptMgr.h:1418
struct SmartAction::@75::@123 wpPause
struct SmartAction::@75::@83 music
uint32 actionId
Definition SmartScriptMgr.h:1383
struct SmartAction::@75::@169 randomTimedEvent
uint32 despawnTime
Definition SmartScriptMgr.h:1018
struct SmartAction::@75::@128 setFly
uint32 goRespawnTime
Definition SmartScriptMgr.h:1195
struct SmartAction::@75::@115 ingamePhaseMask
uint32 factionID
Definition SmartScriptMgr.h:765
uint32 eventId
Definition SmartScriptMgr.h:1489
struct SmartAction::@75::@189 followGroup
uint32 pathId
Definition SmartScriptMgr.h:1470
SAIBool move
Definition SmartScriptMgr.h:891
struct SmartAction::@75::@178 doAction
struct SmartAction::@75::@149 moveToPos
std::array< uint32, MAX_EQUIPMENT_ITEMS > slots
Definition SmartScriptMgr.h:1120
struct SmartAction::@75::@127 setRun
struct SmartAction::@75::@187 radialSummon
struct SmartAction::@75::@99 setEventPhase
struct SmartAction::@75::@107 setInstanceData
uint32 questID
Definition SmartScriptMgr.h:820
uint32 bp3
Definition SmartScriptMgr.h:1368
uint32 pathID
Definition SmartScriptMgr.h:1031
uint32 emote
Definition SmartScriptMgr.h:810
struct SmartAction::@75::@102 removeAura
uint32 id
Definition SmartScriptMgr.h:1025
uint32 minId
Definition SmartScriptMgr.h:1317
uint32 phase
Definition SmartScriptMgr.h:896
uint32 sheath
Definition SmartScriptMgr.h:973
uint32 isNegative
Definition SmartScriptMgr.h:1384
uint32 creditType
Definition SmartScriptMgr.h:922
struct SmartAction::@75::@141 randTimedActionList
struct SmartAction::@75::@154 setRangedMovement
struct SmartAction::@75::@184 setGuid
Definition SmartScriptMgr.h:205
uint32 repeatMin
Definition SmartScriptMgr.h:216
uint32 repeatMax
Definition SmartScriptMgr.h:217
bool runOnce
Definition SmartScriptMgr.h:2000
uint32 link
Definition SmartScriptMgr.h:1983
bool IsAreatriggerScript() const
Definition SmartScriptMgr.h:1995
uint32 event_id
Definition SmartScriptMgr.h:1982
int32 entryOrGuid
Definition SmartScriptMgr.h:1980
uint32 GetScriptType() const
Definition SmartScriptMgr.h:1990
uint32 GetTargetType() const
Definition SmartScriptMgr.h:1993
uint32 GetActionType() const
Definition SmartScriptMgr.h:1992
float o
Definition SmartScriptMgr.h:1597
uint32 maxDist
Definition SmartScriptMgr.h:1603
uint32 range
Definition SmartScriptMgr.h:1724
float x
Definition SmartScriptMgr.h:1597
uint32 self
Definition SmartScriptMgr.h:1726
struct SmartTarget::@199::@220 randomPoint
uint32 amount
Definition SmartScriptMgr.h:1725
float y
Definition SmartScriptMgr.h:1597
struct SmartTarget::@199::@203 unitRange
float z
Definition SmartScriptMgr.h:1597
Definition WaypointMgr.h:38
float z
Definition WaypointMgr.h:40
float x
Definition WaypointMgr.h:40
float y
Definition WaypointMgr.h:40