mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 05:43:46 +03:00
Upload
This commit is contained in:
138
lua/autorun/server/advdupe2_sv_init.lua
Normal file
138
lua/autorun/server/advdupe2_sv_init.lua
Normal file
@@ -0,0 +1,138 @@
|
||||
--[[
|
||||
| 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/
|
||||
--]]
|
||||
|
||||
AdvDupe2 = {
|
||||
Version = "1.1.0",
|
||||
Revision = 51
|
||||
}
|
||||
|
||||
AdvDupe2.DataFolder = "advdupe2" --name of the folder in data where dupes will be saved
|
||||
|
||||
function AdvDupe2.Notify(ply,msg,typ, showsvr, dur)
|
||||
net.Start("AdvDupe2Notify")
|
||||
net.WriteString(msg)
|
||||
net.WriteUInt(typ or 0, 8)
|
||||
net.WriteFloat(dur or 5)
|
||||
net.Send(ply)
|
||||
|
||||
if(showsvr==true)then
|
||||
print("[AdvDupe2Notify]\t"..ply:Nick()..": "..msg)
|
||||
end
|
||||
end
|
||||
|
||||
AddCSLuaFile( "autorun/client/advdupe2_cl_init.lua" )
|
||||
AddCSLuaFile( "advdupe2/file_browser.lua" )
|
||||
AddCSLuaFile( "advdupe2/sh_codec.lua" )
|
||||
AddCSLuaFile( "advdupe2/cl_file.lua" )
|
||||
AddCSLuaFile( "advdupe2/cl_ghost.lua" )
|
||||
|
||||
util.AddNetworkString("AdvDupe2_ReportClass")
|
||||
util.AddNetworkString("AdvDupe2_ReportModel")
|
||||
util.AddNetworkString("AdvDupe2Notify")
|
||||
util.AddNetworkString("AdvDupe2_RemoveGhosts")
|
||||
util.AddNetworkString("AdvDupe2_ResetDupeInfo")
|
||||
util.AddNetworkString("AdvDupe2_StartGhosting")
|
||||
util.AddNetworkString("AdvDupe2_InitProgressBar")
|
||||
util.AddNetworkString("AdvDupe2_DrawSelectBox")
|
||||
util.AddNetworkString("AdvDupe2_RemoveSelectBox")
|
||||
util.AddNetworkString("AdvDupe2_UpdateProgressBar")
|
||||
util.AddNetworkString("AdvDupe2_RemoveProgressBar")
|
||||
util.AddNetworkString("AdvDupe2_ResetOffsets")
|
||||
util.AddNetworkString("AdvDupe2_SetDupeInfo")
|
||||
util.AddNetworkString("AdvDupe2_ReceiveFile")
|
||||
util.AddNetworkString("AdvDupe2_CanAutoSave")
|
||||
|
||||
CreateConVar("AdvDupe2_DebugInfo", "0", {FCVAR_ARCHIVE}, "Should extra info be printed to console?", 0, 1)
|
||||
CreateConVar("AdvDupe2_SpawnRate", "1", {FCVAR_ARCHIVE})
|
||||
CreateConVar("AdvDupe2_MaxFileSize", "200", {FCVAR_ARCHIVE})
|
||||
CreateConVar("AdvDupe2_MaxEntities", "0", {FCVAR_ARCHIVE})
|
||||
CreateConVar("AdvDupe2_MaxConstraints", "0", {FCVAR_ARCHIVE})
|
||||
|
||||
CreateConVar("AdvDupe2_MaxContraptionEntities", "10", {FCVAR_ARCHIVE})
|
||||
CreateConVar("AdvDupe2_MaxContraptionConstraints", "15", {FCVAR_ARCHIVE})
|
||||
CreateConVar("AdvDupe2_MinContraptionSpawnDelay", "0.2", {FCVAR_ARCHIVE})
|
||||
CreateConVar("AdvDupe2_MinContraptionUndoDelay", "0.1", {FCVAR_ARCHIVE})
|
||||
CreateConVar("AdvDupe2_MaxContraptionUndoDelay", "60", {FCVAR_ARCHIVE})
|
||||
|
||||
CreateConVar("AdvDupe2_FileModificationDelay", "5", {FCVAR_ARCHIVE})
|
||||
CreateConVar("AdvDupe2_UpdateFilesDelay", "10", {FCVAR_ARCHIVE})
|
||||
|
||||
CreateConVar("AdvDupe2_LoadMap", "0", {FCVAR_ARCHIVE})
|
||||
CreateConVar("AdvDupe2_MapFileName", "", {FCVAR_ARCHIVE})
|
||||
|
||||
local function PasteMap()
|
||||
if(GetConVarString("AdvDupe2_LoadMap")=="0")then return end
|
||||
local filename = GetConVarString("AdvDupe2_MapFileName")
|
||||
|
||||
if(not filename or filename == "")then
|
||||
print("[AdvDupe2Notify]\tInvalid file name to loap map save.")
|
||||
return
|
||||
end
|
||||
|
||||
if(not file.Exists("advdupe2_maps/"..filename..".txt", "DATA"))then
|
||||
print("[AdvDupe2Notify]\tFile does not exist for a map save.")
|
||||
return
|
||||
end
|
||||
|
||||
local map = file.Read("advdupe2_maps/"..filename..".txt")
|
||||
local success,dupe,info,moreinfo = AdvDupe2.Decode(map)
|
||||
if not success then
|
||||
print("[AdvDupe2Notify]\tCould not open map save "..dupe)
|
||||
return
|
||||
end
|
||||
|
||||
local Tab = {Entities=dupe["Entities"], Constraints=dupe["Constraints"], HeadEnt=dupe["HeadEnt"]}
|
||||
local Entities = AdvDupe2.duplicator.Paste(nil, table.Copy(Tab.Entities), Tab.Constraints, nil, nil, Tab.HeadEnt.Pos, true)
|
||||
local maptype = GetConVarString("AdvDupe2_LoadMap")
|
||||
|
||||
if(maptype=="1")then
|
||||
local PhysObj
|
||||
for k,v in pairs(Entities) do
|
||||
if(IsValid(v))then
|
||||
for i=0, #Tab.Entities[k].PhysicsObjects do
|
||||
if(Tab.Entities[k].PhysicsObjects[i].Frozen)then
|
||||
PhysObj = v:GetPhysicsObjectNum( i )
|
||||
if IsValid(PhysObj) then
|
||||
PhysObj:EnableMotion(true)
|
||||
end
|
||||
end
|
||||
end
|
||||
if v.CPPISetOwner then v:CPPISetOwner(game.GetWorld()) end
|
||||
end
|
||||
end
|
||||
elseif(maptype=="2")then
|
||||
local PhysObj
|
||||
for k,v in pairs(Entities) do
|
||||
if(IsValid(v))then
|
||||
for i=0, #Tab.Entities[k].PhysicsObjects do
|
||||
PhysObj = v:GetPhysicsObjectNum( i )
|
||||
if IsValid(PhysObj) then
|
||||
PhysObj:EnableMotion(true)
|
||||
end
|
||||
end
|
||||
if v.CPPISetOwner then v:CPPISetOwner(game.GetWorld()) end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
print("[AdvDupe2Notify]\tMap save pasted.")
|
||||
end
|
||||
hook.Add("InitPostEntity", "AdvDupe2_PasteMap", PasteMap)
|
||||
hook.Add("PostCleanupMap", "AdvDupe2_PasteMap", PasteMap)
|
||||
hook.Add("PlayerInitialSpawn","AdvDupe2_AddPlayerTable",function(ply)
|
||||
ply.AdvDupe2 = {}
|
||||
end)
|
||||
|
||||
include( "advdupe2/sv_clipboard.lua" )
|
||||
include( "advdupe2/sh_codec.lua" )
|
||||
include( "advdupe2/sv_misc.lua" )
|
||||
include( "advdupe2/sv_file.lua" )
|
||||
include( "advdupe2/sv_ghost.lua" )
|
||||
|
||||
Reference in New Issue
Block a user