@@ -602,6 +602,8 @@ void ScriptMgr::OnPlayerEnterMap(Map* map, Player* player)
602
602
ASSERT (map);
603
603
ASSERT (player);
604
604
605
+ FOREACH_SCRIPT (AllMapScript)->OnPlayerEnterAll (map, player);
606
+
605
607
FOREACH_SCRIPT (PlayerScript)->OnMapChanged (player);
606
608
607
609
SCR_MAP_BGN (WorldMapScript, map, itr, end, entry, IsWorldMap);
@@ -621,7 +623,9 @@ void ScriptMgr::OnPlayerLeaveMap(Map* map, Player* player)
621
623
{
622
624
ASSERT (map);
623
625
ASSERT (player);
624
-
626
+
627
+ FOREACH_SCRIPT (AllMapScript)->OnPlayerLeaveAll (map, player);
628
+
625
629
SCR_MAP_BGN (WorldMapScript, map, itr, end, entry, IsWorldMap);
626
630
itr->second ->OnPlayerLeave (map, player);
627
631
SCR_MAP_END;
@@ -815,6 +819,8 @@ void ScriptMgr::OnCreatureUpdate(Creature* creature, uint32 diff)
815
819
{
816
820
ASSERT (creature);
817
821
822
+ FOREACH_SCRIPT (AllCreatureScript)->OnAllCreatureUpdate (creature, diff);
823
+
818
824
GET_SCRIPT (CreatureScript, creature->GetScriptId (), tmpscript);
819
825
tmpscript->OnUpdate (creature, diff);
820
826
}
@@ -1335,19 +1341,33 @@ void ScriptMgr::OnAfterPlayerMoveItemFromInventory(Player* player, Item* it, uin
1335
1341
1336
1342
void ScriptMgr::OnEquip (Player* player, Item* it, uint8 bag, uint8 slot, bool update)
1337
1343
{
1338
- FOREACH_SCRIPT (PlayerScript)->OnEquip (player, it, bag, slot, update);
1344
+ FOREACH_SCRIPT (PlayerScript)->OnEquip (player, it, bag, slot, update);
1339
1345
}
1340
1346
1341
1347
void ScriptMgr::OnPlayerJoinBG (Player* player, Battleground* bg)
1342
1348
{
1343
- FOREACH_SCRIPT (PlayerScript)->OnPlayerJoinBG (player, bg);
1349
+ FOREACH_SCRIPT (PlayerScript)->OnPlayerJoinBG (player, bg);
1344
1350
}
1345
1351
1346
1352
void ScriptMgr::OnPlayerJoinArena (Player* player, Battleground* bg)
1347
1353
{
1348
- FOREACH_SCRIPT (PlayerScript)->OnPlayerJoinArena (player, bg);
1354
+ FOREACH_SCRIPT (PlayerScript)->OnPlayerJoinArena (player, bg);
1349
1355
}
1350
1356
1357
+ void ScriptMgr::OnLootItem (Player* player, Item* item, uint32 count, uint64 lootguid)
1358
+ {
1359
+ FOREACH_SCRIPT (PlayerScript)->OnLootItem (player, item, count, lootguid);
1360
+ }
1361
+
1362
+ void ScriptMgr::OnCreateItem (Player* player, Item* item, uint32 count)
1363
+ {
1364
+ FOREACH_SCRIPT (PlayerScript)->OnCreateItem (player, item, count);
1365
+ }
1366
+
1367
+ void ScriptMgr::OnQuestRewardItem (Player* player, Item* item, uint32 count)
1368
+ {
1369
+ FOREACH_SCRIPT (PlayerScript)->OnQuestRewardItem (player, item, count);
1370
+ }
1351
1371
1352
1372
// Guild
1353
1373
void ScriptMgr::OnGuildAddMember (Guild* guild, Player* player, uint8& plRank)
@@ -1455,6 +1475,76 @@ void ScriptMgr::OnBeforeUpdateArenaPoints(ArenaTeam* at, std::map<uint32, uint32
1455
1475
FOREACH_SCRIPT (GlobalScript)->OnBeforeUpdateArenaPoints (at,ap);
1456
1476
}
1457
1477
1478
+ uint32 ScriptMgr::DealDamage (Unit* AttackerUnit, Unit *pVictim, uint32 damage, DamageEffectType damagetype)
1479
+ {
1480
+ FOR_SCRIPTS_RET (UnitScript, itr, end, damage)
1481
+ damage = itr->second ->DealDamage (AttackerUnit, pVictim, damage, damagetype);
1482
+ return damage;
1483
+ }
1484
+ void ScriptMgr::Creature_SelectLevel (const CreatureTemplate *cinfo, Creature* creature)
1485
+ {
1486
+ FOREACH_SCRIPT (AllCreatureScript)->Creature_SelectLevel (cinfo, creature);
1487
+ }
1488
+ void ScriptMgr::OnHeal (Unit* healer, Unit* reciever, uint32& gain)
1489
+ {
1490
+ FOREACH_SCRIPT (UnitScript)->OnHeal (healer, reciever, gain);
1491
+ }
1492
+
1493
+ void ScriptMgr::OnDamage (Unit* attacker, Unit* victim, uint32& damage)
1494
+ {
1495
+ FOREACH_SCRIPT (UnitScript)->OnDamage (attacker, victim, damage);
1496
+ }
1497
+
1498
+ void ScriptMgr::ModifyPeriodicDamageAurasTick (Unit* target, Unit* attacker, uint32& damage)
1499
+ {
1500
+ FOREACH_SCRIPT (UnitScript)->ModifyPeriodicDamageAurasTick (target, attacker, damage);
1501
+ }
1502
+
1503
+ void ScriptMgr::ModifyMeleeDamage (Unit* target, Unit* attacker, uint32& damage)
1504
+ {
1505
+ FOREACH_SCRIPT (UnitScript)->ModifyMeleeDamage (target, attacker, damage);
1506
+ }
1507
+
1508
+ void ScriptMgr::ModifySpellDamageTaken (Unit* target, Unit* attacker, int32& damage)
1509
+ {
1510
+ FOREACH_SCRIPT (UnitScript)->ModifySpellDamageTaken (target, attacker, damage);
1511
+ }
1512
+
1513
+ void ScriptMgr::ModifyHealRecieved (Unit* target, Unit* attacker, uint32& damage)
1514
+ {
1515
+ FOREACH_SCRIPT (UnitScript)->ModifyHealRecieved (target, attacker, damage);
1516
+ }
1517
+
1518
+ void ScriptMgr::OnPlayerMove (Player* player, MovementInfo movementInfo, uint32 opcode)
1519
+ {
1520
+ FOREACH_SCRIPT (MovementHandlerScript)->OnPlayerMove (player, movementInfo, opcode);
1521
+ }
1522
+
1523
+ AllMapScript::AllMapScript (const char * name)
1524
+ : ScriptObject(name)
1525
+ {
1526
+ ScriptRegistry<AllMapScript>::AddScript (this );
1527
+ }
1528
+
1529
+ AllCreatureScript::AllCreatureScript (const char * name)
1530
+ : ScriptObject(name)
1531
+ {
1532
+ ScriptRegistry<AllCreatureScript>::AddScript (this );
1533
+ }
1534
+
1535
+ UnitScript::UnitScript (const char * name, bool addToScripts)
1536
+ : ScriptObject(name)
1537
+ {
1538
+ if (addToScripts)
1539
+ ScriptRegistry<UnitScript>::AddScript (this );
1540
+ }
1541
+
1542
+ MovementHandlerScript::MovementHandlerScript (const char * name)
1543
+ : ScriptObject(name)
1544
+ {
1545
+ ScriptRegistry<MovementHandlerScript>::AddScript (this );
1546
+ }
1547
+
1458
1548
SpellScriptLoader::SpellScriptLoader (const char * name)
1459
1549
: ScriptObject(name)
1460
1550
{
@@ -1636,6 +1726,10 @@ template class ScriptRegistry<PlayerScript>;
1636
1726
template class ScriptRegistry <GuildScript>;
1637
1727
template class ScriptRegistry <GroupScript>;
1638
1728
template class ScriptRegistry <GlobalScript>;
1729
+ template class ScriptRegistry <UnitScript>;
1730
+ template class ScriptRegistry <AllCreatureScript>;
1731
+ template class ScriptRegistry <AllMapScript>;
1732
+ template class ScriptRegistry <MovementHandlerScript>;
1639
1733
1640
1734
// Undefine utility macros.
1641
1735
#undef GET_SCRIPT_RET
0 commit comments