From 4580658f6f29cda8a51e1f8d9823ca2472ed9432 Mon Sep 17 00:00:00 2001 From: Lucca Faria Ferri Date: Fri, 27 Jan 2023 02:33:54 -0800 Subject: [PATCH] Updated acts/quests, ActI/72095/32 updates, added reference to Spectre --- src/DiIiS-NA/Core/Logging/ConsoleTarget.cs | 8 +++-- src/DiIiS-NA/Core/Logging/Logger.cs | 11 +++++++ .../CommandManager/CommandManager.cs | 11 +++++-- .../D3-GameServer/Core/Types/Math/Vector3D.cs | 32 +++++++------------ .../GSSystem/GameSystem/QuestManager.cs | 2 +- .../GSSystem/QuestSystem/ActI.cs | 4 +-- 6 files changed, 38 insertions(+), 30 deletions(-) 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()); } });