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.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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user