mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
Upload
This commit is contained in:
245
gamemodes/ixhl2rp/schema/sv_schema.lua
Normal file
245
gamemodes/ixhl2rp/schema/sv_schema.lua
Normal file
@@ -0,0 +1,245 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
|
||||
Schema.CombineObjectives = Schema.CombineObjectives or {}
|
||||
|
||||
-- data saving
|
||||
function Schema:SaveRationDispensers()
|
||||
local data = {}
|
||||
|
||||
for _, v in ipairs(ents.FindByClass("ix_rationdispenser")) do
|
||||
data[#data + 1] = {v:GetPos(), v:GetAngles(), v:GetEnabled()}
|
||||
end
|
||||
|
||||
ix.data.Set("rationDispensers", data)
|
||||
end
|
||||
|
||||
function Schema:SaveCombineLocks()
|
||||
local data = {}
|
||||
|
||||
for _, v in ipairs(ents.FindByClass("ix_combinelock")) do
|
||||
if (IsValid(v.door)) then
|
||||
data[#data + 1] = {
|
||||
v.door:MapCreationID(),
|
||||
v.door:WorldToLocal(v:GetPos()),
|
||||
v.door:WorldToLocalAngles(v:GetAngles()),
|
||||
v:GetLocked()
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
ix.data.Set("combineLocks", data)
|
||||
|
||||
data = {}
|
||||
|
||||
for _, v2 in ipairs(ents.FindByClass("ix_combinelock_cwu")) do
|
||||
if (IsValid(v2.door)) then
|
||||
data[#data + 1] = {
|
||||
v2.door:MapCreationID(),
|
||||
v2.door:WorldToLocal(v2:GetPos()),
|
||||
v2.door:WorldToLocalAngles(v2:GetAngles()),
|
||||
v2:GetLocked(),
|
||||
v2.accessLevel
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
ix.data.Set("combineLocksCwu", data)
|
||||
|
||||
data = {}
|
||||
|
||||
for _, v2 in ipairs(ents.FindByClass("ix_combinelock_dob")) do
|
||||
if (IsValid(v2.door)) then
|
||||
data[#data + 1] = {
|
||||
v2.door:MapCreationID(),
|
||||
v2.door:WorldToLocal(v2:GetPos()),
|
||||
v2.door:WorldToLocalAngles(v2:GetAngles()),
|
||||
v2:GetLocked(),
|
||||
v2.accessLevel
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
ix.data.Set("combineLocksDob", data)
|
||||
|
||||
data = {}
|
||||
|
||||
for _, v2 in ipairs(ents.FindByClass("ix_combinelock_cmru")) do
|
||||
if (IsValid(v2.door)) then
|
||||
data[#data + 1] = {
|
||||
v2.door:MapCreationID(),
|
||||
v2.door:WorldToLocal(v2:GetPos()),
|
||||
v2.door:WorldToLocalAngles(v2:GetAngles()),
|
||||
v2:GetLocked(),
|
||||
v2.accessLevel
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
ix.data.Set("combineLocksCmru", data)
|
||||
|
||||
data = {}
|
||||
|
||||
for _, v2 in ipairs(ents.FindByClass("ix_combinelock_moe")) do
|
||||
if (IsValid(v2.door)) then
|
||||
data[#data + 1] = {
|
||||
v2.door:MapCreationID(),
|
||||
v2.door:WorldToLocal(v2:GetPos()),
|
||||
v2.door:WorldToLocalAngles(v2:GetAngles()),
|
||||
v2:GetLocked(),
|
||||
v2.accessLevel
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
ix.data.Set("combineLocksMoe", data)
|
||||
end
|
||||
|
||||
function Schema:SaveForceFields()
|
||||
local data = {}
|
||||
|
||||
for _, v in ipairs(ents.FindByClass("ix_forcefield")) do
|
||||
data[#data + 1] = {v:GetPos(), v:GetAngles(), v:GetMode()}
|
||||
end
|
||||
|
||||
ix.data.Set("forceFields", data)
|
||||
end
|
||||
|
||||
function Schema:SaveRebelForceFields()
|
||||
local data = {}
|
||||
|
||||
for _, v in ipairs(ents.FindByClass("ix_rebelfield")) do
|
||||
data[#data + 1] = {v:GetPos(), v:GetAngles(), v:GetMode()}
|
||||
end
|
||||
|
||||
ix.data.Set("rebelForceFields", data)
|
||||
end
|
||||
|
||||
-- data loading
|
||||
function Schema:LoadRationDispensers()
|
||||
for _, v in ipairs(ix.data.Get("rationDispensers") or {}) do
|
||||
local dispenser = ents.Create("ix_rationdispenser")
|
||||
|
||||
dispenser:SetPos(v[1])
|
||||
dispenser:SetAngles(v[2])
|
||||
dispenser:Spawn()
|
||||
dispenser:SetEnabled(v[3])
|
||||
end
|
||||
end
|
||||
|
||||
function Schema:LoadCombineLocks()
|
||||
for _, v in ipairs(ix.data.Get("combineLocks") or {}) do
|
||||
local door = ents.GetMapCreatedEntity(v[1])
|
||||
|
||||
if (IsValid(door) and door:IsDoor()) then
|
||||
local lock = ents.Create("ix_combinelock")
|
||||
|
||||
lock:SetPos(door:GetPos())
|
||||
lock:Spawn()
|
||||
lock:SetDoor(door, door:LocalToWorld(v[2]), door:LocalToWorldAngles(v[3]))
|
||||
lock:SetLocked(v[4])
|
||||
end
|
||||
end
|
||||
|
||||
for _, v in ipairs(ix.data.Get("combineLocksCwu") or {}) do
|
||||
local door = ents.GetMapCreatedEntity(v[1])
|
||||
|
||||
if (IsValid(door) and door:IsDoor()) then
|
||||
local lock = ents.Create("ix_combinelock_cwu")
|
||||
|
||||
lock:SetPos(door:GetPos())
|
||||
lock:Spawn()
|
||||
lock:SetDoor(door, door:LocalToWorld(v[2]), door:LocalToWorldAngles(v[3]))
|
||||
lock:SetLocked(v[4])
|
||||
lock.accessLevel = v[5]
|
||||
end
|
||||
end
|
||||
|
||||
for _, v in ipairs(ix.data.Get("combineLocksDob") or {}) do
|
||||
local door = ents.GetMapCreatedEntity(v[1])
|
||||
|
||||
if (IsValid(door) and door:IsDoor()) then
|
||||
local lock = ents.Create("ix_combinelock_dob")
|
||||
|
||||
lock:SetPos(door:GetPos())
|
||||
lock:Spawn()
|
||||
lock:SetDoor(door, door:LocalToWorld(v[2]), door:LocalToWorldAngles(v[3]))
|
||||
lock:SetLocked(v[4])
|
||||
lock.accessLevel = v[5]
|
||||
end
|
||||
end
|
||||
|
||||
for _, v in ipairs(ix.data.Get("combineLocksCmru") or {}) do
|
||||
local door = ents.GetMapCreatedEntity(v[1])
|
||||
|
||||
if (IsValid(door) and door:IsDoor()) then
|
||||
local lock = ents.Create("ix_combinelock_cmru")
|
||||
|
||||
lock:SetPos(door:GetPos())
|
||||
lock:Spawn()
|
||||
lock:SetDoor(door, door:LocalToWorld(v[2]), door:LocalToWorldAngles(v[3]))
|
||||
lock:SetLocked(v[4])
|
||||
lock.accessLevel = v[5]
|
||||
end
|
||||
end
|
||||
|
||||
for _, v in ipairs(ix.data.Get("combineLocksMoe") or {}) do
|
||||
local door = ents.GetMapCreatedEntity(v[1])
|
||||
|
||||
if (IsValid(door) and door:IsDoor()) then
|
||||
local lock = ents.Create("ix_combinelock_moe")
|
||||
|
||||
lock:SetPos(door:GetPos())
|
||||
lock:Spawn()
|
||||
lock:SetDoor(door, door:LocalToWorld(v[2]), door:LocalToWorldAngles(v[3]))
|
||||
lock:SetLocked(v[4])
|
||||
lock.accessLevel = v[5]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Schema:LoadForceFields()
|
||||
for _, v in ipairs(ix.data.Get("forceFields") or {}) do
|
||||
local field = ents.Create("ix_forcefield")
|
||||
|
||||
field:SetPos(v[1])
|
||||
field:SetAngles(v[2])
|
||||
field:Spawn()
|
||||
field:SetMode(v[3])
|
||||
|
||||
local skin = scripted_ents.Get("ix_forcefield")
|
||||
skin = skin.MODES
|
||||
|
||||
if (v[3] == 1) then
|
||||
field:SetSkin(3)
|
||||
field.dummy:SetSkin(3)
|
||||
else
|
||||
field:SetSkin(skin[v[3]][4])
|
||||
field.dummy:SetSkin(skin[v[3]][4])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Schema:SearchPlayer(client, target)
|
||||
if (!target:GetCharacter() or !target:GetCharacter():GetInventory()) then
|
||||
return false
|
||||
end
|
||||
|
||||
local name = hook.Run("GetDisplayedName", target) or target:Name()
|
||||
local inventory = target:GetCharacter():GetInventory()
|
||||
|
||||
ix.storage.Open(client, inventory, {
|
||||
entity = target,
|
||||
name = name
|
||||
})
|
||||
|
||||
return true
|
||||
end
|
||||
Reference in New Issue
Block a user