mirror of
https://github.com/azerothcore/mod-ale
synced 2025-11-29 15:38:17 +08:00
Eluna implement more hooks, remove unnecessary hooks and code. Can now use Reset to reset timed events and on spawn should be used for events that happen on spawn instead of reset.
This commit is contained in:
178
HookMgr.cpp
178
HookMgr.cpp
@@ -55,19 +55,6 @@ void HookMgr::OnChange(Weather* weather, WeatherState state, float grade)
|
||||
sEluna->ServerEventBindings.ExecuteCall();
|
||||
sEluna->ServerEventBindings.EndCall();
|
||||
}
|
||||
// transport
|
||||
void HookMgr::OnAddPassenger(Transport* transport, Player* player)
|
||||
{
|
||||
}
|
||||
void HookMgr::OnAddCreaturePassenger(Transport* transport, Creature* creature)
|
||||
{
|
||||
}
|
||||
void HookMgr::OnRemovePassenger(Transport* transport, Player* player)
|
||||
{
|
||||
}
|
||||
void HookMgr::OnRelocate(Transport* transport, uint32 waypointId, uint32 mapId, float x, float y, float z)
|
||||
{
|
||||
}
|
||||
// Auction House
|
||||
void HookMgr::OnAdd(AuctionHouseObject* ah)
|
||||
{
|
||||
@@ -479,6 +466,20 @@ bool HookMgr::OnExpire(Player* pPlayer, ItemTemplate const* pProto)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool HookMgr::OnRemove(Player* pPlayer, Item* item)
|
||||
{
|
||||
int bind = sEluna->ItemEventBindings.GetBind(item->GetEntry(), ITEM_EVENT_ON_REMOVE);
|
||||
if (!bind)
|
||||
return false;
|
||||
ELUNA_GUARD();
|
||||
sEluna->BeginCall(bind);
|
||||
sEluna->Push(sEluna->L, ITEM_EVENT_ON_REMOVE);
|
||||
sEluna->Push(sEluna->L, pPlayer);
|
||||
sEluna->Push(sEluna->L, item);
|
||||
sEluna->ExecuteCall(3, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Player
|
||||
extern bool StartEluna();
|
||||
bool HookMgr::OnCommand(Player* player, const char* text)
|
||||
@@ -1136,7 +1137,8 @@ bool HookMgr::OnChat(Player* pPlayer, uint32 type, uint32 lang, std::string& msg
|
||||
return result;
|
||||
}
|
||||
|
||||
#ifndef MANGOS
|
||||
#ifndef CLASSIC
|
||||
#ifndef TBC
|
||||
// Vehicle
|
||||
void HookMgr::OnInstall(Vehicle* vehicle)
|
||||
{
|
||||
@@ -1160,17 +1162,6 @@ void HookMgr::OnUninstall(Vehicle* vehicle)
|
||||
sEluna->VehicleEventBindings.EndCall();
|
||||
}
|
||||
|
||||
void HookMgr::OnReset(Vehicle* vehicle)
|
||||
{
|
||||
if (!sEluna->VehicleEventBindings.HasEvents(VEHICLE_EVENT_ON_RESET))
|
||||
return;
|
||||
ELUNA_GUARD();
|
||||
sEluna->VehicleEventBindings.BeginCall(VEHICLE_EVENT_ON_RESET);
|
||||
sEluna->Push(sEluna->L, vehicle);
|
||||
sEluna->VehicleEventBindings.ExecuteCall();
|
||||
sEluna->VehicleEventBindings.EndCall();
|
||||
}
|
||||
|
||||
void HookMgr::OnInstallAccessory(Vehicle* vehicle, Creature* accessory)
|
||||
{
|
||||
if (!sEluna->VehicleEventBindings.HasEvents(VEHICLE_EVENT_ON_INSTALL_ACCESSORY))
|
||||
@@ -1208,6 +1199,7 @@ void HookMgr::OnRemovePassenger(Vehicle* vehicle, Unit* passenger)
|
||||
sEluna->VehicleEventBindings.EndCall();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void HookMgr::OnAddMember(Guild* guild, Player* player, uint32 plRank)
|
||||
{
|
||||
@@ -1436,6 +1428,61 @@ void HookMgr::OnCreate(Group* group, uint64 leaderGuid, GroupType groupType)
|
||||
sEluna->GroupEventBindings.EndCall();
|
||||
}
|
||||
|
||||
/* Map */
|
||||
void HookMgr::OnCreate(Map* map)
|
||||
{
|
||||
if (!sEluna->ServerEventBindings.HasEvents(MAP_EVENT_ON_CREATE))
|
||||
return;
|
||||
ELUNA_GUARD();
|
||||
sEluna->ServerEventBindings.BeginCall(MAP_EVENT_ON_CREATE);
|
||||
sEluna->Push(sEluna->L, map);
|
||||
sEluna->ServerEventBindings.ExecuteCall();
|
||||
sEluna->ServerEventBindings.EndCall();
|
||||
}
|
||||
void HookMgr::OnDestroy(Map* map)
|
||||
{
|
||||
if (!sEluna->ServerEventBindings.HasEvents(MAP_EVENT_ON_DESTROY))
|
||||
return;
|
||||
ELUNA_GUARD();
|
||||
sEluna->ServerEventBindings.BeginCall(MAP_EVENT_ON_DESTROY);
|
||||
sEluna->Push(sEluna->L, map);
|
||||
sEluna->ServerEventBindings.ExecuteCall();
|
||||
sEluna->ServerEventBindings.EndCall();
|
||||
}
|
||||
void HookMgr::OnPlayerEnter(Map* map, Player* player)
|
||||
{
|
||||
if (!sEluna->ServerEventBindings.HasEvents(MAP_EVENT_ON_PLAYER_ENTER))
|
||||
return;
|
||||
ELUNA_GUARD();
|
||||
sEluna->ServerEventBindings.BeginCall(MAP_EVENT_ON_PLAYER_ENTER);
|
||||
sEluna->Push(sEluna->L, map);
|
||||
sEluna->Push(sEluna->L, player);
|
||||
sEluna->ServerEventBindings.ExecuteCall();
|
||||
sEluna->ServerEventBindings.EndCall();
|
||||
}
|
||||
void HookMgr::OnPlayerLeave(Map* map, Player* player)
|
||||
{
|
||||
if (!sEluna->ServerEventBindings.HasEvents(MAP_EVENT_ON_PLAYER_LEAVE))
|
||||
return;
|
||||
ELUNA_GUARD();
|
||||
sEluna->ServerEventBindings.BeginCall(MAP_EVENT_ON_PLAYER_LEAVE);
|
||||
sEluna->Push(sEluna->L, map);
|
||||
sEluna->Push(sEluna->L, player);
|
||||
sEluna->ServerEventBindings.ExecuteCall();
|
||||
sEluna->ServerEventBindings.EndCall();
|
||||
}
|
||||
void HookMgr::OnUpdate(Map* map, uint32 diff)
|
||||
{
|
||||
if (!sEluna->ServerEventBindings.HasEvents(MAP_EVENT_ON_UPDATE))
|
||||
return;
|
||||
ELUNA_GUARD();
|
||||
sEluna->ServerEventBindings.BeginCall(MAP_EVENT_ON_UPDATE);
|
||||
sEluna->Push(sEluna->L, map);
|
||||
sEluna->Push(sEluna->L, diff);
|
||||
sEluna->ServerEventBindings.ExecuteCall();
|
||||
sEluna->ServerEventBindings.EndCall();
|
||||
}
|
||||
|
||||
// creature
|
||||
bool HookMgr::OnDummyEffect(Unit* pCaster, uint32 spellId, SpellEffIndex effIndex, Creature* pTarget)
|
||||
{
|
||||
@@ -1599,10 +1646,6 @@ struct ElunaCreatureAI : ScriptedAI
|
||||
ElunaCreatureAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
JustRespawned();
|
||||
#ifdef MANGOS
|
||||
if (!me->isDead())
|
||||
Reset();
|
||||
#endif
|
||||
}
|
||||
~ElunaCreatureAI() {}
|
||||
|
||||
@@ -1661,9 +1704,7 @@ struct ElunaCreatureAI : ScriptedAI
|
||||
void JustDied(Unit* killer) OVERRIDE
|
||||
{
|
||||
ScriptedAI::JustDied(killer);
|
||||
#ifdef MANGOS
|
||||
Reset();
|
||||
#endif
|
||||
On_Reset();
|
||||
int bind = sEluna->CreatureEventBindings.GetBind(me->GetEntry(), CREATURE_EVENT_ON_DIED);
|
||||
if (!bind)
|
||||
return;
|
||||
@@ -1755,9 +1796,7 @@ struct ElunaCreatureAI : ScriptedAI
|
||||
void EnterEvadeMode() OVERRIDE
|
||||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
#ifdef MANGOS
|
||||
Reset();
|
||||
#endif
|
||||
On_Reset();
|
||||
int bind = sEluna->CreatureEventBindings.GetBind(me->GetEntry(), CREATURE_EVENT_ON_LEAVE_COMBAT);
|
||||
if (!bind)
|
||||
return;
|
||||
@@ -1787,6 +1826,7 @@ struct ElunaCreatureAI : ScriptedAI
|
||||
void JustRespawned() OVERRIDE
|
||||
{
|
||||
ScriptedAI::JustRespawned();
|
||||
On_Reset();
|
||||
int bind = sEluna->CreatureEventBindings.GetBind(me->GetEntry(), CREATURE_EVENT_ON_SPAWN);
|
||||
if (!bind)
|
||||
return;
|
||||
@@ -1843,6 +1883,7 @@ struct ElunaCreatureAI : ScriptedAI
|
||||
}
|
||||
|
||||
#ifdef MANGOS
|
||||
// Enables use of MoveInLineOfSight
|
||||
bool IsVisible(Unit* who) const OVERRIDE
|
||||
{
|
||||
return me->IsWithinLOSInMap(who);
|
||||
@@ -1863,12 +1904,9 @@ struct ElunaCreatureAI : ScriptedAI
|
||||
sEluna->ExecuteCall(3, 0);
|
||||
}
|
||||
|
||||
//Called at creature reset either by death or evade
|
||||
void Reset()
|
||||
// Called on creature initial spawn, respawn, death, evade (leave combat)
|
||||
void On_Reset() // Not an override, custom
|
||||
{
|
||||
#ifdef TRINITY
|
||||
ScriptedAI::Reset();
|
||||
#endif
|
||||
int bind = sEluna->CreatureEventBindings.GetBind(me->GetEntry(), CREATURE_EVENT_ON_RESET);
|
||||
if (!bind)
|
||||
return;
|
||||
@@ -1964,22 +2002,6 @@ struct ElunaCreatureAI : ScriptedAI
|
||||
sEluna->Push(sEluna->L, target);
|
||||
sEluna->ExecuteCall(3, 0);
|
||||
}
|
||||
|
||||
void PassengerBoarded(Unit* passenger, int8 seatId, bool apply) OVERRIDE
|
||||
{
|
||||
ScriptedAI::PassengerBoarded(passenger, seatId, apply);
|
||||
int bind = sEluna->CreatureEventBindings.GetBind(me->GetEntry(), CREATURE_EVENT_ON_PASSANGER_BOARDED);
|
||||
if (!bind)
|
||||
return;
|
||||
ELUNA_GUARD();
|
||||
sEluna->BeginCall(bind);
|
||||
sEluna->Push(sEluna->L, CREATURE_EVENT_ON_PASSANGER_BOARDED);
|
||||
sEluna->Push(sEluna->L, me);
|
||||
sEluna->Push(sEluna->L, passenger);
|
||||
sEluna->Push(sEluna->L, seatId);
|
||||
sEluna->Push(sEluna->L, apply);
|
||||
sEluna->ExecuteCall(5, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MANGOS
|
||||
@@ -2097,28 +2119,6 @@ void HookMgr::UpdateAI(GameObject* pGameObject, uint32 diff)
|
||||
sEluna->ExecuteCall(3, 0);
|
||||
}
|
||||
|
||||
#ifndef MANGOS
|
||||
struct ElunaGameObjectAI : public GameObjectAI
|
||||
{
|
||||
ElunaGameObjectAI(GameObject* _go) : GameObjectAI(_go) {}
|
||||
~ElunaGameObjectAI()
|
||||
{
|
||||
}
|
||||
|
||||
void Reset() OVERRIDE
|
||||
{
|
||||
int bind = sEluna->GameObjectEventBindings.GetBind(go->GetEntry(), GAMEOBJECT_EVENT_ON_RESET);
|
||||
if (!bind)
|
||||
return;
|
||||
ELUNA_GUARD();
|
||||
sEluna->BeginCall(bind);
|
||||
sEluna->Push(sEluna->L, GAMEOBJECT_EVENT_ON_RESET);
|
||||
sEluna->Push(sEluna->L, go);
|
||||
sEluna->ExecuteCall(2, 0);
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
bool HookMgr::OnQuestReward(Player* pPlayer, GameObject* pGameObject, Quest const* pQuest)
|
||||
{
|
||||
int bind = sEluna->GameObjectEventBindings.GetBind(pGameObject->GetEntry(), GAMEOBJECT_EVENT_ON_QUEST_REWARD);
|
||||
@@ -2148,6 +2148,8 @@ uint32 HookMgr::GetDialogStatus(Player* pPlayer, GameObject* pGameObject)
|
||||
return DIALOG_STATUS_SCRIPTED_NO_STATUS; // DIALOG_STATUS_UNDEFINED
|
||||
}
|
||||
|
||||
#ifndef CLASSIC
|
||||
#ifndef TBC
|
||||
void HookMgr::OnDestroyed(GameObject* pGameObject, Player* pPlayer)
|
||||
{
|
||||
int bind = sEluna->GameObjectEventBindings.GetBind(pGameObject->GetEntry(), GAMEOBJECT_EVENT_ON_DESTROYED);
|
||||
@@ -2173,8 +2175,10 @@ void HookMgr::OnDamaged(GameObject* pGameObject, Player* pPlayer)
|
||||
sEluna->Push(sEluna->L, pPlayer);
|
||||
sEluna->ExecuteCall(3, 0);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void HookMgr::OnLootStateChanged(GameObject* pGameObject, uint32 state, Unit* pUnit)
|
||||
void HookMgr::OnLootStateChanged(GameObject* pGameObject, uint32 state)
|
||||
{
|
||||
int bind = sEluna->GameObjectEventBindings.GetBind(pGameObject->GetEntry(), GAMEOBJECT_EVENT_ON_LOOT_STATE_CHANGE);
|
||||
if (!bind)
|
||||
@@ -2184,7 +2188,6 @@ void HookMgr::OnLootStateChanged(GameObject* pGameObject, uint32 state, Unit* pU
|
||||
sEluna->Push(sEluna->L, GAMEOBJECT_EVENT_ON_LOOT_STATE_CHANGE);
|
||||
sEluna->Push(sEluna->L, pGameObject);
|
||||
sEluna->Push(sEluna->L, state);
|
||||
sEluna->Push(sEluna->L, pUnit);
|
||||
sEluna->ExecuteCall(4, 0);
|
||||
}
|
||||
|
||||
@@ -2208,14 +2211,17 @@ CreatureAI* HookMgr::GetAI(Creature* creature)
|
||||
return new ElunaCreatureAI(creature);
|
||||
}
|
||||
|
||||
#ifndef MANGOS
|
||||
GameObjectAI* HookMgr::GetAI(GameObject* gameObject)
|
||||
void HookMgr::OnSpawn(GameObject* gameobject)
|
||||
{
|
||||
if (!sEluna->GameObjectEventBindings.GetBindMap(gameObject->GetEntry()))
|
||||
return NULL;
|
||||
return new ElunaGameObjectAI(gameObject);
|
||||
int bind = sEluna->GameObjectEventBindings.GetBind(gameobject->GetEntry(), GAMEOBJECT_EVENT_ON_SPAWN);
|
||||
if (!bind)
|
||||
return;
|
||||
ELUNA_GUARD();
|
||||
sEluna->BeginCall(bind);
|
||||
sEluna->Push(sEluna->L, GAMEOBJECT_EVENT_ON_SPAWN);
|
||||
sEluna->Push(sEluna->L, gameobject);
|
||||
sEluna->ExecuteCall(2, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
void AddElunaScripts()
|
||||
{
|
||||
|
||||
122
HookMgr.h
122
HookMgr.h
@@ -55,6 +55,16 @@ class Transport;
|
||||
class Unit;
|
||||
class Weather;
|
||||
class WorldPacket;
|
||||
#ifndef CLASSIC
|
||||
#ifndef TBC
|
||||
#ifdef TRINITY
|
||||
class Vehicle;
|
||||
#else
|
||||
class VehicleInfo;
|
||||
typedef VehicleInfo Vehicle;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
enum RegisterTypes
|
||||
{
|
||||
@@ -105,13 +115,13 @@ enum ServerEvents
|
||||
ELUNA_EVENT_ON_RESTART = 16, // (event)
|
||||
|
||||
// Map
|
||||
MAP_EVENT_ON_CREATE = 17, // Not Implemented
|
||||
MAP_EVENT_ON_DESTROY = 18, // Not Implemented
|
||||
MAP_EVENT_ON_LOAD = 19, // Not Implemented
|
||||
MAP_EVENT_ON_UNLOAD = 20, // Not Implemented
|
||||
MAP_EVENT_ON_PLAYER_ENTER = 21, // Not Implemented
|
||||
MAP_EVENT_ON_PLAYER_LEAVE = 22, // Not Implemented
|
||||
MAP_EVENT_ON_UPDATE = 23, // Not Implemented
|
||||
MAP_EVENT_ON_CREATE = 17, // (event, map)
|
||||
MAP_EVENT_ON_DESTROY = 18, // (event, map)
|
||||
MAP_EVENT_ON_GRID_LOAD = 19, // Not Implemented
|
||||
MAP_EVENT_ON_GRID_UNLOAD = 20, // Not Implemented
|
||||
MAP_EVENT_ON_PLAYER_ENTER = 21, // (event, map, player)
|
||||
MAP_EVENT_ON_PLAYER_LEAVE = 22, // (event, map, player)
|
||||
MAP_EVENT_ON_UPDATE = 23, // (event, map, diff)
|
||||
|
||||
// Area trigger
|
||||
TRIGGER_EVENT_ON_TRIGGER = 24, // (event, player, triggerId)
|
||||
@@ -122,8 +132,8 @@ enum ServerEvents
|
||||
// Auction house
|
||||
AUCTION_EVENT_ON_ADD = 26, // (event, AHObject)
|
||||
AUCTION_EVENT_ON_REMOVE = 27, // (event, AHObject)
|
||||
AUCTION_EVENT_ON_SUCCESSFUL = 28, // (event, AHObject) // NOT SUPPORTED YET
|
||||
AUCTION_EVENT_ON_EXPIRE = 29, // (event, AHObject) // NOT SUPPORTED YET
|
||||
AUCTION_EVENT_ON_SUCCESSFUL = 28, // (event, AHObject) // Not Implemented
|
||||
AUCTION_EVENT_ON_EXPIRE = 29, // (event, AHObject) // Not Implemented
|
||||
|
||||
// AddOns
|
||||
ADDON_EVENT_ON_MESSAGE = 30, // (event, sender, type, prefix, msg, target) - target can be nil/whisper_target/guid/group/channel
|
||||
@@ -173,10 +183,10 @@ enum PlayerEvents
|
||||
PLAYER_EVENT_ON_REPOP = 35, // (event, player)
|
||||
PLAYER_EVENT_ON_RESURRECT = 36, // (event, player)
|
||||
PLAYER_EVENT_ON_LOOT_MONEY = 37, // (event, player, amount)
|
||||
PLAYER_EVENT_ON_QUEST_ABANDON = 38, // (event, player, questId)
|
||||
PLAYER_EVENT_ON_GM_TICKET_CREATE = 39, // (event, player, ticketText)
|
||||
PLAYER_EVENT_ON_GM_TICKET_UPDATE = 40, // (event, player, ticketText)
|
||||
PLAYER_EVENT_ON_GM_TICKET_DELETE = 41, // (event, player)
|
||||
PLAYER_EVENT_ON_QUEST_ABANDON = 38, // (event, player, questId) // Not on TC
|
||||
PLAYER_EVENT_ON_GM_TICKET_CREATE = 39, // (event, player, ticketText) // Not on TC
|
||||
PLAYER_EVENT_ON_GM_TICKET_UPDATE = 40, // (event, player, ticketText) // Not on TC
|
||||
PLAYER_EVENT_ON_GM_TICKET_DELETE = 41, // (event, player) // Not on TC
|
||||
PLAYER_EVENT_ON_COMMAND = 42, // (event, player, command) - Can return false
|
||||
|
||||
PLAYER_EVENT_COUNT
|
||||
@@ -190,12 +200,12 @@ enum GuildEventTypes
|
||||
GUILD_EVENT_ON_REMOVE_MEMBER = 2, // (event, guild, isDisbanding)
|
||||
GUILD_EVENT_ON_MOTD_CHANGE = 3, // (event, guild, newMotd)
|
||||
GUILD_EVENT_ON_INFO_CHANGE = 4, // (event, guild, newInfo)
|
||||
GUILD_EVENT_ON_CREATE = 5, // (event, guild, leader, name)
|
||||
GUILD_EVENT_ON_CREATE = 5, // (event, guild, leader, name) // Not on TC
|
||||
GUILD_EVENT_ON_DISBAND = 6, // (event, guild)
|
||||
GUILD_EVENT_ON_MONEY_WITHDRAW = 7, // (event, guild, player, amount, isRepair)
|
||||
GUILD_EVENT_ON_MONEY_DEPOSIT = 8, // (event, guild, player, amount)
|
||||
GUILD_EVENT_ON_ITEM_MOVE = 9, // (event, guild, player, item, isSrcBank, srcContainer, srcSlotId, isDestBank, destContainer, destSlotId)
|
||||
GUILD_EVENT_ON_EVENT = 10, // (event, guild, eventType, plrGUIDLow1, plrGUIDLow2, newRank)
|
||||
GUILD_EVENT_ON_ITEM_MOVE = 9, // (event, guild, player, item, isSrcBank, srcContainer, srcSlotId, isDestBank, destContainer, destSlotId) // TODO
|
||||
GUILD_EVENT_ON_EVENT = 10, // (event, guild, eventType, plrGUIDLow1, plrGUIDLow2, newRank) // TODO
|
||||
GUILD_EVENT_ON_BANK_EVENT = 11, // (event, guild, eventType, tabId, playerGUIDLow, itemOrMoney, itemStackCount, destTabId)
|
||||
|
||||
GUILD_EVENT_COUNT
|
||||
@@ -218,12 +228,12 @@ enum GroupEvents
|
||||
// RegisterVehicleEvent(eventId, function)
|
||||
enum VehicleEvents
|
||||
{
|
||||
VEHICLE_EVENT_ON_INSTALL = 1,
|
||||
VEHICLE_EVENT_ON_UNINSTALL = 2,
|
||||
VEHICLE_EVENT_ON_RESET = 3,
|
||||
VEHICLE_EVENT_ON_INSTALL_ACCESSORY = 4,
|
||||
VEHICLE_EVENT_ON_ADD_PASSENGER = 5,
|
||||
VEHICLE_EVENT_ON_REMOVE_PASSENGER = 6,
|
||||
VEHICLE_EVENT_ON_INSTALL = 1, // (event, vehicle)
|
||||
VEHICLE_EVENT_ON_UNINSTALL = 2, // (event, vehicle)
|
||||
// UNUSED = 3, // (event, vehicle)
|
||||
VEHICLE_EVENT_ON_INSTALL_ACCESSORY = 4, // (event, vehicle, creature)
|
||||
VEHICLE_EVENT_ON_ADD_PASSENGER = 5, // (event, vehicle, unit, seatId)
|
||||
VEHICLE_EVENT_ON_REMOVE_PASSENGER = 6, // (event, vehicle, unit)
|
||||
|
||||
VEHICLE_EVENT_COUNT
|
||||
};
|
||||
@@ -259,7 +269,7 @@ enum CreatureEvents
|
||||
CREATURE_EVENT_ON_CORPSE_REMOVED = 26, // (event, creature, respawndelay)
|
||||
CREATURE_EVENT_ON_MOVE_IN_LOS = 27, // (event, creature, unit)
|
||||
// UNUSED = 28, // (event, creature)
|
||||
CREATURE_EVENT_ON_PASSANGER_BOARDED = 29, // (event, creature, passanger, seatid, apply) // Not on mangos
|
||||
// UNUSED = 29, // (event, creature)
|
||||
CREATURE_EVENT_ON_DUMMY_EFFECT = 30, // (event, caster, spellid, effindex, creature)
|
||||
CREATURE_EVENT_ON_QUEST_ACCEPT = 31, // (event, player, creature, quest)
|
||||
CREATURE_EVENT_ON_QUEST_SELECT = 32, // (event, player, creature, quest)
|
||||
@@ -273,15 +283,15 @@ enum CreatureEvents
|
||||
enum GameObjectEvents
|
||||
{
|
||||
GAMEOBJECT_EVENT_ON_AIUPDATE = 1, // (event, go, diff)
|
||||
GAMEOBJECT_EVENT_ON_RESET = 2, // (event, go) // TODO
|
||||
GAMEOBJECT_EVENT_ON_SPAWN = 2, // (event, go)
|
||||
GAMEOBJECT_EVENT_ON_DUMMY_EFFECT = 3, // (event, caster, spellid, effindex, go)
|
||||
GAMEOBJECT_EVENT_ON_QUEST_ACCEPT = 4, // (event, player, go, quest)
|
||||
GAMEOBJECT_EVENT_ON_QUEST_REWARD = 5, // (event, player, go, quest, opt)
|
||||
GAMEOBJECT_EVENT_ON_DIALOG_STATUS = 6, // (event, player, go)
|
||||
GAMEOBJECT_EVENT_ON_DESTROYED = 7, // (event, go, player) // TODO
|
||||
GAMEOBJECT_EVENT_ON_DAMAGED = 8, // (event, go, player) // TODO
|
||||
GAMEOBJECT_EVENT_ON_LOOT_STATE_CHANGE = 9, // (event, go, state, unit) // TODO
|
||||
GAMEOBJECT_EVENT_ON_GO_STATE_CHANGED = 10, // (event, go, state) // TODO
|
||||
GAMEOBJECT_EVENT_ON_DESTROYED = 7, // (event, go, player)
|
||||
GAMEOBJECT_EVENT_ON_DAMAGED = 8, // (event, go, player)
|
||||
GAMEOBJECT_EVENT_ON_LOOT_STATE_CHANGE = 9, // (event, go, state)
|
||||
GAMEOBJECT_EVENT_ON_GO_STATE_CHANGED = 10, // (event, go, state)
|
||||
GAMEOBJECT_EVENT_ON_QUEST_COMPLETE = 11, // (event, player, go, quest)
|
||||
GAMEOBJECT_EVENT_COUNT
|
||||
};
|
||||
@@ -293,6 +303,7 @@ enum ItemEvents
|
||||
ITEM_EVENT_ON_USE = 2, // (event, player, item, target)
|
||||
ITEM_EVENT_ON_QUEST_ACCEPT = 3, // (event, player, item, quest)
|
||||
ITEM_EVENT_ON_EXPIRE = 4, // (event, player, itemid)
|
||||
ITEM_EVENT_ON_REMOVE = 5, // (event, player, item)
|
||||
ITEM_EVENT_COUNT
|
||||
};
|
||||
|
||||
@@ -327,10 +338,10 @@ public:
|
||||
void OnEquip(Player* pPlayer, Item* pItem, uint8 bag, uint8 slot);
|
||||
void OnRepop(Player* pPlayer);
|
||||
void OnResurrect(Player* pPlayer);
|
||||
void OnQuestAbandon(Player* pPlayer, uint32 questId); // Not on TC
|
||||
void OnGmTicketCreate(Player* pPlayer, std::string& ticketText); // Not on TC
|
||||
void OnGmTicketUpdate(Player* pPlayer, std::string& ticketText); // Not on TC
|
||||
void OnGmTicketDelete(Player* pPlayer); // Not on TC
|
||||
void OnQuestAbandon(Player* pPlayer, uint32 questId);
|
||||
void OnGmTicketCreate(Player* pPlayer, std::string& ticketText);
|
||||
void OnGmTicketUpdate(Player* pPlayer, std::string& ticketText);
|
||||
void OnGmTicketDelete(Player* pPlayer);
|
||||
InventoryResult OnCanUseItem(const Player* pPlayer, uint32 itemEntry);
|
||||
void OnEngineRestart();
|
||||
bool OnAddonMessage(Player* sender, uint32 type, std::string& msg, Player* receiver, Guild* guild, Group* group, Channel* channel);
|
||||
@@ -340,6 +351,7 @@ public:
|
||||
bool OnQuestAccept(Player* pPlayer, Item* pItem, Quest const* pQuest);
|
||||
bool OnUse(Player* pPlayer, Item* pItem, SpellCastTargets const& targets);
|
||||
bool OnExpire(Player* pPlayer, ItemTemplate const* pProto);
|
||||
bool OnRemove(Player* pPlayer, Item* item);
|
||||
void HandleGossipSelectOption(Player* pPlayer, Item* item, uint32 sender, uint32 action, std::string code);
|
||||
|
||||
/* Creature */
|
||||
@@ -351,7 +363,7 @@ public:
|
||||
bool OnQuestSelect(Player* pPlayer, Creature* pCreature, Quest const* pQuest);
|
||||
bool OnQuestComplete(Player* pPlayer, Creature* pCreature, Quest const* pQuest);
|
||||
bool OnQuestReward(Player* pPlayer, Creature* pCreature, Quest const* pQuest);
|
||||
uint32 GetDialogStatus(Player* pPlayer, Creature* pCreature); // Not on TC
|
||||
uint32 GetDialogStatus(Player* pPlayer, Creature* pCreature);
|
||||
void OnSummoned(Creature* creature, Unit* summoner);
|
||||
|
||||
/* GameObject */
|
||||
@@ -362,13 +374,17 @@ public:
|
||||
bool OnQuestAccept(Player* pPlayer, GameObject* pGameObject, Quest const* pQuest);
|
||||
bool OnQuestComplete(Player* pPlayer, GameObject* pGameObject, Quest const* pQuest);
|
||||
bool OnQuestReward(Player* pPlayer, GameObject* pGameObject, Quest const* pQuest);
|
||||
bool OnGameObjectUse(Player* pPlayer, GameObject* pGameObject) { return false; }; // TODO? Not on TC
|
||||
uint32 GetDialogStatus(Player* pPlayer, GameObject* pGameObject);
|
||||
void OnDestroyed(GameObject* pGameObject, Player* pPlayer); // TODO
|
||||
void OnDamaged(GameObject* pGameObject, Player* pPlayer); // TODO
|
||||
void OnLootStateChanged(GameObject* pGameObject, uint32 state, Unit* pUnit); // TODO
|
||||
void OnGameObjectStateChanged(GameObject* pGameObject, uint32 state); // TODO
|
||||
#ifndef CLASSIC
|
||||
#ifndef TBC
|
||||
void OnDestroyed(GameObject* pGameObject, Player* pPlayer);
|
||||
void OnDamaged(GameObject* pGameObject, Player* pPlayer);
|
||||
#endif
|
||||
#endif
|
||||
void OnLootStateChanged(GameObject* pGameObject, uint32 state);
|
||||
void OnGameObjectStateChanged(GameObject* pGameObject, uint32 state);
|
||||
void UpdateAI(GameObject* pGameObject, uint32 diff);
|
||||
void OnSpawn(GameObject* gameobject);
|
||||
|
||||
/* Packet */
|
||||
bool OnPacketSend(WorldSession* session, WorldPacket& packet);
|
||||
@@ -404,24 +420,25 @@ public:
|
||||
void OnSave(Player* pPlayer);
|
||||
void OnBindToInstance(Player* pPlayer, Difficulty difficulty, uint32 mapid, bool permanent);
|
||||
void OnUpdateZone(Player* pPlayer, uint32 newZone, uint32 newArea);
|
||||
void OnMapChanged(Player* pPlayer); // TODO
|
||||
void OnMapChanged(Player* pPlayer);
|
||||
void HandleGossipSelectOption(Player* pPlayer, uint32 menuId, uint32 sender, uint32 action, std::string code);
|
||||
|
||||
#ifndef MANGOS
|
||||
#ifndef CLASSIC
|
||||
#ifndef TBC
|
||||
/* Vehicle */
|
||||
void OnInstall(Vehicle* vehicle);
|
||||
void OnUninstall(Vehicle* vehicle);
|
||||
void OnReset(Vehicle* vehicle);
|
||||
void OnInstallAccessory(Vehicle* vehicle, Creature* accessory);
|
||||
void OnAddPassenger(Vehicle* vehicle, Unit* passenger, int8 seatId);
|
||||
void OnRemovePassenger(Vehicle* vehicle, Unit* passenger);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* AreaTrigger */
|
||||
bool OnAreaTrigger(Player* pPlayer, AreaTriggerEntry const* pTrigger);
|
||||
|
||||
/* Weather */
|
||||
void OnChange(Weather* weather, WeatherState state, float grade); // TODO
|
||||
void OnChange(Weather* weather, WeatherState state, float grade);
|
||||
|
||||
/* Auction House */
|
||||
void OnAdd(AuctionHouseObject* auctionHouse);
|
||||
@@ -429,25 +446,17 @@ public:
|
||||
void OnSuccessful(AuctionHouseObject* auctionHouse);
|
||||
void OnExpire(AuctionHouseObject* auctionHouse);
|
||||
|
||||
/* Condition */
|
||||
|
||||
/* Transport */
|
||||
void OnAddPassenger(Transport* transport, Player* player); // TODO
|
||||
void OnAddCreaturePassenger(Transport* transport, Creature* creature); // TODO
|
||||
void OnRemovePassenger(Transport* transport, Player* player); // TODO
|
||||
void OnRelocate(Transport* transport, uint32 waypointId, uint32 mapId, float x, float y, float z); // TODO
|
||||
|
||||
/* Guild */
|
||||
void OnAddMember(Guild* guild, Player* player, uint32 plRank);
|
||||
void OnRemoveMember(Guild* guild, Player* player, bool isDisbanding);
|
||||
void OnMOTDChanged(Guild* guild, const std::string& newMotd);
|
||||
void OnInfoChanged(Guild* guild, const std::string& newInfo);
|
||||
void OnCreate(Guild* guild, Player* leader, const std::string& name); // TODO: Implement to TC
|
||||
void OnCreate(Guild* guild, Player* leader, const std::string& name);
|
||||
void OnDisband(Guild* guild);
|
||||
void OnMemberWitdrawMoney(Guild* guild, Player* player, uint32& amount, bool isRepair);
|
||||
void OnMemberDepositMoney(Guild* guild, Player* player, uint32& amount);
|
||||
void OnItemMove(Guild* guild, Player* player, Item* pItem, bool isSrcBank, uint8 srcContainer, uint8 srcSlotId, bool isDestBank, uint8 destContainer, uint8 destSlotId); // TODO: Implement
|
||||
void OnEvent(Guild* guild, uint8 eventType, uint32 playerGuid1, uint32 playerGuid2, uint8 newRank); // TODO: Implement
|
||||
void OnItemMove(Guild* guild, Player* player, Item* pItem, bool isSrcBank, uint8 srcContainer, uint8 srcSlotId, bool isDestBank, uint8 destContainer, uint8 destSlotId);
|
||||
void OnEvent(Guild* guild, uint8 eventType, uint32 playerGuid1, uint32 playerGuid2, uint8 newRank);
|
||||
void OnBankEvent(Guild* guild, uint8 eventType, uint8 tabId, uint32 playerGuid, uint32 itemOrMoney, uint16 itemStackCount, uint8 destTabId);
|
||||
|
||||
/* Group */
|
||||
@@ -457,6 +466,13 @@ public:
|
||||
void OnChangeLeader(Group* group, uint64 newLeaderGuid, uint64 oldLeaderGuid);
|
||||
void OnDisband(Group* group);
|
||||
void OnCreate(Group* group, uint64 leaderGuid, GroupType groupType);
|
||||
|
||||
/* Map */
|
||||
void OnCreate(Map* map);
|
||||
void OnDestroy(Map* map);
|
||||
void OnPlayerEnter(Map* map, Player* player);
|
||||
void OnPlayerLeave(Map* map, Player* player);
|
||||
void OnUpdate(Map* map, uint32 diff);
|
||||
};
|
||||
#ifdef MANGOS
|
||||
#define sHookMgr (&MaNGOS::Singleton<HookMgr>::Instance())
|
||||
|
||||
@@ -95,9 +95,6 @@ typedef std::set<std::string> ScriptPaths;
|
||||
typedef TemporarySummon TempSummon;
|
||||
#ifndef CLASSIC
|
||||
#define PLAYER_FIELD_LIFETIME_HONORABLE_KILLS PLAYER_FIELD_LIFETIME_HONORBALE_KILLS
|
||||
#ifndef TBC
|
||||
typedef VehicleInfo Vehicle;
|
||||
#endif
|
||||
#endif
|
||||
#define MAX_TALENT_SPECS MAX_TALENT_SPEC_COUNT
|
||||
#define GUID_ENPART(guid) ObjectGuid(guid).GetEntry()
|
||||
|
||||
@@ -1039,7 +1039,8 @@ ElunaRegister<Guild> GuildMethods[] =
|
||||
{ NULL, NULL },
|
||||
};
|
||||
|
||||
#if (!defined(TBC) && !defined(CLASSIC))
|
||||
#ifndef CLASSIC
|
||||
#ifndef TBC
|
||||
ElunaRegister<Vehicle> VehicleMethods[] =
|
||||
{
|
||||
// Getters
|
||||
@@ -1057,6 +1058,7 @@ ElunaRegister<Vehicle> VehicleMethods[] =
|
||||
{ NULL, NULL },
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
ElunaRegister<QueryResult> QueryMethods[] =
|
||||
{
|
||||
@@ -1228,9 +1230,11 @@ void RegisterFunctions(lua_State* L)
|
||||
ElunaTemplate<Item>::SetMethods(L, ObjectMethods);
|
||||
ElunaTemplate<Item>::SetMethods(L, ItemMethods);
|
||||
|
||||
#if (!defined(TBC) && !defined(CLASSIC))
|
||||
#ifndef CLASSIC
|
||||
#ifndef TBC
|
||||
ElunaTemplate<Vehicle>::Register(L, "Vehicle");
|
||||
ElunaTemplate<Vehicle>::SetMethods(L, VehicleMethods);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
ElunaTemplate<Group>::Register(L, "Group");
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
|
||||
#ifndef VEHICLEMETHODS_H
|
||||
#define VEHICLEMETHODS_H
|
||||
#if (!defined(TBC) && !defined(CLASSIC))
|
||||
#ifndef CLASSIC
|
||||
#ifndef TBC
|
||||
|
||||
namespace LuaVehicle
|
||||
{
|
||||
@@ -78,3 +79,4 @@ namespace LuaVehicle
|
||||
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
Reference in New Issue
Block a user