Fix build. (scripts are fixed but most need updated tho)

This commit is contained in:
hondacrx
2019-08-18 23:23:18 -04:00
parent aa71a8926a
commit b3faf9685a
61 changed files with 1611 additions and 1442 deletions
@@ -232,7 +232,7 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
DoCast(Spells.InvisAndStealthDetect);
me.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable | UnitFlags.Stunned);
me.AddUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable | UnitFlags.Stunned);
me.SetReactState(ReactStates.Passive);
}
@@ -513,7 +513,7 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
me.SetHomePosition(Leviathan.Center);
me.GetMotionMaster().MoveCharge(Leviathan.Center.GetPositionX(), Leviathan.Center.GetPositionY(), Leviathan.Center.GetPositionZ()); // position center
me.SetReactState(ReactStates.Aggressive);
me.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable | UnitFlags.Stunned);
me.RemoveUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable | UnitFlags.Stunned);
return;
}
break;
@@ -585,8 +585,8 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
Creature turret = turretPassenger.ToCreature();
if (turret)
{
turret.SetFaction(me.GetVehicleBase().getFaction());
turret.SetUInt32Value(UnitFields.Flags, 0); // unselectable
turret.SetFaction(me.GetVehicleBase().GetFaction());
turret.SetUnitFlags(0);
turret.GetAI().AttackStart(who);
}
}
@@ -596,12 +596,12 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
Creature device = devicePassenger.ToCreature();
if (device)
{
device.SetFlag64(UnitFields.NpcFlags, NPCFlags.SpellClick);
device.RemoveFlag(UnitFields.Flags, UnitFlags.NotSelectable);
device.AddNpcFlag(NPCFlags.SpellClick);
device.RemoveUnitFlag(UnitFlags.NotSelectable);
}
}
me.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.AddUnitFlag(UnitFlags.NotSelectable);
}
else if (seatId == Seats.Turret)
{
@@ -611,8 +611,8 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
Unit device = vehicle.GetPassenger(Seats.Device);
if (device)
{
device.SetFlag64(UnitFields.NpcFlags, NPCFlags.SpellClick);
device.SetUInt32Value(UnitFields.Flags, 0); // unselectable
device.AddNpcFlag(NPCFlags.SpellClick);
device.SetUnitFlags(0); // unselectable
}
}
}
@@ -694,8 +694,8 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
if (me.GetVehicle())
{
me.RemoveFlag64(UnitFields.NpcFlags, NPCFlags.SpellClick);
me.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.RemoveNpcFlag(NPCFlags.SpellClick);
me.AddUnitFlag(UnitFlags.NotSelectable);
Unit player = me.GetVehicle().GetPassenger(Seats.Player);
if (player)
@@ -792,7 +792,7 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
public npc_pool_of_tar(Creature creature)
: base(creature)
{
me.RemoveFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.RemoveUnitFlag(UnitFlags.NotSelectable);
me.SetReactState(ReactStates.Passive);
me.CastSpell(me, Spells.TarPassive, true);
}
@@ -843,7 +843,7 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
public npc_thorims_hammer(Creature creature)
: base(creature)
{
me.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.AddUnitFlag(UnitFlags.NotSelectable);
me.CastSpell(me, Spells.DummyBlue, true);
}
@@ -872,7 +872,7 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
public npc_mimirons_inferno(Creature creature)
: base(creature)
{
me.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.AddUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.CastSpell(me, Spells.DummyYellow, true);
me.SetReactState(ReactStates.Passive);
}
@@ -921,7 +921,7 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
public npc_hodirs_fury(Creature creature)
: base(creature)
{
me.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.AddUnitFlag(UnitFlags.NotSelectable);
me.CastSpell(me, Spells.DummyGreen, true);
}
@@ -1038,7 +1038,7 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
{
if (menuId == GossipIds.MenuLoreKeeper && gossipListId == GossipIds.OptionLoreKeeper)
{
me.RemoveFlag(UnitFields.NpcFlags, NPCFlags.Gossip);
me.RemoveNpcFlag(NPCFlags.Gossip);
player.PlayerTalkClass.SendCloseGossip();
me.GetMap().LoadGrid(364, -16); // make sure leviathan is loaded
@@ -1055,9 +1055,9 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
Creature brann = _instance.GetCreature(InstanceData.BrannBronzebeardIntro);
if (brann)
{
brann.RemoveFlag(UnitFields.NpcFlags, NPCFlags.Gossip);
brann.RemoveNpcFlag(NPCFlags.Gossip);
delorah.GetMotionMaster().MovePoint(0, brann.GetPositionX() - 4, brann.GetPositionY(), brann.GetPositionZ());
// @todo delorah->AI()->Talk(xxxx, brann->GetGUID()); when reached at branz
// @todo delorah.AI().Talk(xxxx, brann.GetGUID()); when reached at branz
}
}
}
@@ -1356,7 +1356,7 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
//! This could probably in the SPELL_EFFECT_SEND_EVENT handler too:
owner.AddUnitState(UnitState.Stunned | UnitState.Root);
owner.SetFlag(UnitFields.Flags, UnitFlags.Stunned);
owner.AddUnitFlag(UnitFlags.Stunned);
owner.RemoveAurasDueToSpell(Spells.GatheringSpeed);
}
@@ -1366,7 +1366,7 @@ namespace Scripts.Northrend.Ulduar.FlameLeviathan
if (!owner)
return;
owner.RemoveFlag(UnitFields.Flags, UnitFlags.Stunned);
owner.RemoveUnitFlag(UnitFlags.Stunned);
}
public override void Register()
+26 -26
View File
@@ -389,7 +389,7 @@ namespace Scripts.Northrend.Ulduar
{
_Reset();
me.SetReactState(ReactStates.Passive);
me.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable);
me.RemoveUnitFlag(UnitFlags.NonAttackable);
GameObject elevator = ObjectAccessor.GetGameObject(me, instance.GetGuidData(InstanceData.MimironElevator));
if (elevator)
@@ -406,7 +406,7 @@ namespace Scripts.Northrend.Ulduar
if (button)
{
button.SetGoState(GameObjectState.Ready);
button.RemoveFlag(GameObjectFields.Flags, GameObjectFlags.NotSelectable);
button.RemoveFlag(GameObjectFlags.NotSelectable);
}
_fireFighter = false;
@@ -457,13 +457,13 @@ namespace Scripts.Northrend.Ulduar
//PLay Sound number 15612
_EnterCombat();
me.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable);
me.AddUnitFlag(UnitFlags.NonAttackable);
me.RemoveAurasDueToSpell(Spells.Weld);
DoCast(me.GetVehicleBase(), Spells.Seat6);
GameObject button = ObjectAccessor.GetGameObject(me, instance.GetGuidData(InstanceData.MimironButton));
if (button)
button.SetFlag(GameObjectFields.Flags, GameObjectFlags.NotSelectable);
button.AddFlag(GameObjectFlags.NotSelectable);
if (_fireFighter)
_events.ScheduleEvent(Events.SummonFlames, 3000);
@@ -528,7 +528,7 @@ namespace Scripts.Northrend.Ulduar
{
DoCast(mkii, Spells.Seat7);
mkii.RemoveAurasDueToSpell(Spells.FreezeAnim);
mkii.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
mkii.RemoveUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
}
_events.ScheduleEvent(Events.Intro3, 2000);
}
@@ -676,7 +676,7 @@ namespace Scripts.Northrend.Ulduar
if (aerial)
{
aerial.GetMotionMaster().MoveLand(0, new Position(aerial.GetPositionX(), aerial.GetPositionY(), aerial.GetPositionZMinusOffset()));
aerial.SetByteValue(UnitFields.Bytes1, UnitBytes1Offsets.AnimTier, 0);
aerial.SetAnimTier(UnitBytes1Flags.None, false);
aerial.CastSpell(vx001, Spells.MountVx001);
aerial.CastSpell(aerial, Spells.HalfHeal);
}
@@ -725,7 +725,7 @@ namespace Scripts.Northrend.Ulduar
break;
case Events.Outtro3:
DoCast(me, Spells.TeleportVisual);
me.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.AddUnitFlag(UnitFlags.NotSelectable);
me.DespawnOrUnsummon(1000); // sniffs say 6 sec after, but it doesnt matter.
break;
default:
@@ -756,7 +756,7 @@ namespace Scripts.Northrend.Ulduar
void SetupEncounter()
{
_Reset();
me.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.AddUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.SetReactState(ReactStates.Passive);
_fireFighter = false;
_setupMine = true;
@@ -770,7 +770,7 @@ namespace Scripts.Northrend.Ulduar
if (damage >= me.GetHealth())
{
damage = (uint)(me.GetHealth() - 1); // Let creature fall to 1 hp, but do not let it die or damage itself with SetHealth().
me.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable);
me.AddUnitFlag(UnitFlags.NonAttackable);
DoCast(me, Spells.VehicleDamaged, true);
me.AttackStop();
me.SetReactState(ReactStates.Passive);
@@ -821,7 +821,7 @@ namespace Scripts.Northrend.Ulduar
break;
case Actions.AssembledCombat:
me.SetStandState(UnitStandStateType.Stand);
me.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.RemoveUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.SetReactState(ReactStates.Aggressive);
_events.SetPhase(Phases.Vol7ron);
@@ -874,7 +874,7 @@ namespace Scripts.Northrend.Ulduar
{
case Waypoints.MkiiP1Idle:
{
me.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.AddUnitFlag(UnitFlags.NotSelectable);
DoCast(me, Spells.HalfHeal);
Creature mimiron = ObjectAccessor.GetCreature(me, instance.GetGuidData(BossIds.Mimiron));
@@ -999,7 +999,7 @@ namespace Scripts.Northrend.Ulduar
public boss_vx_001(Creature creature) : base(creature, BossIds.Mimiron)
{
me.SetDisableGravity(true); // This is the unfold visual state of VX-001, it has to be set on create as it requires an objectupdate if set later.
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.StateSpecialUnarmed); // This is a hack to force the yet to be unfolded visual state.
me.SetEmoteState(Emote.StateSpecialUnarmed); // This is a hack to force the yet to be unfolded visual state.
me.SetReactState(ReactStates.Passive);
_fireFighter = false;
}
@@ -1017,7 +1017,7 @@ namespace Scripts.Northrend.Ulduar
if (_events.IsInPhase(Phases.Vx001))
{
me.CastStop();
me.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.AddUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
DoCast(me, Spells.HalfHeal); // has no effect, wat
DoCast(me, Spells.TorsoDisabled);
Creature mimiron = ObjectAccessor.GetCreature(me, instance.GetGuidData(BossIds.Mimiron));
@@ -1027,7 +1027,7 @@ namespace Scripts.Northrend.Ulduar
else if (_events.IsInPhase(Phases.Vol7ron))
{
me.SetStandState(UnitStandStateType.Dead);
me.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable);
me.AddUnitFlag(UnitFlags.NonAttackable);
if (MimironConst.IsEncounterFinished(who))
return;
@@ -1050,9 +1050,9 @@ namespace Scripts.Northrend.Ulduar
_events.ScheduleEvent(Events.FlameSuppressantVx, 6000);
goto case Actions.StartVx001;
case Actions.StartVx001:
me.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.RemoveUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.RemoveAurasDueToSpell(Spells.FreezeAnim);
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.OneshotNone); // Remove emotestate.
me.SetEmoteState(Emote.OneshotNone); // Remove emotestate.
//me.SetuintValue(UnitFields.Bytes1, UnitBytes1Offsets.AnimTier, UnitBytes1Flags.AlwaysStand | UnitBytes1Flags.Hover); Blizzard handles hover animation like this it seems.
DoCast(me, Spells.HeatWaveAura);
@@ -1063,7 +1063,7 @@ namespace Scripts.Northrend.Ulduar
break;
case Actions.AssembledCombat:
me.SetStandState(UnitStandStateType.Stand);
me.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.RemoveUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
_events.SetPhase(Phases.Vol7ron);
_events.ScheduleEvent(Events.RocketStrike, 20000);
@@ -1115,7 +1115,7 @@ namespace Scripts.Northrend.Ulduar
// Handle rotation during SPELL_SPINNING_UP, SPELL_P3WX2_LASER_BARRAGE, SPELL_RAPID_BURST, and SPELL_HAND_PULSE_LEFT/RIGHT
if (me.HasUnitState(UnitState.Casting))
{
List<ObjectGuid> channelObjects = me.GetChannelObjects();
List<ObjectGuid> channelObjects = me.m_unitData.ChannelObjects;
Unit channelTarget = (channelObjects.Count == 1 ? Global.ObjAccessor.GetUnit(me, channelObjects[0]) : null);
if (channelTarget)
me.SetFacingToObject(channelTarget);
@@ -1191,7 +1191,7 @@ namespace Scripts.Northrend.Ulduar
if (damage >= me.GetHealth())
{
damage = (uint)(me.GetHealth() - 1); // Let creature fall to 1 hp, but do not let it die or damage itself with SetHealth().
me.SetFlag(UnitFields.Flags, UnitFlags.NonAttackable);
me.AddUnitFlag(UnitFlags.NonAttackable);
me.AttackStop();
me.SetReactState(ReactStates.Passive);
DoCast(me, Spells.VehicleDamaged, true);
@@ -1226,7 +1226,7 @@ namespace Scripts.Northrend.Ulduar
_events.ScheduleEvent(Events.SummonFireBots, 1000, 0, Phases.AerialCommandUnit);
goto case Actions.StartAerial;
case Actions.StartAerial:
me.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.RemoveUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.SetReactState(ReactStates.Aggressive);
_events.SetPhase(Phases.AerialCommandUnit);
@@ -1245,7 +1245,7 @@ namespace Scripts.Northrend.Ulduar
me.SetReactState(ReactStates.Aggressive);
break;
case Actions.AssembledCombat:
me.RemoveFlag(UnitFields.Flags, UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.RemoveUnitFlag(UnitFlags.NonAttackable | UnitFlags.NotSelectable);
me.SetReactState(ReactStates.Aggressive);
me.SetStandState(UnitStandStateType.Stand);
_events.SetPhase(Phases.Vol7ron);
@@ -1281,7 +1281,7 @@ namespace Scripts.Northrend.Ulduar
{
if (type == MovementGeneratorType.Point && point == Waypoints.AerialP4Pos)
{
me.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.AddUnitFlag(UnitFlags.NotSelectable);
Creature mimiron = ObjectAccessor.GetCreature(me, instance.GetGuidData(BossIds.Mimiron));
if (mimiron)
@@ -1596,7 +1596,7 @@ namespace Scripts.Northrend.Ulduar
public override bool OnGossipHello(Player player, GameObject go)
{
if (go.HasFlag(GameObjectFields.Flags, GameObjectFlags.NotSelectable))
if (go.HasFlag(GameObjectFlags.NotSelectable))
return true;
InstanceScript instance = go.GetInstanceScript();
@@ -1607,7 +1607,7 @@ namespace Scripts.Northrend.Ulduar
if (computer)
computer.GetAI().DoAction(Actions.ActivateComputer);
go.SetGoState(GameObjectState.Active);
go.SetFlag(GameObjectFields.Flags, GameObjectFlags.NotSelectable);
go.AddFlag(GameObjectFlags.NotSelectable);
return true;
}
}
@@ -1634,7 +1634,7 @@ namespace Scripts.Northrend.Ulduar
Creature target = GetHitCreature();
if (target)
{
target.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable | UnitFlags.Pacified);
target.AddUnitFlag(UnitFlags.NotSelectable | UnitFlags.Pacified);
target.DespawnOrUnsummon(1000);
}
}
@@ -1741,7 +1741,7 @@ namespace Scripts.Northrend.Ulduar
{
void FilterTargets(List<WorldObject> targets)
{
targets.RemoveAll(obj => obj.ToUnit() && (obj.ToUnit().GetVehicleBase() || obj.HasFlag(UnitFields.Flags, UnitFlags.NonAttackable)));
targets.RemoveAll(obj => obj.IsUnit() && (obj.ToUnit().GetVehicleBase() || obj.ToUnit().HasUnitFlag(UnitFlags.NonAttackable)));
}
public override void Register()
+14 -14
View File
@@ -77,12 +77,12 @@ namespace Scripts.Northrend.Ulduar
{
case ACTION_HARPOON_BUILD:
events.ScheduleEvent(EVENT_BUILD_HARPOON_1, 50000);
if (me->GetMap()->GetSpawnMode() == DIFFICULTY_25_N)
if (me.GetMap().GetSpawnMode() == DIFFICULTY_25_N)
events.ScheduleEvent(EVENT_BUILD_HARPOON_3, 90000);
break;
case ACTION_PLACE_BROKEN_HARPOON:
for (uint8 n = 0; n < RAID_MODE(2, 4); n++)
me->SummonGameObject(GO_RAZOR_BROKEN_HARPOON, PosHarpoon[n].GetPositionX(), PosHarpoon[n].GetPositionY(), PosHarpoon[n].GetPositionZ(), 2.286f, 0, 0, 0, 0, 180);
me.SummonGameObject(GO_RAZOR_BROKEN_HARPOON, PosHarpoon[n].GetPositionX(), PosHarpoon[n].GetPositionY(), PosHarpoon[n].GetPositionZ(), 2.286f, 0, 0, 0, 0, 180);
break;
}
}
@@ -97,39 +97,39 @@ namespace Scripts.Northrend.Ulduar
{
case EVENT_BUILD_HARPOON_1:
Talk(EMOTE_HARPOON);
if (GameObject * Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_1, PosHarpoon[0].GetPositionX(), PosHarpoon[0].GetPositionY(), PosHarpoon[0].GetPositionZ(), 4.790f, 0.0f, 0.0f, 0.0f, 0.0f, uint32(me->GetRespawnTime())))
if (GameObject * Harpoon = me.SummonGameObject(GO_RAZOR_HARPOON_1, PosHarpoon[0].GetPositionX(), PosHarpoon[0].GetPositionY(), PosHarpoon[0].GetPositionZ(), 4.790f, 0.0f, 0.0f, 0.0f, 0.0f, uint32(me.GetRespawnTime())))
{
if (GameObject * BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f)) //only nearest broken harpoon
BrokenHarpoon->RemoveFromWorld();
if (GameObject * BrokenHarpoon = Harpoon.FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f)) //only nearest broken harpoon
BrokenHarpoon.RemoveFromWorld();
events.ScheduleEvent(EVENT_BUILD_HARPOON_2, 20000);
events.CancelEvent(EVENT_BUILD_HARPOON_1);
}
return;
case EVENT_BUILD_HARPOON_2:
Talk(EMOTE_HARPOON);
if (GameObject * Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_2, PosHarpoon[1].GetPositionX(), PosHarpoon[1].GetPositionY(), PosHarpoon[1].GetPositionZ(), 4.659f, 0, 0, 0, 0, uint32(me->GetRespawnTime())))
if (GameObject * Harpoon = me.SummonGameObject(GO_RAZOR_HARPOON_2, PosHarpoon[1].GetPositionX(), PosHarpoon[1].GetPositionY(), PosHarpoon[1].GetPositionZ(), 4.659f, 0, 0, 0, 0, uint32(me.GetRespawnTime())))
{
if (GameObject * BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
BrokenHarpoon->RemoveFromWorld();
if (GameObject * BrokenHarpoon = Harpoon.FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
BrokenHarpoon.RemoveFromWorld();
events.CancelEvent(EVENT_BUILD_HARPOON_2);
}
return;
case EVENT_BUILD_HARPOON_3:
Talk(EMOTE_HARPOON);
if (GameObject * Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_3, PosHarpoon[2].GetPositionX(), PosHarpoon[2].GetPositionY(), PosHarpoon[2].GetPositionZ(), 5.382f, 0, 0, 0, 0, uint32(me->GetRespawnTime())))
if (GameObject * Harpoon = me.SummonGameObject(GO_RAZOR_HARPOON_3, PosHarpoon[2].GetPositionX(), PosHarpoon[2].GetPositionY(), PosHarpoon[2].GetPositionZ(), 5.382f, 0, 0, 0, 0, uint32(me.GetRespawnTime())))
{
if (GameObject * BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
BrokenHarpoon->RemoveFromWorld();
if (GameObject * BrokenHarpoon = Harpoon.FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
BrokenHarpoon.RemoveFromWorld();
events.ScheduleEvent(EVENT_BUILD_HARPOON_4, 20000);
events.CancelEvent(EVENT_BUILD_HARPOON_3);
}
return;
case EVENT_BUILD_HARPOON_4:
Talk(EMOTE_HARPOON);
if (GameObject * Harpoon = me->SummonGameObject(GO_RAZOR_HARPOON_4, PosHarpoon[3].GetPositionX(), PosHarpoon[3].GetPositionY(), PosHarpoon[3].GetPositionZ(), 4.266f, 0, 0, 0, 0, uint32(me->GetRespawnTime())))
if (GameObject * Harpoon = me.SummonGameObject(GO_RAZOR_HARPOON_4, PosHarpoon[3].GetPositionX(), PosHarpoon[3].GetPositionY(), PosHarpoon[3].GetPositionZ(), 4.266f, 0, 0, 0, 0, uint32(me.GetRespawnTime())))
{
if (GameObject * BrokenHarpoon = Harpoon->FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
BrokenHarpoon->RemoveFromWorld();
if (GameObject * BrokenHarpoon = Harpoon.FindNearestGameObject(GO_RAZOR_BROKEN_HARPOON, 5.0f))
BrokenHarpoon.RemoveFromWorld();
events.CancelEvent(EVENT_BUILD_HARPOON_4);
}
return;
@@ -68,7 +68,7 @@ namespace Scripts.Northrend.Ulduar
if (_algalonTimer != 0 && _algalonTimer <= 60)
algalon.GetAI().DoAction((int)InstanceEvents.ActionInitAlgalon);
else
algalon.RemoveFlag(UnitFields.Flags, UnitFlags.ImmuneToPc);
algalon.RemoveUnitFlag(UnitFlags.ImmuneToPc);
}
// Keepers at Observation Ring
@@ -435,7 +435,7 @@ namespace Scripts.Northrend.Ulduar
case InstanceGameObjectIds.CelestialPlanetariumAccess10:
case InstanceGameObjectIds.CelestialPlanetariumAccess25:
if (_algalonSummoned)
gameObject.SetFlag(GameObjectFields.Flags, GameObjectFlags.InUse);
gameObject.AddFlag(GameObjectFlags.InUse);
break;
case InstanceGameObjectIds.DoodadUlSigildoor01:
AlgalonSigilDoorGUID[0] = gameObject.GetGUID();
@@ -610,7 +610,7 @@ namespace Scripts.Northrend.Ulduar
if (vehicle != null)
{
vehicle.RemoveAllPassengers();
vehicleCreature.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
vehicleCreature.AddUnitFlag(UnitFlags.NotSelectable);
vehicleCreature.DespawnOrUnsummon(5 * Time.Minute * Time.InMilliseconds);
}
}
@@ -640,7 +640,7 @@ namespace Scripts.Northrend.Ulduar
if (gameObject)
{
gameObject.SetRespawnTime((int)gameObject.GetRespawnDelay());
gameObject.RemoveFlag(GameObjectFields.Flags, GameObjectFlags.NotSelectable);
gameObject.RemoveFlag(GameObjectFlags.NotSelectable);
}
HandleGameObject(KologarnBridgeGUID, false);
}
@@ -651,7 +651,7 @@ namespace Scripts.Northrend.Ulduar
GameObject HodirRareCache = instance.GetGameObject(HodirRareCacheGUID);
if (HodirRareCache)
if (GetData(InstanceData.HodirRareCache) != 0)
HodirRareCache.RemoveFlag(GameObjectFields.Flags, GameObjectFlags.NotSelectable);
HodirRareCache.RemoveFlag(GameObjectFlags.NotSelectable);
GameObject HodirChest = instance.GetGameObject(HodirChestGUID);
if (HodirChest)
HodirChest.SetRespawnTime((int)HodirChest.GetRespawnDelay());
+16 -19
View File
@@ -24,6 +24,7 @@ using Game.Scripting;
using Game.Spells;
using System;
using System.Collections.Generic;
using Game.Network.Packets;
namespace Scripts.Northrend.Ulduar.Xt002
{
@@ -143,7 +144,7 @@ namespace Scripts.Northrend.Ulduar.Xt002
{
_Reset();
me.RemoveFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.RemoveUnitFlag(UnitFlags.NotSelectable);
me.SetReactState(ReactStates.Aggressive);
DoCastSelf(SpellIds.Stand);
@@ -225,7 +226,7 @@ namespace Scripts.Northrend.Ulduar.Xt002
{
Talk(Texts.Death);
_JustDied();
me.RemoveFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.RemoveUnitFlag(UnitFlags.NotSelectable);
}
public override void DamageTaken(Unit attacker, ref uint damage)
@@ -306,8 +307,8 @@ namespace Scripts.Northrend.Ulduar.Xt002
heart.CastSpell(me, SpellIds.HeartLightningTether);
heart.CastSpell(heart, SpellIds.HeartHealToFull, true);
heart.CastSpell(me, SpellIds.RideVehicleExposed, true);
heart.RemoveFlag(UnitFields.Flags, UnitFlags.NotSelectable);
heart.SetFlag(UnitFields.Flags, UnitFlags.Unk29);
heart.RemoveUnitFlag(UnitFlags.NotSelectable);
heart.AddUnitFlag(UnitFlags.Unk29);
}
_scheduler.DelayGroup(Misc.PhaseOneGroup, TimeSpan.FromSeconds(30));
@@ -330,7 +331,7 @@ namespace Scripts.Northrend.Ulduar.Xt002
Talk(Texts.HeartClosed);
Talk(Texts.EmoteHeartClosed);
me.RemoveFlag(UnitFields.Flags, UnitFlags.NotSelectable);
me.RemoveUnitFlag(UnitFlags.NotSelectable);
me.SetReactState(ReactStates.Aggressive);
DoCastSelf(SpellIds.Stand);
@@ -343,8 +344,8 @@ namespace Scripts.Northrend.Ulduar.Xt002
return;
heart.CastSpell(me, SpellIds.HeartRideVehicle, true);
heart.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
heart.RemoveFlag(UnitFields.Flags, UnitFlags.Unk29);
heart.AddUnitFlag(UnitFlags.NotSelectable);
heart.RemoveUnitFlag(UnitFlags.Unk29);
heart.RemoveAurasDueToSpell(SpellIds.ExposedHeart);
if (!_hardMode)
@@ -529,12 +530,6 @@ namespace Scripts.Northrend.Ulduar.Xt002
DoCast(SpellIds.AuraBoombot); // For achievement
// HACK/workaround:
// these values aren't confirmed - lack of data - and the values in DB are incorrect
// these values are needed for correct damage of Boom spell
me.SetFloatValue(UnitFields.MinDamage, 15000.0f);
me.SetFloatValue(UnitFields.MaxDamage, 18000.0f);
// @todo proper waypoints?
Creature pXT002 = ObjectAccessor.GetCreature(me, _instance.GetGuidData(BossIds.Xt002));
if (pXT002)
@@ -547,20 +542,22 @@ namespace Scripts.Northrend.Ulduar.Xt002
{
_boomed = true; // Prevent recursive calls
//me.SendSpellInstakillLog(Spells.Boom, me);
SpellInstakillLog instakill = new SpellInstakillLog();
instakill.Caster = me.GetGUID();
instakill.Target = me.GetGUID();
instakill.SpellID = SpellIds.Boom;
me.SendMessageToSet(instakill, false);
//me.DealDamage(me, me.GetHealth(), null, DamageEffectType.NoDamage, SpellSchoolMask.Normal, null, false);
me.DealDamage(me, (uint)me.GetHealth(), null, DamageEffectType.NoDamage, SpellSchoolMask.Normal, null, false);
damage = 0;
me.CastSpell(me, SpellIds.Boom, false);
// Visual only seems to work if the instant kill event is delayed or the spell itself is delayed
// Casting done from player and caster source has the same targetinfo flags,
// so that can't be the issue
// See BoomEvent class
// Schedule 1s delayed
//me.m_Events.AddEvent(new BoomEvent(me), me.m_Events.CalculateTime(1 * Time.InMilliseconds));
me.m_Events.AddEvent(new BoomEvent(me), me.m_Events.CalculateTime(1 * Time.InMilliseconds));
}
}
@@ -801,7 +798,7 @@ namespace Scripts.Northrend.Ulduar.Xt002
if (!target)
return;
target.SetFlag(UnitFields.Flags, UnitFlags.NotSelectable);
target.AddUnitFlag(UnitFlags.NotSelectable);
target.SetStandState(UnitStandStateType.Submerged);
}