From 1d34b22456b2e676b08ce449e581be9510bc8f13 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Thu, 29 Oct 2020 22:01:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=A8=A1=E5=BC=8F=E7=AF=A1?= =?UTF-8?q?=E6=94=B9=E7=9A=AE=E8=82=A4=E5=92=8C=E5=88=9D=E5=A7=8B=E6=9C=9D?= =?UTF-8?q?=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zframework/toolfunc.lua | 20 +++++++++++++++++++- parts/gametoolfunc.lua | 10 +++++----- parts/player.lua | 8 ++++++-- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/Zframework/toolfunc.lua b/Zframework/toolfunc.lua index d9bf9a34..c200205c 100644 --- a/Zframework/toolfunc.lua +++ b/Zframework/toolfunc.lua @@ -526,7 +526,25 @@ do--json return res end end -function addToTable(G,base)--Refresh default base with G-values +function copyList(org) + local L={} + for i=1,#org do + L[i]=org[i] + end + return L +end +function copyTable(org) + local L={} + for k,v in next,org do + if type(v)~="table"then + L[k]=v + else + L[k]=copyTable(v) + end + end + return L +end +function addToTable(G,base)--For all things in G if same type in base, push to base for k,v in next,G do if type(v)==type(base[k])then if type(v)=="table"then diff --git a/parts/gametoolfunc.lua b/parts/gametoolfunc.lua index 098aa0b3..073814ac 100644 --- a/parts/gametoolfunc.lua +++ b/parts/gametoolfunc.lua @@ -11,16 +11,16 @@ local default_setting={ "ihs","irs","ims", "maxNext", "swap", - -- "face", + --"face","skin", } local function copyGameSetting() - local S={face={}} + local S={ + face=copyList(SETTING.face), + skin=copyList(SETTING.skin), + } for _,v in next,default_setting do S[v]=SETTING[v] end - for i=1,25 do - S.face[i]=SETTING.face[i] - end return S end diff --git a/parts/player.lua b/parts/player.lua index 5435f732..dfc37c4a 100644 --- a/parts/player.lua +++ b/parts/player.lua @@ -1094,7 +1094,11 @@ local function loadGameEnv(P)--Load gameEnv -- else -- DBP("default-"..k..":"..tostring(v)) end - ENV[k]=v --Default setting + if type(v)~="table"then--Default setting + ENV[k]=v + else + ENV[k]=copyTable(v) + end end end local function applyGameEnv(P)--Finish gameEnv processing @@ -3081,7 +3085,7 @@ function PLY.newDemoPlayer(id,x,y,size) sequence="bag", bag={1,2,3,4,5,6,7}, face={0,0,0,0,0,0,0}, - skin=SETTING.skin, + skin=copyTable(SETTING.skin), mission=false, life=1e99,