From f4f61852c2fc31b2e4cb10f14ea4487e2e850549 Mon Sep 17 00:00:00 2001 From: megamage Date: Sun, 3 May 2009 10:45:57 -0500 Subject: *Add ai function spellclick --HG-- branch : trunk --- src/game/CreatureAI.h | 2 ++ src/game/MiscHandler.cpp | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/game/CreatureAI.h b/src/game/CreatureAI.h index cae7026f6c7..f99d9fe33cb 100644 --- a/src/game/CreatureAI.h +++ b/src/game/CreatureAI.h @@ -242,6 +242,8 @@ class TRINITY_DLL_SPEC CreatureAI : public UnitAI void OnCharmed(bool apply); + virtual void SpellClick(Player *player) {} + // Called at reaching home after evade virtual void JustReachedHome() {} diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index 21342753909..f7f533893fe 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -1692,15 +1692,20 @@ void WorldSession::HandleSpellClick( WorldPacket & recv_data ) uint64 guid; recv_data >> guid; - Vehicle *vehicle = ObjectAccessor::GetVehicle(guid); - - if(!vehicle) + Creature *creature = NULL; + if(IS_VEHICLE_GUID(guid)) { - sLog.outError("Player %s cannot find vehicle %u", _player->GetName(), guid); - return; + Vehicle *vehicle = ObjectAccessor::GetVehicle(guid); + if(vehicle) + { + _player->EnterVehicle(vehicle); + creature = vehicle; + } } - - _player->EnterVehicle(vehicle); + if(!creature) + creature = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, guid); + if(creature && creature->IsAIEnabled) + creature->AI()->SpellClick(_player); } void WorldSession::HandleInspectAchievements( WorldPacket & recv_data ) -- cgit v1.2.3