还有很多人问关于平台的算法加密的存档怎么破解,我先总结一下,就是不值得去破解。以下是某个地图的算法加密存档的一部分,还有很多没发出来。其中我称为高级混淆的算法加密,多次传参和跳转,一般遇到这种图,没必要费劲,就猜,快餐图几天就凉了,改图简单快捷,算法加密的存档不值得去破解。作者设置一个算法加密用几个小时,赚几万几十万的钱,你破解这个几天,节约五块钱。算法加密的存档可以去买那种天卡的收费存档修改器,人家随时更新的。
function SaveDzData takes integer pid,integer zu,integer we,integer ty,integer num returns nothing
local string save= ""
local string sa= ""
local string sn= ""
local string sb= ""
local integer du= 0
local integer max= 0
local integer data= 0
set save=s__DzArrayString[(pid)*(680)+zu]
if zu >= 1 and zu <= 29 then
set du=2
set max=99
elseif zu >= 30 and zu <= 34 then
set du=3
set max=999
elseif zu >= 35 and zu <= 39 then
set du=4
set max=9999
elseif zu >= 40 and zu <= 44 then
set du=5
set max=99999
elseif zu >= 45 and zu <= 49 then
set du=6
set max=999999
endif
if we == 1 then
set sn=SubString(save, 0, du)
set sb=SubString(save, du, 60)
elseif we == ( 60 / du ) then
set sa=SubString(save, 0, du * ( we - 1 ))
set sn=SubString(save, du * ( we - 1 ), 60)
else
set sa=SubString(save, 0, du * ( we - 1 ))
set sn=SubString(save, du * ( we - 1 ), du * we)
set sb=SubString(save, du * we, 60)
endif
set data=S2I(sn)
if zu == 1 then
if we == 7 then
set max=GamePuOverDay
endif
elseif zu == 36 then
if we > 7 then
set max=0
endif
elseif zu == 38 then
if we == 1 or we == 2 then
set max=R2I(Pow(DzPlayerLv(Player(pid)), 2) * 8)
if max > 100 then
set max=100
endif
elseif we == 3 then
set max=R2I(Pow(DzPlayerLv(Player(pid)), 2) * 22)
if max > 500 then
set max=500
endif
endif
elseif zu == 45 then
if we == 1 then
set max=R2I(Pow(DzPlayerLv(Player(pid)), 2) * 240)
if max > 10000 then
set max=10000
endif
elseif we == 2 then
set max=R2I(Pow(DzPlayerLv(Player(pid)), 2) * 255)
if max > 10000 then
set max=10000
endif
elseif we == 3 then
set max=2000
elseif we == 4 then
set max=0
elseif we == 5 then
set max=DzPlayerGames(Player(pid)) * 50
elseif we == 6 then
set max=10000
elseif we == 7 then
set max=s__GameInt[(0)*(100)+23] * 3
endif
elseif zu == 47 then
if we == 2 then
set max=GameMissionOverDay * 4
endif
endif
if ty == 0 then
set data=data + num
if data > max then
set data=max
endif
set sn=GetStrZero(data , du)
elseif ty == 1 then
if data < num then
set data=num
endif
if data > max then
set data=max
endif
set sn=GetStrZero(data , du)
elseif ty == 2 then
set data=num
if data > max then
set data=max
endif
set sn=GetStrZero(data , du)
endif
set save=sa + sn + sb
set s__DzArrayString[(pid)*(680)+zu]= save
if IsPlaying(pid) == true and DzC[0] == "1" then
call DzAPI_Map_StoreString(Player(pid) , "DZ" + I2S(zu) , s__DzArrayString[(pid)*(680)+zu])
if zu == 45 and we == 2 then
call SetPlayerJunXian(pid)
endif
endif
endfunction