165{
167
168
170 {
173 return;
174 }
175
176
178
179 if (unit)
181 else if (gob)
183
185 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: Invoker: {} ({})", tempInvoker->GetName(), tempInvoker->GetGUID().ToString());
186
188
191 if (unit)
192 invoker = unit;
193 else if (gob)
194 invoker = gob;
195
197
199 {
201 {
204
206 {
207 if (
IsCreature((target)) && !target->ToCreature()->IsPet())
208 {
210 {
213 }
214 else
216 break;
217 }
219 {
222 break;
223 }
224 }
225
226 if (!talkTarget)
228
229 if (!talker)
230 break;
231
233 {
235 break;
236 }
237
242
245 break;
246 }
248 {
250 {
254 {
257 }
258
259 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SIMPLE_TALK: talker: {} ({}), textGroupId: {}",
261 }
262 break;
263 }
265 {
267 {
269 {
270 target->ToUnit()->HandleEmoteCommand(e.
action.
emote.emote);
271 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_PLAY_EMOTE: target: {} ({}), emote: {}",
272 target->GetName(), target->GetGUID().ToString(), e.
action.
emote.emote);
273 }
274 }
275 break;
276 }
278 {
280 {
282 {
285 else
287 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SOUND: target: {} ({}), sound: {}, onlyself: {}",
289 }
290 }
291 break;
292 }
294 {
302 for (unsigned int sound : sounds)
303 {
304 if (sound)
305 {
306 temp[count] = sound;
307 ++count;
308 }
309 }
310
311 if (count == 0)
312 {
313 break;
314 }
315
317 {
319 {
322 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_RANDOM_SOUND: target: {} ({}), sound: {}, onlyself: {}",
324 }
325 }
326
327 break;
328 }
330 {
332
334 {
336 {
338
340 {
342 if (
Player* player = i->GetSource())
343 {
345 {
347 {
349 targets.push_back(player);
350 }
351 else
352 targets.push_back(player);
353 }
354 }
355 }
356 }
357 }
358 else
360
361 if (!targets.empty())
362 {
364 {
366 {
368 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_MUSIC: target: {} ({}), sound: {}, onlySelf: {}, type: {}",
370 }
371 }
372 }
373 break;
374 }
376 {
378
380 {
382 {
384
386 {
388 if (
Player* player = i->GetSource())
389 {
391 {
393 {
395 targets.push_back(player);
396 }
397 else
398 targets.push_back(player);
399 }
400 }
401 }
402 }
403 }
404 else
406
407 if (targets.empty())
408 break;
409
417 for (unsigned int sound : sounds)
418 {
419 if (sound)
420 {
421 temp[count] = sound;
422 ++count;
423 }
424 }
425
426 if (count == 0)
427 {
428 break;
429 }
430
432 {
434 {
437 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_RANDOM_MUSIC: target: {} ({}), sound: {}, onlyself: {}, type: {}",
439 }
440 }
441
442 break;
443 }
445 {
447 {
449 {
451 {
453 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_FACTION: Creature entry {}, GuidLow {} set faction to {}",
455 }
456 else
457 {
459 {
460 if (target->ToCreature()->GetFaction() != ci->faction)
461 {
462 target->ToCreature()->SetFaction(ci->faction);
463 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_FACTION: Creature entry {}, GuidLow {} set faction to {}",
464 target->GetEntry(), target->GetGUID().ToString(), ci->faction);
465 }
466 }
467 }
468 }
469 }
470 break;
471 }
473 {
475 {
477 continue;
478
480 {
481
483 {
485 {
488 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL: Creature entry {}, GuidLow {} set displayid to {}",
490 }
491 }
492
493 else
494 {
496 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL: Creature entry {}, GuidLow {} set displayid to {}",
498 }
499 }
500 else
501 {
502 target->ToCreature()->DeMorph();
503 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL: Creature entry {}, GuidLow {} demorphs.",
504 target->GetEntry(), target->GetGUID().ToString());
505 }
506 }
507 break;
508 }
510 {
512 {
514 {
515 target->ToPlayer()->FailQuest(e.
action.
quest.quest);
516 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_FAIL_QUEST: Player guidLow {} fails quest {}",
517 target->GetGUID().ToString(), e.
action.
quest.quest);
518 }
519 }
520 break;
521 }
523 {
525 {
527 {
529 {
531 {
532 if (player->CanTakeQuest(q, true))
533 {
535 {
537 menu.SendQuestGiverQuestDetails(q,
me->
GetGUID(),
true);
538 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_OFFER_QUEST: Player guidLow {} - offering quest {}",
540 }
541 }
542 }
543 else
544 {
545 player->AddQuestAndCheckCompletion(q, nullptr);
546 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_OFFER_QUEST: Player guidLow {} - quest {} added",
548 }
549 }
550 }
551 }
552 break;
553 }
555 {
557 {
559 continue;
560
562 }
563 break;
564 }
566 {
567 std::vector<uint32> emotes;
569 std::back_inserter(emotes), [](
uint32 emote) { return emote != 0; });
570
572 {
574 {
576 target->ToUnit()->HandleEmoteCommand(emote);
577 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_RANDOM_EMOTE: Creature guidLow {} handle random emote {}",
578 target->GetGUID().ToString(), emote);
579 }
580 }
581 break;
582 }
584 {
586 break;
587
589 {
591 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_THREAT_ALL_PCT: Creature {} modify threat for unit {}, value {}",
593 }
594 break;
595 }
597 {
599 break;
600
602 {
604 {
606 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_THREAT_SINGLE_PCT: Creature {} modify threat for unit {}, value {}",
608 }
609 }
610 break;
611 }
613 {
615 {
616
618 if (
Vehicle* vehicle = target->ToUnit()->GetVehicleKit())
619 for (
auto & Seat : vehicle->
Seats)
621 player->AreaExploredOrEventHappens(e.action.quest.quest);
622
624 {
625 target->ToPlayer()->AreaExploredOrEventHappens(e.
action.
quest.quest);
626
627 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS: Player guidLow {} credited quest {}",
628 target->GetGUID().ToString(), e.
action.
quest.quest);
629 }
630 }
631 break;
632 }
634 {
635 if (targets.empty())
636 break;
637
639
642
645
646 bool failedSpellCast = false, successfulSpellCast = false;
647
649 {
650
653
655 continue;
656
657 if (caster && caster !=
me)
658 {
660 }
662 {
663
665 continue;
666
667
670 break;
671
672
674 continue;
675
676
679
685
687 bool isWithinMeleeRange = distanceToTarget <= meleeRange;
690
693
694
695 if (isWithinLOSInMap && isWithinMeleeRange && isRangedAttack && isTargetRooted && canCastSpell && !
me->
IsVehicle())
696 {
697 failedSpellCast = true;
698
700 continue;
701
702 float minDistance = std::max(meleeRange, spellMinRange) - distanceToTarget +
NOMINAL_MELEE_RANGE;
704 continue;
705 }
706
707 if (distanceToTarget > spellMaxRange && isWithinLOSInMap)
708 {
709 failedSpellCast = true;
710
712 continue;
713
716
717 continue;
718 }
719 else if (distanceToTarget < spellMinRange || !(isWithinLOSInMap || isSpellIgnoreLOS))
720 {
721 failedSpellCast = true;
722
724 continue;
725
729 continue;
730 }
731
734 {
737 else
739 }
740
743
745 {
750 }
751
752 if (spellCastFailed)
753 failedSpellCast = true;
754 else
755 successfulSpellCast = true;
756
757 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_CAST: Unit {} casts spell {} on target {} with castflags {}",
759 }
760 }
761
762
763 if (failedSpellCast && !successfulSpellCast)
764 {
766
767 return;
768 }
769
770 break;
771 }
773 {
774 if (targets.empty())
775 break;
776
779
782 {
784 {
786 }
787 else
788 {
790 }
791 }
792
794 {
796 if (!uTarget)
797 continue;
798
800 {
802 {
804 }
805
807 }
808 }
809 break;
810 }
812 {
813
815 if (!tempLastInvoker)
816 break;
817
818 if (targets.empty())
819 break;
820
823
825 {
827 continue;
828
829 if (!
IsUnit(tempLastInvoker))
830 continue;
831
833 {
835 {
837 }
838
841 {
843 {
845 }
846 else
847 {
849 }
850 }
851
853 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_INVOKER_CAST: Invoker {} casts spell {} on target {} with castflags {}",
855 }
856 else
857 {
858 LOG_DEBUG(
"scripts.ai",
"Spell {} not cast because it has flag SMARTCAST_AURA_NOT_PRESENT and the target {} already has the aura",
860 }
861 }
862 break;
863 }
865 {
867 {
869 {
871 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_ADD_AURA: Adding aura {} to unit {}",
873 }
874 }
875 break;
876 }
878 {
880 {
882 {
884
885
887 {
889 }
890
892 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_ACTIVATE_GOBJECT. Gameobject {} activated",
go->
GetGUID().
ToString());
893 }
894 }
895
896 break;
897 }
899 {
901 {
903 {
904 target->ToGameObject()->ResetDoorOrButton();
905 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_RESET_GOBJECT. Gameobject {} (entry: {}) reset",
906 target->GetGUID().ToString(), target->GetEntry());
907 }
908 }
909 break;
910 }
912 {
914 {
916 {
918 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_EMOTE_STATE. Unit {} set emotestate to {}",
919 target->GetGUID().ToString(), e.
action.
emote.emote);
920 }
921 }
922 break;
923 }
925 {
927 {
929 {
931 {
933 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_UNIT_FLAG. Unit {} added flag {} to UNIT_FIELD_FLAGS",
935 }
936 else
937 {
939 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_UNIT_FLAG. Unit {} added flag {} to UNIT_FIELD_FLAGS_2",
941 }
942 }
943 }
944 break;
945 }
947 {
949 {
951 {
953 {
955 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_REMOVE_UNIT_FLAG. Unit {} removed flag {} to UNIT_FIELD_FLAGS",
957 }
958 else
959 {
961 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_REMOVE_UNIT_FLAG. Unit {} removed flag {} to UNIT_FIELD_FLAGS_2",
963 }
964 }
965 }
966 break;
967 }
969 {
971 break;
972
974 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_AUTO_ATTACK: Creature: {} bool on = {}",
976 break;
977 }
979 {
981 break;
982
985 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_ALLOW_COMBAT_MOVEMENT: Creature {} bool on = {}",
987 break;
988 }
990 {
992 break;
993
995 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SET_EVENT_PHASE: Creature {} set event phase {}",
997 break;
998 }
1000 {
1002 break;
1003
1006 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_INC_EVENT_PHASE: Creature {} inc event phase by {}, "
1008 break;
1009 }
1011 {
1013 break;
1014
1017 if (target->ToCreature()->IsAIEnabled)
1018 target->ToCreature()->AI()->EnterEvadeMode();
1019
1020 break;
1021 }
1023 {
1024
1026 break;
1027
1030 {
1033 }
1034 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_FLEE_FOR_ASSIST: Creature {} DoFleeToGetAssistance",
me->
GetGUID().
ToString());
1035 break;
1036 }
1038 {
1040 break;
1041
1042
1043
1045 sai->SetSuppressEvade(true);
1046
1048
1050 sai->SetSuppressEvade(false);
1051
1052 break;
1053 }
1055 {
1057 {
1059 continue;
1060
1062
1065 {
1067 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_CALL_GROUPEVENTHAPPENS: Player {}, group credit for quest {}",
1069 }
1070
1071
1073 {
1074 for (
auto& Seat : vehicle->
Seats)
1075 {
1077 {
1079 }
1080 }
1081 }
1082 }
1083 break;
1084 }
1086 {
1088 {
1090 continue;
1091
1093 {
1095 {
1098 }
1099 else
1101 }
1102 else
1103 target->ToUnit()->RemoveAllAuras();
1104
1105 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_REMOVEAURASFROMSPELL: Unit {}, spell {}",
1107 }
1108 break;
1109 }
1111 {
1113 break;
1114
1116 {
1118 break;
1119 }
1120
1122 {
1124 {
1127 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_FOLLOW: Creature {} following target {}",
1129 break;
1130 }
1131 }
1132 break;
1133 }
1135 {
1137 break;
1138
1139 std::vector<uint32> phases;
1141 std::back_inserter(phases), [](
uint32 phase) { return phase != 0; });
1142
1145 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_RANDOM_PHASE: Creature {} sets event phase to {}",
1147 break;
1148 }
1150 {
1152 break;
1153
1156 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_RANDOM_PHASE_RANGE: Creature {} sets event phase to {}",
1158 break;
1159 }
1161 {
1163 {
1165 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: (trigger == true) Player {}, Killcredit: {}",
1167 }
1169 {
1171 break;
1172
1174 {
1176 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player {}, Killcredit: {}",
1178 }
1179 }
1180 else
1181 {
1183 {
1185 continue;
1186
1188 if (!player)
1189 continue;
1190
1192 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player {}, Killcredit: {}",
1194 }
1195 }
1196 break;
1197 }
1199 {
1201 if (!obj)
1202 obj = unit;
1203
1204 if (!obj)
1205 break;
1206
1208 if (!instance)
1209 {
1210 LOG_ERROR(
"scripts.ai.sai",
"SmartScript: Event {} attempt to set instance data without instance script. EntryOrGuid {}", e.
GetEventType(), e.
entryOrGuid);
1211 break;
1212 }
1213
1215 {
1216 case 0:
1217 {
1220 } break;
1221 case 1:
1222 {
1225 } break;
1226 default:
1227 {
1228 break;
1229 }
1230 }
1231 break;
1232 }
1234 {
1236 if (!obj)
1237 obj = unit;
1238
1239 if (!obj)
1240 break;
1241
1243 if (!instance)
1244 {
1246 break;
1247 }
1248
1249 if (targets.empty())
1250 break;
1251
1253 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_SET_INST_DATA64: Field: {}, data: {}",
1255 break;
1256 }
1258 {
1261 target->ToCreature()->UpdateEntry(e.action.updateTemplate.creature, target->ToCreature()->GetCreatureData(), e.action.updateTemplate.updateLevel != 0);
1262 break;
1263 }
1265 {
1267 {
1269 {
1271 {
1272
1274 {
1275 me->KillSelf();
1276 LOG_DEBUG("sql.sql", "SmartScript::ProcessAction: SMART_ACTION_DIE: Creature {}", me->GetGUID().ToString());
1277 }
1279 }
1280 }
1282 {
1285 }
1286 break;
1287 }
1289 {
1290 if (targets.empty())
1291 break;
1292
1294 {
1297
1300 if (
IsPlayer(unit) && !unit->ToPlayer()->isDead())
1301 {
1303 }
1304 }
1305 else
1306 {
1308 {
1310 {
1311 target->ToCreature()->SetInCombatWithZone();
1312 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_SET_IN_COMBAT_WITH_ZONE: Creature {}, target: {}",
1314 }
1315 }
1316 }
1317
1318 break;
1319 }
1321 {
1323 {
1325 {
1328 {
1331 }
1332 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_CALL_FOR_HELP: Creature {}, target: {}",
1334 }
1335 }
1336 break;
1337 }
1339 {
1341 {
1343 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_SET_SHEATH: Creature {}, State: {}",
1345 }
1346 break;
1347 }
1349 {
1351 {
1353 {
1355 LOG_ERROR(
"sql.sql",
"SmartScript: SMART_ACTION_FORCE_DESPAWN has removeObjectFromWorld set. delay and forceRespawnTimer ignored.");
1356
1358 creature->AddObjectToRemoveList();
1361 }
1362 else
1363 {
1365
1366
1367 if (despawnDelay <= 0ms)
1368 despawnDelay = 1ms;
1369
1372 creature->DespawnOrUnsummon(despawnDelay, forceRespawnTimer);
1375 }
1376 }
1377
1378 break;
1379 }
1381 {
1383 {
1388 }
1389 break;
1390 }
1392 {
1394 {
1396 continue;
1397
1399 {
1401 {
1404 }
1405 else
1407 }
1408 else
1409 target->ToUnit()->Dismount();
1410 }
1411 break;
1412 }
1414 {
1416 {
1418 {
1420 if (!ai)
1421 continue;
1422
1425 else
1427 }
1428 }
1429 break;
1430 }
1432 {
1434 {
1436 {
1438
1440 {
1443 else
1445 }
1446 else
1448 }
1450 {
1452
1454 {
1457 else
1459 }
1460 else
1462 }
1463 }
1464 break;
1465 }
1467 {
1469 break;
1470
1471 float x, y, z;
1474 break;
1475 }
1477 {
1479 break;
1480
1482 break;
1483 }
1485 {
1488 target->ToUnit()->SetVisible(e.action.visibility.state);
1489
1490 break;
1491 }
1493 {
1495 target->setActive(e.action.setActive.state);
1496 break;
1497 }
1499 {
1501 break;
1502
1503 if (targets.empty())
1504 break;
1505
1506
1509 break;
1510 }
1512 {
1514 if (
Unit* unitTarget = target->ToUnit())
1515 unitTarget->AttackStop();
1516 break;
1517 }
1519 {
1523 if (!summoner)
1524 break;
1525
1527
1529 {
1534 {
1537 else
1540 {
1542 summon->AI()->AttackStart(unit);
1544 summon->AI()->AttackStart(
me);
1545 }
1546 }
1547 break;
1548 }
1549
1550 float x, y, z, o;
1552 {
1553 target->GetPosition(x, y, z, o);
1559 {
1561 summon->AI()->AttackStart(unit);
1563 summon->AI()->AttackStart(target->ToUnit());
1565 summon->AI()->AttackStart(
me);
1566 }
1567 }
1568
1570 break;
1571
1573 {
1575 summon->AI()->AttackStart(unit);
1577 summon->AI()->AttackStart(
me);
1578 }
1579 break;
1580 }
1582 {
1584 break;
1585
1586 if (!targets.empty())
1587 {
1588 float x, y, z, o;
1590 {
1591
1592
1593
1594
1595 target->GetPosition(x, y, z, o);
1602 else
1604 }
1605 }
1606
1608 break;
1609
1611 break;
1612 }
1614 {
1616 {
1618 continue;
1619
1620 Unit::Kill(target->ToUnit(), target->ToUnit());
1621 }
1622
1623 break;
1624 }
1626 {
1628 break;
1629 }
1631 {
1633 {
1635 continue;
1636
1638 }
1639 break;
1640 }
1642 {
1644 {
1646 continue;
1647
1649 }
1650 break;
1651 }
1653 {
1655 break;
1656 }
1658 {
1660 {
1665 }
1666 break;
1667 }
1669 {
1671 break;
1672
1674
1677
1678
1680 break;
1681 }
1683 {
1685 {
1687 {
1689 }
1690 }
1691
1692 break;
1693 }
1695 {
1697 break;
1698
1700 break;
1701 }
1703 {
1704 if (!targets.empty())
1705 {
1707 {
1709 {
1712 else
1713 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SET_COUNTER is not using SmartAI, skipping");
1714 }
1716 {
1719 else
1720 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SET_COUNTER is not using SmartGameObjectAI, skipping");
1721 }
1722 }
1723 }
1724 else
1726 break;
1727 }
1729 {
1731 break;
1732
1736
1738 {
1740 {
1742 break;
1743 }
1744 }
1745
1748
1753 break;
1754 }
1756 {
1758 break;
1759
1762 break;
1763 }
1765 {
1767 break;
1768
1773 break;
1774 }
1776 {
1778 break;
1779
1781 break;
1782 }
1784 {
1786 break;
1787
1789 {
1790 float randomOri =
frand(0.0f, 2 * M_PI);
1794 break;
1795 }
1796
1798 {
1803 break;
1804 }
1805
1807 {
1811 }
1813 {
1817 }
1818 else if (!targets.empty())
1819 {
1823 }
1824
1825 break;
1826 }
1828 {
1830 {
1832 continue;
1833
1835 }
1836 break;
1837 }
1839 {
1841 break;
1842
1844
1846
1848 {
1850 {
1854 trans->CalculatePassengerPosition(dest.x, dest.y, dest.z);
1855
1858
1859 break;
1860 }
1862 {
1864 {
1875 );
1876
1877 }
1878
1879 break;
1880 }
1881
1882 default:
1883 {
1884
1885 if (targets.empty())
1886 return;
1887 else
1889
1890 float x, y, z;
1892
1897
1900
1901 break;
1902 }
1903 }
1904
1905 break;
1906 }
1908 {
1910 {
1912 {
1914
1918 }
1919 }
1920
1921 break;
1922 }
1924 {
1926 {
1930 {
1931
1934 else
1936 }
1937 }
1938 break;
1939 }
1941 {
1944 target->ToPlayer()->PlayerTalkClass->SendCloseGossip();
1945 break;
1946 }
1948 {
1950 {
1952 {
1953 std::array<uint32, MAX_EQUIPMENT_ITEMS> slot;
1955 {
1957 if (!eInfo)
1958 {
1959 LOG_ERROR(
"sql.sql",
"SmartScript: SMART_ACTION_EQUIP uses non-existent equipment info id {} for creature {}", equipId,
npc->GetEntry());
1960 break;
1961 }
1962
1963 npc->SetCurrentEquipmentId(equipId);
1964
1965 std::copy(std::begin(eInfo->
ItemEntry), std::end(eInfo->
ItemEntry), std::begin(slot));
1966 }
1967 else
1969
1973 }
1974 }
1975 break;
1976 }
1978 {
1983
1988
1992
1996
2004 break;
2005 }
2008
2009
2012 break;
2015 break;
2017 {
2019 {
2021 {
2028 break;
2029 }
2031 {
2038 break;
2039 }
2040 }
2041
2042 break;
2043 }
2046 break;
2049 break;
2051 {
2053 break;
2054
2057
2059 if (
Creature* creature = target->ToCreature())
2060 if (
IsSmart(creature) && creature->GetVictim())
2062 creature->GetMotionMaster()->MoveChase(creature->GetVictim(), attackDistance, attackAngle);
2063
2064 break;
2065 }
2067 {
2069 {
2071 break;
2072 }
2073
2075 {
2077 {
2080 }
2082 {
2085 }
2086 }
2087 break;
2088 }
2090 {
2093 target->ToUnit()->ReplaceAllNpcFlags(
NPCFlags(e.action.unitFlag.flag));
2094 break;
2095 }
2097 {
2100 target->ToUnit()->SetNpcFlag(
NPCFlags(e.action.unitFlag.flag));
2101 break;
2102 }
2104 {
2107 target->ToUnit()->RemoveNpcFlag(
NPCFlags(e.action.unitFlag.flag));
2108 break;
2109 }
2111 {
2112 if (targets.empty())
2113 break;
2114
2116 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);
2117
2119 {
2121 continue;
2122
2124
2125 bool interruptedSpell = false;
2126
2128 {
2130 continue;
2131
2133 {
2135 {
2137 interruptedSpell = true;
2138 }
2139
2141 }
2142 else
2144 }
2145 }
2146 break;
2147 }
2149 {
2150 std::vector<uint32> actionLists;
2152 std::back_inserter(actionLists), [](
uint32 actionList) { return actionList != 0; });
2153
2156 {
2158 break;
2159 }
2160
2162 {
2164 {
2167 }
2169 {
2172 }
2173 }
2174 break;
2175 }
2177 {
2180 {
2182 break;
2183 }
2184
2186 {
2188 {
2191 }
2193 {
2196 }
2197 }
2198 break;
2199 }
2201 {
2204 target->ToPlayer()->ActivateTaxiPathTo(e.action.taxi.id);
2205 break;
2206 }
2208 {
2209 bool foundTarget = false;
2210
2212 {
2214 {
2215 foundTarget = true;
2216
2219 else
2221 }
2222 }
2223
2225 {
2228 else
2230 }
2231 break;
2232 }
2234 {
2237 target->ToUnit()->SetByteFlag(
UNIT_FIELD_BYTES_1, e.action.setunitByte.type, e.action.setunitByte.byte1);
2238 break;
2239 }
2241 {
2244 target->ToUnit()->RemoveByteFlag(
UNIT_FIELD_BYTES_1, e.action.delunitByte.type, e.action.delunitByte.byte1);
2245 break;
2246 }
2248 {
2251 target->ToUnit()->InterruptNonMeleeSpells(e.action.interruptSpellCasting.withDelayed != 0, e.action.interruptSpellCasting.spell_id, e.action.interruptSpellCasting.withInstant != 0);
2252 break;
2253 }
2255 {
2258 target->ToGameObject()->SendCustomAnim(e.action.sendGoCustomAnim.anim);
2259 break;
2260 }
2262 {
2266 break;
2267 }
2269 {
2273 break;
2274 }
2276 {
2280 break;
2281 }
2283 {
2285 {
2287 {
2292 }
2293
2294 break;
2295 }
2296
2297 if (targets.empty())
2298 break;
2299
2300
2302 {
2306 }
2307 else
2308 {
2311 {
2314 }
2315 }
2316
2317 break;
2318 }
2320 {
2323 target->ToGameObject()->SetLootState((
LootState)e.action.setGoLootState.state);
2324 break;
2325 }
2327 {
2330 target->ToGameObject()->SetGoState((
GOState)e.action.goState.state);
2331 break;
2332 }
2334 {
2336
2337 if (!ref)
2338 ref = unit;
2339
2340 if (!ref)
2341 break;
2342
2344 if (!storedTargets)
2345 break;
2346
2348 {
2350 {
2353 else
2354 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SEND_TARGET_TO_TARGET is not using SmartAI, skipping");
2355 }
2357 {
2360 else
2361 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SEND_TARGET_TO_TARGET is not using SmartGameObjectAI, skipping");
2362 }
2363 }
2364 break;
2365 }
2367 {
2369 break;
2370
2371 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SEND_GOSSIP_MENU: gossipMenuId {}, gossipNpcTextId {}",
2373
2375 if (
Player* player = target->ToPlayer())
2376 {
2379 else
2381
2383 }
2384
2385 break;
2386 }
2388 {
2389 if (!targets.empty())
2390 {
2391 float x, y, z, o;
2394 {
2396 {
2399 }
2400 else
2402 }
2403 }
2405 {
2407 {
2408 float x, y, z, o;
2411 }
2412 else
2414 }
2415 break;
2416 }
2418 {
2421 target->ToCreature()->SetRegeneratingHealth(e.action.setHealthRegen.regenHealth);
2422
2423 break;
2424 }
2426 {
2429 target->ToCreature()->SetControlled(e.action.setRoot.root != 0,
UNIT_STATE_ROOT);
2430 break;
2431 }
2433 {
2436 target->ToGameObject()->SetUInt32Value(
GAMEOBJECT_FLAGS, e.action.goFlag.flag);
2437 break;
2438 }
2440 {
2444 break;
2445 }
2447 {
2450 target->ToGameObject()->RemoveFlag(
GAMEOBJECT_FLAGS, e.action.goFlag.flag);
2451 break;
2452 }
2454 {
2455 std::list<TempSummon*> summonList;
2457
2458 for (std::list<TempSummon*>::const_iterator itr = summonList.begin(); itr != summonList.end(); ++itr)
2459 {
2461 (*itr)->AI()->AttackStart(unit);
2463 (*itr)->AI()->AttackStart(
me);
2464 }
2465
2466 break;
2467 }
2469 {
2472 target->ToUnit()->SetPower(
Powers(e.action.power.powerType), e.action.power.newPower);
2473 break;
2474 }
2476 {
2479 target->ToUnit()->SetPower(
Powers(e.action.power.powerType), target->ToUnit()->GetPower(
Powers(e.action.power.powerType)) + e.action.power.newPower);
2480 break;
2481 }
2483 {
2486 target->ToUnit()->SetPower(
Powers(e.action.power.powerType), target->ToUnit()->GetPower(
Powers(e.action.power.powerType)) - e.action.power.newPower);
2487 break;
2488 }
2490 {
2493 {
2494 LOG_ERROR(
"scripts.ai.sai",
"SmartScript::ProcessAction: At case SMART_ACTION_GAME_EVENT_STOP, inactive event (id: {})", eventId);
2495 break;
2496 }
2498 break;
2499 }
2501 {
2504 {
2505 LOG_ERROR(
"scripts.ai.sai",
"SmartScript::ProcessAction: At case SMART_ACTION_GAME_EVENT_START, already activated event (id: {})", eventId);
2506 break;
2507 }
2509 break;
2510 }
2512 {
2514
2516 {
2517 LOG_ERROR(
"scripts.ai.sai",
"SmartScript::ProcessAction: SMART_ACTION_START_CLOSEST_WAYPOINT: Invalid PathSource {} for entryOrGuid {} source_type {} event_id {} link {}",
2519 break;
2520 }
2521
2522 float distanceToClosest = std::numeric_limits<float>::max();
2524
2526 {
2528 {
2530 {
2532 {
2534
2535 switch (pathSource)
2536 {
2539 break;
2542 break;
2543 }
2544
2545 if (!path || path->
Nodes.empty())
2546 continue;
2547
2548 {
2550 float distToThisPath = creature->GetExactDistSq(wpData.
X, wpData.
Y, wpData.
Z);
2551
2552 if (distToThisPath < distanceToClosest)
2553 {
2554 distanceToClosest = distToThisPath;
2555 closestWpId = pathId;
2556 }
2557 }
2558 }
2559
2560 if (closestWpId)
2561 {
2564
2565 CAST_AI(
SmartAI, creature->AI())->StartPath(forcedMovement, closestWpId, repeat,
nullptr, pathSource);
2566 }
2567 }
2568 }
2569 }
2570 break;
2571 }
2573 {
2576 target->ToUnit()->ExitVehicle();
2577
2578 break;
2579 }
2581 {
2584 {
2587 }
2588
2589 break;
2590 }
2592 {
2595 target->ToCreature()->m_CombatDistance = e.action.combatDistance.dist;
2596
2597 break;
2598 }
2600 {
2603 target->ToCreature()->m_SightDistance = e.action.sightDistance.dist;
2604 break;
2605 }
2607 {
2610 target->ToCreature()->GetMotionMaster()->MoveFleeing(
me, e.action.flee.withEmote);
2611 break;
2612 }
2614 {
2616 break;
2619 me->GetThreatMgr().AddThreat(target->ToUnit(), float(e.action.threat.threatINC) - float(e.action.threat.threatDEC), nullptr, true, true);
2620 break;
2621 }
2623 {
2626 target->ToCreature()->LoadEquipment(e.action.loadEquipment.id, e.action.loadEquipment.force != 0);
2627 break;
2628 }
2630 {
2633 break;
2634 }
2636 {
2639 target->ToUnit()->Dismount();
2640 break;
2641 }
2643 {
2646 target->ToUnit()->SetHover(e.action.setHover.state);
2647 break;
2648 }
2650 {
2653 target->ToUnit()->ApplySpellImmune(e.action.immunity.id, e.action.immunity.type, e.action.immunity.value, true);
2654
2655 break;
2656 }
2658 {
2661 target->ToUnit()->ApplySpellImmune(e.action.immunity.id, e.action.immunity.type, e.action.immunity.value, false);
2662 break;
2663 }
2665 {
2668 target->ToUnit()->GetMotionMaster()->MoveFall();
2669
2670 break;
2671 }
2673 {
2675 break;
2676 }
2678 {
2681 target->ToUnit()->RemoveAllGameObjects();
2682 break;
2683 }
2685 {
2687 {
2689 {
2694 }
2695 }
2696 break;
2697 }
2699 {
2703
2704 break;
2705 }
2707 {
2710 if (
Player* player = target->ToUnit()->GetCharmerOrOwnerPlayerOrPlayerItself())
2711 {
2713 break;
2714 }
2715
2716 break;
2717 }
2719 {
2724 break;
2725 }
2727 {
2729
2730 if (!targets.empty())
2734
2735 break;
2736 }
2738 {
2740 break;
2741
2743 {
2745 {
2747 {
2749 }
2750
2752 {
2762
2765 {
2766
2768
2770 else
2771
2773 }
2774 }
2775 }
2776 }
2777 break;
2778 }
2780 {
2782 break;
2783
2784 if (targets.empty())
2785 break;
2786
2788
2793
2794
2795
2796
2797
2798 float factor = std::exp(k * delta_phi);
2799
2800
2801 float summonRadius = a;
2802
2804 {
2805
2806
2808
2809 do
2810 {
2812 summonPosition.RelocatePolarOffset(phi, summonRadius);
2813
2815
2816 phi += delta_phi;
2817 summonRadius *= factor;
2818 } while (summonRadius <= r_max);
2819 }
2820
2821 break;
2822 }
2824 {
2826 break;
2827
2829
2832
2834 {
2835 float deltaAngle = 0.0f;
2836 if (radius > 0)
2837 deltaAngle = distInARow / radius;
2838
2840 if (deltaAngle > 0)
2841 count += coneAngle / deltaAngle;
2842
2843 float currentAngle = -static_cast<float>(count) * deltaAngle / 2.0f;
2844
2847 else if (!targets.empty())
2848 {
2850 }
2851
2852 for (
uint32 index = 0; index < count; ++index)
2853 {
2855 spawnPosition.RelocatePolarOffset(currentAngle, radius);
2856 currentAngle += deltaAngle;
2857
2859 }
2860 }
2861
2862 break;
2863 }
2865 {
2867 {
2869 {
2870 playerTarget->RemoveArenaSpellCooldowns();
2872 playerTarget->RemoveAurasDueToSpell(57723);
2873 playerTarget->RemoveAurasDueToSpell(2825);
2874 playerTarget->RemoveAurasDueToSpell(32182);
2875 }
2876 }
2877
2878 break;
2879 }
2881 {
2884 {
2885 if (targets.empty())
2886 break;
2887
2889 {
2891 {
2893 {
2894 unitTarget->AI()->DoAction(actionId);
2895 }
2896 }
2898 {
2899 gobjTarget->AI()->DoAction(actionId);
2900 }
2901 }
2902
2903 }
2904 else
2905 {
2908 {
2909 instanceScript = baseObj->GetInstanceScript();
2910 }
2911
2913 {
2915 }
2916
2917 if (instanceScript)
2918 {
2919 instanceScript->
DoAction(actionId);
2920 }
2921 }
2922 break;
2923 }
2925 {
2927 break;
2928
2930 break;
2931 }
2933 {
2935 {
2938 }
2939 break;
2940 }
2942 {
2944 if (
Unit* targetUnit = target->ToUnit())
2945 targetUnit->SetHealth(targetUnit->CountPctFromMaxHealth(e.action.setHealthPct.percent));
2946 break;
2947 }
2949 {
2952 float speed = float(speedInteger) + float(speedFraction) / std::pow(10, std::floor(std::log10(float(speedFraction ? speedFraction : 1)) + 1));
2953
2956 target->ToCreature()->SetSpeed(
UnitMoveType(e.action.movementSpeed.movementType), speed);
2957
2958 break;
2959 }
2961 {
2963 {
2965 continue;
2966
2968 }
2969 break;
2970 }
2972 {
2974 if (!obj)
2975 break;
2976
2980 break;
2981 }
2983 {
2985 if (!obj)
2986 break;
2987
2990 break;
2991 }
2993 {
2995 {
2997
2999 {
3001 {
3002 guidToSend = invoker->
GetGUID();
3003 }
3004 }
3005
3007 {
3009 }
3011 {
3013 }
3014 }
3015 break;
3016 }
3018 {
3019
3021 {
3022 case 0:
3023 {
3025 {
3027 {
3030 c->DespawnOrUnsummon();
3031 }
3032 }
3033 break;
3034 }
3035 case 1:
3036 {
3038 {
3040 {
3042 c->Respawn(true);
3044 }
3045 }
3046 break;
3047 }
3048 case 2:
3049 {
3051 {
3053 {
3055
3056
3059 else
3060 c->Respawn(true);
3061
3062
3065
3066
3069 }
3070 }
3071 break;
3072 }
3073 default:
3074 break;
3075 }
3076 break;
3077 }
3079 {
3081
3083 {
3088 }
3089 break;
3090 }
3092 {
3094 break;
3095
3097
3100
3102 {
3104 {
3108 }
3109 break;
3110 }
3111
3113 {
3114 float currentAngle = startAngle + (itr * stepAngle);
3116 }
3117
3118 break;
3119 }
3121 {
3123 {
3125 {
3128 }
3129 }
3130 break;
3131 }
3133 {
3135 {
3138 target->ToCreature()->GetMotionMaster()->MoveIdle();
3139
3140 break;
3141 }
3142
3143 uint8 membCount = targets.size();
3147 {
3149 {
3150 float angle = (membCount > 4 ? (M_PI * 2)/membCount : (M_PI / 2));
3152 {
3154 {
3156 itr++;
3157 }
3158 }
3159 break;
3160 }
3162 {
3164 {
3166 {
3168 itr++;
3169 }
3170 }
3171 break;
3172 }
3174 {
3176 {
3178 {
3180 itr++;
3181 }
3182 }
3183 break;
3184 }
3186 {
3188 {
3190 {
3192 itr++;
3193 }
3194 }
3195 break;
3196 }
3198 {
3200 {
3202 {
3204 itr++;
3205 }
3206 }
3207 break;
3208 }
3210 {
3212 {
3214 {
3216 itr++;
3217 }
3218 }
3219 break;
3220 }
3221 default:
3222 break;
3223 }
3224
3225 break;
3226 }
3228 {
3230 {
3231 case 0:
3232 {
3234 target->ToCreature()->SetFacingTo((target->ToCreature()->HasUnitMovementFlag(
MOVEMENTFLAG_ONTRANSPORT) && target->ToCreature()->GetTransGUID() ? target->ToCreature()->GetTransportHomePosition() : target->ToCreature()->GetHomePosition()).GetOrientation());
3235
3236 break;
3237 }
3238 case 1:
3239 {
3241 target->ToCreature()->SetFacingTo(e.target.o);
3242
3243 break;
3244 }
3245 case 2:
3246 {
3248 target->ToCreature()->SetFacingToObject(
me);
3249
3250 break;
3251 }
3252 case 3:
3253 {
3255 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);
3256
3259 target->ToCreature()->SetFacingToObject(facingTarget);
3260
3261 break;
3262 }
3263 default:
3264 break;
3265 }
3266 break;
3267 }
3269 {
3271 {
3273 {
3275 {
3278 }
3279 }
3280 }
3281
3282 break;
3283 }
3285 {
3287 {
3289 {
3291 {
3295 }
3296 }
3297 }
3298
3299 break;
3300 }
3302 {
3305 target->ToUnit()->StopMoving();
3306
3307 break;
3308 }
3310 {
3313 target->ToUnit()->PauseMovement(e.action.move.timer);
3314
3315 break;
3316 }
3318 {
3321 target->ToUnit()->ResumeMovement(e.action.move.timer);
3322
3323 break;
3324 }
3326 {
3328 break;
3329 }
3331 {
3334 {
3337 }
3338 break;
3339 }
3341 {
3344 target->ToUnit()->SetAnimTier(
AnimTier(e.action.animTier.animTier));
3345 break;
3346 }
3348 {
3350 {
3352 {
3354 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_SET_GOSSIP_MENU: Creature {} set gossip menu to {}",
3356 }
3357 }
3358 break;
3359 }
3361 {
3363 break;
3364
3366 break;
3367 }
3368 default:
3370 break;
3371 }
3372
3374 {
3376 if (linked.has_value())
3377 {
3378 auto& linkedEvent = linked.value().get();
3380 executionStack.emplace_back(SmartScriptFrame{ linkedEvent, unit, var0, var1, bvar, spell, gob });
3381 else
3382 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());
3383 }
3384 else
3386 }
3387}
npc
Definition BattlegroundSA.h:47
#define DEFAULT_LOCALE
Definition Common.h:131
#define MAX_EQUIPMENT_ITEMS
Definition CreatureData.h:36
@ 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:707
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:66
@ MOTION_SLOT_ACTIVE
Definition MotionMaster.h:65
PathSource
Definition MotionMaster.h:94
ForcedMovement
Definition MotionMaster.h:85
@ FORCED_MOVEMENT_NONE
Definition MotionMaster.h:86
AnimTier
Definition MotionMaster.h:100
#define NOMINAL_MELEE_RANGE
Definition ObjectDefines.h:47
#define sObjectMgr
Definition ObjectMgr.h:1723
TempSummonType
Definition Object.h:48
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:51
@ TEMPSUMMON_CORPSE_DESPAWN
Definition Object.h:53
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:1564
@ POWER_MANA
Definition SharedDefines.h:257
@ CHAT_MSG_MONSTER_EMOTE
Definition SharedDefines.h:3401
@ CHAT_MSG_ADDON
Definition SharedDefines.h:3384
@ LANG_UNIVERSAL
Definition SharedDefines.h:723
@ LANG_ADDON
Definition SharedDefines.h:741
@ SPELL_ATTR2_IGNORE_LINE_OF_SIGHT
Definition SharedDefines.h:446
@ TEAM_NEUTRAL
Definition SharedDefines.h:750
SpellCastResult
Definition SharedDefines.h:936
@ SPELL_FAILED_OUT_OF_RANGE
Definition SharedDefines.h:1034
@ SPELL_CAST_OK
Definition SharedDefines.h:1126
@ SPELL_FAILED_SPELL_IN_PROGRESS
Definition SharedDefines.h:1042
@ SMART_EVENT_FLAG_TEMP_IGNORE_CHANCE_ROLL
Definition SmartScriptMgr.h:1966
SMARTAI_TARGETS
Definition SmartScriptMgr.h:1548
@ SMART_TARGET_RANDOM_POINT
Definition SmartScriptMgr.h:1587
#define sSmartWaypointMgr
Definition SmartScriptMgr.h:2270
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_SPAWN_SPAWNGROUP
Definition SmartScriptMgr.h:673
@ 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_DESPAWN_SPAWNGROUP
Definition SmartScriptMgr.h:674
@ 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_SUMMON_GAMEOBJECT_GROUP
Definition SmartScriptMgr.h:728
@ 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:1986
@ FOLLOW_TYPE_SEMI_CIRCLE_BEHIND
Definition SmartScriptMgr.h:1987
@ FOLLOW_TYPE_SEMI_CIRCLE_FRONT
Definition SmartScriptMgr.h:1988
@ FOLLOW_TYPE_COLUMN
Definition SmartScriptMgr.h:1990
@ FOLLOW_TYPE_ANGULAR
Definition SmartScriptMgr.h:1991
@ FOLLOW_TYPE_LINE
Definition SmartScriptMgr.h:1989
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:734
@ SMART_ESCORT_TARGETS
Definition SmartScriptMgr.h:40
@ SMARTCAST_TRIGGERED
Definition SmartScriptMgr.h:1972
@ SMARTCAST_ENABLE_COMBAT_MOVE_ON_LOS
Definition SmartScriptMgr.h:1980
@ SMARTCAST_COMBAT_MOVE
Definition SmartScriptMgr.h:1977
@ SMARTCAST_INTERRUPT_PREVIOUS
Definition SmartScriptMgr.h:1971
@ SMARTCAST_AURA_NOT_PRESENT
Definition SmartScriptMgr.h:1976
@ SMARTCAST_THREATLIST_NOT_SINGLE
Definition SmartScriptMgr.h:1978
@ SMARTCAST_TARGET_POWER_MANA
Definition SmartScriptMgr.h:1979
@ 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:836
#define CAST_AI(a, b)
Definition UnitAI.h:26
#define ENSURE_AI(a, b)
Definition UnitAI.h:27
@ MOVEMENTFLAG_ONTRANSPORT
Definition UnitDefines.h:381
NPCFlags
Non Player Character flags.
Definition UnitDefines.h:320
SheathState
Definition UnitDefines.h:128
@ UNIT_STATE_LOST_CONTROL
Definition UnitDefines.h:219
@ UNIT_STATE_ROOT
Definition UnitDefines.h:183
@ UNIT_STATE_NO_ENVIRONMENT_UPD
Definition UnitDefines.h:201
@ UNIT_STATE_NO_COMBAT_MOVEMENT
Definition UnitDefines.h:204
UnitMoveType
Definition UnitDefines.h:355
@ MOVE_RUN
Definition UnitDefines.h:357
@ UNIT_FLAG_SILENCED
Definition UnitDefines.h:270
ReactStates
Definition Unit.h:565
@ 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:54
#define sWorldState
Definition WorldState.h:377
WorldStateEvent
Definition WorldState.h:42
Say
Definition boss_broodlord_lashlayer.cpp:29
Seats
Definition boss_flame_leviathan.cpp:160
Definition ChatTextBuilder.h:31
Definition SpellAuras.h:87
void StartCinematic(uint32 const cinematicSequenceId)
Definition CinematicMgr.cpp:31
Definition CreatureAI.h:69
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:67
void SetReputationRewardDisabled(bool disable)
Definition Creature.h:378
void SetHomePosition(float x, float y, float z, float o)
Definition Creature.h:347
void Respawn(bool force=false)
Definition Creature.cpp:2017
void GetRespawnPosition(float &x, float &y, float &z, float *ori=nullptr, float *dist=nullptr) const
Definition Creature.cpp:3049
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition Creature.h:349
void SendZoneUnderAttackMessage(Player *attacker)
Send a message to LocalDefense channel for players opposition team in the zone.
Definition Creature.cpp:2840
void GetTransportHomePosition(float &x, float &y, float &z, float &ori) const
Definition Creature.h:354
void DoFleeToGetAssistance()
Definition Creature.cpp:1073
bool IsRooted() const
Definition Creature.h:89
void SetCorpseDelay(uint32 delay)
Definition Creature.h:74
void SetLootRewardDisabled(bool disable)
Definition Creature.h:380
void SetReactState(ReactStates state)
A creature can have 3 ReactStates : Agressive, Passive, Neutral.
Definition Creature.h:100
void LoadPath(uint32 pathid)
Definition Creature.h:358
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:1410
bool isSpawnedByDefault() const
Definition GameObject.h:196
void SetLootState(LootState s, Unit *unit=nullptr)
Definition GameObject.cpp:2462
void SetRespawnTime(int32 respawn)
Definition GameObject.cpp:1284
GameobjectTypes GetGoType() const
Definition GameObject.h:203
void Respawn()
Definition GameObject.cpp:1299
void DespawnOrUnsummon(Milliseconds delay=0ms, Seconds forcedRespawnTime=0s)
Definition GameObject.cpp:927
void CastSpell(Unit *target, uint32 spell)
Definition GameObject.cpp:2077
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:396
virtual void DoAction(int32)
Definition InstanceScript.h:286
static std::string GetBossStateName(uint8 state)
Definition InstanceScript.cpp:837
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
bool SpawnGroupSpawn(uint32 groupId, bool ignoreRespawn=false, bool force=false)
Definition Map.cpp:2549
void LoadGrid(float x, float y)
Definition Map.cpp:213
PlayerList const & GetPlayers() const
Definition Map.h:329
bool SpawnGroupDespawn(uint32 groupId, bool deleteRespawnTimes=false)
Definition Map.cpp:2633
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:913
void MovementExpired(bool reset=true)
Definition MotionMaster.h:206
void MoveJump(Position const &pos, float speedXY, float speedZ, uint32 id=0)
Definition MotionMaster.h:256
void MoveIdle()
Definition MotionMaster.cpp:234
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:447
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:240
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:244
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:1644
bool HasFlag(uint16 index, uint32 flag) const
Definition Object.cpp:871
virtual void SetObjectScale(float scale)
Definition Object.h:121
CinematicMgr & GetCinematicMgr()
Definition Player.h:1397
void GroupEventHappens(uint32 questId, WorldObject const *pEventObject)
Definition PlayerQuest.cpp:1853
void PrepareGossipMenu(WorldObject *source, uint32 menuId=0, bool showQuests=false)
Definition PlayerGossip.cpp:32
void RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject *pRewardSource)
Definition Player.cpp:12766
Definition QuestDef.h:210
void SetInvincibilityHpLevel(uint32 level)
Definition SmartAI.h:189
void SetData(uint32 id, uint32 value) override
Definition SmartAI.h:167
void IncPhase(uint32 p)
Definition SmartScript.cpp:5489
void StoreTargetList(ObjectVector const &targets, uint32 id)
Definition SmartScript.h:93
void RetryLater(SmartScriptHolder &e, bool ignoreChanceRoll=false)
Definition SmartScript.cpp:5177
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:3516
void OnReset()
Definition SmartScript.cpp:110
void InstallTemplate(SmartScriptHolder const &e)
Definition SmartScript.cpp:3404
ObjectGuid goOrigGUID
Definition SmartScript.h:229
void DecPhase(uint32 p)
Definition SmartScript.cpp:5495
ObjectGuid meOrigGUID
Definition SmartScript.h:227
Definition SpellInfo.h:340
SpellSchoolMask GetSchoolMask() const
Definition SpellInfo.cpp:1894
bool HasAttribute(SpellAttr0 attribute) const
Definition SpellInfo.h:441
int32 CalcPowerCost(Unit const *caster, SpellSchoolMask schoolMask, Spell *spell=nullptr) const
Definition SpellInfo.cpp:2803
void ModifyThreatByPercent(Unit *target, int32 percent)
Definition ThreatManager.h:150
size_t GetThreatListSize() const
Definition ThreatManager.cpp:298
Definition VehicleDefines.h:130
virtual void SetData(uint32, uint32)
Definition UnitAI.h:219
virtual void AttackStart(Unit *)
Definition UnitAI.cpp:28
uint8 getGender() const
Definition Unit.h:848
void SetFacingToObject(WorldObject *object, Milliseconds timed=0ms)
Definition Unit.cpp:16456
void SetFacingTo(float ori)
Definition Unit.cpp:16446
float GetSpeed(UnitMoveType mtype) const
Definition Unit.cpp:11291
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true, bool bySelf=false)
Definition Unit.cpp:4316
float GetSpellMinRangeForTarget(Unit const *target, SpellInfo const *spellInfo) const
Definition Unit.cpp:11900
Player * GetCharmerOrOwnerPlayerOrPlayerItself() const
Definition Unit.cpp:7715
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:13964
MotionMaster * GetMotionMaster()
Definition Unit.h:1759
void SetUnitMovementFlags(uint32 f)
Definition Unit.h:776
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:1432
bool IsAlive() const
Definition Unit.h:1794
void StopMoving()
Definition Unit.cpp:13023
void SendPlaySpellVisual(uint32 id)
Definition Unit.cpp:15165
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition Unit.cpp:5999
virtual void SetSheath(SheathState sheathed)
Definition Unit.h:1778
float GetSpellMaxRangeForTarget(Unit const *target, SpellInfo const *spellInfo) const
Definition Unit.cpp:11880
bool HasUnitMovementFlag(uint32 f) const
Definition Unit.h:774
TransportBase * GetDirectTransport() const
Definition Unit.cpp:15021
void SendMovementFlagUpdate(bool self=false)
Definition Unit.cpp:13077
void EngageWithTarget(Unit *who)
Definition Unit.cpp:7519
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:1375
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:5171
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition Unit.cpp:11296
ThreatManager & GetThreatMgr()
Definition Unit.h:951
ObjectGuid GetTransGUID() const override
Definition Unit.cpp:15010
bool IsAIEnabled
Definition Unit.h:2098
bool HasUnitState(const uint32 f) const
Definition Unit.h:736
float GetPowerPct(Powers power) const
Definition Unit.h:1137
void SetDisableGravity(bool disable)
Definition Unit.cpp:16497
float GetMeleeRange(Unit const *target) const
Definition Unit.cpp:801
uint32 GetPower(Powers power) const
Definition Unit.h:1135
void CombatStop(bool includingCast=false, bool mutualPvP=true)
Definition Unit.cpp:7486
void KillSelf(bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition Unit.h:1234
bool CanHaveThreatList(bool skipAliveCheck=false) const
Definition Unit.cpp:11420
void SetInFront(WorldObject const *target)
Definition Unit.cpp:16440
bool isDead() const
Definition Unit.h:1796
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:2393
Map * FindMap() const
Definition Object.h:626
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:1403
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:2692
void SummonGameObjectGroup(uint8 group, std::list< GameObject * > *list=nullptr)
Definition Object.cpp:2484
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:2765
std::string const & GetName() const
Definition Object.h:528
void AddObjectToRemoveList()
Definition Object.cpp:2173
EventProcessor m_Events
Definition Object.h:736
float GetDistance(WorldObject const *obj) const
Definition Object.cpp:1295
uint32 GetAreaId() const
Definition Object.cpp:3119
uint32 GetZoneId() const
Definition Object.cpp:3111
float GetObjectSize() const
Definition Object.cpp:2837
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:2407
void GetRandomPoint(const Position &srcPos, float distance, float &rand_x, float &rand_y, float &rand_z) const
Definition Object.cpp:1558
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
Definition Object.cpp:2470
virtual float GetCombatReach() const
Definition Object.h:506
Creature * SummonTrigger(float x, float y, float z, float ang, uint32 dur, bool setLevel=false, CreatureAI *(*GetAI)(Creature *)=nullptr)
Definition Object.cpp:2442
Player session in the World.
Definition WorldSession.h:384
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:170
uint32 CreatureDisplayID
Definition CreatureData.h:180
float DisplayScale
Definition CreatureData.h:181
Definition CreatureData.h:360
uint32 ItemEntry[MAX_EQUIPMENT_ITEMS]
Definition CreatureData.h:361
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:745
struct SmartAction::@75::@98 combatMove
uint32 followState
Definition SmartScriptMgr.h:1454
uint32 visualId
Definition SmartScriptMgr.h:1449
uint32 targetParam2
Definition SmartScriptMgr.h:849
struct SmartAction::@75::@100 incEventPhase
struct SmartAction::@75::@106 killedMonster
SAIBool disableForceDestination
Definition SmartScriptMgr.h:1206
std::array< uint32, SMART_ACTION_PARAM_COUNT > emotes
Definition SmartScriptMgr.h:832
uint32 forcedMovement
Definition SmartScriptMgr.h:1031
uint32 repeatMax
Definition SmartScriptMgr.h:1108
uint32 phaseMin
Definition SmartScriptMgr.h:934
uint32 targetsLimit
Definition SmartScriptMgr.h:840
struct SmartAction::@75::@181 movementSpeed
struct SmartAction::@75::@186 setScale
SAIBool transport
Definition SmartScriptMgr.h:1202
struct SmartAction::@75::@192 wpDataRandom
struct SmartAction::@75::@82 randomSound
struct SmartAction::@75::@120 summonGO
uint32 startAngle
Definition SmartScriptMgr.h:1442
SAIBool reset
Definition SmartScriptMgr.h:1093
std::array< uint32, SMART_ACTION_PARAM_COUNT > actionLists
Definition SmartScriptMgr.h:1156
struct SmartAction::@75::@185 scriptSpawn
uint32 delay
Definition SmartScriptMgr.h:755
struct SmartAction::@75::@163 startClosestWaypoint
uint32 random
Definition SmartScriptMgr.h:1337
uint32 quickChange
Definition SmartScriptMgr.h:1336
uint32 targetParam4
Definition SmartScriptMgr.h:1466
uint32 dist
Definition SmartScriptMgr.h:919
uint32 group
Definition SmartScriptMgr.h:1259
SAIBool disable
Definition SmartScriptMgr.h:1391
struct SmartAction::@75::@180 corpseDelay
struct SmartAction::@75::@194 worldStateScript
struct SmartAction::@75::@111 callHelp
uint32 spell
Definition SmartScriptMgr.h:837
uint32 minHP
Definition SmartScriptMgr.h:986
SAIBool force
Definition SmartScriptMgr.h:1313
struct SmartAction::@75::@177 summonVortex
uint32 flags
Definition SmartScriptMgr.h:846
struct SmartAction::@75::@97 autoAttack
SAIBool loot
Definition SmartScriptMgr.h:1509
uint32 distanceBetweenSummons
Definition SmartScriptMgr.h:1352
uint32 data
Definition SmartScriptMgr.h:946
struct SmartAction::@75::@105 randomPhaseRange
uint32 entry
Definition SmartScriptMgr.h:921
struct SmartAction::@75::@91 crossCast
struct SmartAction::@75::@129 setSwim
uint32 quest
Definition SmartScriptMgr.h:816
struct SmartAction::@75::@150 moveToPosTarget
struct SmartAction::@75::@172 orientation
struct SmartAction::@75::@78 simpleTalk
uint32 triggerFlags
Definition SmartScriptMgr.h:839
struct SmartAction::@75::@87 questOffer
uint32 bp1
Definition SmartScriptMgr.h:1367
uint32 distance
Definition SmartScriptMgr.h:779
SAIBool removeObjectFromWorld
Definition SmartScriptMgr.h:981
uint32 min
Definition SmartScriptMgr.h:1105
uint32 spawnTimerMax
Definition SmartScriptMgr.h:1426
uint32 subtract
Definition SmartScriptMgr.h:1094
struct SmartAction::@75::@110 die
uint32 a
Definition SmartScriptMgr.h:1376
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:1418
struct SmartAction::@75::@191 wpData
uint32 percent
Definition SmartScriptMgr.h:987
uint32 dec
Definition SmartScriptMgr.h:903
uint32 milliseconds
Definition SmartScriptMgr.h:963
struct SmartAction::@75::@125 item
uint32 summonEntry
Definition SmartScriptMgr.h:1349
struct SmartAction::@75::@84 randomMusic
uint32 followType
Definition SmartScriptMgr.h:1455
uint32 instanceTarget
Definition SmartScriptMgr.h:1386
struct SmartAction::@75::@196 reward
uint32 credit
Definition SmartScriptMgr.h:922
uint32 controlled
Definition SmartScriptMgr.h:1203
uint32 alternative
Definition SmartScriptMgr.h:855
uint32 targetParam1
Definition SmartScriptMgr.h:848
uint32 mapID
Definition SmartScriptMgr.h:1086
uint32 stopMovement
Definition SmartScriptMgr.h:1343
struct SmartAction::@75::@134 movie
struct SmartAction::@75::@94 summonCreature
uint32 charges
Definition SmartScriptMgr.h:914
struct SmartAction::@75::@113 forceDespawn
struct SmartAction::@75::@103 follow
uint32 model
Definition SmartScriptMgr.h:772
uint32 duration
Definition SmartScriptMgr.h:753
SAIBool attackInvoker
Definition SmartScriptMgr.h:868
SAIBool useTalkTarget
Definition SmartScriptMgr.h:754
SAIBool run
Definition SmartScriptMgr.h:1069
struct SmartAction::@75::@200 groupSpawn
struct SmartAction::@75::@176 castCustom
uint32 value
Definition SmartScriptMgr.h:1092
struct SmartAction::@75::@140 timedActionList
uint32 movementExpired
Definition SmartScriptMgr.h:1344
struct SmartAction::@75::@117 moveRandom
uint32 targetParam3
Definition SmartScriptMgr.h:850
uint32 respawnDelay
Definition SmartScriptMgr.h:1427
SAIBool swim
Definition SmartScriptMgr.h:1081
uint32 combatReach
Definition SmartScriptMgr.h:1205
uint32 sound2
Definition SmartScriptMgr.h:785
struct SmartAction::@75::@188 spellVisual
uint32 spawnPos
Definition SmartScriptMgr.h:1307
struct SmartAction::@75::@92 activateObject
struct SmartAction::@75::@167 setHomePos
struct SmartAction::@75::@161 gameEventStop
uint32 pathId2
Definition SmartScriptMgr.h:1283
uint32 creature
Definition SmartScriptMgr.h:771
struct SmartAction::@75::@190 orientationTarget
uint32 spawnTimerMin
Definition SmartScriptMgr.h:1425
struct SmartAction::@75::@132 storeTargets
struct SmartAction::@75::@114 invincHP
uint32 angle
Definition SmartScriptMgr.h:920
uint32 field
Definition SmartScriptMgr.h:945
struct SmartAction::@75::@199 gameobjectGroup
uint32 range
Definition SmartScriptMgr.h:860
struct SmartAction::@75::@95 threatPCT
struct SmartAction::@75::@89 randomEmote
struct SmartAction::@75::@162 gameEventStart
uint32 flag
Definition SmartScriptMgr.h:1126
uint32 sound3
Definition SmartScriptMgr.h:786
uint32 targetsummon
Definition SmartScriptMgr.h:1020
struct SmartAction::@75::@145 jump
uint32 chance
Definition SmartScriptMgr.h:1109
struct SmartAction::@75::@131 setCounter
uint32 state
Definition SmartScriptMgr.h:827
struct SmartAction::@75::@90 cast
struct SmartAction::@75::@108 setInstanceData64
uint32 sound1
Definition SmartScriptMgr.h:784
struct SmartAction::@75::@80 morphOrMount
struct SmartAction::@75::@116 setData
uint32 forceRespawnTimer
Definition SmartScriptMgr.h:980
uint32 speed
Definition SmartScriptMgr.h:1075
uint32 sound4
Definition SmartScriptMgr.h:787
struct SmartAction::@75::@147 flee
uint32 targetType
Definition SmartScriptMgr.h:847
uint32 repetitions
Definition SmartScriptMgr.h:1441
struct SmartAction::@75::@174 coneSummon
uint32 aliveState
Definition SmartScriptMgr.h:924
SAIBool onlySelf
Definition SmartScriptMgr.h:778
uint32 attackScriptOwner
Definition SmartScriptMgr.h:869
uint32 speedxy
Definition SmartScriptMgr.h:1179
uint32 pointId
Definition SmartScriptMgr.h:1201
SAIBool attack
Definition SmartScriptMgr.h:887
uint32 repeatMin
Definition SmartScriptMgr.h:1107
struct SmartAction::@75::@122 wpStart
uint32 scale
Definition SmartScriptMgr.h:1434
SAIBool fly
Definition SmartScriptMgr.h:1074
uint32 textGroupID
Definition SmartScriptMgr.h:752
uint32 castFlags
Definition SmartScriptMgr.h:838
struct SmartAction::@75::@179 disableEvade
std::array< uint32, SMART_ACTION_PARAM_COUNT > phases
Definition SmartScriptMgr.h:929
SAIBool dontDespawn
Definition SmartScriptMgr.h:1429
uint32 turnAngle
Definition SmartScriptMgr.h:1338
uint32 textId
Definition SmartScriptMgr.h:1359
uint32 gossipMenuId
Definition SmartScriptMgr.h:1217
uint32 speedz
Definition SmartScriptMgr.h:1180
SAIBool repeat
Definition SmartScriptMgr.h:1033
struct SmartAction::@75::@173 stopMotion
uint32 gossipNpcTextId
Definition SmartScriptMgr.h:1218
uint32 mask
Definition SmartScriptMgr.h:992
uint32 pathId1
Definition SmartScriptMgr.h:1282
uint32 phi_delta
Definition SmartScriptMgr.h:1379
uint32 count
Definition SmartScriptMgr.h:1054
struct SmartAction::@75::@112 setSheath
uint32 inc
Definition SmartScriptMgr.h:902
uint32 phaseMax
Definition SmartScriptMgr.h:935
struct SmartAction::@75::@130 teleport
uint32 timer
Definition SmartScriptMgr.h:1396
uint32 ContactDistance
Definition SmartScriptMgr.h:1204
struct SmartAction::@75::@79 faction
PathSource pathSource
Definition SmartScriptMgr.h:1286
struct SmartAction::@75::@135 equip
uint32 k
Definition SmartScriptMgr.h:1377
uint32 distanceBetweenRings
Definition SmartScriptMgr.h:1351
uint32 coneLength
Definition SmartScriptMgr.h:1353
uint32 counterId
Definition SmartScriptMgr.h:1091
SAIBool withEmote
Definition SmartScriptMgr.h:969
struct SmartAction::@75::@146 movementFlag
uint32 param
Definition SmartScriptMgr.h:1491
uint32 max
Definition SmartScriptMgr.h:1106
uint32 selfJump
Definition SmartScriptMgr.h:1181
struct SmartAction::@75::@183 cinematic
uint32 maxId
Definition SmartScriptMgr.h:1319
uint32 r_max
Definition SmartScriptMgr.h:1378
struct SmartAction::@75::@136 unitFlag
uint32 speedFraction
Definition SmartScriptMgr.h:1403
struct SmartAction::@75::@88 react
struct SmartAction::@75::@119 setActive
struct SmartAction::@75::@159 creatureGroup
SAIBool fail
Definition SmartScriptMgr.h:1048
struct SmartAction::@75::@124 wpStop
SAIBool directAdd
Definition SmartScriptMgr.h:822
uint32 bp2
Definition SmartScriptMgr.h:1368
uint32 disableGravity
Definition SmartScriptMgr.h:1076
uint32 sound
Definition SmartScriptMgr.h:777
uint32 threatINC
Definition SmartScriptMgr.h:875
uint32 coneAngle
Definition SmartScriptMgr.h:1354
uint32 summonDuration
Definition SmartScriptMgr.h:1350
struct SmartAction::@75::@148 RespawnTarget
struct SmartAction::@75::@175 playerTalk
uint32 threatDEC
Definition SmartScriptMgr.h:876
SAIBool reputation
Definition SmartScriptMgr.h:1508
uint32 ignoreRespawn
Definition SmartScriptMgr.h:1530
uint32 stepAngle
Definition SmartScriptMgr.h:1443
struct SmartAction::@75::@153 sendTargetToTarget
uint32 reactState
Definition SmartScriptMgr.h:1036
uint32 speedInteger
Definition SmartScriptMgr.h:1402
struct SmartAction::@75::@77 talk
uint32 index
Definition SmartScriptMgr.h:1419
struct SmartAction::@75::@123 wpPause
struct SmartAction::@75::@83 music
uint32 actionId
Definition SmartScriptMgr.h:1384
struct SmartAction::@75::@169 randomTimedEvent
uint32 despawnTime
Definition SmartScriptMgr.h:1019
struct SmartAction::@75::@128 setFly
uint32 goRespawnTime
Definition SmartScriptMgr.h:1196
struct SmartAction::@75::@115 ingamePhaseMask
uint32 factionID
Definition SmartScriptMgr.h:766
uint32 eventId
Definition SmartScriptMgr.h:1490
uint32 groupId
Definition SmartScriptMgr.h:1529
struct SmartAction::@75::@189 followGroup
uint32 pathId
Definition SmartScriptMgr.h:1471
SAIBool move
Definition SmartScriptMgr.h:892
struct SmartAction::@75::@178 doAction
struct SmartAction::@75::@149 moveToPos
std::array< uint32, MAX_EQUIPMENT_ITEMS > slots
Definition SmartScriptMgr.h:1121
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:821
uint32 bp3
Definition SmartScriptMgr.h:1369
uint32 pathID
Definition SmartScriptMgr.h:1032
uint32 emote
Definition SmartScriptMgr.h:811
struct SmartAction::@75::@102 removeAura
uint32 id
Definition SmartScriptMgr.h:1026
uint32 minId
Definition SmartScriptMgr.h:1318
uint32 phase
Definition SmartScriptMgr.h:897
uint32 sheath
Definition SmartScriptMgr.h:974
uint32 isNegative
Definition SmartScriptMgr.h:1385
uint32 creditType
Definition SmartScriptMgr.h:923
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:2021
uint32 link
Definition SmartScriptMgr.h:2004
bool IsAreatriggerScript() const
Definition SmartScriptMgr.h:2016
uint32 event_id
Definition SmartScriptMgr.h:2003
int32 entryOrGuid
Definition SmartScriptMgr.h:2001
uint32 GetScriptType() const
Definition SmartScriptMgr.h:2011
uint32 GetTargetType() const
Definition SmartScriptMgr.h:2014
uint32 GetActionType() const
Definition SmartScriptMgr.h:2013
struct SmartTarget::@201::@205 unitRange
float o
Definition SmartScriptMgr.h:1611
uint32 maxDist
Definition SmartScriptMgr.h:1617
uint32 range
Definition SmartScriptMgr.h:1738
float x
Definition SmartScriptMgr.h:1611
uint32 self
Definition SmartScriptMgr.h:1740
uint32 amount
Definition SmartScriptMgr.h:1739
struct SmartTarget::@201::@222 randomPoint
float y
Definition SmartScriptMgr.h:1611
float z
Definition SmartScriptMgr.h:1611
Definition WaypointDefines.h:37
float X
Definition WaypointDefines.h:48
float Z
Definition WaypointDefines.h:48
float Y
Definition WaypointDefines.h:48
Definition WaypointDefines.h:60
std::vector< WaypointNode > Nodes
Definition WaypointDefines.h:68