Core/Scenes: Add support for encrypted scenes
Port From (https://github.com/TrinityCore/TrinityCore/commit/3e3b93b509b7546894dd098ae68d4f416f572a4e)
This commit is contained in:
@@ -68,6 +68,7 @@ namespace Game.Entities
|
|||||||
playScene.SceneScriptPackageID = sceneTemplate.ScenePackageId;
|
playScene.SceneScriptPackageID = sceneTemplate.ScenePackageId;
|
||||||
playScene.Location = position;
|
playScene.Location = position;
|
||||||
playScene.TransportGUID = GetPlayer().GetTransGUID();
|
playScene.TransportGUID = GetPlayer().GetTransGUID();
|
||||||
|
playScene.Encrypted = sceneTemplate.Encrypted;
|
||||||
|
|
||||||
GetPlayer().SendPacket(playScene);
|
GetPlayer().SendPacket(playScene);
|
||||||
|
|
||||||
@@ -84,6 +85,7 @@ namespace Game.Entities
|
|||||||
sceneTemplate.SceneId = 0;
|
sceneTemplate.SceneId = 0;
|
||||||
sceneTemplate.ScenePackageId = sceneScriptPackageId;
|
sceneTemplate.ScenePackageId = sceneScriptPackageId;
|
||||||
sceneTemplate.PlaybackFlags = playbackflags;
|
sceneTemplate.PlaybackFlags = playbackflags;
|
||||||
|
sceneTemplate.Encrypted = false;
|
||||||
sceneTemplate.ScriptId = 0;
|
sceneTemplate.ScriptId = 0;
|
||||||
|
|
||||||
return PlaySceneByTemplate(sceneTemplate, position);
|
return PlaySceneByTemplate(sceneTemplate, position);
|
||||||
|
|||||||
@@ -9212,7 +9212,7 @@ namespace Game
|
|||||||
uint oldMSTime = Time.GetMSTime();
|
uint oldMSTime = Time.GetMSTime();
|
||||||
_sceneTemplateStorage.Clear();
|
_sceneTemplateStorage.Clear();
|
||||||
|
|
||||||
SQLResult result = DB.World.Query("SELECT SceneId, Flags, ScriptPackageID, ScriptName FROM scene_template");
|
SQLResult result = DB.World.Query("SELECT SceneId, Flags, ScriptPackageID, Encrypted, ScriptName FROM scene_template");
|
||||||
if (result.IsEmpty())
|
if (result.IsEmpty())
|
||||||
{
|
{
|
||||||
Log.outInfo(LogFilter.ServerLoading, "Loaded 0 scene templates. DB table `scene_template` is empty.");
|
Log.outInfo(LogFilter.ServerLoading, "Loaded 0 scene templates. DB table `scene_template` is empty.");
|
||||||
@@ -9227,7 +9227,8 @@ namespace Game
|
|||||||
sceneTemplate.SceneId = sceneId;
|
sceneTemplate.SceneId = sceneId;
|
||||||
sceneTemplate.PlaybackFlags = (SceneFlags)result.Read<uint>(1);
|
sceneTemplate.PlaybackFlags = (SceneFlags)result.Read<uint>(1);
|
||||||
sceneTemplate.ScenePackageId = result.Read<uint>(2);
|
sceneTemplate.ScenePackageId = result.Read<uint>(2);
|
||||||
sceneTemplate.ScriptId = GetScriptId(result.Read<string>(3));
|
sceneTemplate.Encrypted = result.Read<byte>(3) != 0;
|
||||||
|
sceneTemplate.ScriptId = GetScriptId(result.Read<string>(4));
|
||||||
|
|
||||||
_sceneTemplateStorage[sceneId] = sceneTemplate;
|
_sceneTemplateStorage[sceneId] = sceneTemplate;
|
||||||
|
|
||||||
@@ -11195,6 +11196,7 @@ namespace Game
|
|||||||
public uint SceneId;
|
public uint SceneId;
|
||||||
public SceneFlags PlaybackFlags;
|
public SceneFlags PlaybackFlags;
|
||||||
public uint ScenePackageId;
|
public uint ScenePackageId;
|
||||||
|
public bool Encrypted;
|
||||||
public uint ScriptId;
|
public uint ScriptId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace Game.Networking.Packets
|
|||||||
_worldPacket.WriteUInt32(SceneScriptPackageID);
|
_worldPacket.WriteUInt32(SceneScriptPackageID);
|
||||||
_worldPacket.WritePackedGuid(TransportGUID);
|
_worldPacket.WritePackedGuid(TransportGUID);
|
||||||
_worldPacket.WriteXYZO(Location);
|
_worldPacket.WriteXYZO(Location);
|
||||||
_worldPacket.WriteBit(PerformTactCallbacks);
|
_worldPacket.WriteBit(Encrypted);
|
||||||
_worldPacket.FlushBits();
|
_worldPacket.FlushBits();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ namespace Game.Networking.Packets
|
|||||||
public uint SceneScriptPackageID;
|
public uint SceneScriptPackageID;
|
||||||
public ObjectGuid TransportGUID;
|
public ObjectGuid TransportGUID;
|
||||||
public Position Location;
|
public Position Location;
|
||||||
public bool PerformTactCallbacks;
|
public bool Encrypted;
|
||||||
}
|
}
|
||||||
|
|
||||||
class CancelScene : ServerPacket
|
class CancelScene : ServerPacket
|
||||||
|
|||||||
Reference in New Issue
Block a user