Scripts/Icecrown Citadel:

Corrected wing sigil visuals
Fixed saving Blood Quickening quest state to db
Remove Blood Quickening timer on completion

DB/Instances: Added some missing spawns to Frostwing Halls
This commit is contained in:
Shauren
2011-03-18 19:39:19 +01:00
parent ca02708564
commit 368eaf7f2f
4 changed files with 24 additions and 11 deletions
@@ -0,0 +1,8 @@
SET @GUID := 137789;
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+4;
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES
(@GUID+0,16980,631,15,1,0,0,4203.70,2484.83,364.956,3.14159,604800,0,0,0,0,0,0,0,0,0), -- The Lich King
(@GUID+1,22515,631,15,1,0,0,4241.19,2557.49,364.952,4.72984,120,0,0,0,0,0,0,0,0,0), -- World Trigger
(@GUID+2,22515,631,15,1,0,0,4241.34,2411.52,364.952,1.57080,120,0,0,0,0,0,0,0,0,0), -- World Trigger
(@GUID+3,22515,631,10,1,0,0,4166.02,2557.49,364.952,4.72984,120,0,0,0,0,0,0,0,0,0), -- World Trigger
(@GUID+4,22515,631,10,1,0,0,4241.34,2411.52,364.952,1.57080,120,0,0,0,0,0,0,0,0,0); -- World Trigger
@@ -193,15 +193,17 @@ class boss_blood_queen_lana_thel : public CreatureScript
// Blah, credit the quest // Blah, credit the quest
if (creditBloodQuickening) if (creditBloodQuickening)
{ {
instance->SetData(DATA_BLOOD_QUICKENING_STATE, DONE);
if (Player* plr = killer->ToPlayer()) if (Player* plr = killer->ToPlayer())
plr->RewardPlayerAndGroupAtEvent(NPC_INFILTRATOR_MINCHAR_BQ, plr); plr->RewardPlayerAndGroupAtEvent(NPC_INFILTRATOR_MINCHAR_BQ, plr);
if (Creature* minchar = me->FindNearestCreature(NPC_INFILTRATOR_MINCHAR_BQ, 200.0f)) if (Creature* minchar = me->FindNearestCreature(NPC_INFILTRATOR_MINCHAR_BQ, 200.0f))
{ {
minchar->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); minchar->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
minchar->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, 0x01);
minchar->SetFlying(false); minchar->SetFlying(false);
minchar->SendMovementFlagUpdate(); minchar->SendMovementFlagUpdate();
minchar->RemoveAllAuras(); minchar->RemoveAllAuras();
minchar->GetMotionMaster()->MoveCharge(4629.3711f, 2782.6089f, 401.5301f, SPEED_CHARGE/2.0f); minchar->GetMotionMaster()->MoveCharge(4629.3711f, 2782.6089f, 401.5301f, SPEED_CHARGE/3.0f);
} }
} }
} }
@@ -15,8 +15,8 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef DEF_ICECROWN_CITADEL_H #ifndef ICECROWN_CITADEL_H_
#define DEF_ICECROWN_CITADEL_H #define ICECROWN_CITADEL_H_
#define ICCScriptName "instance_icecrown_citadel" #define ICCScriptName "instance_icecrown_citadel"
uint32 const EncounterCount = 12; uint32 const EncounterCount = 12;
@@ -326,4 +326,4 @@ enum WorldStatesICC
WORLDSTATE_ATTEMPTS_MAX = 4942, WORLDSTATE_ATTEMPTS_MAX = 4942,
}; };
#endif // DEF_ICECROWN_CITADEL_H #endif // ICECROWN_CITADEL_H_
@@ -320,18 +320,18 @@ class instance_icecrown_citadel : public InstanceMapScript
break; break;
case GO_PLAGUE_SIGIL: case GO_PLAGUE_SIGIL:
plagueSigil = go->GetGUID(); plagueSigil = go->GetGUID();
if (GetBossState(DATA_PROFESSOR_PUTRICIDE)) if (GetBossState(DATA_PROFESSOR_PUTRICIDE) == DONE)
HandleGameObject(plagueSigil, true, go); HandleGameObject(plagueSigil, false, go);
break; break;
case GO_BLOODWING_SIGIL: case GO_BLOODWING_SIGIL:
bloodwingSigil = go->GetGUID(); bloodwingSigil = go->GetGUID();
if (GetBossState(DATA_PROFESSOR_PUTRICIDE)) if (GetBossState(DATA_BLOOD_QUEEN_LANA_THEL) == DONE)
HandleGameObject(bloodwingSigil, true, go); HandleGameObject(bloodwingSigil, false, go);
break; break;
case GO_SIGIL_OF_THE_FROSTWING: case GO_SIGIL_OF_THE_FROSTWING:
frostwingSigil = go->GetGUID(); frostwingSigil = go->GetGUID();
if (GetBossState(DATA_PROFESSOR_PUTRICIDE)) if (GetBossState(DATA_SINDRAGOSA) == DONE)
HandleGameObject(frostwingSigil, true, go); HandleGameObject(frostwingSigil, false, go);
break; break;
case GO_SCIENTIST_AIRLOCK_DOOR_COLLISION: case GO_SCIENTIST_AIRLOCK_DOOR_COLLISION:
putricideCollision = go->GetGUID(); putricideCollision = go->GetGUID();
@@ -414,6 +414,8 @@ class instance_icecrown_citadel : public InstanceMapScript
return coldflameJetsState; return coldflameJetsState;
case DATA_TEAM_IN_INSTANCE: case DATA_TEAM_IN_INSTANCE:
return teamInInstance; return teamInInstance;
case DATA_BLOOD_QUICKENING_STATE:
return bloodQuickeningState;
case DATA_HEROIC_ATTEMPTS: case DATA_HEROIC_ATTEMPTS:
return heroicAttempts; return heroicAttempts;
default: default:
@@ -667,6 +669,7 @@ class instance_icecrown_citadel : public InstanceMapScript
break; break;
} }
bloodQuickeningState = data; bloodQuickeningState = data;
SaveToDB();
break; break;
} }
default: default:
@@ -901,7 +904,7 @@ class instance_icecrown_citadel : public InstanceMapScript
void Update(uint32 diff) void Update(uint32 diff)
{ {
if (bloodQuickeningMinutes) if (bloodQuickeningState == IN_PROGRESS)
{ {
if (bloodQuickeningTimer <= diff) if (bloodQuickeningTimer <= diff)
{ {