--gg.playMusic('/storage/emulated/0/Documents/Amelie - La Valse D‘Amelie/Amelie - La Valse D‘Amelie.mp3')

--   print(gg)


  local information = [===[shancun.cunzhang]===]  
  gg.errorNo={}
  gameinfo=gg.getTargetInfo()    
  --  print(gg.getTargetInfo())
  gameinfo.newversion='1042005'
  gameinfo.path='/sdcard/Documents/'
  gg.errorInfo={'名称不对，当前是国服版或非专用国际版','不是64位simcity',
                '版本不对,不是'..gameinfo.versionName,'工具意外损坏，请重新安装'}
  gg.errorInfo[0]="系统检测错误 : \n" 
  gameinfo.pkg="^com.ea.game.simcitymobile_[%w_][%w_][%w_][%w_][%w_][%w_][%w_]$"

  if gameinfo.cmdLine:match(gameinfo.pkg) or
     gameinfo.cmdLine=='com.ea.game.simcitymobile_row'  then 
     gg.errorNo[1]=true
     else 
     gg.errorNo[1]=false
  end
  if gameinfo.x64 then 
     X64="64位  "    gg.errorNo[2]=true
     else 
     X64="32位  "    gg.errorNo[2]=false
  end
  if gameinfo.versionCode==gameinfo.newversion then  
     gg.errorNo[3]=true
     else 
     gg.errorNo[3]=false
  end
  if gg.isPackageInstalled('com.fengying') then  
     gg.errorNo[4]=true
     else 
     gg.errorNo[4]=false
  end 

file=io.open((gg.EXT_FILES_DIR..'/.gghelp.lib'), "r")  
if file==nil   then
temp=gg.prompt({"你从哪个群里得到本工具，\n请输入群号"}, {[1] = "0"}, {[1] = "number"})
file=io.open((gg.EXT_FILES_DIR..'/.gghelp.lib'), "w+")
io.output(file)    
io.write(temp[1])
io.close(file) 
else

content = file:read("*a")
if  content~='559492740' then
temp=gg.prompt({"你从哪个群里得到本工具，\n请输入群号"}, {[1] = "0"}, {[1] = "number"})
file=io.open((gg.EXT_FILES_DIR..'/.gghelp.lib'), "w+")
io.output(file)    
io.write(temp[1])
io.close(file) 
end
  
 end


file=io.open((gg.EXT_FILES_DIR..'/.gghelp.lib'), "r")
content = file:read("*a")
io.close(file) 
if  content~='559492740' then
    gg.alert("请从正规渠道下载本工具")  
    os.exit() 
 end





  print("\n🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧")  
  print("游戏名称: 国际版 "..gameinfo.label)
  print("游戏版本: SimCity "..gameinfo.versionName)
  print("游戏编号: SimCity "..X64..gameinfo.versionCode)
  print(os.date('执行日期: %Y年 %m月 %d日',os.time()))
  print("🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧\n")

  for i=1,#gg.errorNo do
      if gg.errorNo[i] then gg.toast('系统环境检测通过'..i)  
         else 
         gg.alert(gg.errorInfo[0]..gg.errorInfo[i])  os.exit()
      end
  end

    
fuzhugongju='https://gitee.com/scfj/shancuns/raw/master/1 菜单选择(常规还是进阶).lua'
changgui='https://gitee.com/scfj/shancuns/raw/master/2 常规功能工具.lua'
jinjie='https://gitee.com/scfj/shancuns/raw/master/3 进阶功能工具.lua'

pcall(load(gg.makeRequest(fuzhugongju).content))
     
--🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳--
  
  function gg.read(dizhi,leixing,all)  --读取指定地址的信息
     if leixing == nil then leixing=4 end  --默认数值
     local SCCZ = gg.getValues{{address=dizhi,flags=leixing}} 
     if all==nil then return SCCZ[1].value else return SCCZ end --返回数值还是表
  end 

  function gg.edit(dizhi,shujv,leixing,zhuangtai,name) --指定地址写入指定类型的数值
     if leixing==nil then leixing=4 end
     if zhuangtai == nil then zhuangtai=false end  --默认不冻结
     local SCCZ={{address=dizhi,flags=leixing,value=shujv,freeze=zhuangtai}}
     if name~=nil then SCCZ[1].name=name end  --是否需要冻结时的名称
     gg.setValues(SCCZ)  
     if zhuangtai then gg.addListItems(SCCZ)  end --设定是否冻结，并保存
  end 
     
  function gg.lock(dizhi,name,zhuangtai,leixing,fanhui)   --将数据保存到列表,是否冻结
     if leixing==nil then leixing =4 end       --默认D数值
     if zhuangtai == nil then zhuangtai=false end  --默认不冻结
     local SCCZ=gg.getValues{{address=dizhi,flags=leixing}}  
     if name~=nil then SCCZ[1].name=name   end  --设定保存名称
     if zhuangtai then SCCZ[1].freeze=true end  --保存时是否冻结
     gg.addListItems(SCCZ) 
     if fanhui == "address" then return SCCZ[1].address
        else return SCCZ[1].value  end  --返回数值还是地址
  end 
  
  function gg.exit()    --退出程序
     Exit =gg.alert('你点击了退出按钮\n\n1，确定退出:❌👉再次确定退出👈❌\n2，我是误碰:❕❕返回辅助工具❕❕\n3，屏幕以外:❕❕返回辅助工具❕❕','[❌👉确定退出👈❌]','[❕❕我是误碰❕❕]')
     if Exit~=1 then SCJT()  else os.exit() end 
  end
  
--🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳🇨🇳--
  
  function gg.getFloatCode(num)
     gg.toast("系统初始化，请等待")
     gg.setVisible(false) 
     gg.clearResults()   
     gg.searchNumber(codes[num][1],4)
     temp=gg.getResults(gg.getResultCount())
     for i=1,gg.getResultCount() do    
         if gg.read(temp[i].address-72,4)==codes[num][2] then        
            temp0=gg.read(temp[i].address-80,32) break
         end
     end         
     gg.setVisible(false) 
     gg.clearResults()   
     gg.searchNumber(temp0,32)
     tt=gg.getResults(gg.getResultCount())
     if gg.getResultCount() == 0 then 
        gg.alert("未知错误,重启游戏再试一次") 
        else 
        temp3={} for i=1,#tt do temp3[i]=tt[i].address end
  --      print(names[num].."的数量是"..#temp3)
        return temp3
     end        
  end
  
  cailiao=gg.getFloatCode(1) 
  zhancai=gg.getFloatCode(2) 
  kuozhan=gg.getFloatCode(3) 
  omgitem=gg.getFloatCode(4) 
  jianzhu=gg.getFloatCode(5) 
  warcard=gg.getFloatCode(6) 
  booster=gg.getFloatCode(7) 
  jiasubi=gg.getFloatCode(8) 
  jinpiao=gg.getFloatCode(9) 
  kzqiyue=gg.getFloatCode(10) 


-- function jianzhufenlei()
    fw,fz,zf={},{},{}
    fwf,fzf,zff={},{},{}
    for i=1,#fw0 do
        fw[fw0[i]]={} fw[fw0[i]][0]=0  fwf[fw0[i]]={}  end
    for i=1,#fz0 do
        fz[fz0[i]]={} fz[fz0[i]][0]=0  fzf[fz0[i]]={}  end
    for i=1,#zf0 do
        zf[zf0[i]]={} zf[zf0[i]][0]=0  zff[zf0[i]]={}  end
 
    for k=1,#jianzhu do   --读取好固定代码和分类特征码
        t1=gg.read((jianzhu[k]+20*4),4)
        t2=gg.read((jianzhu[k]+70*4),4)
        t3=gg.read((jianzhu[k]+71*4),4)
        t4=gg.read((jianzhu[k]+72*4),4)
        t5=gg.read((jianzhu[k]+73*4),4)
        flags=t2.."."..t3.."."..t4.."."..t5
       
       if t3 == 5 and t2 == 0 then    --符合房屋特征码的放入fw
          for i=2,#fw0 do
              if t5 == fw0[i] then
                 fw[fw0[i]][0]=fw[fw0[i]][0]+1
                 fw[fw0[i]][fw[fw0[i]][0]]=t1                
                 fwf[fw0[i]][fw[fw0[i]][0]]=jianzhu[k]            
                 break 
              end
           end     
                  
      elseif t2== 1 or t2== 2 then 
             fw[99][0]=fw[99][0]+1
             fw[99][fw[99][0]]=t1
             fwf[99][fw[99][0]]=jianzhu[k]
                                     
      elseif t2 == 3 and t3 == 6 then   --发展设施，基建能源类的fz
          for i=1,#fz0 do  
              if t4 == fz0[i] then
                 fz[fz0[i]][0]=fz[fz0[i]][0]+1
                 fz[fz0[i]][fz[fz0[i]][0]]=t1               
                 fzf[fz0[i]][fz[fz0[i]][0]]=jianzhu[k]           
                 break            
              end  
          end
  
      else for i=1,#zf0 do    --政府类的房zf，沙滩和高山也在这个里面
               if t3 == zf0[i] then
                  zf[zf0[i]][0]=zf[zf0[i]][0]+1
                  zf[zf0[i]][zf[zf0[i]][0]]=t1                 
                  zff[zf0[i]][zf[zf0[i]][0]]=jianzhu[k]                
                  break            
               end  
            end  
      end
      if k%300==0 then gg.toast(#jianzhu.." 固定代码整理中  "..k) end
    end
-- end
  
   function fudongzhengli(f1,f3)
   f2={}   
   for i=1,#f3 do 
   if i%24==0 then gg.toast("浮动代码整理中") end
       for k=1,#f1 do         
           temp1=gg.read((f1[k]+20*4),4)
           if temp1==f3[i] then
              table.insert(f2,f1[k])
              break
           end
       end
   end
   return f2
   end
  
   cailiaoFcode=fudongzhengli(cailiao,cailiaoGcode) 
   zhancaiFcode=fudongzhengli(zhancai,zhancaiGcode) 
   kuozhanFcode=fudongzhengli(kuozhan,kuozhanGcode)    
   omgitemFcode=fudongzhengli(omgitem,omgitemGcode) 
   warcardFcode=fudongzhengli(warcard,warcardGcode) 
   boosterFcode=fudongzhengli(booster,boosterGcode) 
   jiasubiFcode=fudongzhengli(jiasubi,jiasubiGcode) 
   jinpiaoFcode=fudongzhengli(jinpiao,jinpiaoGcode) 
   kzqiyueFcode=fudongzhengli(kzqiyue,kzqiyueGcode)   
  
   codenames={cailiao,zhancai,kuozhan,omgitem,jianzhu,warcard,
              booster,jiasubi,jinpiao,kzqiyue}
   Fcodenames={cailiaoFcode,zhancaiFcode,kuozhanFcode,omgitemFcode,
               jianzhuFcode,warcardFcode,boosterFcode,jiasubiFcode,
               jinpiaoFcode,kzqiyueFcode}           
 

 gg.clearResults()  
 gg.setVisible(false)  
 gg.searchNumber(43200,4) 
 t0=gg.getResults(gg.getResultCount())
 for i=1,gg.getResultCount() do
     t1=gg.read(t0[i].address-12,4)
     t2=gg.read(t0[i].address-24,4)
     if t1==172800 and t2==60 then
        jiaoyizhan=(t0[i].address-32)
        break
     end
 end
 gg.clearResults()  


   for k=1,#changyongGcode do
   for i=1,#jianzhu do
       s14=gg.read(jianzhu[i]+80,4)
       if s14==changyongGcode[k] then
          changyongFcode[k] = jianzhu[i]
          break
       end
   end
   if k%5==0 then gg.toast("请稍等") end 
   end
   





















function SCJT()   
  scjt=gg.choice({
    " 1 普通功能",
    " 2 VIP功能  (需要验证码)",
    " 3 内部功能  (需要授权码)",
    " 4 退出工具"

  },3, "请选择入口")
    if scjt==1  then pcall(load(gg.makeRequest(changgui).content))   
    end
    if scjt==2  then pcall(load(gg.makeRequest(jinjie).content))      
    end   
    if scjt==3  then  gg.alert("你没得到授权")  end
    if scjt==4  then  gg.exit() end
   gg.setVisible(false)
   shancun="山村集团"
 end

shancun="山村集团"
SCJT()
while 'shancun' do
  if gg.isVisible(true) then
    shancun = "ShanCun"
    gg.setVisible(false)
  end
  if shancun == "ShanCun" then
    SCJT()
  end
end
