diff options
Diffstat (limited to 'gamemode/shared/sh_quests.lua')
| -rw-r--r-- | gamemode/shared/sh_quests.lua | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gamemode/shared/sh_quests.lua b/gamemode/shared/sh_quests.lua new file mode 100644 index 0000000..ace050a --- /dev/null +++ b/gamemode/shared/sh_quests.lua @@ -0,0 +1,35 @@ +--[[ + Details how quests are handeled +]] + +local pmeta = FindMetaTable("Player") + +if SERVER then + util.AddNetworkString("synchquest") +end + +function pmeta:SynchronizeQuest(name) + net.Start("synchquest") + net.WriteString(name) + net.WriteUInt(self.Quests[name],16) + net.Send(self) +end + +if CLIENT then + net.Receive("synchquest",function() + LocalPlayer().Quests = LocalPlayer().Quests or {} + print("Got quest status") + local questname,queststatus = net.ReadString(), net.ReadUInt(16) + LocalPlayer().Quests[questname] = queststatus + end) + + ART.Quests = ART.Quests or {} + function ART.RegisterQuest(tbl) + assert(ART.Quests[tbl.Name] == nil,"Tried to register two quests with the same name:" .. tbl.Name) + ART.Quests[tbl.Name] = tbl + end + + function ART.GetQuest(name) + return ART.Quests[name] + end +end |
