diff --git a/src/DiIiS-NA/Core/Logging/ConsoleTarget.cs b/src/DiIiS-NA/Core/Logging/ConsoleTarget.cs
index e671b45..6a4a144 100644
--- a/src/DiIiS-NA/Core/Logging/ConsoleTarget.cs
+++ b/src/DiIiS-NA/Core/Logging/ConsoleTarget.cs
@@ -1,6 +1,8 @@
-//Blizzless Project 2022
-//Blizzless Project 2022
-using System;
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Spectre.Console;
namespace DiIiS_NA.Core.Logging
{
diff --git a/src/DiIiS-NA/Core/Logging/Logger.cs b/src/DiIiS-NA/Core/Logging/Logger.cs
index 52f4ea8..0f19eb6 100644
--- a/src/DiIiS-NA/Core/Logging/Logger.cs
+++ b/src/DiIiS-NA/Core/Logging/Logger.cs
@@ -40,6 +40,10 @@ namespace DiIiS_NA.Core.Logging
///
Debug,
///
+ /// The messages meant for method call tracing.
+ ///
+ MethodTrace,
+ ///
/// The messages meant for tracing purposes.
/// Trace messages are rarer than debug messages and should be used for more precise tracing.
///
@@ -100,6 +104,13 @@ namespace DiIiS_NA.Core.Logging
/// Additional arguments.
public void Trace(string message, params object[] args) => Log(Level.Trace, message, args);
+ /// The log message.
+ public void MethodTrace(string message) => Log(Level.MethodTrace, message, null);
+
+ /// The log message.
+ /// Additional arguments.
+ public void MethodTrace(string message, params object[] args) => Log(Level.MethodTrace, message, args);
+
/// The log message.
public void Debug(string message) => Log(Level.Debug, message, null);
diff --git a/src/DiIiS-NA/D3-GameServer/CommandManager/CommandManager.cs b/src/DiIiS-NA/D3-GameServer/CommandManager/CommandManager.cs
index 5c09675..0a2ec54 100644
--- a/src/DiIiS-NA/D3-GameServer/CommandManager/CommandManager.cs
+++ b/src/DiIiS-NA/D3-GameServer/CommandManager/CommandManager.cs
@@ -63,7 +63,7 @@ namespace DiIiS_NA.GameServer.CommandManager
if (!ExtractCommandAndParameters(line, out command, out parameters))
{
output = "Unknown command: " + line;
- Logger.Info(output);
+ Logger.Error(output);
return;
}
@@ -76,10 +76,15 @@ namespace DiIiS_NA.GameServer.CommandManager
}
if (found == false)
- output = string.Format("Unknown command: {0} {1}", command, parameters);
+ {
+ Logger.Error("Unknown command: " + command);
+ return;
+ }
if (output != string.Empty)
- Logger.Info(output);
+ Logger.Success(output);
+ else
+ Logger.Success("Command executed successfully.");
}
diff --git a/src/DiIiS-NA/D3-GameServer/Core/Types/Math/Vector3D.cs b/src/DiIiS-NA/D3-GameServer/Core/Types/Math/Vector3D.cs
index 6bd55d4..0b4cc93 100644
--- a/src/DiIiS-NA/D3-GameServer/Core/Types/Math/Vector3D.cs
+++ b/src/DiIiS-NA/D3-GameServer/Core/Types/Math/Vector3D.cs
@@ -11,6 +11,8 @@ using Gibbed.IO;
//Blizzless Project 2022
using DiIiS_NA.Core.Storage;
using System;
+using System.Numerics;
+using DiIiS_NA.Core.Helpers.Math;
namespace DiIiS_NA.GameServer.Core.Types.Math
{
@@ -110,9 +112,9 @@ namespace DiIiS_NA.GameServer.Core.Types.Math
/// the distance squared between the vectors
public float DistanceSquared(ref Vector3D point)
{
- float x = point.X - X;
- float y = point.Y - Y;
- float z = point.Z - Z;
+ float x = point.X - X,
+ y = point.Y - Y,
+ z = point.Z - Z;
return ((x * x) + (y * y)) + (z * z);
}
@@ -178,29 +180,17 @@ namespace DiIiS_NA.GameServer.Core.Types.Math
var v = o as Vector3D;
if (v != null)
{
- return X == v.X
- && Y == v.Y
- && Z == v.Z;
+ return System.Math.Abs(X - v.X) < 0.0001
+ && System.Math.Abs(Y - v.Y) < 0.0001
+ && System.Math.Abs(Z - v.Z) < 0.0001;
}
return false;
}
- public override int GetHashCode()
- {
- return X.GetHashCode() ^ Y.GetHashCode() ^ Z.GetHashCode();
- }
+ public override string ToString() => $"X:{X:F4}, Y:{Y:F4} Z:{Z:F4}";
- public override string ToString()
- {
- return string.Format("x:{0} y:{1} z:{2}", X, Y, Z);
- }
+ public bool IsNear(Vector3D other, float distance) => DistanceSquared(ref other) < distance * distance;
- public Vector3D Around2D(float f)
- {
- var angle = (float)(System.Math.PI * 2 * f);
- var x = (float)(System.Math.Cos(angle) * X - System.Math.Sin(angle) * Y);
- var y = (float)(System.Math.Sin(angle) * X + System.Math.Cos(angle) * Y);
- return new Vector3D(x, y, Z);
- }
+ public bool IsNearSquared(Vector3D other, float distanceSquared) => DistanceSquared(ref other) < distanceSquared;
}
}
diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/QuestManager.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/QuestManager.cs
index e191549..86f61d1 100644
--- a/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/QuestManager.cs
+++ b/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/QuestManager.cs
@@ -552,7 +552,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem
{
if (Game.QuestProgress.QuestTriggers.Count == 1)
{
- Logger.Trace("AutoSetQuestMarker()");
+ Logger.MethodTrace($"AutoSetQuestMarker() - {Game.QuestProgress.QuestTriggers.Count} triggers found");
var trigger = Game.QuestProgress.QuestTriggers.First();
if (trigger.Value.triggerType == DiIiS_NA.Core.MPQ.FileFormats.QuestStepObjectiveType.InteractWithActor)
foreach (var world in Game.Worlds)
diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActI.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActI.cs
index 97550ee..92e467c 100644
--- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActI.cs
+++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActI.cs
@@ -555,8 +555,6 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
StartConversation(tristramWorld, 72498);
});
//StartConversation(this.Game.GetWorld(71150), 72496);
- // we check if Leah is spawned in New Tristram
-
var leah = tristramWorld.GetActorBySNO(ActorSno._leah, true);
if (leah == null)
{
@@ -567,6 +565,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem
leah.SetVisible(true);
}
}
+
+ // SetActorVisible(tristramWorld, ActorSno._leah, true);
ListenConversation(198617, new Advance());
}
});