From 0f9fe8dbeb3990175cfac07a3b7349c9d8e668b7 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 2 Sep 2010 10:40:32 +0200 Subject: Core/Players: Don't set instanceId to 0 when player is on transport during loading, there CAN be transports inside instances Core/Scripts: Added waypoint id to OnRelocate transport hook Core/Scripts: Make use of ZoneScript::GetGameObjectEntry at gameobject creation (makes it possible to override gameobject entries in instances) Core/Transports: Call InstanceScript::EventInform for transport events Core/Transports: Use guid from db for transports, not just its entry - adds partial support for instancing them (still cannot use transports table for it, but can spawn manually now) Scripts/Icecrown Citadel: Fixed crash in Deathbringer Saurfang when event is started by more than one person (can't do this anymore) Closes isssue #3749. --HG-- branch : trunk --- src/server/game/Entities/GameObject/GameObject.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/server/game/Entities/GameObject') diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index a9404046175..52205572ac9 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -153,6 +153,14 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map *map, uint32 phaseMa SetPhaseMask(phaseMask,false); + SetZoneScript(); + if (m_zoneScript) + { + name_id = m_zoneScript->GetGameObjectEntry(guidlow, name_id); + if (!name_id) + return false; + } + GameObjectInfo const* goinfo = sObjectMgr.GetGameObjectInfo(name_id); if (!goinfo) { @@ -211,8 +219,6 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map *map, uint32 phaseMa break; } - SetZoneScript(); - LastUsedScriptID = GetGOInfo()->ScriptId; return true; -- cgit v1.2.3