186{
188
189
191 {
194 return;
195 }
196
197
199
200 if (unit)
202 else if (gob)
204
206 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: Invoker: {} ({})", tempInvoker->GetName(), tempInvoker->GetGUID().ToString());
207
209
212 if (unit)
213 invoker = unit;
214 else if (gob)
215 invoker = gob;
216
218
220 {
222 {
225
227 {
228 if (
IsCreature((target)) && !target->ToCreature()->IsPet())
229 {
231 {
234 }
235 else
237 break;
238 }
240 {
243 break;
244 }
245 }
246
247 if (!talkTarget)
249
250 if (!talker)
251 break;
252
254 {
256 break;
257 }
258
263
266 break;
267 }
269 {
271 {
275 {
278 }
279
280 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SIMPLE_TALK: talker: {} ({}), textGroupId: {}",
282 }
283 break;
284 }
286 {
288 {
290 {
291 target->ToUnit()->HandleEmoteCommand(e.
action.
emote.emote);
292 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_PLAY_EMOTE: target: {} ({}), emote: {}",
293 target->GetName(), target->GetGUID().ToString(), e.
action.
emote.emote);
294 }
295 }
296 break;
297 }
299 {
301 {
303 {
306 else
308 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SOUND: target: {} ({}), sound: {}, onlyself: {}",
310 }
311 }
312 break;
313 }
315 {
323 for (unsigned int sound : sounds)
324 {
325 if (sound)
326 {
327 temp[count] = sound;
328 ++count;
329 }
330 }
331
332 if (count == 0)
333 {
334 break;
335 }
336
338 {
340 {
343 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_RANDOM_SOUND: target: {} ({}), sound: {}, onlyself: {}",
345 }
346 }
347
348 break;
349 }
351 {
353
355 {
357 {
359
361 {
363 if (
Player* player = i->GetSource())
364 {
366 {
368 {
370 targets.push_back(player);
371 }
372 else
373 targets.push_back(player);
374 }
375 }
376 }
377 }
378 }
379 else
381
382 if (!targets.empty())
383 {
385 {
387 {
389 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_MUSIC: target: {} ({}), sound: {}, onlySelf: {}, type: {}",
391 }
392 }
393 }
394 break;
395 }
397 {
399
401 {
403 {
405
407 {
409 if (
Player* player = i->GetSource())
410 {
412 {
414 {
416 targets.push_back(player);
417 }
418 else
419 targets.push_back(player);
420 }
421 }
422 }
423 }
424 }
425 else
427
428 if (targets.empty())
429 break;
430
438 for (unsigned int sound : sounds)
439 {
440 if (sound)
441 {
442 temp[count] = sound;
443 ++count;
444 }
445 }
446
447 if (count == 0)
448 {
449 break;
450 }
451
453 {
455 {
458 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_RANDOM_MUSIC: target: {} ({}), sound: {}, onlyself: {}, type: {}",
460 }
461 }
462
463 break;
464 }
466 {
468 {
470 {
472 {
474 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_FACTION: Creature entry {}, GuidLow {} set faction to {}",
476 }
477 else
478 {
480 {
481 if (target->ToCreature()->GetFaction() != ci->faction)
482 {
483 target->ToCreature()->SetFaction(ci->faction);
484 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_FACTION: Creature entry {}, GuidLow {} set faction to {}",
485 target->GetEntry(), target->GetGUID().ToString(), ci->faction);
486 }
487 }
488 }
489 }
490 }
491 break;
492 }
494 {
496 {
498 continue;
499
501 {
502
504 {
506 {
509 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL: Creature entry {}, GuidLow {} set displayid to {}",
511 }
512 }
513
514 else
515 {
517 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL: Creature entry {}, GuidLow {} set displayid to {}",
519 }
520 }
521 else
522 {
523 target->ToCreature()->DeMorph();
524 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_MORPH_TO_ENTRY_OR_MODEL: Creature entry {}, GuidLow {} demorphs.",
525 target->GetEntry(), target->GetGUID().ToString());
526 }
527 }
528 break;
529 }
531 {
533 {
535 {
536 target->ToPlayer()->FailQuest(e.
action.
quest.quest);
537 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_FAIL_QUEST: Player guidLow {} fails quest {}",
538 target->GetGUID().ToString(), e.
action.
quest.quest);
539 }
540 }
541 break;
542 }
544 {
546 {
548 {
550 {
552 {
553 if (player->CanTakeQuest(q, true))
554 {
556 {
558 menu.SendQuestGiverQuestDetails(q,
me->
GetGUID(),
true);
559 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_OFFER_QUEST: Player guidLow {} - offering quest {}",
561 }
562 }
563 }
564 else
565 {
566 player->AddQuestAndCheckCompletion(q, nullptr);
567 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_OFFER_QUEST: Player guidLow {} - quest {} added",
569 }
570 }
571 }
572 }
573 break;
574 }
576 {
578 {
580 continue;
581
583 }
584 break;
585 }
587 {
588 std::vector<uint32> emotes;
590 std::back_inserter(emotes), [](
uint32 emote) { return emote != 0; });
591
593 {
595 {
597 target->ToUnit()->HandleEmoteCommand(emote);
598 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_RANDOM_EMOTE: Creature guidLow {} handle random emote {}",
599 target->GetGUID().ToString(), emote);
600 }
601 }
602 break;
603 }
605 {
607 break;
608
610 {
612 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_THREAT_ALL_PCT: Creature {} modify threat for unit {}, value {}",
614 }
615 break;
616 }
618 {
620 break;
621
623 {
625 {
627 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_THREAT_SINGLE_PCT: Creature {} modify threat for unit {}, value {}",
629 }
630 }
631 break;
632 }
634 {
636 {
637
639 if (
Vehicle* vehicle = target->ToUnit()->GetVehicleKit())
640 for (
auto & Seat : vehicle->
Seats)
642 player->AreaExploredOrEventHappens(e.action.quest.quest);
643
645 {
646 target->ToPlayer()->AreaExploredOrEventHappens(e.
action.
quest.quest);
647
648 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS: Player guidLow {} credited quest {}",
649 target->GetGUID().ToString(), e.
action.
quest.quest);
650 }
651 }
652 break;
653 }
655 {
656 if (targets.empty())
657 break;
658
660
663
666
667 bool failedSpellCast = false, successfulSpellCast = false;
668
670 {
671
674
676 continue;
677
678 if (caster && caster !=
me)
679 {
681 }
683 {
684
686 continue;
687
688
691 break;
692
693
695 continue;
696
697
700
706
708 bool isWithinMeleeRange = distanceToTarget <= meleeRange;
711
714
715
716 if (isWithinLOSInMap && isWithinMeleeRange && isRangedAttack && isTargetRooted && canCastSpell && !
me->
IsVehicle())
717 {
718 failedSpellCast = true;
719
721 continue;
722
723 float minDistance = std::max(meleeRange, spellMinRange) - distanceToTarget +
NOMINAL_MELEE_RANGE;
725 continue;
726 }
727
728 if (distanceToTarget > spellMaxRange && isWithinLOSInMap)
729 {
730 failedSpellCast = true;
731
733 continue;
734
736 {
740 }
741
742 continue;
743 }
744 else if (distanceToTarget < spellMinRange || !(isWithinLOSInMap || isSpellIgnoreLOS))
745 {
746 failedSpellCast = true;
747
749 continue;
750
754 continue;
755 }
756
759 {
762 else
764 }
765
768
770 {
772 {
776 }
778 {
782 }
784 {
787 }
788 }
789
790 if (spellCastFailed)
791 failedSpellCast = true;
792 else
793 successfulSpellCast = true;
794
795 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_CAST: Unit {} casts spell {} on target {} with castflags {}",
797 }
798 }
799
800
801 if (failedSpellCast && !successfulSpellCast)
802 {
804
805 return;
806 }
807
808 break;
809 }
811 {
812 if (targets.empty())
813 break;
814
817
820 {
822 {
824 }
825 else
826 {
828 }
829 }
830
832 {
834 if (!uTarget)
835 continue;
836
838 {
840 {
842 }
843
845 }
846 }
847 break;
848 }
850 {
851
853 if (!tempLastInvoker)
854 break;
855
856 if (targets.empty())
857 break;
858
861
863 {
865 continue;
866
867 if (!
IsUnit(tempLastInvoker))
868 continue;
869
871 {
873 {
875 }
876
879 {
881 {
883 }
884 else
885 {
887 }
888 }
889
891 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_INVOKER_CAST: Invoker {} casts spell {} on target {} with castflags {}",
893 }
894 else
895 {
896 LOG_DEBUG(
"scripts.ai",
"Spell {} not cast because it has flag SMARTCAST_AURA_NOT_PRESENT and the target {} already has the aura",
898 }
899 }
900 break;
901 }
903 {
905 {
907 {
909 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_ADD_AURA: Adding aura {} to unit {}",
911 }
912 }
913 break;
914 }
916 {
918 {
920 {
922
923
925 {
927 }
928
930 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_ACTIVATE_GOBJECT. Gameobject {} activated",
go->
GetGUID().
ToString());
931 }
932 }
933
934 break;
935 }
937 {
939 {
941 {
942 target->ToGameObject()->ResetDoorOrButton();
943 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_RESET_GOBJECT. Gameobject {} (entry: {}) reset",
944 target->GetGUID().ToString(), target->GetEntry());
945 }
946 }
947 break;
948 }
950 {
952 {
954 {
956 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_EMOTE_STATE. Unit {} set emotestate to {}",
957 target->GetGUID().ToString(), e.
action.
emote.emote);
958 }
959 }
960 break;
961 }
963 {
965 {
967 {
969 {
971 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_UNIT_FLAG. Unit {} added flag {} to UNIT_FIELD_FLAGS",
973 }
974 else
975 {
977 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_SET_UNIT_FLAG. Unit {} added flag {} to UNIT_FIELD_FLAGS_2",
979 }
980 }
981 }
982 break;
983 }
985 {
987 {
989 {
991 {
993 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_REMOVE_UNIT_FLAG. Unit {} removed flag {} to UNIT_FIELD_FLAGS",
995 }
996 else
997 {
999 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction:: SMART_ACTION_REMOVE_UNIT_FLAG. Unit {} removed flag {} to UNIT_FIELD_FLAGS_2",
1001 }
1002 }
1003 }
1004 break;
1005 }
1007 {
1009 break;
1010
1012 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_AUTO_ATTACK: Creature: {} bool on = {}",
1014 break;
1015 }
1017 {
1019 break;
1020
1023 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_ALLOW_COMBAT_MOVEMENT: Creature {} bool on = {}",
1025 break;
1026 }
1028 {
1030 break;
1031
1033 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SET_EVENT_PHASE: Creature {} set event phase {}",
1035 break;
1036 }
1038 {
1040 break;
1041
1044 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_INC_EVENT_PHASE: Creature {} inc event phase by {}, "
1046 break;
1047 }
1049 {
1051 break;
1052
1055 if (target->ToCreature()->IsAIEnabled)
1056 target->ToCreature()->AI()->EnterEvadeMode();
1057
1058 break;
1059 }
1061 {
1062
1064 break;
1065
1068 {
1071 }
1072 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_FLEE_FOR_ASSIST: Creature {} DoFleeToGetAssistance",
me->
GetGUID().
ToString());
1073 break;
1074 }
1076 {
1078 break;
1079
1080
1081
1083 sai->SetSuppressEvade(true);
1084
1086
1088 sai->SetSuppressEvade(false);
1089
1090 break;
1091 }
1093 {
1095 {
1097 continue;
1098
1100
1103 {
1105 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_CALL_GROUPEVENTHAPPENS: Player {}, group credit for quest {}",
1107 }
1108
1109
1111 {
1112 for (
auto& Seat : vehicle->
Seats)
1113 {
1115 {
1117 }
1118 }
1119 }
1120 }
1121 break;
1122 }
1124 {
1126 {
1128 continue;
1129
1131 {
1133 {
1136 }
1137 else
1139 }
1140 else
1141 target->ToUnit()->RemoveAllAuras();
1142
1143 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_REMOVEAURASFROMSPELL: Unit {}, spell {}",
1145 }
1146 break;
1147 }
1149 {
1151 break;
1152
1154 {
1156 break;
1157 }
1158
1160 {
1162 {
1165 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_FOLLOW: Creature {} following target {}",
1167 break;
1168 }
1169 }
1170 break;
1171 }
1173 {
1175 break;
1176
1177 std::vector<uint32> phases;
1179 std::back_inserter(phases), [](
uint32 phase) { return phase != 0; });
1180
1183 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_RANDOM_PHASE: Creature {} sets event phase to {}",
1185 break;
1186 }
1188 {
1190 break;
1191
1194 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_RANDOM_PHASE_RANGE: Creature {} sets event phase to {}",
1196 break;
1197 }
1199 {
1201 {
1203 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: (trigger == true) Player {}, Killcredit: {}",
1205 }
1207 {
1209 break;
1210
1212 {
1214 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player {}, Killcredit: {}",
1216 }
1217 }
1218 else
1219 {
1221 {
1223 continue;
1224
1226 if (!player)
1227 continue;
1228
1230 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player {}, Killcredit: {}",
1232 }
1233 }
1234 break;
1235 }
1237 {
1239 if (!obj)
1240 obj = unit;
1241
1242 if (!obj)
1243 break;
1244
1246 if (!instance)
1247 {
1248 LOG_ERROR(
"scripts.ai.sai",
"SmartScript: Event {} attempt to set instance data without instance script. EntryOrGuid {}", e.
GetEventType(), e.
entryOrGuid);
1249 break;
1250 }
1251
1253 {
1254 case 0:
1255 {
1258 } break;
1259 case 1:
1260 {
1263 } break;
1264 default:
1265 {
1266 break;
1267 }
1268 }
1269 break;
1270 }
1272 {
1274 if (!obj)
1275 obj = unit;
1276
1277 if (!obj)
1278 break;
1279
1281 if (!instance)
1282 {
1284 break;
1285 }
1286
1287 if (targets.empty())
1288 break;
1289
1291 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_SET_INST_DATA64: Field: {}, data: {}",
1293 break;
1294 }
1296 {
1299 target->ToCreature()->UpdateEntry(e.action.updateTemplate.creature, target->ToCreature()->GetCreatureData(), e.action.updateTemplate.updateLevel != 0);
1300 break;
1301 }
1303 {
1305 {
1307 {
1309 {
1310
1312 {
1313 me->KillSelf();
1314 LOG_DEBUG("sql.sql", "SmartScript::ProcessAction: SMART_ACTION_DIE: Creature {}", me->GetGUID().ToString());
1315 }
1317 }
1318 }
1320 {
1323 }
1324 break;
1325 }
1327 {
1328 if (targets.empty())
1329 break;
1330
1332 {
1335
1338 if (
IsPlayer(unit) && !unit->ToPlayer()->isDead())
1339 {
1341 }
1342 }
1343 else
1344 {
1346 {
1348 {
1349 target->ToCreature()->SetInCombatWithZone();
1350 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_SET_IN_COMBAT_WITH_ZONE: Creature {}, target: {}",
1352 }
1353 }
1354 }
1355
1356 break;
1357 }
1359 {
1361 {
1363 {
1366 {
1369 }
1370 LOG_DEBUG(
"scripts.ai",
"SmartScript::ProcessAction: SMART_ACTION_CALL_FOR_HELP: Creature {}, target: {}",
1372 }
1373 }
1374 break;
1375 }
1377 {
1379 {
1381 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_SET_SHEATH: Creature {}, State: {}",
1383 }
1384 break;
1385 }
1387 {
1389 {
1391 {
1393 LOG_ERROR(
"sql.sql",
"SmartScript: SMART_ACTION_FORCE_DESPAWN has removeObjectFromWorld set. delay and forceRespawnTimer ignored.");
1394
1396 creature->AddObjectToRemoveList();
1399 }
1400 else
1401 {
1403
1404
1405 if (despawnDelay <= 0ms)
1406 despawnDelay = 1ms;
1407
1410 creature->DespawnOrUnsummon(despawnDelay, forceRespawnTimer);
1413 }
1414 }
1415
1416 break;
1417 }
1419 {
1421 {
1426 }
1427 break;
1428 }
1430 {
1432 {
1434 continue;
1435
1437 {
1439 {
1442 }
1443 else
1445 }
1446 else
1447 target->ToUnit()->Dismount();
1448 }
1449 break;
1450 }
1452 {
1454 {
1456 {
1458 if (!ai)
1459 continue;
1460
1463 else
1465 }
1466 }
1467 break;
1468 }
1470 {
1472 {
1474 {
1476
1478 {
1481 else
1483 }
1484 else
1486 }
1488 {
1490
1492 {
1495 else
1497 }
1498 else
1500 }
1501 }
1502 break;
1503 }
1505 {
1507
1509 {
1511 {
1513 {
1516 }
1517 else
1518 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_INC_DATA is not using SmartAI, skipping");
1519 }
1521 {
1523 {
1526 }
1527 else
1528 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_INC_DATA is not using SmartGameObjectAI, skipping");
1529 }
1530 }
1531 break;
1532 }
1534 {
1536 {
1538 {
1539 float x, y, z;
1540 target->ToCreature()->GetClosePoint(x, y, z, target->ToCreature()->GetObjectSize() / 3, (
float)e.
action.
moveRandom.
distance);
1542 }
1543 }
1544 break;
1545 }
1547 {
1549 break;
1550
1552 break;
1553 }
1555 {
1558 target->ToUnit()->SetVisible(e.action.visibility.state);
1559
1560 break;
1561 }
1563 {
1565 target->setActive(e.action.setActive.state);
1566 break;
1567 }
1569 {
1571 break;
1572
1573 if (targets.empty())
1574 break;
1575
1576
1579 break;
1580 }
1582 {
1584 if (
Unit* unitTarget = target->ToUnit())
1585 unitTarget->AttackStop();
1586 break;
1587 }
1589 {
1593 if (!summoner)
1594 break;
1595
1597
1599 {
1604 {
1607 else
1610 {
1612 summon->AI()->AttackStart(unit);
1614 summon->AI()->AttackStart(
me);
1615 }
1616 }
1617 break;
1618 }
1619
1620 float x, y, z, o;
1622 {
1623 target->GetPosition(x, y, z, o);
1629 {
1631 summon->AI()->AttackStart(unit);
1633 summon->AI()->AttackStart(target->ToUnit());
1635 summon->AI()->AttackStart(
me);
1636 }
1637 }
1638
1640 break;
1641
1643 {
1645 summon->AI()->AttackStart(unit);
1647 summon->AI()->AttackStart(
me);
1648 }
1649 break;
1650 }
1652 {
1654 break;
1655
1656 if (!targets.empty())
1657 {
1658 float x, y, z, o;
1660 {
1661
1662
1663
1664
1665 target->GetPosition(x, y, z, o);
1672 else
1674 }
1675 }
1676
1678 break;
1679
1681 break;
1682 }
1684 {
1686 {
1688 continue;
1689
1690 Unit::Kill(target->ToUnit(), target->ToUnit());
1691 }
1692
1693 break;
1694 }
1696 {
1698 break;
1699 }
1701 {
1703 {
1705 continue;
1706
1708 }
1709 break;
1710 }
1712 {
1714 {
1716 continue;
1717
1719 }
1720 break;
1721 }
1723 {
1725 break;
1726 }
1728 {
1730 {
1735 }
1736 break;
1737 }
1739 {
1741 break;
1742
1744
1747
1748
1750 break;
1751 }
1753 {
1755 {
1757 {
1759 }
1760 }
1761
1762 break;
1763 }
1765 {
1767 break;
1768
1770 break;
1771 }
1773 {
1774 if (!targets.empty())
1775 {
1777 {
1779 {
1782 else
1783 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SET_COUNTER is not using SmartAI, skipping");
1784 }
1786 {
1789 else
1790 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SET_COUNTER is not using SmartGameObjectAI, skipping");
1791 }
1792 }
1793 }
1794 else
1796 break;
1797 }
1799 {
1801 break;
1802
1806
1808 {
1810 {
1812 break;
1813 }
1814 }
1815
1818
1823 break;
1824 }
1826 {
1828 break;
1829
1832 break;
1833 }
1835 {
1837 break;
1838
1843 break;
1844 }
1846 {
1848 break;
1849
1851 break;
1852 }
1854 {
1856 break;
1857
1859 {
1860 float randomOri =
frand(0.0f, 2 * M_PI);
1864 break;
1865 }
1866
1868 {
1873 break;
1874 }
1875
1877 {
1881 }
1883 {
1887 }
1888 else if (!targets.empty())
1889 {
1893 }
1894
1895 break;
1896 }
1898 {
1900 {
1902 continue;
1903
1905 }
1906 break;
1907 }
1909 {
1911 break;
1912
1914
1916
1918 {
1920 {
1924 trans->CalculatePassengerPosition(dest.x, dest.y, dest.z);
1925
1928
1929 break;
1930 }
1932 {
1934 {
1945 );
1946
1947 }
1948
1949 break;
1950 }
1951
1952 default:
1953 {
1954
1955 if (targets.empty())
1956 return;
1957 else
1959
1960 float x, y, z;
1962
1967
1970
1971 break;
1972 }
1973 }
1974
1975 break;
1976 }
1978 {
1980 {
1982 {
1984
1988 }
1989 }
1990
1991 break;
1992 }
1994 {
1996 {
2000 {
2001
2004 else
2006 }
2007 }
2008 break;
2009 }
2011 {
2014 target->ToPlayer()->PlayerTalkClass->SendCloseGossip();
2015 break;
2016 }
2018 {
2020 {
2022 {
2023 std::array<uint32, MAX_EQUIPMENT_ITEMS> slot;
2025 {
2027 if (!eInfo)
2028 {
2029 LOG_ERROR(
"sql.sql",
"SmartScript: SMART_ACTION_EQUIP uses non-existent equipment info id {} for creature {}", equipId,
npc->GetEntry());
2030 break;
2031 }
2032
2033 npc->SetCurrentEquipmentId(equipId);
2034
2035 std::copy(std::begin(eInfo->
ItemEntry), std::end(eInfo->
ItemEntry), std::begin(slot));
2036 }
2037 else
2039
2043 }
2044 }
2045 break;
2046 }
2048 {
2053
2058
2062
2066
2074 break;
2075 }
2078
2079
2082 break;
2085 break;
2087 {
2089 {
2091 {
2098 break;
2099 }
2101 {
2108 break;
2109 }
2110 }
2111
2112 break;
2113 }
2116 break;
2119 break;
2121 {
2123 break;
2124
2127
2129 if (
Creature* creature = target->ToCreature())
2130 if (
IsSmart(creature) && creature->GetVictim())
2132 creature->GetMotionMaster()->MoveChase(creature->GetVictim(), attackDistance, attackAngle);
2133
2134 break;
2135 }
2137 {
2139 {
2141 break;
2142 }
2143
2145 {
2147 {
2150 }
2152 {
2155 }
2156 }
2157 break;
2158 }
2160 {
2163 target->ToUnit()->ReplaceAllNpcFlags(
NPCFlags(e.action.unitFlag.flag));
2164 break;
2165 }
2167 {
2170 target->ToUnit()->SetNpcFlag(
NPCFlags(e.action.unitFlag.flag));
2171 break;
2172 }
2174 {
2177 target->ToUnit()->RemoveNpcFlag(
NPCFlags(e.action.unitFlag.flag));
2178 break;
2179 }
2181 {
2182 if (targets.empty())
2183 break;
2184
2186 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);
2187
2189 {
2191 continue;
2192
2194
2195 bool interruptedSpell = false;
2196
2198 {
2200 continue;
2201
2203 {
2205 {
2207 interruptedSpell = true;
2208 }
2209
2211 }
2212 else
2214 }
2215 }
2216 break;
2217 }
2219 {
2220 std::vector<uint32> actionLists;
2222 std::back_inserter(actionLists), [](
uint32 actionList) { return actionList != 0; });
2223
2226 {
2228 break;
2229 }
2230
2232 {
2234 {
2237 }
2239 {
2242 }
2243 }
2244 break;
2245 }
2247 {
2250 {
2252 break;
2253 }
2254
2256 {
2258 {
2261 }
2263 {
2266 }
2267 }
2268 break;
2269 }
2271 {
2274 target->ToPlayer()->ActivateTaxiPathTo(e.action.taxi.id);
2275 break;
2276 }
2278 {
2279 bool foundTarget = false;
2280
2282 {
2284 {
2285 foundTarget = true;
2286
2289 else
2291 }
2292 }
2293
2295 {
2298 else
2300 }
2301 break;
2302 }
2304 {
2307 target->ToUnit()->SetByteFlag(
UNIT_FIELD_BYTES_1, e.action.setunitByte.type, e.action.setunitByte.byte1);
2308 break;
2309 }
2311 {
2314 target->ToUnit()->RemoveByteFlag(
UNIT_FIELD_BYTES_1, e.action.delunitByte.type, e.action.delunitByte.byte1);
2315 break;
2316 }
2318 {
2321 target->ToUnit()->InterruptNonMeleeSpells(e.action.interruptSpellCasting.withDelayed != 0, e.action.interruptSpellCasting.spell_id, e.action.interruptSpellCasting.withInstant != 0);
2322 break;
2323 }
2325 {
2328 target->ToGameObject()->SendCustomAnim(e.action.sendGoCustomAnim.anim);
2329 break;
2330 }
2332 {
2336 break;
2337 }
2339 {
2343 break;
2344 }
2346 {
2350 break;
2351 }
2353 {
2355 {
2357 {
2362 }
2363
2364 break;
2365 }
2366
2367 if (targets.empty())
2368 break;
2369
2370
2372 {
2376 }
2377 else
2378 {
2381 {
2384 }
2385 }
2386
2387 break;
2388 }
2390 {
2393 target->ToGameObject()->SetLootState((
LootState)e.action.setGoLootState.state);
2394 break;
2395 }
2397 {
2400 target->ToGameObject()->SetGoState((
GOState)e.action.goState.state);
2401 break;
2402 }
2404 {
2406
2407 if (!ref)
2408 ref = unit;
2409
2410 if (!ref)
2411 break;
2412
2414 if (!storedTargets)
2415 break;
2416
2418 {
2420 {
2423 else
2424 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SEND_TARGET_TO_TARGET is not using SmartAI, skipping");
2425 }
2427 {
2430 else
2431 LOG_ERROR(
"sql.sql",
"SmartScript: Action target for SMART_ACTION_SEND_TARGET_TO_TARGET is not using SmartGameObjectAI, skipping");
2432 }
2433 }
2434 break;
2435 }
2437 {
2439 break;
2440
2441 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction:: SMART_ACTION_SEND_GOSSIP_MENU: gossipMenuId {}, gossipNpcTextId {}",
2443
2445 if (
Player* player = target->ToPlayer())
2446 {
2449 else
2451
2453 }
2454
2455 break;
2456 }
2458 {
2459 if (!targets.empty())
2460 {
2461 float x, y, z, o;
2464 {
2466 {
2469 }
2470 else
2472 }
2473 }
2475 {
2477 {
2478 float x, y, z, o;
2481 }
2482 else
2484 }
2485 break;
2486 }
2488 {
2491 target->ToCreature()->SetRegeneratingHealth(e.action.setHealthRegen.regenHealth);
2492
2493 break;
2494 }
2496 {
2499 target->ToCreature()->SetControlled(e.action.setRoot.root != 0,
UNIT_STATE_ROOT);
2500 break;
2501 }
2503 {
2506 target->ToGameObject()->SetUInt32Value(
GAMEOBJECT_FLAGS, e.action.goFlag.flag);
2507 break;
2508 }
2510 {
2514 break;
2515 }
2517 {
2520 target->ToGameObject()->RemoveFlag(
GAMEOBJECT_FLAGS, e.action.goFlag.flag);
2521 break;
2522 }
2524 {
2525 std::list<TempSummon*> summonList;
2527
2528 for (std::list<TempSummon*>::const_iterator itr = summonList.begin(); itr != summonList.end(); ++itr)
2529 {
2531 (*itr)->AI()->AttackStart(unit);
2533 (*itr)->AI()->AttackStart(
me);
2534 }
2535
2536 break;
2537 }
2539 {
2542 target->ToUnit()->SetPower(
Powers(e.action.power.powerType), e.action.power.newPower);
2543 break;
2544 }
2546 {
2549 target->ToUnit()->SetPower(
Powers(e.action.power.powerType), target->ToUnit()->GetPower(
Powers(e.action.power.powerType)) + e.action.power.newPower);
2550 break;
2551 }
2553 {
2556 target->ToUnit()->SetPower(
Powers(e.action.power.powerType), target->ToUnit()->GetPower(
Powers(e.action.power.powerType)) - e.action.power.newPower);
2557 break;
2558 }
2560 {
2563 {
2564 LOG_ERROR(
"scripts.ai.sai",
"SmartScript::ProcessAction: At case SMART_ACTION_GAME_EVENT_STOP, inactive event (id: {})", eventId);
2565 break;
2566 }
2568 break;
2569 }
2571 {
2574 {
2575 LOG_ERROR(
"scripts.ai.sai",
"SmartScript::ProcessAction: At case SMART_ACTION_GAME_EVENT_START, already activated event (id: {})", eventId);
2576 break;
2577 }
2579 break;
2580 }
2582 {
2584
2586 {
2587 LOG_ERROR(
"scripts.ai.sai",
"SmartScript::ProcessAction: SMART_ACTION_START_CLOSEST_WAYPOINT: Invalid PathSource {} for entryOrGuid {} source_type {} event_id {} link {}",
2589 break;
2590 }
2591
2592 float distanceToClosest = std::numeric_limits<float>::max();
2594
2596 {
2598 {
2600 {
2602 {
2604
2605 switch (pathSource)
2606 {
2609 break;
2612 break;
2613 }
2614
2615 if (!path || path->
Nodes.empty())
2616 continue;
2617
2618 {
2620 float distToThisPath = creature->GetExactDistSq(wpData.
X, wpData.
Y, wpData.
Z);
2621
2622 if (distToThisPath < distanceToClosest)
2623 {
2624 distanceToClosest = distToThisPath;
2625 closestWpId = pathId;
2626 }
2627 }
2628 }
2629
2630 if (closestWpId)
2631 {
2634
2635 CAST_AI(
SmartAI, creature->AI())->StartPath(forcedMovement, closestWpId, repeat,
nullptr, pathSource);
2636 }
2637 }
2638 }
2639 }
2640 break;
2641 }
2643 {
2646 target->ToUnit()->ExitVehicle();
2647
2648 break;
2649 }
2651 {
2654 {
2657 }
2658
2659 break;
2660 }
2662 {
2665 target->ToCreature()->m_CombatDistance = e.action.combatDistance.dist;
2666
2667 break;
2668 }
2670 {
2673 target->ToCreature()->m_SightDistance = e.action.sightDistance.dist;
2674 break;
2675 }
2677 {
2680 target->ToCreature()->GetMotionMaster()->MoveFleeing(
me, e.action.flee.withEmote);
2681 break;
2682 }
2684 {
2686 break;
2689 me->GetThreatMgr().AddThreat(target->ToUnit(), float(e.action.threat.threatINC) - float(e.action.threat.threatDEC), nullptr, true, true);
2690 break;
2691 }
2693 {
2696 target->ToCreature()->LoadEquipment(e.action.loadEquipment.id, e.action.loadEquipment.force != 0);
2697 break;
2698 }
2700 {
2703 break;
2704 }
2706 {
2709 target->ToUnit()->Dismount();
2710 break;
2711 }
2713 {
2716 target->ToUnit()->SetHover(e.action.setHover.state);
2717 break;
2718 }
2720 {
2723 target->ToUnit()->ApplySpellImmune(e.action.immunity.id, e.action.immunity.type, e.action.immunity.value, true);
2724
2725 break;
2726 }
2728 {
2731 target->ToUnit()->ApplySpellImmune(e.action.immunity.id, e.action.immunity.type, e.action.immunity.value, false);
2732 break;
2733 }
2735 {
2738 target->ToUnit()->GetMotionMaster()->MoveFall();
2739
2740 break;
2741 }
2743 {
2745 break;
2746 }
2748 {
2751 target->ToUnit()->RemoveAllGameObjects();
2752 break;
2753 }
2755 {
2757 {
2759 {
2764 }
2765 }
2766 break;
2767 }
2769 {
2773
2774 break;
2775 }
2777 {
2780 if (
Player* player = target->ToUnit()->GetCharmerOrOwnerPlayerOrPlayerItself())
2781 {
2783 break;
2784 }
2785
2786 break;
2787 }
2789 {
2794 break;
2795 }
2797 {
2799
2800 if (!targets.empty())
2804
2805 break;
2806 }
2808 {
2810 break;
2811
2813 {
2815 {
2817 {
2819 }
2820
2822 {
2832
2835 {
2837 {
2841 }
2843 {
2847 }
2849 {
2852 }
2853 }
2854 }
2855 }
2856 }
2857 break;
2858 }
2860 {
2862 break;
2863
2864 if (targets.empty())
2865 break;
2866
2868
2873
2874
2875
2876
2877
2878 float factor = std::exp(k * delta_phi);
2879
2880
2881 float summonRadius = a;
2882
2884 {
2885
2886
2888
2889 do
2890 {
2892 summonPosition.RelocatePolarOffset(phi, summonRadius);
2893
2895
2896 phi += delta_phi;
2897 summonRadius *= factor;
2898 } while (summonRadius <= r_max);
2899 }
2900
2901 break;
2902 }
2904 {
2906 break;
2907
2909
2912
2914 {
2915 float deltaAngle = 0.0f;
2916 if (radius > 0)
2917 deltaAngle = distInARow / radius;
2918
2920 if (deltaAngle > 0)
2921 count += coneAngle / deltaAngle;
2922
2923 float currentAngle = -static_cast<float>(count) * deltaAngle / 2.0f;
2924
2927 else if (!targets.empty())
2928 {
2930 }
2931
2932 for (
uint32 index = 0; index < count; ++index)
2933 {
2935 spawnPosition.RelocatePolarOffset(currentAngle, radius);
2936 currentAngle += deltaAngle;
2937
2939 }
2940 }
2941
2942 break;
2943 }
2945 {
2947 {
2949 {
2950 playerTarget->RemoveArenaSpellCooldowns();
2952 playerTarget->RemoveAurasDueToSpell(57723);
2953 playerTarget->RemoveAurasDueToSpell(2825);
2954 playerTarget->RemoveAurasDueToSpell(32182);
2955 }
2956 }
2957
2958 break;
2959 }
2961 {
2964 {
2965 if (targets.empty())
2966 break;
2967
2969 {
2971 {
2973 {
2974 unitTarget->AI()->DoAction(actionId);
2975 }
2976 }
2978 {
2979 gobjTarget->AI()->DoAction(actionId);
2980 }
2981 }
2982
2983 }
2984 else
2985 {
2988 {
2989 instanceScript = baseObj->GetInstanceScript();
2990 }
2991
2993 {
2995 }
2996
2997 if (instanceScript)
2998 {
2999 instanceScript->
DoAction(actionId);
3000 }
3001 }
3002 break;
3003 }
3005 {
3007 break;
3008
3010 break;
3011 }
3013 {
3015 {
3018 }
3019 break;
3020 }
3022 {
3024 if (
Unit* targetUnit = target->ToUnit())
3025 targetUnit->SetHealth(targetUnit->CountPctFromMaxHealth(e.action.setHealthPct.percent));
3026 break;
3027 }
3029 {
3032 float speed = float(speedInteger) + float(speedFraction) / std::pow(10, std::floor(std::log10(float(speedFraction ? speedFraction : 1)) + 1));
3033
3036 target->ToCreature()->SetSpeed(
UnitMoveType(e.action.movementSpeed.movementType), speed);
3037
3038 break;
3039 }
3041 {
3043 {
3045 continue;
3046
3048 }
3049 break;
3050 }
3052 {
3054 if (!obj)
3055 break;
3056
3060 break;
3061 }
3063 {
3065 if (!obj)
3066 break;
3067
3070 break;
3071 }
3073 {
3075 {
3077
3079 {
3081 {
3082 guidToSend = invoker->
GetGUID();
3083 }
3084 }
3085
3087 {
3089 }
3091 {
3093 }
3094 }
3095 break;
3096 }
3098 {
3099
3101 {
3102 case 0:
3103 {
3105 {
3107 {
3110 c->DespawnOrUnsummon();
3111 }
3112 }
3113 break;
3114 }
3115 case 1:
3116 {
3118 {
3120 {
3122 c->Respawn(true);
3124 }
3125 }
3126 break;
3127 }
3128 case 2:
3129 {
3131 {
3133 {
3135
3136
3139 else
3140 c->Respawn(true);
3141
3142
3145
3146
3149 }
3150 }
3151 break;
3152 }
3153 default:
3154 break;
3155 }
3156 break;
3157 }
3159 {
3161
3163 {
3168 }
3169 break;
3170 }
3172 {
3174 break;
3175
3177
3180
3182 {
3184 {
3188 }
3189 break;
3190 }
3191
3193 {
3194 float currentAngle = startAngle + (itr * stepAngle);
3196 }
3197
3198 break;
3199 }
3201 {
3203 {
3205 {
3208 }
3209 }
3210 break;
3211 }
3213 {
3215 {
3218 target->ToCreature()->GetMotionMaster()->Clear();
3219
3220 break;
3221 }
3222
3224 {
3225 if (!left->IsCreature())
3226 return false;
3227
3228 if (!right->IsCreature())
3229 return true;
3230
3231 return left->ToCreature()->GetSpawnId() < right->ToCreature()->GetSpawnId();
3232 });
3233
3234 uint8 membCount = targets.size();
3237 auto moveFollower = [
this, &e](
Creature* follower,
float followDist,
float followAngle)
3238 {
3241 else
3243 };
3244
3246 {
3248 {
3249 float angle = (membCount > 4 ? (M_PI * 2)/membCount : (M_PI / 2));
3251 {
3253 {
3254 moveFollower(target->
ToCreature(), dist, angle * (itr - 1));
3255 itr++;
3256 }
3257 }
3258 break;
3259 }
3261 {
3263 {
3265 {
3266 moveFollower(target->
ToCreature(), dist, (M_PI / 2.0f) + (M_PI / membCount) * (itr - 1));
3267 itr++;
3268 }
3269 }
3270 break;
3271 }
3273 {
3275 {
3277 {
3278 moveFollower(target->
ToCreature(), dist, M_PI + (M_PI / 2.0f) + (M_PI / membCount) * (itr - 1));
3279 itr++;
3280 }
3281 }
3282 break;
3283 }
3285 {
3287 {
3289 {
3290 moveFollower(target->
ToCreature(), dist * (((itr - 1) / 2) + 1), itr % 2 ? 0.f : M_PI);
3291 itr++;
3292 }
3293 }
3294 break;
3295 }
3297 {
3299 {
3301 {
3302 moveFollower(target->
ToCreature(), dist * (((itr - 1) / 2) + 1), itr % 2 ? (M_PI / 2) : (M_PI * 1.5f));
3303 itr++;
3304 }
3305 }
3306 break;
3307 }
3309 {
3311 {
3313 {
3314 moveFollower(target->
ToCreature(), dist * (((itr - 1) / 2) + 1), itr % 2 ? M_PI - (M_PI / 4) : M_PI + (M_PI / 4));
3315 itr++;
3316 }
3317 }
3318 break;
3319 }
3321 {
3323 {
3325 {
3326 moveFollower(target->
ToCreature(), dist * itr, M_PI);
3327 itr++;
3328 }
3329 }
3330 break;
3331 }
3332 default:
3333 break;
3334 }
3335
3336 break;
3337 }
3339 {
3341 {
3342 case 0:
3343 {
3345 target->ToCreature()->SetFacingTo((target->ToCreature()->HasUnitMovementFlag(
MOVEMENTFLAG_ONTRANSPORT) && target->ToCreature()->GetTransGUID() ? target->ToCreature()->GetTransportHomePosition() : target->ToCreature()->GetHomePosition()).GetOrientation());
3346
3347 break;
3348 }
3349 case 1:
3350 {
3352 target->ToCreature()->SetFacingTo(e.target.o);
3353
3354 break;
3355 }
3356 case 2:
3357 {
3359 target->ToCreature()->SetFacingToObject(
me);
3360
3361 break;
3362 }
3363 case 3:
3364 {
3366 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);
3367
3370 target->ToCreature()->SetFacingToObject(facingTarget);
3371
3372 break;
3373 }
3374 default:
3375 break;
3376 }
3377 break;
3378 }
3380 {
3382 {
3384 {
3386 {
3389 }
3390 }
3391 }
3392
3393 break;
3394 }
3396 {
3398 {
3400 {
3402 {
3406 }
3407 }
3408 }
3409
3410 break;
3411 }
3413 {
3416 target->ToUnit()->StopMoving();
3417
3418 break;
3419 }
3421 {
3424 target->ToUnit()->PauseMovement(e.action.move.timer);
3425
3426 break;
3427 }
3429 {
3432 target->ToUnit()->ResumeMovement(e.action.move.timer);
3433
3434 break;
3435 }
3437 {
3439 break;
3440 }
3442 {
3445 {
3448 }
3449 break;
3450 }
3452 {
3455 target->ToUnit()->SetAnimTier(
AnimTier(e.action.animTier.animTier));
3456 break;
3457 }
3459 {
3461 {
3463 {
3465 LOG_DEBUG(
"sql.sql",
"SmartScript::ProcessAction: SMART_ACTION_SET_GOSSIP_MENU: Creature {} set gossip menu to {}",
3467 }
3468 }
3469 break;
3470 }
3472 {
3474 break;
3475
3477 break;
3478 }
3479 default:
3481 break;
3482 }
3483
3485 {
3487 if (linked.has_value())
3488 {
3489 auto& linkedEvent = linked.value().get();
3491 executionStack.emplace_back(SmartScriptFrame{ linkedEvent, unit, var0, var1, bvar, spell, gob });
3492 else
3493 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());
3494 }
3495 else
3497 }
3498}
npc
Definition BattlegroundSA.h:47
#define DEFAULT_LOCALE
Definition Common.h:139
#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:204
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:95
ForcedMovement
Definition MotionMaster.h:85
@ FORCED_MOVEMENT_NONE
Definition MotionMaster.h:86
AnimTier
Definition MotionMaster.h:101
#define NOMINAL_MELEE_RANGE
Definition ObjectDefines.h:47
#define sObjectMgr
Definition ObjectMgr.h:1731
TempSummonType
Definition Object.h:49
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:52
@ TEMPSUMMON_CORPSE_DESPAWN
Definition Object.h:54
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_FAILED_NOT_READY
Definition SharedDefines.h:1004
@ 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:1976
SMARTAI_TARGETS
Definition SmartScriptMgr.h:1549
@ SMART_TARGET_RANDOM_POINT
Definition SmartScriptMgr.h:1588
#define sSmartWaypointMgr
Definition SmartScriptMgr.h:2282
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_INC_DATA
Definition SmartScriptMgr.h:729
@ 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:1996
@ FOLLOW_TYPE_SEMI_CIRCLE_BEHIND
Definition SmartScriptMgr.h:1997
@ FOLLOW_TYPE_SEMI_CIRCLE_FRONT
Definition SmartScriptMgr.h:1998
@ FOLLOW_TYPE_COLUMN
Definition SmartScriptMgr.h:2000
@ FOLLOW_TYPE_SINGLE_FILE
Definition SmartScriptMgr.h:2002
@ FOLLOW_TYPE_ANGULAR
Definition SmartScriptMgr.h:2001
@ FOLLOW_TYPE_LINE
Definition SmartScriptMgr.h:1999
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:735
@ SMART_ESCORT_TARGETS
Definition SmartScriptMgr.h:40
@ SMARTCAST_TRIGGERED
Definition SmartScriptMgr.h:1982
@ SMARTCAST_ENABLE_COMBAT_MOVE_ON_LOS
Definition SmartScriptMgr.h:1990
@ SMARTCAST_COMBAT_MOVE
Definition SmartScriptMgr.h:1987
@ SMARTCAST_INTERRUPT_PREVIOUS
Definition SmartScriptMgr.h:1981
@ SMARTCAST_AURA_NOT_PRESENT
Definition SmartScriptMgr.h:1986
@ SMARTCAST_THREATLIST_NOT_SINGLE
Definition SmartScriptMgr.h:1988
@ SMARTCAST_TARGET_POWER_MANA
Definition SmartScriptMgr.h:1989
@ AURA_REMOVE_BY_EXPIRE
Definition SpellAuraDefines.h:395
@ SPELLVALUE_BASE_POINT1
Definition SpellDefines.h:122
@ SPELLVALUE_BASE_POINT2
Definition SpellDefines.h:123
@ SPELLVALUE_BASE_POINT0
Definition SpellDefines.h:121
TriggerCastFlags
Definition SpellDefines.h:140
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
Definition SpellDefines.h:158
@ TRIGGERED_NONE
Definition SpellDefines.h:141
#define sSpellMgr
Definition SpellMgr.h:847
#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:566
@ 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:167
Definition ChatTextBuilder.h:31
Definition SpellAuras.h:88
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:2044
void GetRespawnPosition(float &x, float &y, float &z, float *ori=nullptr, float *dist=nullptr) const
Definition Creature.cpp:3108
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:2872
void GetTransportHomePosition(float &x, float &y, float &z, float &ori) const
Definition Creature.h:354
void DoFleeToGetAssistance()
Definition Creature.cpp:1090
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:173
void AddSpellMod(SpellValueMod mod, int32 value)
Definition SpellDefines.h:175
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:1429
bool isSpawnedByDefault() const
Definition GameObject.h:197
void SetLootState(LootState s, Unit *unit=nullptr)
Definition GameObject.cpp:2484
void SetRespawnTime(int32 respawn)
Definition GameObject.cpp:1288
GameobjectTypes GetGoType() const
Definition GameObject.h:204
void Respawn()
Definition GameObject.cpp:1303
void DespawnOrUnsummon(Milliseconds delay=0ms, Seconds forcedRespawnTime=0s)
Definition GameObject.cpp:928
void CastSpell(Unit *target, uint32 spell)
Definition GameObject.cpp:2099
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:400
virtual void DoAction(int32)
Definition InstanceScript.h:286
static std::string GetBossStateName(uint8 state)
Definition InstanceScript.cpp:844
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:2642
void LoadGrid(float x, float y)
Definition Map.cpp:216
PlayerList const & GetPlayers() const
Definition Map.h:335
bool SpawnGroupDespawn(uint32 groupId, bool deleteRespawnTimes=false)
Definition Map.cpp:2726
void MoveFormation(Unit *leader, float dist, float angle, uint32 point1, uint32 point2)
Definition MotionMaster.cpp:471
void MovePoint(uint32 id, Position const &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:241
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:1014
void MovementExpired(bool reset=true)
Definition MotionMaster.h:207
void MoveJump(Position const &pos, float speedXY, float speedZ, uint32 id=0)
Definition MotionMaster.h:257
void MoveIdle()
Definition MotionMaster.cpp:235
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:448
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:245
static ObjectGuid const Empty
Definition ObjectGuid.h:123
std::string ToString() const
Definition ObjectGuid.cpp:48
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:880
virtual void SetObjectScale(float scale)
Definition Object.h:127
CinematicMgr & GetCinematicMgr()
Definition Player.h:1403
void GroupEventHappens(uint32 questId, WorldObject const *pEventObject)
Definition PlayerQuest.cpp:1892
void PrepareGossipMenu(WorldObject *source, uint32 menuId=0, bool showQuests=false)
Definition PlayerGossip.cpp:32
void RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject *pRewardSource)
Definition Player.cpp:13046
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:5672
void StoreTargetList(ObjectVector const &targets, uint32 id)
Definition SmartScript.h:93
void RetryLater(SmartScriptHolder &e, bool ignoreChanceRoll=false)
Definition SmartScript.cpp:5352
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:3627
void OnReset()
Definition SmartScript.cpp:131
void InstallTemplate(SmartScriptHolder const &e)
Definition SmartScript.cpp:3515
ObjectGuid goOrigGUID
Definition SmartScript.h:229
void DecPhase(uint32 p)
Definition SmartScript.cpp:5678
ObjectGuid meOrigGUID
Definition SmartScript.h:227
Definition SpellInfo.h:340
SpellSchoolMask GetSchoolMask() const
Definition SpellInfo.cpp:1921
bool HasAttribute(SpellAttr0 attribute) const
Definition SpellInfo.h:441
int32 CalcPowerCost(WorldObject const *caster, SpellSchoolMask schoolMask, Spell *spell=nullptr) const
Definition SpellInfo.cpp:2829
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:29
uint8 getGender() const
Definition Unit.h:849
void SetFacingToObject(WorldObject *object, Milliseconds timed=0ms)
Definition Unit.cpp:16078
void SetFacingTo(float ori)
Definition Unit.cpp:16068
float GetSpeed(UnitMoveType mtype) const
Definition Unit.cpp:11047
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true, bool bySelf=false)
Definition Unit.cpp:4047
float GetSpellMinRangeForTarget(Unit const *target, SpellInfo const *spellInfo) const
Definition Unit.cpp:11509
Player * GetCharmerOrOwnerPlayerOrPlayerItself() const
Definition Unit.cpp:7503
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:13580
MotionMaster * GetMotionMaster()
Definition Unit.h:1761
void SetUnitMovementFlags(uint32 f)
Definition Unit.h:777
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:1429
bool IsAlive() const
Definition Unit.h:1796
void StopMoving()
Definition Unit.cpp:12639
void SendPlaySpellVisual(uint32 id)
Definition Unit.cpp:14795
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition Unit.cpp:5764
virtual void SetSheath(SheathState sheathed)
Definition Unit.h:1780
float GetSpellMaxRangeForTarget(Unit const *target, SpellInfo const *spellInfo) const
Definition Unit.cpp:11489
bool HasUnitMovementFlag(uint32 f) const
Definition Unit.h:775
TransportBase * GetDirectTransport() const
Definition Unit.cpp:14651
void SendMovementFlagUpdate(bool self=false)
Definition Unit.cpp:12693
void EngageWithTarget(Unit *who)
Definition Unit.cpp:7306
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:1372
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:4936
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition Unit.cpp:11052
ThreatManager & GetThreatMgr()
Definition Unit.h:957
ObjectGuid GetTransGUID() const override
Definition Unit.cpp:14640
bool IsAIEnabled
Definition Unit.h:2102
bool HasUnitState(const uint32 f) const
Definition Unit.h:737
float GetPowerPct(Powers power) const
Definition Unit.h:1143
void SetDisableGravity(bool disable)
Definition Unit.cpp:16119
float GetMeleeRange(Unit const *target) const
Definition Unit.cpp:807
uint32 GetPower(Powers power) const
Definition Unit.h:1141
void CombatStop(bool includingCast=false, bool mutualPvP=true)
Definition Unit.cpp:7273
void KillSelf(bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition Unit.h:1240
bool CanHaveThreatList(bool skipAliveCheck=false) const
Definition Unit.cpp:11179
void SetInFront(WorldObject const *target)
Definition Unit.cpp:16062
bool isDead() const
Definition Unit.h:1798
Map * FindMap() const
Definition Object.h:638
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:1412
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:2752
void SummonGameObjectGroup(uint8 group, std::list< GameObject * > *list=nullptr)
Definition Object.cpp:2544
std::string const & GetName() const
Definition Object.h:535
void AddObjectToRemoveList()
Definition Object.cpp:2232
EventProcessor m_Events
Definition Object.h:749
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition Object.cpp:2453
float GetDistance(WorldObject const *obj) const
Definition Object.cpp:1304
uint32 GetAreaId() const
Definition Object.cpp:3179
uint32 GetZoneId() const
Definition Object.cpp:3171
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:2467
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
Definition Object.cpp:2530
virtual float GetCombatReach() const
Definition Object.h:513
void GetRandomPoint(Position const &srcPos, float distance, float &rand_x, float &rand_y, float &rand_z) const
Definition Object.cpp:1567
Creature * SummonTrigger(float x, float y, float z, float ang, uint32 dur, bool setLevel=false, CreatureAI *(*GetAI)(Creature *)=nullptr)
Definition Object.cpp:2502
Player session in the World.
Definition WorldSession.h:430
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:244
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 GetAngle(Position const *pos) const
Definition Position.cpp:85
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
Definition SmartScriptMgr.h:746
struct SmartAction::@75::@98 combatMove
uint32 followState
Definition SmartScriptMgr.h:1455
uint32 visualId
Definition SmartScriptMgr.h:1450
uint32 targetParam2
Definition SmartScriptMgr.h:850
struct SmartAction::@75::@100 incEventPhase
struct SmartAction::@75::@106 killedMonster
SAIBool disableForceDestination
Definition SmartScriptMgr.h:1207
std::array< uint32, SMART_ACTION_PARAM_COUNT > emotes
Definition SmartScriptMgr.h:833
uint32 forcedMovement
Definition SmartScriptMgr.h:1032
uint32 repeatMax
Definition SmartScriptMgr.h:1109
uint32 phaseMin
Definition SmartScriptMgr.h:935
uint32 targetsLimit
Definition SmartScriptMgr.h:841
struct SmartAction::@75::@181 movementSpeed
struct SmartAction::@75::@186 setScale
SAIBool transport
Definition SmartScriptMgr.h:1203
struct SmartAction::@75::@192 wpDataRandom
struct SmartAction::@75::@82 randomSound
struct SmartAction::@75::@120 summonGO
uint32 startAngle
Definition SmartScriptMgr.h:1443
SAIBool reset
Definition SmartScriptMgr.h:1094
std::array< uint32, SMART_ACTION_PARAM_COUNT > actionLists
Definition SmartScriptMgr.h:1157
struct SmartAction::@75::@185 scriptSpawn
uint32 delay
Definition SmartScriptMgr.h:756
struct SmartAction::@75::@163 startClosestWaypoint
uint32 random
Definition SmartScriptMgr.h:1338
uint32 quickChange
Definition SmartScriptMgr.h:1337
uint32 targetParam4
Definition SmartScriptMgr.h:1467
uint32 dist
Definition SmartScriptMgr.h:920
uint32 group
Definition SmartScriptMgr.h:1260
SAIBool disable
Definition SmartScriptMgr.h:1392
struct SmartAction::@75::@180 corpseDelay
struct SmartAction::@75::@194 worldStateScript
struct SmartAction::@75::@111 callHelp
uint32 spell
Definition SmartScriptMgr.h:838
uint32 minHP
Definition SmartScriptMgr.h:987
SAIBool force
Definition SmartScriptMgr.h:1314
struct SmartAction::@75::@177 summonVortex
uint32 flags
Definition SmartScriptMgr.h:847
struct SmartAction::@75::@97 autoAttack
SAIBool loot
Definition SmartScriptMgr.h:1510
uint32 distanceBetweenSummons
Definition SmartScriptMgr.h:1353
uint32 data
Definition SmartScriptMgr.h:947
struct SmartAction::@75::@105 randomPhaseRange
uint32 entry
Definition SmartScriptMgr.h:922
struct SmartAction::@75::@91 crossCast
struct SmartAction::@75::@129 setSwim
uint32 quest
Definition SmartScriptMgr.h:817
struct SmartAction::@75::@150 moveToPosTarget
struct SmartAction::@75::@172 orientation
struct SmartAction::@75::@78 simpleTalk
uint32 triggerFlags
Definition SmartScriptMgr.h:840
struct SmartAction::@75::@87 questOffer
uint32 bp1
Definition SmartScriptMgr.h:1368
uint32 distance
Definition SmartScriptMgr.h:780
SAIBool removeObjectFromWorld
Definition SmartScriptMgr.h:982
uint32 min
Definition SmartScriptMgr.h:1106
uint32 spawnTimerMax
Definition SmartScriptMgr.h:1427
uint32 subtract
Definition SmartScriptMgr.h:1095
struct SmartAction::@75::@110 die
uint32 a
Definition SmartScriptMgr.h:1377
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:1419
struct SmartAction::@75::@191 wpData
uint32 percent
Definition SmartScriptMgr.h:988
uint32 dec
Definition SmartScriptMgr.h:904
uint32 milliseconds
Definition SmartScriptMgr.h:964
struct SmartAction::@75::@125 item
uint32 summonEntry
Definition SmartScriptMgr.h:1350
struct SmartAction::@75::@84 randomMusic
uint32 followType
Definition SmartScriptMgr.h:1456
uint32 instanceTarget
Definition SmartScriptMgr.h:1387
struct SmartAction::@75::@196 reward
uint32 credit
Definition SmartScriptMgr.h:923
uint32 controlled
Definition SmartScriptMgr.h:1204
uint32 alternative
Definition SmartScriptMgr.h:856
uint32 targetParam1
Definition SmartScriptMgr.h:849
uint32 mapID
Definition SmartScriptMgr.h:1087
uint32 stopMovement
Definition SmartScriptMgr.h:1344
struct SmartAction::@75::@134 movie
struct SmartAction::@75::@94 summonCreature
uint32 charges
Definition SmartScriptMgr.h:915
struct SmartAction::@75::@113 forceDespawn
struct SmartAction::@75::@103 follow
uint32 model
Definition SmartScriptMgr.h:773
uint32 duration
Definition SmartScriptMgr.h:754
SAIBool attackInvoker
Definition SmartScriptMgr.h:869
SAIBool useTalkTarget
Definition SmartScriptMgr.h:755
SAIBool run
Definition SmartScriptMgr.h:1070
struct SmartAction::@75::@200 groupSpawn
struct SmartAction::@75::@176 castCustom
uint32 value
Definition SmartScriptMgr.h:1093
struct SmartAction::@75::@140 timedActionList
uint32 movementExpired
Definition SmartScriptMgr.h:1345
struct SmartAction::@75::@117 moveRandom
uint32 targetParam3
Definition SmartScriptMgr.h:851
uint32 respawnDelay
Definition SmartScriptMgr.h:1428
SAIBool swim
Definition SmartScriptMgr.h:1082
uint32 combatReach
Definition SmartScriptMgr.h:1206
uint32 sound2
Definition SmartScriptMgr.h:786
struct SmartAction::@75::@188 spellVisual
uint32 spawnPos
Definition SmartScriptMgr.h:1308
struct SmartAction::@75::@92 activateObject
struct SmartAction::@75::@167 setHomePos
struct SmartAction::@75::@161 gameEventStop
uint32 pathId2
Definition SmartScriptMgr.h:1284
uint32 creature
Definition SmartScriptMgr.h:772
struct SmartAction::@75::@190 orientationTarget
uint32 spawnTimerMin
Definition SmartScriptMgr.h:1426
struct SmartAction::@75::@132 storeTargets
struct SmartAction::@75::@114 invincHP
uint32 angle
Definition SmartScriptMgr.h:921
uint32 field
Definition SmartScriptMgr.h:946
struct SmartAction::@75::@199 gameobjectGroup
uint32 range
Definition SmartScriptMgr.h:861
struct SmartAction::@75::@95 threatPCT
struct SmartAction::@75::@89 randomEmote
struct SmartAction::@75::@162 gameEventStart
uint32 flag
Definition SmartScriptMgr.h:1127
uint32 sound3
Definition SmartScriptMgr.h:787
uint32 targetsummon
Definition SmartScriptMgr.h:1021
struct SmartAction::@75::@145 jump
uint32 chance
Definition SmartScriptMgr.h:1110
struct SmartAction::@75::@131 setCounter
uint32 state
Definition SmartScriptMgr.h:828
struct SmartAction::@75::@90 cast
struct SmartAction::@75::@108 setInstanceData64
uint32 sound1
Definition SmartScriptMgr.h:785
struct SmartAction::@75::@80 morphOrMount
struct SmartAction::@75::@116 setData
uint32 forceRespawnTimer
Definition SmartScriptMgr.h:981
uint32 speed
Definition SmartScriptMgr.h:1076
uint32 sound4
Definition SmartScriptMgr.h:788
struct SmartAction::@75::@147 flee
uint32 targetType
Definition SmartScriptMgr.h:848
uint32 repetitions
Definition SmartScriptMgr.h:1442
struct SmartAction::@75::@174 coneSummon
uint32 aliveState
Definition SmartScriptMgr.h:925
SAIBool onlySelf
Definition SmartScriptMgr.h:779
uint32 attackScriptOwner
Definition SmartScriptMgr.h:870
uint32 speedxy
Definition SmartScriptMgr.h:1180
uint32 pointId
Definition SmartScriptMgr.h:1202
SAIBool attack
Definition SmartScriptMgr.h:888
uint32 repeatMin
Definition SmartScriptMgr.h:1108
struct SmartAction::@75::@122 wpStart
uint32 scale
Definition SmartScriptMgr.h:1435
SAIBool fly
Definition SmartScriptMgr.h:1075
uint32 textGroupID
Definition SmartScriptMgr.h:753
uint32 castFlags
Definition SmartScriptMgr.h:839
struct SmartAction::@75::@179 disableEvade
std::array< uint32, SMART_ACTION_PARAM_COUNT > phases
Definition SmartScriptMgr.h:930
SAIBool dontDespawn
Definition SmartScriptMgr.h:1430
uint32 turnAngle
Definition SmartScriptMgr.h:1339
uint32 textId
Definition SmartScriptMgr.h:1360
uint32 gossipMenuId
Definition SmartScriptMgr.h:1218
uint32 speedz
Definition SmartScriptMgr.h:1181
SAIBool repeat
Definition SmartScriptMgr.h:1034
struct SmartAction::@75::@173 stopMotion
uint32 gossipNpcTextId
Definition SmartScriptMgr.h:1219
uint32 mask
Definition SmartScriptMgr.h:993
uint32 pathId1
Definition SmartScriptMgr.h:1283
uint32 phi_delta
Definition SmartScriptMgr.h:1380
uint32 count
Definition SmartScriptMgr.h:1055
struct SmartAction::@75::@112 setSheath
uint32 inc
Definition SmartScriptMgr.h:903
uint32 phaseMax
Definition SmartScriptMgr.h:936
struct SmartAction::@75::@130 teleport
uint32 timer
Definition SmartScriptMgr.h:1397
uint32 ContactDistance
Definition SmartScriptMgr.h:1205
struct SmartAction::@75::@79 faction
PathSource pathSource
Definition SmartScriptMgr.h:1287
struct SmartAction::@75::@135 equip
uint32 k
Definition SmartScriptMgr.h:1378
uint32 distanceBetweenRings
Definition SmartScriptMgr.h:1352
uint32 coneLength
Definition SmartScriptMgr.h:1354
uint32 counterId
Definition SmartScriptMgr.h:1092
SAIBool withEmote
Definition SmartScriptMgr.h:970
struct SmartAction::@75::@146 movementFlag
uint32 param
Definition SmartScriptMgr.h:1492
uint32 max
Definition SmartScriptMgr.h:1107
uint32 selfJump
Definition SmartScriptMgr.h:1182
struct SmartAction::@75::@183 cinematic
uint32 maxId
Definition SmartScriptMgr.h:1320
uint32 r_max
Definition SmartScriptMgr.h:1379
struct SmartAction::@75::@136 unitFlag
uint32 speedFraction
Definition SmartScriptMgr.h:1404
struct SmartAction::@75::@88 react
struct SmartAction::@75::@119 setActive
struct SmartAction::@75::@159 creatureGroup
SAIBool fail
Definition SmartScriptMgr.h:1049
struct SmartAction::@75::@124 wpStop
SAIBool directAdd
Definition SmartScriptMgr.h:823
uint32 bp2
Definition SmartScriptMgr.h:1369
uint32 disableGravity
Definition SmartScriptMgr.h:1077
uint32 sound
Definition SmartScriptMgr.h:778
uint32 threatINC
Definition SmartScriptMgr.h:876
uint32 coneAngle
Definition SmartScriptMgr.h:1355
uint32 summonDuration
Definition SmartScriptMgr.h:1351
struct SmartAction::@75::@148 RespawnTarget
struct SmartAction::@75::@175 playerTalk
uint32 threatDEC
Definition SmartScriptMgr.h:877
SAIBool reputation
Definition SmartScriptMgr.h:1509
uint32 ignoreRespawn
Definition SmartScriptMgr.h:1531
uint32 stepAngle
Definition SmartScriptMgr.h:1444
struct SmartAction::@75::@153 sendTargetToTarget
uint32 reactState
Definition SmartScriptMgr.h:1037
uint32 speedInteger
Definition SmartScriptMgr.h:1403
struct SmartAction::@75::@77 talk
uint32 index
Definition SmartScriptMgr.h:1420
struct SmartAction::@75::@123 wpPause
struct SmartAction::@75::@83 music
uint32 actionId
Definition SmartScriptMgr.h:1385
struct SmartAction::@75::@169 randomTimedEvent
uint32 despawnTime
Definition SmartScriptMgr.h:1020
struct SmartAction::@75::@128 setFly
uint32 goRespawnTime
Definition SmartScriptMgr.h:1197
struct SmartAction::@75::@115 ingamePhaseMask
uint32 factionID
Definition SmartScriptMgr.h:767
uint32 eventId
Definition SmartScriptMgr.h:1491
uint32 groupId
Definition SmartScriptMgr.h:1530
struct SmartAction::@75::@189 followGroup
uint32 pathId
Definition SmartScriptMgr.h:1472
SAIBool move
Definition SmartScriptMgr.h:893
struct SmartAction::@75::@178 doAction
struct SmartAction::@75::@149 moveToPos
std::array< uint32, MAX_EQUIPMENT_ITEMS > slots
Definition SmartScriptMgr.h:1122
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:822
uint32 bp3
Definition SmartScriptMgr.h:1370
uint32 pathID
Definition SmartScriptMgr.h:1033
uint32 emote
Definition SmartScriptMgr.h:812
struct SmartAction::@75::@102 removeAura
uint32 id
Definition SmartScriptMgr.h:1027
uint32 minId
Definition SmartScriptMgr.h:1319
uint32 phase
Definition SmartScriptMgr.h:898
uint32 sheath
Definition SmartScriptMgr.h:975
uint32 isNegative
Definition SmartScriptMgr.h:1386
uint32 creditType
Definition SmartScriptMgr.h:924
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:2033
uint32 link
Definition SmartScriptMgr.h:2016
bool IsAreatriggerScript() const
Definition SmartScriptMgr.h:2028
uint32 event_id
Definition SmartScriptMgr.h:2015
int32 entryOrGuid
Definition SmartScriptMgr.h:2013
uint32 GetScriptType() const
Definition SmartScriptMgr.h:2023
uint32 GetTargetType() const
Definition SmartScriptMgr.h:2026
uint32 GetActionType() const
Definition SmartScriptMgr.h:2025
struct SmartTarget::@201::@205 unitRange
float o
Definition SmartScriptMgr.h:1613
uint32 maxDist
Definition SmartScriptMgr.h:1619
uint32 range
Definition SmartScriptMgr.h:1740
float x
Definition SmartScriptMgr.h:1613
uint32 self
Definition SmartScriptMgr.h:1742
uint32 amount
Definition SmartScriptMgr.h:1741
struct SmartTarget::@201::@222 randomPoint
float y
Definition SmartScriptMgr.h:1613
float z
Definition SmartScriptMgr.h:1613
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