Scripts/Icecrown Citadel: Added hacky workaround for teleporting spells because their default target is not supported by current grid system

Scripts/Icecrown Citadel: Mark Gunship event as complete on Lady Deathwhisper's death (temporary, until transport system will fully allow scripting the event)

--HG--
branch : trunk
This commit is contained in:
Shauren
2010-08-27 18:11:21 +02:00
parent f1d4933dcb
commit 5fbc8f1de4
5 changed files with 21 additions and 7 deletions
+2 -2
View File
@@ -2221,7 +2221,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
Unit *target = m_targets.getUnitTarget(); Unit *target = m_targets.getUnitTarget();
if (!target) if (!target)
{ {
sLog.outError("SPELL: no unit target for spell ID %u\n", m_spellInfo->Id); sLog.outError("SPELL: no unit target for spell ID %u", m_spellInfo->Id);
break; break;
} }
@@ -2264,7 +2264,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
{ {
if (!m_targets.HasDst()) if (!m_targets.HasDst())
{ {
sLog.outError("SPELL: no destination for spell ID %u\n", m_spellInfo->Id); sLog.outError("SPELL: no destination for spell ID %u", m_spellInfo->Id);
break; break;
} }
+13
View File
@@ -3862,6 +3862,19 @@ void SpellMgr::LoadSpellCustomAttr()
mSpellCustomAttr[i] |= SPELL_ATTR_CU_IGNORE_ARMOR; mSpellCustomAttr[i] |= SPELL_ATTR_CU_IGNORE_ARMOR;
count++; count++;
break; break;
// THESE SPELLS ARE WORKING CORRECTLY EVEN WITHOUT THIS HACK
// THE ONLY REASON ITS HERE IS THAT CURRENT GRID SYSTEM
// DOES NOT ALLOW FAR OBJECT SELECTION (dist > 333)
case 70781: // Light's Hammer Teleport
case 70856: // Oratory of the Damned Teleport
case 70857: // Rampart of Skulls Teleport
case 70858: // Deathbringer's Rise Teleport
case 70859: // Upper Spire Teleport
case 70860: // Frozen Throne Teleport
case 70861: // Sindragosa's Lair Teleport
spellInfo->EffectImplicitTargetA[0] = TARGET_DST_DB;
count++;
break;
default: default:
break; break;
} }
+3 -3
View File
@@ -1449,15 +1449,15 @@ void World::SetInitialWorldSettings()
sLog.outString("Loading Graveyard-zone links..."); sLog.outString("Loading Graveyard-zone links...");
sObjectMgr.LoadGraveyardZones(); sObjectMgr.LoadGraveyardZones();
sLog.outString("Loading Spell target coordinates...");
sSpellMgr.LoadSpellTargetPositions();
sLog.outString("Loading spell pet auras..."); sLog.outString("Loading spell pet auras...");
sSpellMgr.LoadSpellPetAuras(); sSpellMgr.LoadSpellPetAuras();
sLog.outString("Loading spell extra attributes..."); sLog.outString("Loading spell extra attributes...");
sSpellMgr.LoadSpellCustomAttr(); sSpellMgr.LoadSpellCustomAttr();
sLog.outString("Loading Spell target coordinates...");
sSpellMgr.LoadSpellTargetPositions();
sLog.outString("Loading enchant custom attributes..."); sLog.outString("Loading enchant custom attributes...");
sSpellMgr.LoadEnchantCustomAttr(); sSpellMgr.LoadEnchantCustomAttr();
@@ -63,6 +63,7 @@ class icecrown_citadel_teleport : public GameObjectScript
bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action) bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action)
{ {
player->CLOSE_GOSSIP_MENU();
SpellEntry const* spell = sSpellStore.LookupEntry(action); SpellEntry const* spell = sSpellStore.LookupEntry(action);
if (!spell) if (!spell)
return false; return false;
@@ -207,8 +207,8 @@ class instance_icecrown_citadel : public InstanceMapScript
switch (data) switch (data)
{ {
case DONE: case DONE:
// TEMPORARY, UNCOMMMENT IF YOU WANT TO DO SAURFANG AND SKIP GUNSHIP // TEMPORARY, SKIP GUNSHIP
//uiEncounterState[DATA_GUNSHIP_EVENT] = DONE; uiEncounterState[DATA_GUNSHIP_EVENT] = DONE;
HandleGameObject(uiOratoryDoor, true); HandleGameObject(uiOratoryDoor, true);
if (GameObject* elevator = instance->GetGameObject(uiLadyDeathwisperElevator)) if (GameObject* elevator = instance->GetGameObject(uiLadyDeathwisperElevator))
{ {