Core/Scenes: Add support for encrypted scenes

Port From (https://github.com/TrinityCore/TrinityCore/commit/3e3b93b509b7546894dd098ae68d4f416f572a4e)
This commit is contained in:
hondacrx
2021-03-04 13:58:17 -05:00
parent 8a481dc9bd
commit ac2c1c5191
3 changed files with 8 additions and 4 deletions
+2
View File
@@ -68,6 +68,7 @@ namespace Game.Entities
playScene.SceneScriptPackageID = sceneTemplate.ScenePackageId;
playScene.Location = position;
playScene.TransportGUID = GetPlayer().GetTransGUID();
playScene.Encrypted = sceneTemplate.Encrypted;
GetPlayer().SendPacket(playScene);
@@ -84,6 +85,7 @@ namespace Game.Entities
sceneTemplate.SceneId = 0;
sceneTemplate.ScenePackageId = sceneScriptPackageId;
sceneTemplate.PlaybackFlags = playbackflags;
sceneTemplate.Encrypted = false;
sceneTemplate.ScriptId = 0;
return PlaySceneByTemplate(sceneTemplate, position);
+4 -2
View File
@@ -9212,7 +9212,7 @@ namespace Game
uint oldMSTime = Time.GetMSTime();
_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())
{
Log.outInfo(LogFilter.ServerLoading, "Loaded 0 scene templates. DB table `scene_template` is empty.");
@@ -9227,7 +9227,8 @@ namespace Game
sceneTemplate.SceneId = sceneId;
sceneTemplate.PlaybackFlags = (SceneFlags)result.Read<uint>(1);
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;
@@ -11195,6 +11196,7 @@ namespace Game
public uint SceneId;
public SceneFlags PlaybackFlags;
public uint ScenePackageId;
public bool Encrypted;
public uint ScriptId;
}
@@ -32,7 +32,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteUInt32(SceneScriptPackageID);
_worldPacket.WritePackedGuid(TransportGUID);
_worldPacket.WriteXYZO(Location);
_worldPacket.WriteBit(PerformTactCallbacks);
_worldPacket.WriteBit(Encrypted);
_worldPacket.FlushBits();
}
@@ -42,7 +42,7 @@ namespace Game.Networking.Packets
public uint SceneScriptPackageID;
public ObjectGuid TransportGUID;
public Position Location;
public bool PerformTactCallbacks;
public bool Encrypted;
}
class CancelScene : ServerPacket