diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/MapSystem/Scene.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/MapSystem/Scene.cs
index 2e7b8fc..a2db318 100644
--- a/src/DiIiS-NA/D3-GameServer/GSSystem/MapSystem/Scene.cs
+++ b/src/DiIiS-NA/D3-GameServer/GSSystem/MapSystem/Scene.cs
@@ -19,7 +19,9 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Scene;
using System;
using System.Collections.Generic;
using System.Drawing;
+using System.IO;
using System.Linq;
+using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using Actor = DiIiS_NA.GameServer.GSSystem.ActorSystem.Actor;
@@ -228,7 +230,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
///
/// Loads all markers for the scene.
///
- public void LoadMarkers()
+ public void LoadMarkers([CallerMemberName] string memberName = "", [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0)
{
GizmoSpawningLocations = new List[26]; // LocationA to LocationZ
@@ -239,6 +241,12 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
switch (marker.Type)
{
case MarkerType.Actor:
+ if ((ActorSno)marker.SNOHandle.Id == ActorSno.__NONE)
+ {
+ var path = Path.GetFileName(filePath);
+ Logger.Trace($"$[underline red on white]$Actor asset not found$[/]$, Method: $[olive]${memberName}()$[/]$ - $[underline white]${memberName}() in {path}:{lineNumber}$[/]$");
+ continue;
+ }
var actor = ActorFactory.Create(World, (ActorSno)marker.SNOHandle.Id, marker.TagMap); // try to create it.
//Logger.Debug("not-lazy spawned {0}", actor.GetType().Name);
if (actor == null) continue;
@@ -263,6 +271,13 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
{
Logger.Trace("Encounter option {0} - {1} - {2} - {3}", option.SNOSpawn, option.Probability, option.I1, option.I2);
}*/ //only for debugging purposes
+ if ((ActorSno)actorsno.SNOSpawn == ActorSno.__NONE)
+ {
+ var path = Path.GetFileName(filePath);
+ Logger.Trace($"$[underline red on white]$Actor asset not found$[/]$, Method: $[olive]${memberName}()$[/]$ - $[underline white]${memberName}() in {path}:{lineNumber}$[/]$");
+ continue;
+ }
+
var actor2 = ActorFactory.Create(World, (ActorSno)actorsno.SNOSpawn, marker.TagMap); // try to create it.
if (actor2 == null) continue;
@@ -515,75 +530,12 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem
///
public MapRevealSceneMessage MapRevealMessage(Player plr)
{
- if (
- #region Город первого акта
- SceneSNO.Id == 1904 ||
- SceneSNO.Id == 33342 ||
- SceneSNO.Id == 33343 ||
-
- SceneSNO.Id == 33347 ||
- SceneSNO.Id == 33348 ||
- SceneSNO.Id == 33349 ||
- SceneSNO.Id == 414798
- #endregion
- ||
- #region Город второго акта
- SceneSNO.Id == 161516 ||
- SceneSNO.Id == 161510 ||
- SceneSNO.Id == 185542 ||
-
- SceneSNO.Id == 161507 ||
- SceneSNO.Id == 161513 ||
- SceneSNO.Id == 185545
- #endregion
- ||
- #region Город третьего акта
- SceneSNO.Id == 172892 ||
- SceneSNO.Id == 172880 ||
- SceneSNO.Id == 172868 ||
-
- SceneSNO.Id == 172888 ||
- SceneSNO.Id == 172876 ||
- SceneSNO.Id == 172863 ||
-
- SceneSNO.Id == 172884 ||
- SceneSNO.Id == 172872 ||
- SceneSNO.Id == 172908
- #endregion
- ||
- #region Город четвертого акта
- SceneSNO.Id == 183555 ||
- SceneSNO.Id == 183556 ||
- SceneSNO.Id == 183557 ||
-
- SceneSNO.Id == 183502 ||
- SceneSNO.Id == 183505 ||
- SceneSNO.Id == 183557 ||
-
- SceneSNO.Id == 183519 ||
- SceneSNO.Id == 183545 ||
- SceneSNO.Id == 183553
- #endregion
- ||
- #region Город пятого акта
- SceneSNO.Id == 315706 ||
- SceneSNO.Id == 311307 ||
- SceneSNO.Id == 311295 ||
-
- SceneSNO.Id == 313849 ||
- SceneSNO.Id == 311316 ||
- SceneSNO.Id == 313845 ||
-
- SceneSNO.Id == 315710 ||
- SceneSNO.Id == 311310 ||
- SceneSNO.Id == 311298 ||
-
- SceneSNO.Id == 313853 ||
- SceneSNO.Id == 311313 ||
- SceneSNO.Id == 311301 ||
- SceneSNO.Id == 313857
- #endregion
- )
+ if (SceneSNO.Id is 1904 or 33342 or 33343 or 33347 or 33348 or 33349 or 414798 or 161516 or 161510 or 185542
+ or 161507 or 161513 or 185545 or 172892 or 172880 or 172868 or 172888 or 172876 or 172863 or 172884
+ or 172872 or 172908 or 183555 or 183556 or 183557 or 183502 or 183505 or 183557 or 183519 or 183545
+ or 183553 or 315706 or 311307 or 311295 or 313849 or 311316 or 313845 or 315710 or 311310 or 311298
+ or 313853 or 311313 or 311301 or 313857
+ )
{
return new MapRevealSceneMessage
{
diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/TownTeleport.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/TownTeleport.cs
index ba31312..8d5bd37 100644
--- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/TownTeleport.cs
+++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/TownTeleport.cs
@@ -24,22 +24,22 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations
var scenes = World.QuadTree.Query(proximity);
var scene = scenes[0]; // Parent scene /fasbat
int levelArea = scene.Specification.SNOLevelAreas[0];
- (World.Game.GetHearthPortal() as HearthPortal).ReturnWorld = World.SNO;
- (World.Game.GetHearthPortal() as HearthPortal).ReturnPosition = User.Position;
+ ((HearthPortal)World.Game.GetHearthPortal()).ReturnWorld = World.SNO;
+ ((HearthPortal)World.Game.GetHearthPortal()).ReturnPosition = User.Position;
Vector3D exCheckpoint = User.CheckPointPosition;
- (User as Player).InGameClient.SendMessage(new MessageSystem.Message.Definitions.Base.SimpleMessage(MessageSystem.Opcodes.LoadingWarping));
+ ((Player)User).InGameClient.SendMessage(new MessageSystem.Message.Definitions.Base.SimpleMessage(MessageSystem.Opcodes.LoadingWarping));
if (world != User.World)
User.ChangeWorld(world, World.Game.GetHearthPortal().Position);
else
User.Teleport(World.Game.GetHearthPortal().Position);
User.CheckPointPosition = exCheckpoint;
- (World.Game.GetHearthPortal() as HearthPortal).Owner = (User as Player);
+ ((HearthPortal)World.Game.GetHearthPortal()).Owner = (User as Player);
World.Game.GetHearthPortal().SetVisible(true);
- (User as Player).InGameClient.SendMessage(new HearthPortalInfoMessage
+ ((Player)User).InGameClient.SendMessage(new HearthPortalInfoMessage
{
snoLevelArea = levelArea,
snoUnknown = -1,