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
{
SetCombatResLimit = 0,
ResetCombatResLimit = 1,
Engage = 2,
Disengage = 3,
UpdatePriority = 4,
AddTimer = 5,
EnableObjective = 6,
UpdateObjective = 7,
DisableObjective = 8,
Unk7 = 9, // Seems To Have Something To Do With Sorting The Encounter Units
AddCombatResLimit = 10
Engage = 0,
Disengage = 1,
UpdatePriority = 2,
AddTimer = 3,
EnableObjective = 4,
UpdateObjective = 5,
DisableObjective = 6,
PhaseShiftChanged = 7
}
public enum EncounterState
+38 -3
View File
@@ -748,7 +748,7 @@ namespace Game.Maps
_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)
{
@@ -758,7 +758,7 @@ namespace Game.Maps
InstanceEncounterEngageUnit encounterEngageMessage = new();
encounterEngageMessage.Unit = unit.GetGUID();
encounterEngageMessage.TargetFramePriority = priority;
encounterEngageMessage.TargetFramePriority = (byte)param1.GetValueOrDefault(0);
instance.SendToPlayers(encounterEngageMessage);
break;
case EncounterFrameType.Disengage:
@@ -775,9 +775,44 @@ namespace Game.Maps
InstanceEncounterChangePriority encounterChangePriorityMessage = new();
encounterChangePriorityMessage.Unit = unit.GetGUID();
encounterChangePriorityMessage.TargetFramePriority = priority;
encounterChangePriorityMessage.TargetFramePriority = (byte)param1.GetValueOrDefault(0);
instance.SendToPlayers(encounterChangePriorityMessage);
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:
break;
}
@@ -194,6 +194,50 @@ namespace Game.Networking.Packets
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
{
public InstanceEncounterStart() : base(ServerOpcodes.InstanceEncounterStart, ConnectionType.Instance) { }