[10299] Add new script call ProcessEventId

Let script library know when some event is about to start. Event id's may be found in several sources, such as spells, GO's and transport/taxi paths.
Database scripts may be prevented by returning true from script side whenever needed. If false, DB script will run like normal.
New database table event_id_scripts will need a ScriptName for the event id, in same way as for example areatrigger_scripts.

Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
NoFantasy 2010-07-31 17:51:49 +02:00
parent 28d1ac66c3
commit 2ad9cd34b2
16 changed files with 180 additions and 11 deletions

View file

@ -27,6 +27,7 @@
#include "WorldPacket.h"
#include "DBCStores.h"
#include "ProgressBar.h"
#include "ScriptCalls.h"
void MapManager::LoadTransports()
{
@ -566,6 +567,8 @@ void Transport::DoEventIfAny(WayPointMap::value_type const& node, bool departure
if (uint32 eventid = departure ? node.second.departureEventID : node.second.arrivalEventID)
{
DEBUG_FILTER_LOG(LOG_FILTER_TRANSPORT_MOVES, "Taxi %s event %u of node %u of %s (%s) path", departure ? "departure" : "arrival", eventid, node.first, GetName(), GetObjectGuid().GetString().c_str());
GetMap()->ScriptsStart(sEventScripts, eventid, this, this);
if (!Script->ProcessEventId(eventid, this, this, departure))
GetMap()->ScriptsStart(sEventScripts, eventid, this, this);
}
}