Core/Instances: Added back missing cases to InstanceScript::SendEncounterUnit

Port From (https://github.com/TrinityCore/TrinityCore/commit/cc7e1bdcaed1ef1f6b4394378c99c56c8438b049)
This commit is contained in:
hondacrx
2024-02-21 18:12:41 -05:00
parent d175373d44
commit a4927ae941
3 changed files with 90 additions and 14 deletions
+8 -11
View File
@@ -129,17 +129,14 @@ namespace Framework.Constants
public enum EncounterFrameType public enum EncounterFrameType
{ {
SetCombatResLimit = 0, Engage = 0,
ResetCombatResLimit = 1, Disengage = 1,
Engage = 2, UpdatePriority = 2,
Disengage = 3, AddTimer = 3,
UpdatePriority = 4, EnableObjective = 4,
AddTimer = 5, UpdateObjective = 5,
EnableObjective = 6, DisableObjective = 6,
UpdateObjective = 7, PhaseShiftChanged = 7
DisableObjective = 8,
Unk7 = 9, // Seems To Have Something To Do With Sorting The Encounter Units
AddCombatResLimit = 10
} }
public enum EncounterState public enum EncounterState
+38 -3
View File
@@ -748,7 +748,7 @@ namespace Game.Maps
_temporaryEntranceId = 0; _temporaryEntranceId = 0;
} }
public void SendEncounterUnit(EncounterFrameType type, Unit unit = null, byte priority = 0) public void SendEncounterUnit(EncounterFrameType type, Unit unit = null, int? param1 = null, int? param2 = null)
{ {
switch (type) switch (type)
{ {
@@ -758,7 +758,7 @@ namespace Game.Maps
InstanceEncounterEngageUnit encounterEngageMessage = new(); InstanceEncounterEngageUnit encounterEngageMessage = new();
encounterEngageMessage.Unit = unit.GetGUID(); encounterEngageMessage.Unit = unit.GetGUID();
encounterEngageMessage.TargetFramePriority = priority; encounterEngageMessage.TargetFramePriority = (byte)param1.GetValueOrDefault(0);
instance.SendToPlayers(encounterEngageMessage); instance.SendToPlayers(encounterEngageMessage);
break; break;
case EncounterFrameType.Disengage: case EncounterFrameType.Disengage:
@@ -775,9 +775,44 @@ namespace Game.Maps
InstanceEncounterChangePriority encounterChangePriorityMessage = new(); InstanceEncounterChangePriority encounterChangePriorityMessage = new();
encounterChangePriorityMessage.Unit = unit.GetGUID(); encounterChangePriorityMessage.Unit = unit.GetGUID();
encounterChangePriorityMessage.TargetFramePriority = priority; encounterChangePriorityMessage.TargetFramePriority = (byte)param1.GetValueOrDefault(0);
instance.SendToPlayers(encounterChangePriorityMessage); instance.SendToPlayers(encounterChangePriorityMessage);
break; break;
case EncounterFrameType.AddTimer:
{
InstanceEncounterTimerStart instanceEncounterTimerStart = new();
instanceEncounterTimerStart.TimeRemaining = param1.GetValueOrDefault(0);
instance.SendToPlayers(instanceEncounterTimerStart);
break;
}
case EncounterFrameType.EnableObjective:
{
InstanceEncounterObjectiveStart instanceEncounterObjectiveStart = new();
instanceEncounterObjectiveStart.ObjectiveID = param1.GetValueOrDefault(0);
instance.SendToPlayers(instanceEncounterObjectiveStart);
break;
}
case EncounterFrameType.UpdateObjective:
{
InstanceEncounterObjectiveUpdate instanceEncounterObjectiveUpdate = new();
instanceEncounterObjectiveUpdate.ObjectiveID = param1.GetValueOrDefault(0);
instanceEncounterObjectiveUpdate.ProgressAmount = param2.GetValueOrDefault(0);
instance.SendToPlayers(instanceEncounterObjectiveUpdate);
break;
}
case EncounterFrameType.DisableObjective:
{
InstanceEncounterObjectiveComplete instanceEncounterObjectiveComplete = new();
instanceEncounterObjectiveComplete.ObjectiveID = param1.GetValueOrDefault(0);
instance.SendToPlayers(instanceEncounterObjectiveComplete);
break;
}
case EncounterFrameType.PhaseShiftChanged:
{
InstanceEncounterPhaseShiftChanged instanceEncounterPhaseShiftChanged = new();
instance.SendToPlayers(instanceEncounterPhaseShiftChanged);
break;
}
default: default:
break; break;
} }
@@ -194,6 +194,50 @@ namespace Game.Networking.Packets
public byte TargetFramePriority; // used to update the position of the unit's current frame public byte TargetFramePriority; // used to update the position of the unit's current frame
} }
class InstanceEncounterTimerStart : ServerPacket
{
public int TimeRemaining;
public InstanceEncounterTimerStart() : base(ServerOpcodes.InstanceEncounterTimerStart) { }
public override void Write() { }
}
class InstanceEncounterObjectiveStart : ServerPacket
{
public int ObjectiveID;
public InstanceEncounterObjectiveStart() : base(ServerOpcodes.InstanceEncounterObjectiveStart) { }
public override void Write() { }
}
class InstanceEncounterObjectiveUpdate : ServerPacket
{
public int ObjectiveID;
public int ProgressAmount;
public InstanceEncounterObjectiveUpdate() : base(ServerOpcodes.InstanceEncounterObjectiveUpdate) { }
public override void Write() { }
}
class InstanceEncounterObjectiveComplete : ServerPacket
{
public int ObjectiveID;
public InstanceEncounterObjectiveComplete() : base(ServerOpcodes.InstanceEncounterObjectiveComplete) { }
public override void Write() { }
}
class InstanceEncounterPhaseShiftChanged : ServerPacket
{
public InstanceEncounterPhaseShiftChanged() : base(ServerOpcodes.InstanceEncounterPhaseShiftChanged, ConnectionType.Instance) { }
public override void Write() { }
}
class InstanceEncounterStart : ServerPacket class InstanceEncounterStart : ServerPacket
{ {
public InstanceEncounterStart() : base(ServerOpcodes.InstanceEncounterStart, ConnectionType.Instance) { } public InstanceEncounterStart() : base(ServerOpcodes.InstanceEncounterStart, ConnectionType.Instance) { }