Python Mini世界数据回档
回档时使用
#引用python lua模块
fp=open("1.json","rb")
t=str(fp.read(),"utf8")
fp.close()
start=0
end=0
start1=0
end1=0
t=t.replace("\\\"","\"")
ts=["[\"libvarid\"]=2100","[\"libvarid\"]=2100","[\"libvarid\"]=2100","[\"libvarid\"]=2100"]
tts=["名字1","名字2","名字3","名字4"]#数值
ts1=["[\"libvarid\"]=2106","[\"libvarid\"]=2106"]
tts1=["◇辉月五拥有数","◇趣影2拥有数"]#数值组
fp=open("恢复.lua","w",encoding="utf8")
fp.write("local hf_tab={\n")
ttttt=0
while True:
start1=t.find("save uin=",end1)
if start1==-1 :
break
start1+=9
end1=t.find(";",start1)
#print("\n迷你ID:"+t[start1:end1])
fp.write(" [\"%s\"]={\n"%t[start1:end1])
bs=0
for tt in ts:
start=t.find(tt,end1)
if start==-1 :
break
i=start
while True:
i=i-1
if t[i]=="{":
start=i
break
end=t.find("}",start)
bb=t[start:end+1]
bb=bb.replace("[\"","\"")
bb=bb.replace("\"]=","\":")
aa=eval(bb)
fp.write(" { name=\"%s\",types=3,value=%d,},\n"%(tts[bs],int(aa["value"])))
#print(tts[bs]+":"+"%d"%aa["value"])
bs+=1
bs=0
for tt in ts1:
start=t.find(tt,end1)
tt12=start
if start==-1 :
break
i=start
bb1=1
while True:
i=i-1
if t[i]=="{":
bb1-=1
if t[i]=="}":
bb1+=1
if bb1==0:
start=i
break
i=tt12
st1=tt12
bb1=1
while True:
i=i+1
if t[i]=="{":
bb1+=1
if t[i]=="}":
bb1-=1
if bb1==0:
st1=i
break
end=st1#t.find("}",start)
bb=t[start:end+1]
bb="local t="+bb+"\n return t"
#print(bb)
aa=Lua.execute(bb)
# bb=bb.replace("[\"","\"")
# bb=bb.replace("\"]=","\":")
# print(bb)
# aa=eval(bb)
# print(tts1[bs])
# #print(tts[bs]+":"+"%d"%aa["value"])
fp.write(" { name=\"%s\",types=17,\n value={\n "%(tts1[bs]))
for i1 in aa["ref"] :
#print(aa["ref"][i1].val)
fp.write("%d,"%aa["ref"][i1].val)
fp.write("\n },\n },\n")
bs+=1
fp.write(" },\n")
ttttt+=1
fp.write("}\n\n\n\n\n\n")
fp.write('''local function Click(e)
if e.uielement==[[11111111111111111111111]] then--当玩家按下按钮时
local _,bb=VarLib2:getPlayerVarByName(e.eventobjid,3,\"版本\")--获取你的版本号
if bb<1 then
bb=1
VarLib2:setPlayerVarByName(e.eventobjid,3,\"版本\",1)--将你的版本号设置为1
local pid=""..e.eventobjid
if hf_tab[pid] then--如果存在则恢复
for i,v in pairs(hf_tab[pid]) do
if v.types==3 then
VarLib2:setPlayerVarByName(e.eventobjid,3,v.name,v.value)
elseif v.types==17 then
for i1,v1 in ipairs(v.value) do
Valuegroup:setValueNoByName(17,v.name,i1,v1,e.eventobjid)
end
end
end
end
end
return
end
end
ScriptSupportEvent:registerEvent(\"UI.Button.Click\",Click)''')
fp.close()
print("一共"+str(ttttt))