-- 定义公告内容 local announcement = [[ ✨公告✨ 时间是一双眼睛 见喜 见忧 见离别 tg@CJYNB66 此作品仅供个人交流学习使用 请勿用于非法犯罪用途 如有侵权请联系删除 ]] -- 检查是否需要显示公告 local function shouldShowAnnouncement() -- 检查是否存在标志文件 local file = io.open("/storage/emulated/0/announcement_huio.txt", "r") if file then file:close() return false else return true end end -- 保存标志文件,避免再次显示公告 local function saveAnnouncementShown() local file = io.open("/storage/emulated/0/announcement_huio.txt", "w") if file then file:close() end end -- 显示公告 local function showAnnouncement() local result = gg.alert(announcement, "确定", "不再提示") if result == 2 then -- 用户点击了“不再提示” saveAnnouncementShown() end end -- 主逻辑 if shouldShowAnnouncement() then showAnnouncement() end --[[ os.remove ("/storage/emulated/0/announcement_shoy.txt") os.remove ("/storage/emulated/0/announcement_shob.txt") os.remove ("/storage/emulated/0/announcement_shou.txt") os.remove ("/storage/emulated/0/announcement_show.txt") os.remove ("/storage/emulated/0/announcement_shuw.txt") --]] lmttkx="340dp" lmttk="200dp" local lmnb = gg.alert('请根据机型选择大小模式', '平板模式', '手机模式') if lmnb == 1 then lmttkx="430dp" lmttk="400dp" gg.toast("您选择了平板模式") elseif lmnb == 2 then lmttkx="340dp" lmttk="200dp" gg.toast("您选择了手机模式") end params={} floattable={} local material3 = elgg.import('material3') context=material3:getContext() M3context=context context.setTheme(0x7f090069) import('android.content.res.ColorStateList') RadTint=ColorStateList({ {android.R.attr.state_checked}, {-android.R.attr.state_checked}, {}, }, { 0xffffffff, 0xffffffff, 0xffffffff }) swctrack=ColorStateList({ {android.R.attr.state_checked}, {-android.R.attr.state_checked}, }, { '0xffffffff', '0x55ffffff', }) swcDraw=ColorStateList({ {android.R.attr.state_checked}, {-android.R.attr.state_checked}, }, { 0xffaaaaaa , 0xffe5e5e5, }) swcThumb=ColorStateList({ {android.R.attr.state_checked}, {android.R.attr.state_pressed}, {-android.R.attr.state_pressed}, }, { 0xffffffff, 0xffffffff, 0x99999999 }) import 'android.graphics.Bitmap' import 'android.renderscript.Allocation' import 'android.renderscript.Element' import 'android.renderscript.RenderScript' import 'android.renderscript.ScriptIntrinsicBlur' import 'android.graphics.Canvas' import 'android.graphics.Rect' import "android.animation.ObjectAnimator" import "android.view.animation.Animation" import "android.animation.ArgbEvaluator" import "android.animation.ValueAnimator" import "android.graphics.Color" import'com.google.android.material.divider.MaterialDivider' import'com.google.android.material.progressindicator.*' import'com.google.android.material.dialog.MaterialAlertDialogBuilder' import'com.google.android.material.tabs.TabItem' import'androidx.coordinatorlayout.widget.CoordinatorLayout' import'com.google.android.material.button.MaterialButton' import'androidx.appcompat.widget.LinearLayoutCompat' import'com.google.android.material.slider.Slider' import'com.google.android.material.materialswitch.MaterialSwitch' import'com.google.android.material.card.MaterialCardView' import'androidx.transition.Transition' import'androidx.transition.Scene' import'androidx.transition.TransitionManager' import'androidx.transition.TransitionSet' import'androidx.transition.ChangeBounds' import'androidx.transition.Fade' import'androidx.constraintlayout.motion.widget.MotionLayout' import"android.view.animation.AccelerateInterpolator" import"android.view.animation.DecelerateInterpolator" import"androidx.interpolator.view.animation.FastOutLinearInInterpolator" import"androidx.interpolator.view.animation.LinearOutSlowInInterpolator" import"android.view.animation.OvershootInterpolator" import 'android.animation.ValueAnimator$AnimatorUpdateListener' import 'android.animation.TypeEvaluator' import 'android.graphics.PorterDuff' import 'android.graphics.PorterDuffColorFilter' import "android.app.*" import "android.os.*" import "android.widget.*" import "android.view.*" import "android.content.*" import "java.util.*" import "java.lang.*" import "android.*" import "android.graphics.drawable.*" import "android.graphics.PixelFormat" import "android.view.animation.Animation" import "android.view.animation.RotateAnimation" import "android.animation.ObjectAnimator" import "android.view.animation.DecelerateInterpolator" import "android.ext.*" import "android.ext.MainService" import "android.graphics.drawable.GradientDrawable" import "android.graphics.Typeface" import "java.io.File" import "luaj.lib.ModLib" import "android.ext.Tools" import 'android.graphics.RectF' import "android.app.*" import "android.os.*" import "android.widget.*" import "android.view.*" import "android.content.*" import "java.util.*" import "java.lang.*" import "android.*" import "android.graphics.drawable.*" import "android.graphics.PixelFormat" import "android.view.animation.Animation" import "android.view.animation.RotateAnimation" import "android.animation.ObjectAnimator" import "android.view.animation.DecelerateInterpolator" import "android.ext.*" import "android.ext.MainService" import "android.graphics.drawable.GradientDrawable" import "android.graphics.Typeface" import "java.io.File" import "luaj.lib.ModLib" import "android.ext.Tools" context = activity function getBG(colors, radiu, bk1, bk2) local GradientDrawable = luajava.bindClass("android.graphics.drawable.GradientDrawable") local drawable = GradientDrawable.new() drawable.setGradientType(GradientDrawable.LINEAR_GRADIENT) if type(colors)=="table" then drawable.setColors(luajava.toArray(colors,'int')) else drawable.setColors(luajava.toArray({colors,colors},'int')) end if type(radiu)=='table' then drawable.setCornerRadii({radiu[1],radiu[1],radiu[2],radiu[2],radiu[3],radiu[3],radiu[4],radiu[4]}) else drawable.setCornerRadii({radiu,radiu,radiu,radiu,radiu,radiu,radiu,radiu}) end if bk1 ~= nil and bk2 ~= nil then drawable.setStroke(bk1, bk2) end return drawable end file.checkDir('/sdcard/长安') file.checkDir('/sdcard/长安/图片/') luajava.runUiThread=luajava.runOnUiThread local dpi=context.getResources().getDisplayMetrics().density window = context.getSystemService("window") -- 获取窗口管理器 vibra = context.getSystemService(Context.VIBRATOR_SERVICE) audi = context.getSystemService("audio") context=M3context function getpx(x) if type(x)=='string' then if string.find(x,'dp') then x=string.gsub(x,'dp','') x=tonumber(x) end return x*dpi else return x end end function getdp(x) if type(x)=='number' then return x/dpi..'dp' else return x end end function guid() seed = { 'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' } tb = {} for i = 1,32 do table.insert(tb,seed[math.random(1,16)]) end sid = table.concat(tb) return string.format('%s%s%s', string.sub(sid,1,8), string.sub(sid,10,16)) end local mObjectAnimator local dObjectAnimator ljids={} function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end function checkimg(tmp, ii) if panduan("/sdcard/长安/图片/" .. tmp[1], false) ~=true then gg.toast("正在下载资源" .. ii .. "/" .. #ckimg .. "\n请耐心等待") file.download(tmp[2], "/sdcard/长安/图片/" .. tmp[1]) end end ckimg = { {'dex.dex','http://wss.wigwy.xyz/api/get/yjb/707'}, } for i = 1,#ckimg do jindu = i checkimg(ckimg[i],i) end if panduan("/sdcard/长安/图片/dex.dex") then compile "/sdcard/长安/图片/dex.dex" import 'com.changan.CACore.SwitchButton' else gg.alert('UI资源下载异常') os.exit() end hanshu=function(v, event) --悬浮球移动事件 local Action = event.getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false -- 点击时的XY坐标 RawX = event.getRawX() -- 获取X坐标 RawY = event.getRawY() -- 获取Y坐标 x = mainLayoutParams.x -- 申明变量xmX为原X坐标 y = mainLayoutParams.y -- 申明变量xmY为原Y坐标 elseif Action == MotionEvent.ACTION_MOVE then isMove = true -- 移动时的XY坐标 mainLayoutParams.x = tonumber(x) + (event.getRawX() - RawX) mainLayoutParams.y = tonumber(y) + (event.getRawY() - RawY) window.updateViewLayout(xfc, mainLayoutParams) end end luajava.newThread=function(fc) return {start=function() callAsyncTask(fc) end} end newThread=callAsyncTask function 获取图片(txt) ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/长安/图片/"..ntxt) == false then file.download(txt,"/sdcard/长安/图片/"..ntxt) else if #file.read("/sdcard/长安/图片/"..ntxt) <= 200 then file.download(txt,"/sdcard/长安/图片/"..ntxt) end end txt = "/sdcard/长安/图片/"..ntxt end return txt end function getRes(x) return 获取图片("/sdcard/长安/图片/"..x) end luajava.getBitmapDrawable=function(x) bitmapDrawable(x) end tuifunc=function(v) --退出点击事件 luajava.runOnUiThread(function() window.removeView(xfc) --移除窗口 suof_animation(suspended_ball,600) window.addView(xfq, mainLayoutParams) end) end luajava.getIdValue=luajava.getIdView function sparkle_animation(view,time) -- 闪耀动画 local mObjectAnimator = ObjectAnimator.ofFloat(view, "alpha", 0, 1) mObjectAnimator.setDuration(time)--动画时间 mObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 mObjectAnimator.start() end controlRotation9= function(view, time,t) local mObjectAnimator = ObjectAnimator.ofFloat(view, "rotation", time,t) mObjectAnimator.setDuration(400) mObjectAnimator.start() end function zoom_animation(view,time) --缩放动画 local dObjectAnimator = ObjectAnimator.ofFloat(view, "scaleX", 0, 1) dObjectAnimator.setDuration(time)--动画时间 dObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 dObjectAnimator.start() end import("android.media.AudioManager") audiotype = { AudioManager.STREAM_ALARM, --手机闹铃的声音 AudioManager.STREAM_MUSIC, --手机音乐的声音 AudioManager.STREAM_NOTIFICATION, --系统提示的通知 AudioManager.STREAM_RING, --电话铃声的声音 AudioManager.STREAM_SYSTEM, --手机系统的声音 AudioManager.STREAM_VOICE_CALL, --语音电话的声音 AudioManager.STREAM_DTMF, --DTMF音调的声音 --AudioManager.STREAM_BLUETOOTH_SCO, } yinl = {} for i = 1,#audiotype do yinl[i] = {} yinl[i].type = audiotype[i] yinl[i].min = audi.getStreamMinVolume(audiotype[i]) yinl[i].max = audi.getStreamMaxVolume(audiotype[i]) yinl[i].now = audi.getStreamVolume(audiotype[i]) end yltype = 0 function jianting3(func) yinln = {} for i = 1,#audiotype do yinln[i] = {} yinln[i].type = audiotype[i] yinln[i].now = audi.getStreamVolume(audiotype[i]) if yinln[i].now > yinl[i].now then yinl[i].now = yinln[i].now if yltype == 1 then yltype = 0 func() end elseif yinln[i].now < yinl[i].now then yinl[i].now = yinln[i].now if yltype == 0 then yltype = 1 func() end end end end qhkai = 0 qiehuan = function() if qhkai == 0 then yinll = 0 qhkai = 1 luajava.runUiThread(function() fadeout(xfq,500) fadeout(xfc,500) end) gg.sleep(500) luajava.runUiThread(function() xfc.setVisibility(View.GONE) xfq.setVisibility(View.GONE) end) else qhkai = 0 yinll = 1 luajava.runUiThread(function() xfq.setVisibility(View.VISIBLE) fadein(xfq,500) xfc.setVisibility(View.VISIBLE) fadein(xfc,500) end) end end function fadein(view,time) -- 闪耀动画 local mObjectAnimator = ObjectAnimator.ofFloat(view, "alpha", 0, 1) mObjectAnimator.setDuration(time)--动画时间 mObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 mObjectAnimator.start() end function fadeout(view,time) -- 闪耀动画 local mObjectAnimator = ObjectAnimator.ofFloat(view, "alpha", 1, 0) mObjectAnimator.setDuration(time)--动画时间 mObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 mObjectAnimator.start() end function sparkle_animation(view,time) -- 闪耀动画 local mObjectAnimator = ObjectAnimator.ofFloat(view, "alpha", 0, 1) mObjectAnimator.setDuration(time)--动画时间 mObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 mObjectAnimator.start() end function zoom_animation(view,time) --缩放动画 local dObjectAnimator = ObjectAnimator.ofFloat(view, "scaleX", 0, 1) dObjectAnimator.setDuration(time)--动画时间 dObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 dObjectAnimator.start() end function suof_animation(view,time) --缩放动画 local dObjectAnimator = ObjectAnimator.ofFloat(view, "scaleX", 0, 1) dObjectAnimator.setDuration(time)--动画时间 dObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 dObjectAnimator.start() local ydObjectAnimator = ObjectAnimator.ofFloat(view, "scaleY", 0, 1) ydObjectAnimator.setDuration(time)--动画时间 ydObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 ydObjectAnimator.start() end function slideinleft_animation(view, time) -- 从左边滑入动画 view.setTranslationX(-view.getWidth()) -- 设置起始位置在左侧屏幕外 local mObjectAnimator = ObjectAnimator.ofFloat(view, "translationX", 0) mObjectAnimator.setDuration(time) -- 动画时间 mObjectAnimator.setInterpolator(DecelerateInterpolator()) -- 动画插值器,减速 mObjectAnimator.start() end function slideinright_animation(view, time) -- 从右边滑入动画 view.setTranslationX(view.getWidth()) -- 设置起始位置在右侧屏幕外 local mObjectAnimator = ObjectAnimator.ofFloat(view, "translationX", 0) mObjectAnimator.setDuration(time) -- 动画时间 mObjectAnimator.setInterpolator(DecelerateInterpolator()) -- 动画插值器,减速 mObjectAnimator.start() end function getLayoutParams2() local LayoutParams = WindowManager.LayoutParams local layoutParams = luajava.new(LayoutParams) if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY else layoutParams.type = LayoutParams.TYPE_PHONE end layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams.gravity = Gravity.CENTER -- 重力设置 layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 return layoutParams end function getLayoutParams() local LayoutParams = WindowManager.LayoutParams local layoutParams = luajava.new(LayoutParams) if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY else layoutParams.type = LayoutParams.TYPE_PHONE end layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams.gravity = Gravity.LEFT | Gravity.TOP -- 重力设置 layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 return layoutParams end hansh=function(v, event) --悬浮窗移动事件 local Action = event.getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false -- 点击时的XY坐标 RawX = event.getRawX() -- 获取X坐标 RawY = event.getRawY() -- 获取Y坐标 x = mainLayoutParams.x -- 申明变量xmX为原X坐标 y = mainLayoutParams.y -- 申明变量xmY为原Y坐标 elseif Action == MotionEvent.ACTION_MOVE then isMove = true -- 移动时的XY坐标 mainLayoutParams.x = tonumber(x) + (event.getRawX() - RawX) mainLayoutParams.y = tonumber(y) + (event.getRawY() - RawY) window.updateViewLayout(xfc, mainLayoutParams) end end function getShepeBackground(color,radiu,bk1,bk2) --设置背景函数 local drawable = luajava.new(GradientDrawable) drawable.setShape(GradientDrawable.RECTANGLE) drawable.setColor(color) drawable.setCornerRadii({radiu,radiu,radiu,radiu,radiu,radiu,radiu,radiu}) if bk1~=nil and bk2~=nil then drawable.setStroke(bk1,bk2) end return drawable end function getCorner(color,radiu1,radiu2,radiu3,radiu4) --设置背景函数 local drawable = luajava.new(GradientDrawable) drawable.setShape(GradientDrawable.RECTANGLE) drawable.setColor(color) drawable.setCornerRadii({radiu1,radiu1,radiu2,radiu2,radiu3,radiu3,radiu4,radiu4}) return drawable end function uistart(sview) if not xfc_height then xfc_height="360dp" end if xfcpic=='https://rl-1303126286.cos.ap-beijing-fsi.myqcloud.com/changan' then xfcpic='https://rl-1303126286.cos.ap-beijing-fsi.myqcloud.com/12.png' end if type(stab[1])=='table' then for i=1,#stab do stab[i]=stab[i][1] end end gg.hide(true) if #sview<#stab then gg.alert('菜单功能配置页数少于stab数,请检查\nstab有'..#stab..'个,配置了'..#sview..'页功能') os.exit() end --悬浮窗菜单 pages={} bottomBar={ LinearLayout; onClick=function() end, layout_height="match_parent"; orientation="vertical"; layout_width="108dp"; gravity='center' } for i=1,#stab do local pag={ LinearLayout; layout_height="wrap_content"; orientation="vertical"; layout_width="match_parent"; id='page'..i; } for j=1,#sview[i] do if sview[i][j]~=nil then pag[#pag+1]=sview[i][j] end end pages[i]= { LinearLayout; layout_width="match_parent"; layout_height="match_parent"; { LinearLayout; layout_height="match_parent"; layout_width="match_parent"; { ScrollView; layout_width="match_parent"; VerticalScrollBarEnabled=false; fillViewport=true, layout_height="match_parent"; padding='4dp', pag }; }; } bottomBar[#bottomBar+1]={ LinearLayout, gravity="center", layout_height = "30dp", layout_width = "88dp", layout_marginTop = "3dp", layout_marginBottom = "3dp", layout_marginRight = "10dp", layout_marginLeft = "10dp", background=getBG(0x75161616,10), onClick=function() page_main.setCurrentItem(i-1) end, __onFinish=function(v) _ENV["jm"..i]=v end, { TextView, id="jm"..i.."t", text=stab[i], gravity = "center", textSize = "12sp", textColor = 0xeee6e6e6, layout_height = "30dp", layout_width = "88dp", } } end xfc = { LinearLayout; layout_height="fill"; orientation="vertical"; id="touch"; layout_width="fill"; elevation='5dp', background = getBG(0x75161616, 50); { LinearLayout; layout_height=lmttk; orientation="horizontal"; id="ooo"; layout_width=lmttkx; onClick=function() end, { LinearLayout; layout_height="match_parent"; orientation="vertical"; layout_width="wrap_content"; { TextView, layout_marginTop='5dp', layout_width='match_parent', layout_height='wrap_content', textSize='13sp', text=ttitle, textColor=0xffffffff, gravity='center', onClick=function () end, onTouch=hanshu, }, { LinearLayout; layout_weight=1, layout_height="match_parent"; layout_width="wrap_content"; orientation='vertical', padding='2dp', id='jms', onClick=function() end, onTouch=hanshu, { LinearLayout, layout_width='wrap_content', layout_height='match_parent', orientation='horizontal', gravity='left', layout_margin='4dp', elevation='3dp', background=getBG(0x44444444,17), { ScrollView; layout_width="wrap_content"; VerticalScrollBarEnabled=false; layout_height="match_parent"; bottomBar; }; }, }; }, { LinearLayout; layout_height="match_parent"; layout_weight=1, orientation="vertical"; layout_width="match_parent"; { LinearLayout; layout_height="match_parent"; layout_width="match_parent"; orientation='vertical', { FrameLayout, layout_height='30dp', layout_width='match_parent', { LinearLayout, layout_width='60dp', layout_height='5dp', background=getBG(0x75eeeeee, 50), onClick=function() end, onTouch=hanshu, layout_gravity='center', layout_marginLeft='30dp', layout_marginTop='10dp', }, { TextView, layout_width='30dp', layout_height='30dp', text='<', textSize='16sp', textColor=0xffffffff, gravity='center', layout_gravity='right', onClick=tuifunc, onTouch=hanshu, }, }, { PageView; layout_weight=1, layout_width="match_parent"; id="page_main"; layout_height="match_parent"; pages=pages; }; }; }; }; } xfq = { LinearLayout; layout_height="fill"; layout_width="fill"; id="suspended_ball"; { LinearLayout; layout_width="wrap_content"; gravity='center_vertical', background=getBG(0x44444444,18,3,0xffffffff), { ImageView; layout_width="40dp"; src=获取图片(xfcpic); layout_height="40dp"; padding='2dp', }; { TextView, layout_width='wrap_content', layout_height='wrap_content', layout_marginRight='4dp', gravity='center', textSize='13sp', textColor='#ffffff', text=悬浮窗文字, }, }; }; --悬浮球 mainLayoutParams = getLayoutParams() luajava.runOnUiThread(invoke) while true do gg.sleep(200) if Listening then jianting3(qiehuan) end if UIQuit==1 then break end end luajava.runOnUiThread(function() for k,v in pairs(floattable) do window.removeView(v) end if xfq.isAttachedToWindow() then window.removeView(xfq,mainLayoutParams) else window.removeView(xfc,mainLayoutParams) end end) end function invoke() --Looper.prepare() xfq = loadlayout(xfq) xfc = loadlayout(xfc) function longc(v) --退出长摁事件 -- print(luajava.ids) window.removeView(xfc) --移除窗口 UIQuit=1 -- 同步锁 os.exit() end function suspended_ball.onClick(v) --悬浮球点击事件 window.removeView(xfq) controlBig(xfc,600) window.addView(xfc,mainLayoutParams) end function suspended_ball.onTouch(v, event) --悬浮球移动事件 local Action = event.getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false -- 点击时的XY坐标 RawX = event.getRawX() -- 获取X坐标 RawY = event.getRawY() -- 获取Y坐标 x = mainLayoutParams.x -- 申明变量xmX为原X坐标 y = mainLayoutParams.y -- 申明变量xmY为原Y坐标 elseif Action == MotionEvent.ACTION_MOVE then isMove = true -- 移动时的XY坐标 mainLayoutParams.x = tonumber(x) + (event.getRawX() - RawX) mainLayoutParams.y = tonumber(y) + (event.getRawY() - RawY) window.updateViewLayout(xfq, mainLayoutParams) end end ooo.onTouch=hanshu jms.onTouch=hanshu function Tips() gg.toast("测试") end --子列表点击事件 --设置page页面滑动事件 page_main.setOnPageChangeListener(PageView.OnPageChangeListener{ onPageSelected = function(view) view=tonumber(string.sub(view,1,1)) 当前ui=view+1 end } ) luajava.runOnUiThread(function() xfc.setVisibility(View.GONE) end) window.addView(xfc, mainLayoutParams) --添加窗口事件 sparkle_animation(xfc,600) luajava.runOnUiThread(function() xfc.setVisibility(View.VISIBLE) end) end switches = {} local ver = luajava.bindClass("android.os.Build").VERSION.SDK_INT; function setBackground(view,bg) if ver<16 then view.setBackgroundDrawable(bg) else view.setBackground(bg) end end function 开关3(name,func1,func2,nid) local sname = nid local localname=name name = name..guid() _ENV[name] = "关" if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then local outfunc=function() namers = _ENV[name] if namers ~= "开" then vibra.vibrate(9) luajava.runOnUiThread(function() luajava.getIdValue(nid.."k").setVisibility(View.GONE) luajava.getIdValue(nid.."g").setVisibility(View.VISIBLE) slideinleft_animation(luajava.getIdValue(nid.."g1"),400) end) _ENV[name] = "开" pcall(func1) else vibra.vibrate(9) luajava.runOnUiThread(function() luajava.getIdValue(nid.."g").setVisibility(View.GONE) luajava.getIdValue(nid.."k").setVisibility(View.VISIBLE) slideinright_animation(luajava.getIdValue(nid.."k1"),400) end) _ENV[name] = "关" pcall(func2) end end return outfunc end end function CALoadV2(func1,func2) func1= func1 or nothing func2= func2 or nothing local v=MaterialSwitch(M3context) v.setOnCheckedChangeListener({ onCheckedChanged=function(view,isc) if isc then callAsyncTask(func1) else callAsyncTask(func2) end end }) v.setChecked(false) v.setTextOn('') v.setTextOff('') v.setThumbIconSize(getpx('12dp')) v.setTrackDecorationTintList(swctrack) v.setTrackTintList(swcDraw) v.setThumbTintList(swcThumb) v.setText('') v.setLayoutParams(LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, getpx('30dp') )) return v end function CAswitch(name,func1,func2,miaoshu) local nid = name..guid() if not name then name = "未设置" end local rest = { LinearLayout, layout_width = 'fill_parent', layout_height = "47dp", gravity = "center_vertical", { LinearLayout, layout_width = 'fill_parent', background = getBG(0x33333333,20), layout_height = "40dp", gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", { TextView, gravity = "top", text = name, textColor = "#ffffff", textSize = "13sp", layout_width = "80dp", layout_marginLeft = "10dp", layout_marginRight = "20dp", }, { TextView, gravity = "center", layout_height = "match_parent", text = miaoshu, textSize = "11sp", layout_width = "match_parent", layout_marginLeft = "-30dp", layout_weight = 1, textColor = "#A5A5A5", }, { SwitchButton, checked = name=='音量键隐藏UI' and true or false, layout_width = 'wrap_content', layout_height = 'wrap_content', layout_marginRight='8dp', __onFinish=function(v) if name=="音量键隐藏UI" then 音量键=true v.setChecked(true) end v.setBackRadius(getpx('3dp')) v.setThumbColor(swcThumb) v.setBackColor(swcDraw) v.setThumbRadius(getpx('2.5dp')) v.setThumbRangeRatio(2) v.setThumbMargin(RectF(10,10,10,10)) v.setOnCheckedChangeListener({ onCheckedChanged=function(view,isc) vibra.vibrate(7) if isc then callAsyncTask(func1) else callAsyncTask(func2) end end }) end, } } } return rest end function controlWater(view,time) --缩放动画 local dObjectAnimator = ObjectAnimator.ofFloat(view, "scaleX",1, 0.95 ,1) dObjectAnimator.setDuration(time)--动画时间 dObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 dObjectAnimator.start() local dObjectAnimator = ObjectAnimator.ofFloat(view, "scaleY", 1, 0.95, 1) dObjectAnimator.setDuration(time)--动画时间 dObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 dObjectAnimator.start() end controlBig = function(view,time) local dObjectAnimator = ObjectAnimator.ofFloat(view, "scaleX",0, 0.4, 0.7, 1) dObjectAnimator.setDuration(time)--动画时间 dObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 dObjectAnimator.start() local dObjectAnimator = ObjectAnimator.ofFloat(view, "scaleY", 0, 0.4, 0.7, 1) dObjectAnimator.setDuration(time)--动画时间 dObjectAnimator.setInterpolator(DecelerateInterpolator())--动画插值器,减速 dObjectAnimator.start() end nothing=function() end function CAseek(name,bian,smin,smax,nows,steps,lev,func) func=func or nothing lev=lev or '倍' _ENV[bian] =nows or 1 local smin=tonumber(smin) local smax=tonumber(smax) steps=steps or 1 if not name then name = "未设置" end local names = name..guid() kid=guid().."sk" local rest={ LinearLayout, id=luajava.newId(kid), layout_width = 'match_parent', layout_marginTop = "3dp", layout_marginBottom = "3dp", layout_marginLeft = "5dp" , layout_marginRight = "5dp" , gravity = "center_vertical", elevation='3dp', background = getBG(0x33333333,10), { TextView, padding={"5dp","10dp","0dp","10dp",}, gravity = "top", textColor='#eeeeee', text = name, id = luajava.newId(names), layout_width = '100dp', }, { Slider, thumbHeight='23dp', trackHeight='15dp', trackStopIndicatorSize='0dp', tickVisible=false, __onFinish=function(v) if func then v.addOnSliderTouchListener({ onStopTrackingTouch=function(v) callAsyncTask(function() func(v.getValue()) end) end }) end v.setTrackActiveTintList(ColorStateList({{},},{0xffffffff})) v.setTrackInactiveTintList(ColorStateList({{},},{0x55ffffff})) v.setThumbTintList(ColorStateList({{},},{0xffffffff})) v.addOnChangeListener(function(SeekBar, var2, var3) _ENV[bian] = steps>=1 and string.format('%d',var2) or string.format('%.1f',var2) luajava.getIdView(names).setText(name..':'.._ENV[bian]..lev) end) end, layout_width = 'match_parent', id=luajava.newId(name.."seekbar"), layout_weight=1, valueFrom=smin, valueTo=smax, value=nows, stepSize=steps, } } return rest end function CAbutton(name,func,color) if not name then name = "未设置" end if not func then func=function() end end if not color or type(color)~='string' then color='0xffeeeeee' end local rest = { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center_vertical", { LinearLayout, layout_width = 'match_parent', layout_height='30dp', gravity = "center_vertical", background = getBG(0x33333333,10), elevation='2dp', layout_marginTop='2dp', layout_marginBottom='2dp', layout_marginLeft='6dp', layout_marginRight='6dp', onClick=function(v) controlWater(v,400) vibra.vibrate(8) callAsyncTask(func) end, padding ='3dp', { TextView, layout_height = "wrap_content", text = name, textSize = "13sp", layout_width = "match_parent", layout_weight = 1, textColor = color, gravity='center', }} } return rest end function CAtext(txt,color,size,isjz) local txt=txt or '未设置' local color=color or '#eeeeee' local size=size or '13sp' return { TextView, layout_marginLeft='22dp', layout_marginRight='22dp', textSize=size, textColor=color, text=txt, layout_height='wrap_content', layout_width='match_parent', gravity= isjz and 'center' or 'left', } end gg.setVisible(false) function CAline(txt) local tmp={ FrameLayout, layout_width="match_parent", layout_height="wrap_content", padding={'14dp','2dp','14dp','2dp'}, { TextView, layout_marginTop="3dp", layout_width="wrap_content", layout_height="wrap_content", padding="0dp", textColor="#545454", textSize="12sp", text=txt, } } return tmp end switchs={} function 开关(name , func1 , func2 ) local localname=name local tname=name..guid() if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1 ) == "function" then return function() namers = _ENV [ tname ] if namers ~= "开" then _ENV [ tname ] = "开" pcall(func1 ) else _ENV [ tname ] = "关" pcall(func2 ) end end end end function CAintcheck(name,func1,func2) nid = name..guid() local func = 开关(name,func1,func2,nid) if not name then name = "未设置" end local rstt={ LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center_vertical", layout_weight=1, { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center_vertical", onClick = function() callAsyncTask(func) end, --elevation='2dp', layout_marginTop='2dp', layout_marginBottom='2dp', layout_marginLeft='2dp', layout_marginRight='2dp', padding = { "6dp","4dp","2dp","4dp" }, { TextView, gravity = "top", text = name, textColor = "#ffffff", textSize = "13sp", layout_width = 'match_parent', layout_weight=1, layout_marginRight = "0dp", }, { CheckBox, __onFinish=function(v) v.setButtonTintList(RadTint) end, onClick=function(v) vibra.vibrate(7) callAsyncTask(func) end, },} } return rstt end function 开关5(name,func1,func2,nid) local sname = nid local localname=name name = name..guid() _ENV[name] = "关" if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then vibra.vibrate(9) luajava.runOnUiThread(function() luajava.getIdValue(nid).setBackgroundDrawable(checkbg2) luajava.getIdValue(nid.."t").setTextColor(0xffffffff) end) _ENV[name] = "开" pcall(func1) else vibra.vibrate(9) luajava.runOnUiThread(function() luajava.getIdValue(nid).setBackgroundDrawable(checkbg1) luajava.getIdValue(nid.."t").setTextColor(0xff232323) end) _ENV[name] = "关" pcall(func2) end end end end function CAcheck(cklist) if #cklist==0 then return nil end local rest = { LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", layout_marginLeft='6dp', layout_marginRight='6dp', gravity = "center", orientation="vertical", } for i = 1, #cklist,2 do local tempTable = {LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", gravity = "left", orientation="horizontal" } for j = 0, 1 do if cklist[i + j] ~= nil then local name = cklist[i + j][1] local func1 = cklist[i + j][2] local func2 = cklist[i + j][3] if not name then name = "未设置" end rstt = CAintcheck(name,func1,func2) table.insert(tempTable, rstt) else table.insert(tempTable, {LinearLayout, layout_width = 'match_parent', layout_weight=1,}) end end table.insert(rest, tempTable) end return rest end function init() stab=分页 ttitle=标题 xfcpic=悬浮窗图标 end function visi (tid) local tview = luajava.getIdView(tid) if not tview then return 0 end if tonumber (tostring (tview . getVisibility ())) == 8.0 then tview . setVisibility (View.VISIBLE) controlRotation9(boxpic[tid],0,90) else tview . setVisibility (View.GONE) controlRotation9(boxpic[tid],90,0) end end import "android.animation.LayoutTransition" layoutTransition=LayoutTransition() layoutTransition.setDuration(400) boxes = {} boxpic = {} function CAbox(views) local tid = "box" .. guid() local t1id = guid() firadio = { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", orientation = "vertical", layout_margin='4dp', layout_marginLeft='2dp', layout_marginRight='2dp', elevation='2dp', background = getBG(0x33333333, 10), layoutTransition = layoutTransition } -- context = contextP -- context = M3context if type(views[1]) == "string" or type(views[1]) == "number" then firadio[# firadio + 1] = { LinearLayout, layout_width = 'match_parent', layout_height = "40dp", gravity = "center_vertical", onClick=function(v) visi(tid) end, { TextView, text = views[1], textSize = "13sp", layout_marginLeft = "10dp", layout_width = "match_parent", layout_weight = 1, textColor = "#eeeeee", gravity = "left", }, { LinearLayout, padding = { "0dp", "0dp", "10dp", "0dp" }, layout_width = "wrap_content", layout_height = "wrap_content", gravity = "center", { ImageView , src = 获取图片("https://www.cccimg.com/down.php/dfcc155180c66711a66a1c6540db5e03.png"), layout_width = "24dp" , layout_height = "24dp" , colorFilter="0xffffffff", __onFinish=function(v) boxpic[tid]=v end, } } } end radios = { LinearLayout, layout_marginLeft = "0dp", layout_marginRight = "0dp", orientation = "vertical", visibility = "gone", id = luajava.newId(tid), padding = "0dp", layout_width = 'match_parent', } for i = 2, # views do radios[# radios + 1] = views[i] end boxes[tid] = loadlayout(radios) firadio[# firadio + 1] = boxes[tid] _ENV[t1id] = loadlayout( { LinearLayout, layout_width = 'match_parent', layout_height = 'wrap_content', firadio } ) return _ENV[t1id] end function CAradio(cklist) local rest = { LinearLayout , layout_width = 'match_parent' , layout_height = "wrap_content" , orientation = "vertical" , } if type (cklist [1]) == "string" then rds=2 rest [# rest + 1] = { TextView , gravity = "left" , padding="5dp", text = cklist [1] , textSize = "13sp" , textColor = 0xffeeeeee, layout_width = 'match_parent' , layout_height = 'wrap_content' , layout_marginLeft = "10dp" , layout_marginRight = "5dp" , layout_marginTop = "0dp" , layout_marginBottom = "0dp" , } else rds=1 end local restt={ RadioGroup , layout_width = 'match_parent' , layout_height = "wrap_content" , layout_margin = "4dp" , gravity = "top" , orientation = "vertical" , elevation='2dp', background=getBG({0x33333333,0x33333333},10), } for i = rds , # cklist do local name = cklist [i] [1] local func = cklist [i] [2] if not name then name = "未设置" end local nid = name..guid () restt [# restt + 1] = { RadioButton , text = name , textSize="13sp", gravity='center_vertical', textColor = 0xffeeeeee, layout_width = 'match_parent' , layout_height = 'wrap_content' , layout_marginLeft = "2dp" , layout_marginRight = "2dp" , __onFinish=function(v) v.setButtonTintList(RadTint) end, onClick=function() callAsyncTask(func) end } end rest [# rest + 1] = restt return rest end namelist = {} param1 = {} floattable = {} function 打开页面(name) if _ENV['fenye' .. name] == nil then gg.alert(name .. '页面未创建') return 0 end if floattable['fenye' .. name] == 1 then 关闭页面(name) return end floattable['fenye' .. name] = 1 luajava.runOnUiThread(function() window.addView(_ENV['fenye' .. name], param1[name]) end) end function 关闭页面(name) if _ENV['fenye' .. name] == nil then gg.alert(name .. '页面未创建') return 0 end if floattable['fenye' .. name] == 0 then return 0 end floattable['fenye' .. name] = 0 luajava.runOnUiThread(function() window.removeView(_ENV['fenye' .. name]) end) end function 创建页面(name, vs) if type(vs) ~= 'table' then gg.alert(name .. '创建页面格式错误') os.exit() end local tmp = { LinearLayout, layout_width = 'match_parent', orientation = 'vertical' } for i = 1, #vs do table.insert(tmp, vs[i]) end param1[name] = getLayoutParams2() _ENV['fenye' .. name] = loadlayout( { LinearLayout, layout_width = "wrap_content", layout_height = "wrap_content", orientation = 'vertical', gravity = 'center_horizontal', background = getBG(0x75161616,15), padding = { '10dp', '5dp', '10dp', '5dp' }, { TextView, textColor = '0xffffffff', text = name, textSize = '14sp', gravity = "center", layout_width = "match_parent", layout_height = "wrap_content", onClick = function() local vis = luajava.getIdView(name) if vis.getVisibility() == 8.0 then vis.setVisibility(View.VISIBLE) else vis.setVisibility(View.GONE) end end, onTouch = function(v, event) local Action = event.getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false RawX = event.getRawX() RawY = event.getRawY() x = param1[name].x y = param1[name].y elseif Action == MotionEvent.ACTION_MOVE then isMove = true param1[name].x = tonumber(x) + (event.getRawX() - RawX) param1[name].y = tonumber(y) + (event.getRawY() - RawY) window.updateViewLayout(_ENV['fenye' .. name], param1[name]) end end, }, { ScrollView, visibility = 'gone', id = luajava.newId(name), layout_width = '250dp', layout_height = '250dp', tmp } }) if type(_ENV['fenye' .. name]) ~= 'userdata' then gg.alert(name .. '生成失败') os.exit() end end paramt = {} titletable = {} corb = true ------------------------------------------------------------------------------------------------------------------ local json =json--调用 local g = {} g.file = gg.getFile() g.sel = nil gqlb={"请先搜索歌曲",} idb={"1010"} SN,gc=1,nil g.config = gg.getFile():gsub("%lua$", "").."cfg" function bei() g.data = loadfile("音乐配置"..g.config) if g.data ~= nil then g.sel = g.data() g.data = nil end if g.sel == nil then g.sel = {"","10"} end end bei() function start(name,sl) fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl) return fw end function play(id,name) gg.toast("正在播放音乐:"..name,true) gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3") end function Play(gqlb,idb) SN = gg.choice(gqlb,nil,ts) if SN == nil then XGCK =-1 else sn=gg.choice({"播放歌曲","播放并下载"},nil,"歌曲:"..gqlb[SN]) if sn == nil then end if sn == 1 then play(idb[SN],gqlb[SN]) end if sn == 2 then local XEY=gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content local XEY1=gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3" io.open(XEY1,"w"):write(XEY) gg.alert("提示:\n\n音乐已成功下载位置:\n\n"..XEY1) end XGCK=-1 end end function zjson(jsonr) local str = jsonr local pattern = "\"[%w]+\":" string.gsub(str, pattern, function(v) if string.find(str, v) then str = string.gsub(str, v, string.gsub(v, "\"", "")) end end) str = string.gsub(str, ":", "=") str = string.gsub(str, "%[", "{") str = string.gsub(str, "%]", "}") local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str local res = load(data)() return res end function json(con) res=zjson(con) zd=res.result.songCount pd=go3-zd if pd <= 0 then else go3=zd end ts="《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首" gqlb={} idb={} for i=1,go3 do gqlb[i]=res.result.songs[i].name idb[i]=res.result.songs[i].id end end ------------------------------------------------------------------------------------------------------------------音乐配置 创建页面('音乐',{ CAtext('可以一边听歌一边玩'), CAbutton('搜索音乐', function() search = gg.prompt({ "输入要搜索的歌曲\n可加上歌手名字", "设置显示数量(数字)", },g.sel,{ "text", }) if not search then return end gg.saveVariable(search,g.config) bei() go1=search[1] go3=search[2] jg=start(go1,go3) if jg.code == 200 then fh=jg.content fh=json(fh) --print(fh) Play(gqlb,idb) else function inspect() gg.alert("访问网络异常,错误代码:\n\n"..jg.code) end if not pcall(inspect) then print("网络异常,请先连接上网络") os.exit() end end XGCK=-1 end), CAbutton('暂停音乐', function() gg.playMusic("关闭成功") end), CAbutton('【FREE】lucky', function() gg.playMusic("https://cccimg.com/view.php/fbb15a13a74a81ee7e500c2b89279b64.mp3") end), CAbutton('brokenheart', function() gg.playMusic("https://pan.jl8.top/view.php/8528b14529aa330b33b7d4da01df1c87.mp3") end), CAbutton('第57次取消发送', function() gg.playMusic("https://pan.jl8.top/view.php/668311eb3bff34d6db10cd8777ef1fea.mp3") end), CAbutton('至少还有你', function() gg.playMusic("https://pan.jl8.top/view.php/b2c91fdd1b1459d0cd2fcabc4b86b2a8.mp3") end), CAbutton('爱如潮水', function() gg.playMusic("https://pan.jl8.top/view.php/75a62c7c1e722938d97443eb5c960299.mp3") end), }) ------------------------------------------------------------------------------------------------------------------配置文件 ------------------------------------------------------------------------------------------------------------------------------------------------------------配置看不懂别动 function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end gg.clearResults() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local a=gg.getResultsCount() local k=gg.getResults(a) gg.clearResults() local ftz={} local xgb2={} local djb={} for v=1,a do for i=2,#tzb do ftz[#ftz+1]={address=k[v].address+tzb[i][3],flags=tzb[i][2]} end end local ftz=gg.getValues(ftz) for i=1,a do _sjj=0 for s=2,#tzb do if ftz[(#tzb-1)*(i-1)+s-1].value==tzb[s][1] then _sjj=_sjj+1 end if _sjj==#tzb-1 then for z=1,#xgb do if xgb[z][4]==true then table.insert(djb,{address=k[i].address+xgb[z][3],flags=xgb[z][2],value=xgb[z][1],freeze=true}) else table.insert(xgb2,{address=k[i].address+xgb[z][3],flags=xgb[z][2],value=xgb[z][1]}) end end end end end if gnlx=="修改" then gg.setValues(xgb2) gg.addListItems(djb) if #xgb2+#djb==0 then gg.toast("开启失败") else gg.toast("开启成功") end elseif gnlx=="载入" then gg.loadResults(xgb2) end end function SearchWrite(Search,Modification) gg.clearResults() gg.searchNumber(Search[1][1],Search[1][2],false,536870912,0,-1) if gg.getResultCount()==0 then return end local Result=gg.getResults(gg.getResultCount()) local sum=0 for i=2,#Search do for index=1,#Result do if gg.getValues({{address=Result[index].address+Search[i][3],flags=Search[i][2]}})[1].value~=Search[i][1]then Result[index].Usable=true sum=sum+1 end end end if sum==#Result then return end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in pairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value[3],flags=value[2],value=value[1],freeze=true} sum=sum+1 if value[4]then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end end end end gg.setValues(Data) gg.addListItems(Freeze) if Freeze==0 then gg.toast(Name..'开启成功') else gg.toast(Name..'开启成功') end end function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = { [true] = 32, [false] = 4 } if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({ { address = addr, flags = va[x64] } }) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) end function XGBase(Address,AFV) local address=0 for index,offset in ipairs(Address)do if index==1 then address=offset else address=gg.getValues({{address=address+offset,flags=4}})[1].value end end local Value,Freeze={},{} for index,value in ipairs(AFV)do local VALUE={address=address+value[3],flags=value[2],value=value[1],freeze=true} if value[4]then Freeze[#Freeze+1]=VALUE else Value[#Value+1]=VALUE end end gg.setValues(Value) gg.addListItems(Freeze) end --[[ function readWrite(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] if (count > 0) then for i,v in ipairs(result) do v.isUseful=true end for k=2,#Search do local tmp={} local offset=Search[k][2] - base local num=Search[k][1] for i,v in ipairs(result) do tmp[#tmp+1]={} tmp[#tmp].address=v.address+offset tmp[#tmp].flags=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=tostring(num) then result[i].isUseful=false end end end for i,v in ipairs(result) do if (v.isUseful) then data[#data+1]=v.address end end if (#data > 0) then local t,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."条数据" or "" th=(th_) and "\n已获取"..th_.."条数据" or "" gg.setValues(t) t_=gg.getValues(t_) gg.loadResults(t_) gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) tg_,th_=nil,nil else gg.toast("\n"..Name.."开启失败",false) return false end else gg.toast(Name.."开启失败") return false end end --]] -- 内存修改工具函数 function ggClearEdit(searchVal, editVal) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber(searchVal, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll(editVal, gg.TYPE_DWORD) gg.toast("修改成功") end memoryAddress = function(baseAddresses, offsets) local modifiedAddresses = {} if not baseAddresses or not baseAddresses[1] then return end if not baseAddresses[1] and type(baseAddresses) == 'table' then baseAddresses = {baseAddresses} end for k, v in pairs(baseAddresses) do if v and v['address'] then modifiedAddresses[#modifiedAddresses + 1] = { ['address'] = v['address'] + offsets[1], ['flags'] = 32 } end end local values = gg.getValues(modifiedAddresses) for k = 2, #offsets do local tempAddresses = {} for kk, vk in pairs(values) do if vk and vk['value'] then if k == #offsets then if type(offsets[k]) == 'table' then tempAddresses[#tempAddresses + 1] = { ['address'] = vk['value'] + offsets[k][kk], ['flags'] = 4 } else tempAddresses[#tempAddresses + 1] = { ['address'] = vk['value'] + offsets[k], ['flags'] = 4 } end else if type(offsets[k]) == 'table' then tempAddresses[#tempAddresses + 1] = { ['address'] = vk['value'] + offsets[k][kk], ['flags'] = 32 } else tempAddresses[#tempAddresses + 1] = { ['address'] = vk['value'] + offsets[k], ['flags'] = 32 } end end end end values = gg.getValues(tempAddresses) end return values end GetUTF8 = function(addresses) if addresses ~= nil then local utf8Addresses, tempAddresses, result = {}, {}, {} for k, v in pairs(addresses) do if v and v['address'] then for i = 0, 62 do tempAddresses[#tempAddresses + 1] = { ['address'] = v['address'] + i, ['flags'] = 1 } end end end local values = gg.getValues(tempAddresses) for i = 1, #values, 63 do table.insert(result, {}) for ii = i, i + 62 do if values[ii] then table.insert(result[#result], values[ii]) end end end for kk, vv in pairs(result) do local byteValues = {} for k, v in pairs(vv) do if v['value'] == 0 then break end if v['value'] < 0 then byteValues[#byteValues + 1] = v['value'] + 256 else byteValues[#byteValues + 1] = v['value'] end end utf8Addresses[#utf8Addresses + 1] = string.char(table.unpack(byteValues)) end return utf8Addresses or nil end end function getDword(add) return gg.getValues({{address=add,flags=4}})[1].value end function getFloat(add) return gg.getValues({{address=add,flags=16}})[1].value end function UTF16ToString(startAddress) local str = '' local length = getDword(startAddress - 4) for i=1, length do str = str .. utf8.char(getPointer(startAddress + 0x2*(i-1), 2) & 0xFFFF) end return str end function ReadPointer(name, offset, i, x64) local re = gg.getRangesList(name) local flags = 32 if re[i or 1] then local addr=re[i or 1].start+offset[1] if x64==nil then x64 = addr > 0xFFFFFFFF end if not x64 then flags = 4 end for i = 2,#offset do addr = gg.getValues({{address=addr,flags=flags}}) if addr[1].value==0 then return 0 end if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end return 0 end x32 = gg.getTargetInfo() function getPointer(add) if x32.x64==true then return gg.getValues({{address=add,flags=32}})[1].value; else return gg.getValues({{address=add,flags=4}})[1].value&0xFFFFFFFF; end end function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功') else gg.toast(Search[2].name..'开启成功') end gg.clearResults() end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end ------------------------------------------------------------------------------------------------------------------配置文件 标题='错季雨特别版' 悬浮窗文字='错季雨特别版' 悬浮窗图标='https://cccimg.com/down.php/063531f21e9bf88419dac67094306ce1.png' --写图片文件直链 分页 = { --导航栏分页名字和图标,添加表即可加页数,需要与功能配置页面数量对应 '错季雨公告', '摸金功能', 'PVP功能', '娱乐功能', '美化', '实体卡头', '设置', --'设置',--最多6页 } init()--传递变量勿动 uistart({--每一个功能页面需要有上边分页名字对应,多出来的不显示,少了需要补充 {--1 CAtext('时间是一双眼睛 见喜 见忧 见离别\n游戏进度条开过检测',"#00ffff"), CAbutton( '手动登录初始化', function() gg.alert('选择内存最大','好的我知道了') gg.setProcessX() end), CAbutton( '自动登录初始化', function() gg.setProcess("com.pi.czrxdfirst:qiu") gg.setProcess("com.pi.czrxdfirst:qiu") gg.setConfig("运行守护",3) gg.setProcess("com.pi.czrxdfirst:qiu") gg.setProcess("com.pi.czrxdfirst:qiu") gg.alert('初始化成功','好的我知道了') end), CAbutton( '过检测', function() XGBase( {gg.getRangesList('libtersafe2.so')[1].start}, { {1384120392,4,0xABD10}, }) XGBase( {gg.getRangesList('libtersafe2.so')[1].start}, { {335544340,4,0xABEB8}, }) XGBase( {gg.getRangesList('libtersafe2.so')[1].start}, { {335544347,4,0xAD538}, }) XGBase( {gg.getRangesList('libtersafe2.so')[1].start}, { {335544320,4,0x3D67F8}, }) gg.alert('开启成功','好的我知道了') end), CAbutton( '过1.22检测(大厅开)', function() function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true]=32, [false]=4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address=addr, flags=va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end -- 修改内存地址的函数 function gg.edits(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = { [true] = 32, [false] = 4 } if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({ { address = addr, flags = va[x64] } }) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF else addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end local t = {"libtersafe2.so"} local tt = {0xABFFC}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) local tt = {0xA96D0}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) local tt = {0xAEBA8}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) local tt = {0xA8F80}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) local tt = {0xADA84}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) local tt = {0xA9040}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) local tt = {0xA94F0}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) local tt = {0x31CDC8}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) local tt = {0x2E26D0}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) local tt = {0x2E1618}local ttt = S_Pointer(t,tt,true) setvalue(ttt,4, "~A8 RET", false) gg.alert('开启成功','好的我知道了') end), CAbutton( '过1.22闪退检验(加载页面开)', function() if gg.getRangesList("libtersafe2.so")[1] then local t = {} t[1] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0xA94F0; gg.addListItems({ [1] = { address = t[1], flags = 4, value = -698416192, freeze = true, }, }) local qmnb= { {['memory']=4}, {['name']='过检测'}, {['value']=32768, ['type']=4}, {['lv']=100674977,['offset']=-4587896, ['type']=4}, } local qmxg= { {['value']=-721215457,['offset']=-4587904,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) end local qmnb= { {['memory']=4}, {['name']='过检测2'}, {['value']=100926466, ['type']=4}, {['lv']=100926466,['offset']=0, ['type']=4}, } local qmxg= { {['value']=-721215457,['offset']=-15908,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) gg.alert('开启成功','好的我知道了') end), CAbutton( '无敌不闪退防闪', function() function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = { [true] = 32, [false] = 4 } if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({ { address = addr, flags = va[x64] } }) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end local addr1 = readPointer("libtersafe2.so", {4024312}, 1) gg.edits(addr1, {{335544320, 4, 0, true}}) local addr2 = readPointer("libtersafe2.so", {703760}, 1) gg.edits(addr2, {{1384120392, 4, 0, true}}) local addr3 = readPointer("libtersafe2.so", {704184}, 1) gg.edits(addr3, {{335544340, 4, 0, true}}) gg.alert('开启成功','好的我知道了') end), CAswitch( "音量键隐藏UI ", function() Listening=true end, function() Listening=false end), },{--2 CAswitch('摸金传送', function() 打开页面('传送') end, function() 关闭页面('传送') end), CAbutton( "新手图", function() gg.alert("没有效果的话请用备用的,在下面就有") -- 模式1:。。。 local qmnb = { {['memory']=32}, {['name']='。。'}, {['value']=260.0, ['type']=16}, {['lv']=262.0, ['offset']=4, ['type']=16}, {['lv']=20.0, ['offset']=8, ['type']=16}, {['lv']=130.0, ['offset']=12, ['type']=16}, } local qmxg = { {['value']=9999.0, ['offset']=16, ['type']=16, ['freeze']=true}, {['value']=9999.0, ['offset']=20, ['type']=16, ['freeze']=true}, {['value']=9999.0, ['offset']=24, ['type']=16, ['freeze']=true}, {['value']=9999.0, ['offset']=28, ['type']=16, ['freeze']=true}, } xqmnb(qmnb, qmxg) end ), -- ==================== 秦始龙宫功能 ==================== CAbutton( "秦始龙宫显棺", function() gg.alert("秦始龙宫地图显棺功能") local qmnb = { {['memory']=32}, {['name']='秦始龙宫'}, {['value']=450.0, ['type']=16}, {['lv']=352.0, ['offset']=4, ['type']=16}, {['lv']=151.5, ['offset']=8, ['type']=16}, {['lv']=105.5, ['offset']=12, ['type']=16}, } local qmxg = { {['value']=99999.0, ['offset']=16, ['type']=16, ['freeze']=true}, {['value']=99999.0, ['offset']=20, ['type']=16, ['freeze']=true}, {['value']=99999.0, ['offset']=24, ['type']=16, ['freeze']=true}, {['value']=99999.0, ['offset']=28, ['type']=16, ['freeze']=true}, } xqmnb(qmnb, qmxg) end ), -- ==================== 古城功能 ==================== CAbutton( "古城显棺", function() gg.alert("古城地图显棺功能") local qmnb = { {['memory']=32}, {['name']='古城'}, {['value']=515.0, ['type']=16}, {['lv']=452.0, ['offset']=4, ['type']=16}, {['lv']=257.5, ['offset']=8, ['type']=16}, {['lv']=245.0, ['offset']=12, ['type']=16}, } local qmxg = { {['value']=999999, ['offset']=16, ['type']=16, ['freeze']=true}, {['value']=99999, ['offset']=20, ['type']=16, ['freeze']=true}, {['value']=9999, ['offset']=24, ['type']=16, ['freeze']=true}, {['value']=99999, ['offset']=28, ['type']=16, ['freeze']=true}, } xqmnb(qmnb, qmxg) end ), -- ==================== 昆仑功能 ==================== CAbutton( "昆仑显棺", function() gg.alert("昆仑地图显棺功能") local qmnb = { {['memory']=32}, {['name']='昆仑'}, {['value']=1024.0, ['type']=16}, {['lv']=1026.0, ['offset']=4, ['type']=16}, {['lv']=383.0, ['offset']=8, ['type']=16}, } local qmxg = { {['value']=99999, ['offset']=16, ['type']=16, ['freeze']=true}, {['value']=99999, ['offset']=20, ['type']=16, ['freeze']=true}, {['value']=999999, ['offset']=24, ['type']=16, ['freeze']=true}, {['value']=999999, ['offset']=28, ['type']=16, ['freeze']=true}, } xqmnb(qmnb, qmxg) end ), CAbutton( "全地图/显棺/", function() gg.alert("没有效果的话请用备用的,在下面就有") local qmnb= { {['memory']=32}, {['name']='。。'}, {['value']=260.0, ['type']=16}, {['lv']=262.0,['offset']=4, ['type']=16}, {['lv']=20.0,['offset']=8, ['type']=16}, {['lv']=130.0,['offset']=12, ['type']=16}, } local qmxg= { {['value']=9999.0,['offset']=16,['type']=16,['freeze']=true}, {['value']=9999.0,['offset']=20,['type']=16,['freeze']=true}, {['value']=9999.0,['offset']=24,['type']=16,['freeze']=true}, {['value']=9999.0,['offset']=28,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='秦始龙宫'}, {['value']=450.0, ['type']=16}, {['lv']=352.0,['offset']=4, ['type']=16}, {['lv']=151.5,['offset']=8, ['type']=16}, {['lv']=105.5,['offset']=12, ['type']=16}, } local qmxg= { {['value']=99999.0,['offset']=16,['type']=16,['freeze']=true}, {['value']=99999.0,['offset']=20,['type']=16,['freeze']=true}, {['value']=99999.0,['offset']=24,['type']=16,['freeze']=true}, {['value']=99999.0,['offset']=28,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='古城'}, {['value']=515.0, ['type']=16}, {['lv']=452.0,['offset']=4, ['type']=16}, {['lv']=257.5,['offset']=8, ['type']=16}, {['lv']=245.0,['offset']=12, ['type']=16}, } local qmxg= { {['value']=999999,['offset']=16,['type']=16,['freeze']=true}, {['value']=99999,['offset']=20,['type']=16,['freeze']=true}, {['value']=9999,['offset']=24,['type']=16,['freeze']=true}, {['value']=99999,['offset']=28,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='昆仑'}, {['value']=1024.0, ['type']=16}, {['lv']=1026.0,['offset']=4, ['type']=16}, {['lv']=383.0,['offset']=8, ['type']=16}, } local qmxg= { {['value']=99999,['offset']=16,['type']=16,['freeze']=true}, {['value']=99999,['offset']=20,['type']=16,['freeze']=true}, {['value']=999999,['offset']=24,['type']=16,['freeze']=true}, {['value']=999999,['offset']=28,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) end), CAbutton( "全局地图除雾", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("1,054,615,798", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("1,054,615,798",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("0", gg.TYPE_DWORD) gg.toast("除雾开启成功") gg.clearResults() end end), CAswitch("去除磁场下面是备用", function() function readWrite(Search, Get, Type, Range, Name) gg.setVisible(false) gg.clearResults() gg.setRanges(Range) local searchCfg = Search[1] local useType = searchCfg[4] or Type local start = searchCfg[5] or 1 local ends = searchCfg[6] or -1 if searchCfg[1] ~= false then gg.searchAddress(searchCfg[1], 0xFFFFFFFF, useType, gg.SIGN_EQUAL, start, ends) end gg.searchNumber(searchCfg[2], useType, false, gg.SIGN_EQUAL, start, ends) local count = gg.getResultCount() if count <= 0 then gg.toast(Name.."开启失败") return false end local result = gg.getResults(count) gg.clearResults() local data = {} local base = searchCfg[3] for i = 1, count do result[i].isUseful = true end for k = 2, #Search do local s = Search[k] local offset = s[2] - base local num = tostring(s[1]) local sType = s[3] or useType local tmp = {} for i = 1, count do tmp[i] = {address = result[i].address + offset, flags = sType} end tmp = gg.getValues(tmp) for i = 1, count do local v = tmp[i] local valStr if v.flags == 16 or v.flags == 64 then valStr = tostring(v.value):sub(1, 6) num = num:sub(1, 6) else valStr = tostring(v.value) end if valStr ~= num then result[i].isUseful = false end end end for i = 1, count do if result[i].isUseful then data[#data + 1] = result[i].address end end if #data <= 0 then gg.toast("\n"..Name.."开启失败", false) return false end local t = {} local t_ = {} local tg_ = 0 local th_ = 0 local baseGet = base for i = 1, #data do local addr = data[i] for k = 1, #Get do local w = Get[k] local offset = w[2] - baseGet local finalAddr = addr + offset if w[1] == false then th_ = th_ + 1 t_[th_] = {address = finalAddr, flags = Type} else tg_ = tg_ + 1 t[tg_] = { address = finalAddr, flags = w[3] or Type, value = w[1] } if w[4] then gg.addListItems({{ address = finalAddr, flags = w[3] or Type, value = w[1], freeze = true }}) end end end end if tg_ > 0 then gg.setValues(t) end if th_ > 0 then t_ = gg.getValues(t_) end if th_ > 0 then gg.loadResults(t_) end local tg = tg_ > 0 and ("\n已修改"..tg_.."条数据") or "" local th = th_ > 0 and ("\n已获取"..th_.."条数据") or "" gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) return true end --以上为配置 勿动 readWrite({{false,1120403456,0,32,nil,nil},{16842752,76,32},{1120403456,320,32},{1120403456,640,32},{1120403456,960,32},{1120403456,1280,32}},{{0,72,32,false}},32,32,"除磁场") gg.toast("开启成功") end, function() -- 关闭函数 end ), CAswitch("去除磁场备用", function() function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end local qmnb= { {['memory']=32}, {['name']='磁场'}, {['value']=4866983823437135872, ['type']=32}, {['lv']=0.5,['offset']=-52, ['type']=16}, {['lv']=278,['offset']=4, ['type']=16}, {['lv']=1,['offset']=40, ['type']=16}, {['lv']=0.5,['offset']=392, ['type']=16}, } local qmxg= { {['value']=0,['offset']=40,['type']=16}, } xqmnb(qmnb,qmxg) gg.toast("开启成功") end, function() -- 关闭函数 end ), CAswitch("去除磁场", function() local qmnb= { {['memory']=32}, {['name']='去除磁场'}, {['value']=53.0, ['type']=16}, {['lv']=6.0,['offset']=4, ['type']=16}, {['lv']=2.5,['offset']=144, ['type']=16}, {['lv']=18.0,['offset']=148, ['type']=16}, } local qmxg= { {['value']=0,['offset']=-84,['type']=16}, {['value']=0.0,['offset']=-80,['type']=16}, {['value']=0.0,['offset']=-76,['type']=16}, {['value']=0.0,['offset']=-72,['type']=16}, {['value']=00,['offset']=-68,['type']=16}, {['value']=0,['offset']=-64,['type']=16}, {['value']=0,['offset']=-60,['type']=16}, {['value']=0,['offset']=-56,['type']=16}, } xqmnb(qmnb,qmxg) gg.toast("开启成功") end), CAswitch("地图消磁+免磁传送", function() function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = { [true] = 32, [false] = 4 } if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({ { address = addr, flags = va[x64] } }) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end --libil2cpp.so + 0x2F6920 -> 0xBA0 -> 0x1300 -> 0x2A8 -> 0xEE4 local addr = readPointer("libil2cpp.so", {3107104, 2976, 4864, 680, 3812}, 5) gg.edits(addr, {{1000, 16, 0, true}, {1000, 16, 0, true}}) --libil2cpp.so + 0x2F6960 -> 0x720 -> 0x5F0 -> 0xC08 -> 0xEE0 local addr = readPointer("libil2cpp.so", {3107168, 1824, 1520, 3080, 3808}, 5) gg.edits(addr, {{1000, 16, 0, true}, {1000, 16, 0, true}}) gg.toast("开启成功") end, function() -- 关闭函数 end ), CAseek('夜视仪亮度', 'testSeek', 0, 10, 2, 1, '', function(v) gg.toast('滑动条值为:' .. v) local qmnb= { {['memory']=32}, {['name']='夜视'}, {['value']=0.41999998688697815, ['type']=16}, {['lv']=2.350988981904268E-38,['offset']=44, ['type']=16}, } local qmxg= { {['value']=999.0,['offset']=12,['type']=16,['freeze']=true}, {['value']=20.0,['offset']=20,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) end), CAswitch('夜视', function() local qmnb= { {['memory']=32}, {['name']='夜视'}, {['value']=0.41999998688697815, ['type']=16}, {['lv']=2.350988981904268E-38,['offset']=44, ['type']=16}, } local qmxg= { {['value']=999.0,['offset']=12,['type']=16,['freeze']=true}, {['value']=20.0,['offset']=20,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) end), CAswitch('广角', function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x1B0B0, 0x398, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x8B578, 0x350, 0x140, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x8B578, 0x350, 0x160, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x935D8, 0x110, 0x140, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x935D8, 0x110, 0x160, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x94C20, 0x2F0, 0x140, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x94C20, 0x2F0, 0x160, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x94C30, 0x290, 0x140, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x94C30, 0x290, 0x160, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x961A8, 0x4B0, 0x140, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x961A8, 0x4B0, 0x160, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x121CC8, 0xB8, 0x5A8, 0x178} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x203F08, 0x528, 0x398, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x203F28, 0x930, 0x398, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x203F48, 0x120, 0x398, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x1B0B0, 0x0, 0x5D8, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x1F458, 0x6E0, 0x818, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x1F4F0, 0x950, 0x818, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D358, 0x7B0, 0x410, 0x178} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D358, 0x7B0, 0x430, 0x178} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D358, 0x948, 0x260, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D358, 0x948, 0x280, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D708, 0x740, 0x410, 0x178} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D708, 0x740, 0x430, 0x178} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D708, 0x8D8, 0x260, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D708, 0x8D8, 0x280, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D780, 0x6D0, 0x410, 0x178} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D780, 0x6D0, 0x430, 0x178} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D780, 0x868, 0x260, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x22D780, 0x868, 0x280, 0x978} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 100}}) end), CAbutton( "解除视角限制", function() local qmnb= { {['memory']=32}, {['name']='解除视角限制'}, {['value']=66.0, ['type']=16}, {['lv']=0.0833333358168602,['offset']=-24, ['type']=16}, {['lv']=1.0,['offset']=-20, ['type']=16}, {['lv']=0.0833333358168602,['offset']=-16, ['type']=16}, {['lv']=55.0,['offset']=-4, ['type']=16}, {['lv']=2.5,['offset']=4, ['type']=16}, {['lv']=3.5,['offset']=16, ['type']=16}, } local qmxg= { {['value']=90.0,['offset']=20,['type']=16}, {['value']=-90.0,['offset']=24,['type']=16}, } xqmnb(qmnb,qmxg) end), CAbutton( "交互按钮无cd", function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) -- 搜索匿名内存区域 gg.searchNumber("0.7647058963775635", gg.TYPE_FLOAT) local results = gg.getResults(1) -- 获取第一个结果 if #results == 0 then gg.toast("未找到目标数值") return end local originalAddress = results[1].address gg.toast("找到地址: " .. string.format("%X", originalAddress)) -- 计算目标地址(应用偏移-296) local targetAddress = originalAddress - 296 gg.toast("目标地址: " .. string.format("%X", targetAddress)) -- 修改为目标值0并添加到冻结列表 local modifiedValue = { { address = targetAddress, flags = gg.TYPE_FLOAT, -- 确认使用浮点数类型 value = 0, freeze = true -- 添加冻结属性 } } gg.setValues(modifiedValue) gg.addListItems(modifiedValue) -- 添加到冻结列表 gg.toast("修改成功!数值已改为0并冻结") -- 确认冻结状态 local frozenList = gg.getListItems() if #frozenList > 0 then gg.toast("已冻结 " .. #frozenList .. " 个地址") else gg.toast("警告:冻结可能未生效") end gg.clearResults() end), CAswitch( "免龙珠开宝藏房1", function() local qmnb= { {['memory']=32}, {['name']='1'}, {['value']=4.599999904632568, ['type']=16}, {['lv']=3.343126500982223E20,['offset']=1268, ['type']=16}, } local qmxg= { {['value']=3.0,['offset']=1092,['type']=16}, } xqmnb(qmnb,qmxg) end, function() gg.toast("无法关闭") end), CAswitch( "免龙珠开宝藏房2", function() local qmnb= { {['memory']=32}, {['name']='2'}, {['value']=4.599999904632568, ['type']=16}, {['lv']=3.343126500982223E20,['offset']=1268, ['type']=16}, } local qmxg= { {['value']=-3.0,['offset']=1092,['type']=16}, } xqmnb(qmnb,qmxg) end, function() gg.toast("无法关闭") end), CAswitch( "免龙珠开宝藏房3", function() local qmnb= { {['memory']=32}, {['name']='3'}, {['value']=4.599999904632568, ['type']=16}, {['lv']=3.343126500982223E20,['offset']=1268, ['type']=16}, } local qmxg= { {['value']=3.0,['offset']=1100,['type']=16}, } xqmnb(qmnb,qmxg) end, function() gg.toast("无法关闭") end), CAswitch( "免龙珠开宝藏房4", function() local qmnb= { {['memory']=32}, {['name']='4'}, {['value']=4.599999904632568, ['type']=16}, {['lv']=3.343126500982223E20,['offset']=1268, ['type']=16}, } local qmxg= { {['value']=-3.0,['offset']=1100,['type']=16}, } xqmnb(qmnb,qmxg) end, function() gg.toast("无法关闭") end), CAbox({'远程拾取上交[点击展开]', CAtext('注:不懂先看完视频教学再用\n需要两台设备两个号\n下面有连点器\n闪退的话记得撤离前清除冻结',"#00ffff"), CAswitch( "视频使用教程", function() gg.goURL("https://www.123684.com/s/KxiDjv-pV7WH") end, function() gg.copyText("https://www.123684.com/s/KxiDjv-pV7WH") gg.alert("复制成功,浏览器打开") end), CAswitch( "远程拾取[一局一开]", function() function getvalue(addr, flags) local asbd = {} asbd[1] = {} asbd[1].address = addr asbd[1].flags = flags tmp = gg.getValues(asbd) return tmp[1].value end function xqmnb(Search, Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value, Search[3].type, false, 536870912, 0, -1) if gg.getResultCount() == 0 then gg.toast(Search[2].name .. '开启失败') return end local Result = gg.getResults(gg.getResultCount()) local sum for index = 4, #Search do sum = 0 for i = 1, #Result do if gg.getValues({ { address = Result[i].address + Search[index].offset, flags = Search[index].type } })[1].value ~= Search[index].lv then Result[i].Usable = true sum = sum + 1 end end if sum == #Result then gg.toast(Search[2].name .. '开启失败') return end end local Data, Freeze, Freezes = {}, {}, 0 sum = 0 for index, value in ipairs(Modification) do for index = 1, #Result do if not Result[index].Usable then local Value if value.value ~= nil then Value = { address = Result[index].address + value.offset, flags = value.type, value = value.value, freeze = true } else Value = { address = Result[index].address + value.offset, flags = value.type, value = getvalue(Result[index].address + value.offset, value.type), freeze = true } end if value.freeze then Freeze[#Freeze + 1] = Value Freezes = Freezes + 1 else Data[#Data + 1] = Value end sum = sum + 1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes == 0 then gg.toast(Search[2].name .. '开启成功') else gg.toast(Search[2].name .. '开启成功') end gg.clearResults() end local qmnb= { {['memory']=32}, {['name']='远程拾取'}, {['value']=0.7647058963775635, ['type']=16}, {['lv']=1.401298464324817E-45,['offset']=-596, ['type']=16}, } local qmxg= { {['value']=nil,['offset']=-340,['type']=32,['freeze']=true}, } xqmnb(qmnb,qmxg) end, function() end), CAswitch( "自动连点器下载", function() gg.goURL("https://www.123684.com/s/KxiDjv-OV7WH") end, function() gg.copyText("https://www.123684.com/s/KxiDjv-OV7WH") gg.alert("复制成功,浏览器打开") end), CAswitch( "清除冻结[不清除会闪退][撤离前开]", function() gg.alert("打完撤离再开此功能这样就不会闪退") gg.clearList() end, function() gg.clearList() end), }), CAbox({'改彩色签名[点击展开]', CAswitch( "教学", function() gg.alert("先开去除文字上限,然后再改签名就行了") end, function() end), CAswitch( "去除文字上限", function() local qmnb= { {['memory']=32}, {['name']='文字'}, {['value']=1031, ['type']=4}, {['lv']=15,['offset']=80, ['type']=4}, } local qmxg= { {['value']=9999999,['offset']=80,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) end, function() end), CAswitch( "金色文字", function() gg.copyText("小白天下第一帅!") gg.alert("复制成功") end, function() end), CAswitch( "获取颜色图片", function() gg.goURL("https://www.123684.com/s/KxiDjv-X67WH") end, function() gg.copyText("https://www.123684.com/s/KxiDjv-X67WH") gg.alert("复制成功,浏览器打开") end), CAswitch( "文字1", function() gg.copyText("内容3内容2内容3") gg.alert("复制成功") end, function() end), CAswitch( "文字2", function() gg.copyText("内容") gg.alert("复制成功") end, function() end), }), CAswitch( "范围拾取", function() local qmnb= { {['memory']=32}, {['name']='范围拾取'}, {['value']=1.7452920139442018E-39, ['type']=16}, {['lv']=2.2040589142841107E-39,['offset']=140, ['type']=16}, } local qmxg= { {['value']=6.30000019073,['offset']=148,['type']=16}, } xqmnb(qmnb,qmxg) end, function() local qmnb= { {['memory']=32}, {['name']='范围拾取'}, {['value']=1.7452920139442018E-39, ['type']=16}, {['lv']=2.2040589142841107E-39,['offset']=140, ['type']=16}, } local qmxg= { {['value']=0.60000002384,['offset']=148,['type']=16}, } xqmnb(qmnb,qmxg) end), CAbutton( "铲子改天下第一剑", function() gg.setRanges(gg.REGION_ANONYMOUS)--设置搜索内存 gg.searchNumber('10003',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1)--搜索值+类型 gg.searchNumber('10003',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(1000)--设置搜索列表 gg.editAll("100023",gg.TYPE_DWORD)--自定义改值+类型 gg.toast("开启成功") string.toMusic("开启成功") end, function() gg.setRanges(gg.REGION_ANONYMOUS)--设置搜索内存 gg.searchNumber('100023',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1)--搜索值+类型 gg.searchNumber('100023',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(1000)--设置搜索列表 gg.editAll("10003",gg.TYPE_DWORD)--自定义改值+类型 gg.toast("关闭成功") string.toMusic("关闭成功") end), CAbutton('刷金尊改地图', function() function search(value) gg.clearResults() gg.setRanges(32) gg.searchNumber(value, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) return gg.getResults(100) end originalValues = {} local results = search('40001') if results and #results > 0 then for i, v in ipairs(results) do originalValues[i] = {address = v.address, value = v.value, flags = v.flags} end for i, v in ipairs(results) do results[i].value = 30002 results[i].flags = gg.TYPE_DWORD end gg.setValues(results) gg.toast('注入成功') gg.sleep(30000) for i, v in ipairs(originalValues) do gg.setValues({v}) end else gg.toast('搜索为null') end end, function() end, "", false, '#000000'), },{--3内存功能 CAbutton('绘制', function() CanShuM = 2.1 --方框大小 AD = 0x2C --数组距离 prompt = {0,0,0,-120} --方框位置调整 OFFON = true --显示调整方框选项 FPS = 40 --绘制帧率[过高可能会导致卡顿] Basil = { --敌人结构体 0x5AC, --X 0x5B4, --Z 0x5B0, --Y 0x270 --血量 } -- 删除了不存在的 disDrawAcc() 函数调用 HuaBi,HuaBi2,HuaBi3,AA,FPS1,FPS2 = newPaint(),newPaint(),newPaint(),getWH(),{0,0},{0,0} X,Y = AA.width,AA.height X2,Y2 = X/2.0,Y/2.0 X3,Y3 = X/10,Y/10 X4,Y4 = X/40,Y/40 HuaBi:setColor("#FFFF6B6B") HuaBi:setWidth(4) HuaBi:setStyle(0) HuaBi2:setColor("#FFFF6B6B") HuaBi2:setWidth(25) HuaBi2:setStyle(1) HuaBi3:setColor("#FFFF6B6B") HuaBi3:setWidth(4) HuaBi3:setStyle(1) HuaBi3:setTextSize(60*math.min((X > Y and Y or X) / 1440.01, (Y < X and X or Y) / 720.01)) pcall(function() local AA = 0 newView():show(function(canvas) local a,GG = HuiZhiShuJu canvas:save() if a then for i, v in pairs(a) do GG = i if (v[1] < (v[1]+v[3])) and v[5] > 0 then i = v[2] canvas:drawRect({v[1],i,v[1]+v[3],i+v[4]},HuaBi) canvas:drawRect({v[1]+v[3]+(v[3]/6),i+v[4],v[1]+v[3],i-(v[4]/7)},HuaBi) canvas:drawRect({v[1]+v[3]+(v[3]/6),i+v[4],v[1]+v[3],(i+v[4])-((((i+v[4])-(i-(v[4]/7)))/100)*((v[6] < 0) and 0 or v[6]))},HuaBi3) canvas:drawRect({v[1]+v[3],i-(v[4]/7),v[1],i},HuaBi) HuaBi2:setTextSize(v[3]/5) canvas:drawText(GG..":"..math.ceil(v[5]).."米",v[1]+(v[3]/20),i-(v[4]/22),HuaBi2) canvas:drawLine(X/2,10,v[1]+(v[3]/2),i-(v[4]/7),HuaBi) else canvas:drawText("距离:"..math.ceil(v[5]*1).."米",v[1],(i > v[2]) and Y4/2 or Y-Y4,HuaBi3) end end end canvas:drawText("青Basil FPS1:"..FPS1[1].." FPS2:"..FPS2[1].." 数量:"..(a and #a or 0),X3,Y3,HuaBi3) canvas:restore() local a = os.clock() AA = AA + 1 if a > FPS1[2] then FPS1 = {AA,a + 1} AA = 0 end end,FPS) end) function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = { [true] = 32, [false] = 4 } if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({ { address = addr, flags = va[x64] } }) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end if OFFON then gg.showUiButton() end AB = readPointer("libunity.so:bss", {0x97D40, 0x0, 0x10, 0x308}, 1) while true do pcall(function() local AA = 0 while true do if AC then if gg.isClickedUiButton() then alert = gg.prompt({"X[-400;400]","Y[-400;400]","X[-400;400]","Y[-400;400]"},prompt,{"number","number","number","number"}) if alert then prompt = alert end end local b,HuanCun = {},{} JuZhenShuJu = gg.getValues({{address = AB+4, flags = 16},{address = AB+8, flags = 16},{address = AB+12, flags = 16},{address = AB+16, flags = 16},{address = AB+20, flags = 16},{address = AB+24, flags = 16},{address = AB+28, flags = 16},{address = AB+32, flags = 16},{address = AB+36, flags = 16},{address = AB+40, flags = 16},{address = AB+44, flags = 16},{address = AB+48, flags = 16},{address = AB+52, flags = 16},{address = AB+56, flags = 16},{address = AB+60, flags = 16},{address = AB+64, flags = 16},{address = AC+12, flags = 4}}) for i=1, AE*6, 6 do b[#b+1] = {address = AC+AD+(4*i), flags = 32} end for i, v in pairs(gg.getValues(b)) do a = v.value a = gg.getValues({{address = a+Basil[1], flags = 16},{address = a+Basil[2], flags = 16},{address = a+Basil[3], flags = 16},{address = a+Basil[4], flags = 4}}) if a[4].value > 0 then JuLi = JuZhenShuJu[4].value * a[1].value + JuZhenShuJu[8].value * a[2].value + JuZhenShuJu[12].value * a[3].value + JuZhenShuJu[16].value --相机Z, 距离 算法 ShiJiaoX = X2 + (JuZhenShuJu[1].value * a[1].value + JuZhenShuJu[5].value *a[2].value+ JuZhenShuJu[9].value * a[3].value + JuZhenShuJu[13].value) / JuLi * X2 --视角高 ShiJiaoY = Y2 - (JuZhenShuJu[2].value * a[1].value + JuZhenShuJu[6].value * (a[2].value-0.3) + JuZhenShuJu[10].value * a[3].value + JuZhenShuJu[14].value) / JuLi * Y2 --视角宽 ShiJiaoW = Y2 - (JuZhenShuJu[2].value * a[1].value + JuZhenShuJu[6].value * (a[2].value + CanShuM) + JuZhenShuJu[10].value * a[3].value + JuZhenShuJu[14].value) / JuLi * Y2 HuanCun[#HuanCun+1] = {(ShiJiaoX - (ShiJiaoY - ShiJiaoW) / (4+prompt[3]/100) ) + prompt[1], ((ShiJiaoY) - (ShiJiaoY- ShiJiaoW) / (1.89+prompt[4]/100)) + prompt[2], (ShiJiaoY- ShiJiaoW) / 2, (ShiJiaoY- ShiJiaoW),JuLi,a[4].value} end end HuiZhiShuJu = HuanCun local a = os.clock() AA = AA + 1 if a > FPS2[2] then FPS2 = {AA,a + 1} AA = 0 end else gg.clearResults() gg.searchNumber(1080033280,4) local AA,AB = gg.getResults(gg.getResultsCount()) for i, v in pairs(AA) do v.address = v.address + 4 end AB = {} for i, v in pairs(gg.getValues(AA)) do if v.value == 1084227584 then AB[#AB+1] = {address = v.address - 0x304, flags = 32} end end AA = {} for i, v in pairs(gg.getValues(AB)) do AA[#AA+1] = {address = v.value, flags = 32} end AB = {} for i, v in pairs(gg.getValues(AA)) do if v.value > 2000 then AB[#AB+1] = v end end if #AB == 1 then AC = gg.getValues({{address = AB[1].address + 0x18, flags = 32},{address = AB[1].address + 0x20, flags = 4}}) AE = AC[2].value AC = AC[1].value end gg.clearResults() end end end) gg.sleep(500) end end), CAswitch( "强锁自瞄", function() Solitary_Gx({ ["主特征码"] = { "30", 16 }, ["副特征码"] = { { "10", 16, -8 }, { "20", 16, -4 }, { "15", 16, 16 }, }, ["修改"] = { { 150, 16, -16, false }, --距离 { 300, 16, -12, false }, --范围 { 1.25, 16, 4, false }, --预判 }, ["功能名字"] = "自瞄", ["内存"] = 32, }) end), CAseek('自瞄距离:', 'dkbddjh', 50, 500, 50, 1,'倍'), CAseek('自瞄预判:', 'dkdjhd', 1, 5, 1, 0.1,'倍'), CAseek('自瞄圆圈:', 'ospqjd', 10, 100, 10, 1,'倍'), CAbutton('设置完点我生效', function() Solitary_Gx({ ["主特征码"] = { "30", 16 }, ["副特征码"] = { { "10", 16, -8 }, { "20", 16, -4 }, { "15", 16, 16 }, }, ["修改"] = { { 150, 16, -16, false }, --距离 { 300, 16, -12, false }, --范围 { 1.25, 16, 4, false }, --预判 }, ["功能名字"] = "自瞄", ["内存"] = 32, }) end), CAswitch( "秒交互[秒修/秒进门/拿龙珠]", function() local qmnb= { {['memory']=32}, {['name']='1111'}, {['value']=0.3019607961177826, ['type']=16}, {['lv']=1.0,['offset']=244, ['type']=16}, {['lv']=100.0,['offset']=248, ['type']=16}, } local qmxg= { {['value']=0,['offset']=528,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) end), CAbox({'长枪改武器类', CAbutton( "✨长枪改长鞭[等提示成功]✨", function() function readWrite(Search, Get, Type, Range, Name) gg.setVisible(false) gg.clearResults() gg.setRanges(Range) local searchCfg = Search[1] local useType = searchCfg[4] or Type local start = searchCfg[5] or 1 local ends = searchCfg[6] or -1 if searchCfg[1] ~= false then gg.searchAddress(searchCfg[1], 0xFFFFFFFF, useType, gg.SIGN_EQUAL, start, ends) end gg.searchNumber(searchCfg[2], useType, false, gg.SIGN_EQUAL, start, ends) local count = gg.getResultCount() if count <= 0 then gg.toast(Name.."开启失败") return false end local result = gg.getResults(count) gg.clearResults() local data = {} local base = searchCfg[3] for i = 1, count do result[i].isUseful = true end for k = 2, #Search do local s = Search[k] local offset = s[2] - base local num = tostring(s[1]) local sType = s[3] or useType local tmp = {} for i = 1, count do tmp[i] = {address = result[i].address + offset, flags = sType} end tmp = gg.getValues(tmp) for i = 1, count do local v = tmp[i] local valStr if v.flags == 16 or v.flags == 64 then valStr = tostring(v.value):sub(1, 6) num = num:sub(1, 6) else valStr = tostring(v.value) end if valStr ~= num then result[i].isUseful = false end end end for i = 1, count do if result[i].isUseful then data[#data + 1] = result[i].address end end if #data <= 0 then gg.toast("\n"..Name.."开启失败", false) return false end local t = {} local t_ = {} local tg_ = 0 local th_ = 0 local baseGet = base for i = 1, #data do local addr = data[i] for k = 1, #Get do local w = Get[k] local offset = w[2] - baseGet local finalAddr = addr + offset if w[1] == false then th_ = th_ + 1 t_[th_] = {address = finalAddr, flags = Type} else tg_ = tg_ + 1 t[tg_] = { address = finalAddr, flags = w[3] or Type, value = w[1] } if w[4] then gg.addListItems({{ address = finalAddr, flags = w[3] or Type, value = w[1], freeze = true }}) end end end end if tg_ > 0 then gg.setValues(t) end if th_ > 0 then t_ = gg.getValues(t_) end if th_ > 0 then gg.loadResults(t_) end local tg = tg_ > 0 and ("\n已修改"..tg_.."条数据") or "" local th = th_ > 0 and ("\n已获取"..th_.."条数据") or "" gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) return true end --以上为配置 勿动 readWrite({{false,10217,0,4,nil,nil},{3,32,4}},{{10215,0,4,false}},4,32,"全局猎枪改熊枪") gg.alert('成功') end), CAbutton( "✨长枪改刺刀✨", function() function bynil(nilu,xgb,gnlx) gg.setRanges(nilu[1][3]) if nilu[1][4]==nil or nilu[1][5]==nil then nilu[1][4]=0 nilu[1][5]=-1 end if nilu[1]["name"]==nil then nilu[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(nilu[1][1],nilu[1][2], false, gg.SIGN_EQUAL, nilu[1][4], nilu[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#nilu do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+nilu[a][3],flags=nilu[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==nilu[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(nilu[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(nilu[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(nilu[1]["name"].."开启失败") end end bynil({{10217,4,32,['name']='全局长枪改刺刀'},{3,4,32},},{{10207,4,0,false},},'修改') gg.alert('成功') end), }), CAbox({'静默', CAbutton( "✨初始化[等提示成功]✨", function() gg.alert('初始化成功') end), CAbutton( "✨自动调参数✨", function() gg.alert('成功') end), CAbutton( "✨开启静默✨", function() gg.alert('成功') end), }), CAswitch('实体旋转', function() hq = true local function find_feature_bases(search) if type(search) ~= "table" or #search < 1 then return {} end local main = search[1] gg.clearResults() gg.setRanges(main[3]) gg.searchNumber(main[1], main[2]) local cnt = gg.getResultsCount() if cnt <= 0 then gg.clearResults(); return {} end local results = gg.getResults(cnt) gg.clearResults() local bases = {} for i = 1, #results do bases[#bases + 1] = results[i].address end for si = 2, #search do local s = search[si] local kept = {} for i = 1, #bases do local addr = bases[i] + s[2] local v = gg.getValues({{address = addr, flags = s[3]}})[1] if v and tonumber(v.value) == s[1] then kept[#kept + 1] = bases[i] end end bases = kept if #bases == 0 then break end end return bases end local function find_self_base() local bases = find_feature_bases({ {1080033280, 4, 32}, {1084227584, 4, 4}, {0, 0x1c, 4}, {0, -0x14, 4} }) if #bases == 0 then return nil end local base_addr = bases[1] local is64 = gg.getTargetInfo().x64 local ptrType = is64 and 32 or 4 local ptr = gg.getValues({{address = base_addr - 0x300, flags = ptrType}})[1] if not ptr or ptr.value == 0 then return nil end local countV = gg.getValues({{address = ptr.value + 0x20, flags = 4}})[1] if not countV then return nil end local count = countV.value if count <= 0 then return nil end ptr = gg.getValues({{address = ptr.value + 0x18, flags = ptrType}})[1] if not ptr or ptr.value == 0 then return nil end for i = 0, count - 1 do local personPtr = gg.getValues({{address = ptr.value + 0x30 + (0x18 * i), flags = ptrType}})[1] if personPtr and personPtr.value ~= 0 then local selfCheck = gg.getValues({{address = personPtr.value + 0xA8, flags = 4}})[1] if selfCheck and selfCheck.value == 1 then return personPtr.value end end end return nil end local function find_second_coord_addr() local bases = find_feature_bases({ {1112014848, 4, 32}, {1117126656, 0x50, 4}, {1, 0xc, 4} }) if #bases == 0 then return nil end return bases[1] + 0x30 end local config = {rotationSpeed = 179, rotationSmoothness = 1440} local self_addr = find_self_base() if self_addr == nil then return end local dir_x_addr = self_addr + 0x4FC local dir_z_addr = self_addr + 0x504 local second_coord_addr = find_second_coord_addr() local SMOOTHNESS = config.rotationSmoothness local SPEED = config.rotationSpeed local rad_step = 2 * math.pi / SMOOTHNESS local sin_table, cos_table = {}, {} for i = 0, SMOOTHNESS - 1 do local a = i * rad_step sin_table[i] = math.sin(a) cos_table[i] = math.cos(a) end local current_step = 0 while hq do local idx = current_step % SMOOTHNESS local modify_values = { {address = dir_x_addr, flags = 16, value = sin_table[idx]}, {address = dir_z_addr, flags = 16, value = cos_table[idx]} } if second_coord_addr then modify_values[#modify_values + 1] = {address = second_coord_addr, flags = 16, value = sin_table[idx]} modify_values[#modify_values + 1] = {address = second_coord_addr + 8, flags = 16, value = cos_table[idx]} end gg.setValues(modify_values) current_step = current_step + SPEED end hq = false toast.white("已停止旋转") end), CAbutton('扇子去除前后摇', function() local qmnb= { {['memory']=32}, {['name']='扇子'}, {['value']=0.8569999933242798, ['type']=16}, {['lv']=1.0,['offset']=32, ['type']=16}, {['lv']=1.0,['offset']=188, ['type']=16}, {['lv']=1.0,['offset']=348, ['type']=16}, {['lv']=1.0,['offset']=532, ['type']=16}, } local qmxg= { {['value']=2147483647,['offset']=32,['type']=16}, {['value']=2147483647,['offset']=188,['type']=16}, {['value']=0.25,['offset']=348,['type']=16}, {['value']=0.25,['offset']=532,['type']=16}, } xqmnb(qmnb,qmxg) end), CAswitch('扇子范围', function() local qmnb= { {['memory']=32}, {['name']='扇子'}, {['value']=0.7809462547302246, ['type']=16}, {['lv']=1.7999999523162842,['offset']=-32, ['type']=16}, } local qmxg= { {['value']=12,['offset']=-28,['type']=16}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='扇子'}, {['value']=0.02087107114493847, ['type']=16}, {['lv']=1.399999976158142,['offset']=-28, ['type']=16}, } local qmxg= { {['value']=12,['offset']=-24,['type']=16}, } xqmnb(qmnb,qmxg) end), CAbox({'买熊用猎枪[点击展开]', CAtext('注:只能局内买\n改完之后点商店购买\n买完之后不要丢会捡不起来',"#00ffff"), CAswitch( "猎枪改熊用猎枪", function() function readWrite(Search, Get, Type, Range, Name) gg.setVisible(false) gg.clearResults() gg.setRanges(Range) local searchCfg = Search[1] local useType = searchCfg[4] or Type local start = searchCfg[5] or 1 local ends = searchCfg[6] or -1 if searchCfg[1] ~= false then gg.searchAddress(searchCfg[1], 0xFFFFFFFF, useType, gg.SIGN_EQUAL, start, ends) end gg.searchNumber(searchCfg[2], useType, false, gg.SIGN_EQUAL, start, ends) local count = gg.getResultCount() if count <= 0 then gg.toast(Name.."开启失败") return false end local result = gg.getResults(count) gg.clearResults() local data = {} local base = searchCfg[3] for i = 1, count do result[i].isUseful = true end for k = 2, #Search do local s = Search[k] local offset = s[2] - base local num = tostring(s[1]) local sType = s[3] or useType local tmp = {} for i = 1, count do tmp[i] = {address = result[i].address + offset, flags = sType} end tmp = gg.getValues(tmp) for i = 1, count do local v = tmp[i] local valStr if v.flags == 16 or v.flags == 64 then valStr = tostring(v.value):sub(1, 6) num = num:sub(1, 6) else valStr = tostring(v.value) end if valStr ~= num then result[i].isUseful = false end end end for i = 1, count do if result[i].isUseful then data[#data + 1] = result[i].address end end if #data <= 0 then gg.toast("\n"..Name.."开启失败", false) return false end local t = {} local t_ = {} local tg_ = 0 local th_ = 0 local baseGet = base for i = 1, #data do local addr = data[i] for k = 1, #Get do local w = Get[k] local offset = w[2] - baseGet local finalAddr = addr + offset if w[1] == false then th_ = th_ + 1 t_[th_] = {address = finalAddr, flags = Type} else tg_ = tg_ + 1 t[tg_] = { address = finalAddr, flags = w[3] or Type, value = w[1] } if w[4] then gg.addListItems({{ address = finalAddr, flags = w[3] or Type, value = w[1], freeze = true }}) end end end end if tg_ > 0 then gg.setValues(t) end if th_ > 0 then t_ = gg.getValues(t_) end if th_ > 0 then gg.loadResults(t_) end local tg = tg_ > 0 and ("\n已修改"..tg_.."条数据") or "" local th = th_ > 0 and ("\n已获取"..th_.."条数据") or "" gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) return true end --以上为配置 勿动 readWrite({{false,400005,0,4,nil,nil},{3,32,4}},{{400002,0,4,false}},4,32,"全局猎枪改熊枪") end), CAswitch( "手枪改兵熊猎枪", function() function readWrite(Search, Get, Type, Range, Name) gg.setVisible(false) gg.clearResults() gg.setRanges(Range) local searchCfg = Search[1] local useType = searchCfg[4] or Type local start = searchCfg[5] or 1 local ends = searchCfg[6] or -1 if searchCfg[1] ~= false then gg.searchAddress(searchCfg[1], 0xFFFFFFFF, useType, gg.SIGN_EQUAL, start, ends) end gg.searchNumber(searchCfg[2], useType, false, gg.SIGN_EQUAL, start, ends) local count = gg.getResultCount() if count <= 0 then gg.toast(Name.."开启失败") return false end local result = gg.getResults(count) gg.clearResults() local data = {} local base = searchCfg[3] for i = 1, count do result[i].isUseful = true end for k = 2, #Search do local s = Search[k] local offset = s[2] - base local num = tostring(s[1]) local sType = s[3] or useType local tmp = {} for i = 1, count do tmp[i] = {address = result[i].address + offset, flags = sType} end tmp = gg.getValues(tmp) for i = 1, count do local v = tmp[i] local valStr if v.flags == 16 or v.flags == 64 then valStr = tostring(v.value):sub(1, 6) num = num:sub(1, 6) else valStr = tostring(v.value) end if valStr ~= num then result[i].isUseful = false end end end for i = 1, count do if result[i].isUseful then data[#data + 1] = result[i].address end end if #data <= 0 then gg.toast("\n"..Name.."开启失败", false) return false end local t = {} local t_ = {} local tg_ = 0 local th_ = 0 local baseGet = base for i = 1, #data do local addr = data[i] for k = 1, #Get do local w = Get[k] local offset = w[2] - baseGet local finalAddr = addr + offset if w[1] == false then th_ = th_ + 1 t_[th_] = {address = finalAddr, flags = Type} else tg_ = tg_ + 1 t[tg_] = { address = finalAddr, flags = w[3] or Type, value = w[1] } if w[4] then gg.addListItems({{ address = finalAddr, flags = w[3] or Type, value = w[1], freeze = true }}) end end end end if tg_ > 0 then gg.setValues(t) end if th_ > 0 then t_ = gg.getValues(t_) end if th_ > 0 then gg.loadResults(t_) end local tg = tg_ > 0 and ("\n已修改"..tg_.."条数据") or "" local th = th_ > 0 and ("\n已获取"..th_.."条数据") or "" gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) return true end --以上为配置 勿动 readWrite({{false,10205,0,4,nil,nil},{3,32,4}},{{400002,0,4,false}},4,32,"全局手枪改熊枪") end), }), CAswitch( "左轮手枪据点无后", function() local qmnb= { {['memory']=32}, {['name']='左轮手枪'}, {['value']=2.799999952316284, ['type']=16}, {['lv']=0.30000001192092896,['offset']=-52, ['type']=16}, {['lv']=0.30000001192092896,['offset']=124, ['type']=16}, } local qmxg= { {['value']=0.0,['offset']=-4,['type']=16}, {['value']=0.0,['offset']=92,['type']=16}, {['value']=0.0,['offset']=104,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end), CAswitch("防抖", function() local Solitary_Gx = function(Tab,KT) gg.setVisible(false) gg.clearResults() gg.setRanges(Tab["内存"]) gg.searchNumber(Tab["主特征码"][1], Tab["主特征码"][2], false, gg.SIGN_EQUAL, 0, -1, 0) local results = gg.getResults(gg.getResultsCount()) if not results then return gg.toast("未搜到结果") end gg.clearResults() local Ton = tonumber local Tsr = tonumber if KT then Tsr = tostring end for index, value in pairs(Tab["副特征码"]) do for i = 1, #results do results[i].address = results[i].address + value[3] results[i].flags = value[2] end local _ofResults, Final = gg.getValues(results), {} for i = 1, #_ofResults do if type(value[1]) == "table" then for ind, key in pairs(value[1]) do local __npt = string.find(key, "~") local Min, Max, Length if __npt then Min = Ton(string.sub(key, 0, (__npt-1))) Max = Ton(string.sub(key, (__npt+1), -1)) if _ofResults[i].value >= Min and _ofResults[i].value <= Max then Length = #Final + 1 Final[Length] = {} Final[Length].address = _ofResults[i].address - value[3] Final[Length].flags = value[2] end elseif Tsr(_ofResults[i].value) == Tsr(key) then Length = #Final + 1 Final[Length] = {} Final[Length].address = _ofResults[i].address - value[3] Final[Length].flags = value[2] end end else local __npt = string.find(value[1], "~") local Min, Max, Length if __npt then Min = Ton(string.sub(value[1], 0, (__npt-1))) Max = Ton(string.sub(value[1], (__npt+1), -1)) if _ofResults[i].value >= Min and _ofResults[i].value <= Max then Length = #Final + 1 Final[Length] = {} Final[Length].address = _ofResults[i].address - value[3] Final[Length].flags = value[2] end elseif Tsr(_ofResults[i].value) == Tsr(value[1]) then Length = #Final + 1 Final[Length] = {} Final[Length].address = _ofResults[i].address - value[3] Final[Length].flags = value[2] end end end if #Final == 0 then return gg.toast("未偏移到结果") end results = gg.getValues(Final) end for index, value in pairs(Tab["修改"]) do local EditAll = {} for i = 1, #results do EditAll[i] = {} EditAll[i].address = results[i].address + value[3] EditAll[i].flags = value[2] EditAll[i].value = value[1] if value[4] or Tab["是否全部冻结"] then EditAll[i].freeze = nil end end if value[4] or Tab["是否全部冻结"] then gg.addListItems(EditAll) else gg.setValues(EditAll) end end for index, value in pairs(Tab["修改"]) do local EditAll = {} for i = 1, #results do EditAll[i] = {} EditAll[i].address = results[i].address + value[3] EditAll[i].flags = value[2] EditAll[i].value = value[1] if value[4] or Tab["是否全部冻结"] then EditAll[i].freeze = true end end if value[4] or Tab["是否全部冻结"] then gg.addListItems(EditAll) else gg.setValues(EditAll) end end return gg.toast(Tab["功能名字"] .. "已开启 共修改" .. (#results * #Tab["修改"]) .."条数据") end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end Solitary_Gx({ ["主特征码"] = {"30",16}, ["副特征码"] = { {"10",16,-8}, {"20",16,-4}, {"15",16,16}, }, ["修改"] = { {30,16,-16,false},--改--类型--偏移量--冻结 {0.5,16,664,false},--改--类型--偏移量--冻结 {2.5,16,-12,false},--改--类型--偏移量--冻结 {0.1,16,4,false},--改--类型--偏移量--冻结 }, ["功能名字"] = "防抖屏", ["内存"] = 32, }) end), CAswitch( "喷子据点无后", function() local qmnb= { {['memory']=32}, {['name']='喷子据点无后'}, {['value']=1.7999999523162842, ['type']=16}, {['lv']=0.30000001192092896,['offset']=20, ['type']=16}, } local qmxg= { {['value']=0,['offset']=-108,['type']=16}, {['value']=0,['offset']=-20,['type']=16}, {['value']=0,['offset']=-12,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end), CAswitch('喷子无后', function() local qmnb= { {['memory']=32}, {['name']='喷子无后'}, {['value']=1.7999999523162842, ['type']=16}, {['lv']=6.0,['offset']=-104, ['type']=16}, {['lv']=0.30000001192092896,['offset']=20, ['type']=16}, } local qmxg= { {['value']=0.0,['offset']=-108,['type']=16}, } xqmnb(qmnb,qmxg) end), CAseek('游戏帧率','osidnsl',5,144,60,1,'帧率',--名称,id,最小值,最大值,当前值,步长,单位 function(v) gg.toast('设置为'..v..'帧率') local qmnb= { {['memory']=8}, {['name']='游戏帧率'}, {['value']=171741748, ['type']=4}, {['lv']=1072,['offset']=-1460, ['type']=4}, } local qmxg= { {['value']=144,['offset']=-1512,['type']=4}, } xqmnb(qmnb,qmxg) end), CAbutton( "锁帧120", function() if gg.getRangesList("libunity.so")[1] then local t = {} t[1] = gg.getRangesList("libunity.so")[1]["start"] + 0x95A1B8D8; -- 数值地址:0x733221B8D8 gg.setValues({ [1] = { address = t[1], flags = 4, value = 999, }, }) gg.toast("开启成功") end gg.toast("开启成功") string.toMusic("开启成功") end), CAswitch( "隐藏名字[升级版]", function() XGBase( {gg.getRangesList('libunity.so')[3].start}, { {8.47963525E-21,16,0x6DE98C}, }) end, function() XGBase( {gg.getRangesList('libunity.so')[3].start}, { {8.524923392971503E-21,16,0x6DE98C}, }) end), CAbutton("可视距离", function() ms={} function setvalue(add,value,falgs,dj) local WY={} WY[1]={} WY[1].address=add WY[1].value=value WY[1].flags=falgs if dj==true then WY[1].freeze=true gg.addListItems(WY) else gg.setValues(WY) end end function ms.ss(num,ty,nc,mb,qs,zd) gg.clearResults() gg.setRanges(nc) gg.searchNumber(num,ty,false,gg.SIGN_EQUAL,qs or 1,zd or -1) if mb~=nil and mb~=false and mb then gg.refineAddress(mb) end Result=gg.getResults(gg.getResultCount()) end function ms.py(num,py,ty) if(Result and #Result~=0)then t={} for i,v in ipairs(Result) do t[i]={} t[i].address=v.address+py t[i].flags=ty end t=gg.getValues(t) for i,v in ipairs(t) do if v.value~=num then Result[i]=nil end end local MS={} for i,v in pairs(Result) do MS[#MS+1]=v end Result=MS end end function ms.bc() data={} if Result==nil or #Result==0 then gg.toast("开启失败") else for i,v in pairs(Result) do data[#data+1]=v.address end gg.toast("共搜索了"..(#data).."条数据") gg.loadResults(Result) end Result=nil end function ms.edit(nn,off,ty,dj) if(Result)then ms.bc() end if #data>0 then for i,v in ipairs(data) do setvalue(v+off,nn,ty,dj or false) end end gg.clearResults() end ms.ss(1036831949,4,32) ms.py(1084227584,-4,4) ms.py(-1,8,4) ms.edit(9999,4,16,true) end), CAbutton("改4队天气", function() ms={} function setvalue(add,value,falgs,dj) local WY={} WY[1]={} WY[1].address=add WY[1].value=value WY[1].flags=falgs if dj==true then WY[1].freeze=true gg.addListItems(WY) else gg.setValues(WY) end end function ms.ss(num,ty,nc,mb,qs,zd) gg.clearResults() gg.setRanges(nc) gg.searchNumber(num,ty,false,gg.SIGN_EQUAL,qs or 1,zd or -1) if mb~=nil and mb~=false and mb then gg.refineAddress(mb) end Result=gg.getResults(gg.getResultCount()) end function ms.py(num,py,ty) if(Result and #Result~=0)then t={} for i,v in ipairs(Result) do t[i]={} t[i].address=v.address+py t[i].flags=ty end t=gg.getValues(t) for i,v in ipairs(t) do if v.value~=num then Result[i]=nil end end local MS={} for i,v in pairs(Result) do MS[#MS+1]=v end Result=MS end end function ms.bc() data={} if Result==nil or #Result==0 then gg.toast("开启失败") else for i,v in pairs(Result) do data[#data+1]=v.address end gg.toast("共搜索了"..(#data).."条数据") gg.loadResults(Result) end Result=nil end function ms.edit(nn,off,ty,dj) if(Result)then ms.bc() end if #data>0 then for i,v in ipairs(data) do setvalue(v+off,nn,ty,dj or false) end end gg.clearResults() end ms.ss(5001,4,32) ms.py(49999,-24,4) ms.py(70000,-4,4) ms.py(81000,-44,4) ms.py(70001,-48,4) ms.py(60001,-8,4) ms.py(40000,-28,4) ms.py(4001,-20,4) ms.edit(1001,-40,4) end), CAbutton("超级变速", function() local qmnb = { {['memory'] = 32}, {['name'] = '全局加速'}, {['value'] = 0.03333330154418945, ['type'] = 16}, {['lv'] = 1.0, ['offset'] = -8, ['type'] = 16}, {['lv'] = 0.3333333432674408, ['offset'] = -4, ['type'] = 16}, } local qmxg = { {['value'] = 30, ['offset'] = -8, ['type'] = 16}, } xqmnb(qmnb, qmxg) gg.toast("开启成功") string.toMusic("开启成功") end, function() local qmnb = { {['memory'] = 32}, {['name'] = '全局加速'}, {['value'] = 0.03333330154418945, ['type'] = 16}, {['lv'] = 30, ['offset'] = -8, ['type'] = 16}, {['lv'] = 0.3333333432674408, ['offset'] = -4, ['type'] = 16}, } local qmxg = { {['value'] = 1.0, ['offset'] = -8, ['type'] = 16}, } xqmnb(qmnb, qmxg) gg.toast("关闭成功") string.toMusic("关闭成功") end), CAswitch( "全局变速[加攻速]", function() local qmnb= { {['memory']=32}, {['name']='变速'}, {['value']=0.03333330154418945, ['type']=16}, {['lv']=0.3333333432674408,['offset']=-4, ['type']=16}, } local qmxg= { {['value']=1.9,['offset']=-8,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) end, function() local qmnb= { {['memory']=32}, {['name']='变速'}, {['value']=0.03333330154418945, ['type']=16}, {['lv']=0.3333333432674408,['offset']=-4, ['type']=16}, } local qmxg= { {['value']=1,['offset']=-8,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) end), CAbutton("铲子延迟", function() function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end function SearchWrite(Search,Modification) gg.clearResults() gg.searchNumber(Search[1][1],Search[1][2],false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum=0 for i=2,#Search do for index=1,#Result do if gg.getValues({{address=Result[index].address+Search[i][3],flags=Search[i][2]}})[1].value~=Search[i][1]then Result[index].Usable=true sum=sum+1 end end end if sum==#Result then gg.toast(Name..'开启失败') return end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in pairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value[3],flags=value[2],value=value[1],freeze=true} sum=sum+1 if value[4]then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end end end end gg.setValues(Data) gg.addListItems(Freeze) if Freeze==0 then gg.toast(Name..'开启成功,共修改'..sum..'条数据.') else gg.toast(Name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据.') end end local qmnb = { {['memory'] = 32}, {['name'] = '铲子'}, {['value'] = 50, ['type'] = 16}, {['lv'] = 1.5, ['offset'] = 20, ['type'] = 16}, {['lv'] = 2, ['offset'] = 40, ['type'] = 16}, } local qmxg = { {["value"] =2.4,["offset"] = 28, ["type"] = 16,["freeze"] = false}, } xqmnb(qmnb, qmxg) end), CAtext('武器范围开一次全局有效\n桃木剑前后摇一局一开',"#00ffff"), CAcheck({ { "视频教程[必看]", function() gg.goURL("https://pan.jl8.top/view.php/e8033a2de0a740946dfefd991e0a052d.mp4") end, function() gg.copyText("https://pan.jl8.top/view.php/e8033a2de0a740946dfefd991e0a052d.mp4") gg.alert("复制成功,浏览器打开") end }, { "范围铲", function() local qmnb= { {['memory']=32}, {['name']='范围铲'}, {['value']=0.015686247497797012, ['type']=16}, {['lv']=0.4000000059604645,['offset']=-16, ['type']=16}, {['lv']=0.05000000074505806,['offset']=-12, ['type']=16}, {['lv']=0.05000000074505806,['offset']=-8, ['type']=16}, {['lv']=2.0,['offset']=-4, ['type']=16}, {['lv']=0.9200706481933594,['offset']=4, ['type']=16}, {['lv']=0.9803921580314636,['offset']=8, ['type']=16}, {['lv']=1.0,['offset']=12, ['type']=16}, {['lv']=0.9716981053352356,['offset']=16, ['type']=16}, {['lv']=0.0687522143125534,['offset']=20, ['type']=16}, {['lv']=0.0687522143125534,['offset']=24, ['type']=16}, {['lv']=1.0,['offset']=28, ['type']=16}, } local qmxg= { {['value']=15,['offset']=-24,['type']=16}, {['value']=15,['offset']=-20,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end }, { "铲子秒拍", function() local qmnb= { {['memory']=32}, {['name']='铲子'}, {['value']=0.8051947951316833, ['type']=16}, {['lv']=2.0,['offset']=-3536, ['type']=16}, } local qmxg= { {['value']=1.9999999494757503E-4,['offset']=2456,['type']=16}, {['value']=0.0010000000474974513,['offset']=2828,['type']=16}, {['value']=0.0010000000474974513,['offset']=3012,['type']=16}, {['value']=100.0,['offset']=3224,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end }, { "刺刀范围", function() local qmnb= { {['memory']=32}, {['name']='第1步'}, {['value']=0.15000000596046448, ['type']=16}, {['lv']=0.27000001072883606,['offset']=4, ['type']=16}, {['lv']=0.05000000074505806,['offset']=8, ['type']=16}, {['lv']=2.0,['offset']=12, ['type']=16}, } local qmxg= { {['value']=15.0,['offset']=-8,['type']=16}, {['value']=15.0,['offset']=-4,['type']=16}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='刺刀范围'}, {['value']=0.15000000596046448, ['type']=16}, {['lv']=0.12999999523162842,['offset']=4, ['type']=16}, {['lv']=0.05000000074505806,['offset']=8, ['type']=16}, {['lv']=2.0,['offset']=12, ['type']=16}, } local qmxg= { {['value']=15.0,['offset']=-8,['type']=16}, {['value']=15.0,['offset']=-4,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end },{ "桃木剑范围", function() local qmnb= { {['memory']=32}, {['name']='第一步'}, {['value']=0.029999999329447746, ['type']=16}, {['lv']=0.30000001192092896,['offset']=-8, ['type']=16}, {['lv']=2.0,['offset']=4, ['type']=16}, {['lv']=1.0,['offset']=8, ['type']=16}, {['lv']=1.0,['offset']=12, ['type']=16}, {['lv']=1.0,['offset']=16, ['type']=16}, {['lv']=1.0,['offset']=20, ['type']=16}, {['lv']=1.0,['offset']=24, ['type']=16}, {['lv']=1.0,['offset']=28, ['type']=16}, {['lv']=1.0,['offset']=32, ['type']=16}, {['lv']=1.0,['offset']=36, ['type']=16}, } local qmxg= { {['value']=15,['offset']=-16,['type']=16}, {['value']=15,['offset']=-12,['type']=16}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='桃木剑范围'}, {['value']=0.029999999329447746, ['type']=16}, {['lv']=0.30000001192092896,['offset']=-8, ['type']=16}, {['lv']=2.0,['offset']=4, ['type']=16}, {['lv']=1.0,['offset']=8, ['type']=16}, {['lv']=0.6766881942749023,['offset']=16, ['type']=16}, } local qmxg= { {['value']=15,['offset']=-16,['type']=16}, {['value']=15,['offset']=-12,['type']=16}, } xqmnb(qmnb,qmxg) gg.alert('开启成功,蓄力也有效果,全局有效','好的我知道了') end, function() end },{ "长鞭范围", function() local qmnb= { {['memory']=32}, {['name']='长鞭范围'}, {['value']=3.799999952316284, ['type']=16}, {['lv']=50.0,['offset']=-20, ['type']=16}, } local qmxg= { {['value']=12,['offset']=4,['type']=16}, {['value']=12,['offset']=8,['type']=16}, {['value']=12,['offset']=564,['type']=16}, {['value']=12,['offset']=568,['type']=16}, {['value']=12,['offset']=1124,['type']=16}, {['value']=12,['offset']=1128,['type']=16}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='长鞭'}, {['value']=9.5, ['type']=16}, {['lv']=0.019999999552965164,['offset']=16, ['type']=16}, } local qmxg= { {['value']=15,['offset']=4,['type']=16}, {['value']=15,['offset']=8,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end },{ "长鞭去除前后摇旧版", function() local qmnb= { {['memory']=32}, {['name']='鞭子'}, {['value']=0.8939929604530334, ['type']=16}, {['lv']=2.0,['offset']=32, ['type']=16}, } local qmxg= { {['value']=2147483648.0,['offset']=2152,['type']=16}, {['value']=1.401298464324817E-45,['offset']=2216,['type']=16}, {['value']=2147483648.0,['offset']=2960,['type']=16}, {['value']=1.401298464324817E-45,['offset']=3024,['type']=16}, {['value']=2147483648.0,['offset']=3744,['type']=16}, {['value']=1.401298464324817E-45,['offset']=3816,['type']=16}, {['value']=2147483648.0,['offset']=4616,['type']=16}, {['value']=1.401298464324817E-45,['offset']=4688,['type']=16}, {['value']=2147483648.0,['offset']=4932,['type']=16}, {['value']=9.999999747378752E-5,['offset']=5092,['type']=16}, {['value']=1.5,['offset']=5488,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end },{ "长鞭去除前后摇新版", function() local qmnb= { {['memory']=32}, {['name']='鞭子'}, {['value']=0.8939929604530334, ['type']=16}, {['lv']=2.0,['offset']=32, ['type']=16}, } local qmxg= { {['value']=2147483648.0,['offset']=2152,['type']=16}, {['value']=1.401298464324817E-45,['offset']=2216,['type']=16}, {['value']=2147483648.0,['offset']=2960,['type']=16}, {['value']=1.401298464324817E-45,['offset']=3024,['type']=16}, {['value']=2147483648.0,['offset']=3744,['type']=16}, {['value']=1.401298464324817E-45,['offset']=3816,['type']=16}, {['value']=2147483648.0,['offset']=4616,['type']=16}, {['value']=1.401298464324817E-45,['offset']=4688,['type']=16}, {['value']=2147483648.0,['offset']=4932,['type']=16}, {['value']=9.999999747378752E-5,['offset']=5092,['type']=16}, {['value']=1.1,['offset']=5488,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end }, { "桃木剑取消后摇+攻速", function() local t = {"libunity.so:bss", "Cb"} local tt = {0x1C280, 0xFC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = cess, freeze = true}}) local qmnb= { {['memory']=32}, {['name']='桃木剑前后摇'}, {['value']=0.7115384936332703, ['type']=16}, {['lv']=3.0,['offset']=40, ['type']=16}, {['lv']=0.821428656578064,['offset']=160, ['type']=16}, {['lv']=3.0,['offset']=1280, ['type']=16}, } local qmxg= { {['value']=9.999999796611898E-32,['offset']=-1388,['type']=16}, {['value']=9.999999796611898E-32,['offset']=-1204,['type']=16}, {['value']=4.5,['offset']=-992,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end }, { "桃木剑取消后摇", function() local qmnb= { {['memory']=32}, {['name']='桃木剑前后摇'}, {['value']=0.7115384936332703, ['type']=16}, {['lv']=3.0,['offset']=40, ['type']=16}, {['lv']=0.821428656578064,['offset']=160, ['type']=16}, {['lv']=3.0,['offset']=1280, ['type']=16}, } local qmxg= { {['value']=9.999999796611898E-32,['offset']=-1388,['type']=16}, {['value']=9.999999796611898E-32,['offset']=-1204,['type']=16}, {['value']=4.5,['offset']=-992,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end }, { "桃木剑取消后摇新版", function() local qmnb= { {['memory']=32}, {['name']='桃木剑'}, {['value']=0.7115384936332703, ['type']=16}, {['lv']=3.0,['offset']=40, ['type']=16}, {['lv']=0.821428656578064,['offset']=160, ['type']=16}, {['lv']=3.0,['offset']=1280, ['type']=16}, } local qmxg= { {['value']=0.0000001,['offset']=-1388,['type']=16},--三称出刀前摇 {['value']=0.0000001,['offset']=-1204,['type']=16},--一称出刀前摇 {['value']=120,['offset']=-992,['type']=16},--后摇速度 {['value']=0.12,['offset']=-652,['type']=16},--一称伤害延迟 {['value']=0.12,['offset']=-492,['type']=16},--三称伤害延迟 {['value']=0.0001,['offset']=-308,['type']=16},--一称收刀后摇速度 {['value']=1,['offset']=764,['type']=16},--蓄力刀动画速度 } xqmnb(qmnb,qmxg) end, function() end }, { "桃木剑取消后摇+自动蓄力", function() local qmnb= { {['memory']=32}, {['name']='桃木剑'}, {['value']=0.7115384936332703, ['type']=16}, {['lv']=3.0,['offset']=40, ['type']=16}, {['lv']=0.821428656578064,['offset']=160, ['type']=16}, {['lv']=3.0,['offset']=1280, ['type']=16}, } local qmxg= { {['value']=0.0000001,['offset']=-1388,['type']=16},--三称出刀前摇 {['value']=0.0000001,['offset']=-1204,['type']=16},--一称出刀前摇 {['value']=120,['offset']=-992,['type']=16},--后摇速度 {['value']=0.12,['offset']=-652,['type']=16},--一称伤害延迟 {['value']=0.12,['offset']=-492,['type']=16},--三称伤害延迟 {['value']=0.0001,['offset']=-308,['type']=16},--一称收刀后摇速度 {['value']=0,['offset']=764,['type']=16},--蓄力刀动画速度 {['value']=1.0,['offset']=200,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end }, { "长枪范围", function() local qmnb= { {['memory']=32}, {['name']='第一步'}, {['value']=0.029999999329447746, ['type']=16}, {['lv']=0.25,['offset']=-8, ['type']=16}, } local qmxg= { {['value']=15,['offset']=-16,['type']=16}, {['value']=15,['offset']=-12,['type']=16}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='长枪范围'}, {['value']=0.029999999329447746, ['type']=16}, {['lv']=0.25,['offset']=-8, ['type']=16}, } local qmxg= { {['value']=15,['offset']=-16,['type']=16}, {['value']=15,['offset']=-12,['type']=16}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='冲刺范围'}, {['value']=0.029999999329447746, ['type']=16}, {['lv']=0.4000000059604645,['offset']=-4, ['type']=16}, } local qmxg= { {['value']=15.0,['offset']=-12,['type']=16}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=32}, {['name']='蓄力范围'}, {['value']=0.02087107114493847, ['type']=16}, {['lv']=0.10000000149011612,['offset']=-12, ['type']=16}, } local qmxg= { {['value']=15,['offset']=-24,['type']=16}, } xqmnb(qmnb,qmxg) gg.toast("全部开启成功") end, function() end }, { "长枪去除前后摇", function() local qmnb= { {['memory']=32}, {['name']='长'}, {['value']=0.8500000238418579, ['type']=16}, {['lv']=0.25,['offset']=-8, ['type']=16}, {['lv']=4.0,['offset']=40, ['type']=16}, {['lv']=1,['offset']=8924, ['type']=16}, } local qmxg= { {['value']=0.85,['offset']=5988,['type']=16}, {['value']=0.1,['offset']=7572,['type']=16}, {['value']=0.01,['offset']=8924,['type']=16}, {['value']=0.01,['offset']=9108,['type']=16}, } xqmnb(qmnb,qmxg) end, function() end }, }), },{--4娱乐功能 CAseek('飞天遁地','yydsf',-10,10,5,1,'速度',--名称,id,最小值,最大值,当前值,步长,单位 function(d) gg.toast('设置为'..d..'变速') local qmnb= { {['memory']=32}, {['name']='飞天遁地'}, {['value']=4.599999904632568, ['type']=16}, {['lv']=3.343126500982223E20,['offset']=1232, ['type']=16}, } local qmxg= { {['value']=yydsf,['offset']=1060,['type']=16}, } xqmnb(qmnb,qmxg) end), CAseek('变大变小','yydsp',0,4,1,0.5,'速度',--名称,id,最小值,最大值,当前值,步长,单位 function(p) gg.toast('设置为'..p..'变速') local qmnb= { {['memory']=32}, {['name']=''}, {['value']=6.475195135635659E-8, ['type']=16}, {['lv']=0.9999669790267944,['offset']=-48, ['type']=16}, {['lv']=2.032280690400512E-7,['offset']=4, ['type']=16}, {['lv']=1.339713140424692E-8,['offset']=56, ['type']=16}, } local qmxg= { {['value']=yydsp,['offset']=-1904,['type']=16}, {['value']=yydsp,['offset']=-1900,['type']=16}, {['value']=yydsp,['offset']=-1896,['type']=16}, } xqmnb(qmnb,qmxg) end), CAbox({'娱乐功能', CAbutton( '改房间号', function() ag= gg.prompt({[1]="请输入你当前的房间号,没效果多改几次,此功能仅供娱乐"}, {[1]=""}, {[1]="txet"}) if ag == nil then else gg.clearResults() gg.setRanges(32) gg.searchNumber(";"..ag[1].."", gg["TYPE_WORD"], false, gg["SIGN_EQUAL"], 0, -1) gg.searchNumber( ag[1] , gg["TYPE_WORD"], false, gg["SIGN_EQUAL"], 0, -1) if gg.getResultCount() >= 300 then gg.alert("修改不了了.你账号有风险")Main0()end gg.getResults(100) gg.searchNumber( ag[1] , gg["TYPE_WORD"], false, gg["SIGN_EQUAL"], 0, -1) if gg.getResultCount() >= 300 then gg.alert("修改不了了.你账号有风险")Main0()end gg.getResults(100) gg.editAll(";0000000",gg["TYPE_WORD"], false, gg["SIGN_EQUAL"], 0, -1) gg.toast("修改成功") gg.clearResults() end end), CAbutton( '自改金砖', function() T=gg.prompt({'可以改成你想要的'},{[1]='20'},{[1]='number'}) if T == nil or T[1] == '' or T[1] == '99' then gg.toast("取消") else end local qmnb= { {['memory']=32}, {['name']='。。。'}, {['value']=440001, ['type']=4}, {['lv']=1750007199,['offset']=-80, ['type']=4}, } local qmxg= { {['value']=T[1],['offset']=92,['type']=4}, } xqmnb(qmnb,qmxg) end), }), CAbox({'小狐狸葫芦改其他怪物', CAswitch('小狐狸改老版天王', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200033", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200033",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("200012", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), CAswitch('小狐狸改盲犬', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200033", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200033",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("200005", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), CAswitch('小狐狸改远古巨鲶', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200033", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200033",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("201001", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), CAswitch('小狐狸改陷阱蟾蜍', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200033", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200033",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("200006", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), CAswitch('小狐狸改九色鹿', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200033", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200033",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("240002", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), }), CAbox({'土拨鼠葫芦改其他怪物', CAswitch('土拨鼠改老版天王', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200004", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200004",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("200012", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), CAswitch('土拨鼠改盲犬', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200004", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200004",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("200005", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), CAswitch('土拨鼠改远古巨鲶', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200004", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200004",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("201001", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), CAswitch('土拨鼠改陷阱蟾蜍', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200004", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200004",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("200006", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), CAswitch('土拨鼠改九色鹿', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("200004", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("200004",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("240002", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end, function() gg.toast("无法关闭") end), }), CAbutton( '角色改土拨鼠', function() --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x110 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 272, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x188 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 392, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x1A0 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 416, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x98 -> 0xA8 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 152, 168, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x120 -> 0x0 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 288, 0, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x38 -> 0x128 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 56, 296, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x30 -> 0x1A8 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 48, 424, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x1A0 -> 0x78 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 416, 120, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x1A0 -> 0x40 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 416, 64, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x110 -> 0x50 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 272, 80, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x1A0 -> 0x48 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 416, 72, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x88 -> 0xD8 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 136, 216, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x90 -> 0xB0 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 144, 176, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x98 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 152, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x20 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 32, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x278 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 632, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x200 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 512, 184, 392, 48}, 5) gg.edits(addr, {{102, 4, 0, true}}) end), CAbutton( '角色改精绝女王', function() --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x110 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 272, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x188 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 392, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x1A0 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 416, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x98 -> 0xA8 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 152, 168, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x120 -> 0x0 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 288, 0, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x38 -> 0x128 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 56, 296, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x30 -> 0x1A8 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 48, 424, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x1A0 -> 0x78 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 416, 120, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x1A0 -> 0x40 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 416, 64, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x110 -> 0x50 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 272, 80, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x1A0 -> 0x48 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 416, 72, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x88 -> 0xD8 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 136, 216, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0xADE50 -> 0x90 -> 0xB0 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {712272, 144, 176, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x98 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 152, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x20 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 32, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x278 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 632, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) --libil2cpp.so + 0x94370 -> 0x2A8 -> 0x200 -> 0xB8 -> 0x188 -> 0x30 local addr = readPointer("libil2cpp.so", {607088, 680, 512, 184, 392, 48}, 5) gg.edits(addr, {{103, 4, 0, true}}) end), CAbutton( '祈愿圣杯', function() local qmnb= { {['memory']=32}, {['name']='祈愿圣杯'}, {['value']=1000039, ['type']=4}, {['lv']=1000017,['offset']=4, ['type']=4}, } local qmxg= { {['value']=1000092,['offset']=-24,['type']=4}, {['value']=1000092,['offset']=-20,['type']=4}, {['value']=1000092,['offset']=-16,['type']=4}, {['value']=1000092,['offset']=-12,['type']=4}, {['value']=1000092,['offset']=-8,['type']=4}, {['value']=1000092,['offset']=-4,['type']=4}, } xqmnb(qmnb,qmxg) end), CAbutton( '变成大头', function() local qmnb= { {['memory']=32}, {['name']='变小'}, {['value']=6.475195135635659E-8, ['type']=16}, {['lv']=0.9999669790267944,['offset']=-48, ['type']=16}, {['lv']=2.032280690400512E-7,['offset']=4, ['type']=16}, {['lv']=1.339713140424692E-8,['offset']=56, ['type']=16}, } local qmxg= { {['value']=3,['offset']=-32,['type']=16}, {['value']=3,['offset']=-28,['type']=16}, {['value']=3,['offset']=-24,['type']=16}, } xqmnb(qmnb,qmxg) end), CAbutton('喷子变大', function() local qmnb= { {['memory']=32}, {['name']='喷子变大'}, {['value']=0.0660746768116951, ['type']=16}, {['lv']=1.0,['offset']=-112, ['type']=16}, {['lv']=1.0,['offset']=-108, ['type']=16}, {['lv']=1.0,['offset']=-104, ['type']=16}, {['lv']=0.043170489370822906,['offset']=4, ['type']=16}, {['lv']=-0.022723674774169922,['offset']=8, ['type']=16}, } local qmxg= { {['value']=4,['offset']=-112,['type']=16,['freeze']=true}, {['value']=4,['offset']=-108,['type']=16,['freeze']=true}, {['value']=4,['offset']=-104,['type']=16,['freeze']=true}, } xqmnb(qmnb,qmxg) end), CAbutton('喷子无后', function() local qmnb= { {['memory']=32}, {['name']='喷子无后'}, {['value']=1.7999999523162842, ['type']=16}, {['lv']=6.0,['offset']=-104, ['type']=16}, {['lv']=0.30000001192092896,['offset']=20, ['type']=16}, } local qmxg= { {['value']=0.0,['offset']=-108,['type']=16}, } xqmnb(qmnb,qmxg) end), CAbutton('神秘功能', function() local qmnb= { {['memory']=32}, {['name']='桃木剑'}, {['value']=0.7115384936332703, ['type']=16}, {['lv']=3.0,['offset']=40, ['type']=16}, {['lv']=0.821428656578064,['offset']=160, ['type']=16}, {['lv']=3.0,['offset']=1280, ['type']=16}, } local qmxg= { {['value']=0.0000001,['offset']=-1388,['type']=16},--三称出刀前摇 {['value']=0.0000001,['offset']=-1204,['type']=16},--一称出刀前摇 {['value']=120,['offset']=-992,['type']=16},--后摇速度 {['value']=0.12,['offset']=-652,['type']=16},--一称伤害延迟 {['value']=0.12,['offset']=-492,['type']=16},--三称伤害延迟 {['value']=0.0001,['offset']=-308,['type']=16},--一称收刀后摇速度 {['value']=0,['offset']=764,['type']=16},--蓄力刀动画速度 {['value']=0.0,['offset']=-1016,['type']=16}, } xqmnb(qmnb,qmxg) end), CAbox({'回收物品美化', CAbutton('摸金符美化天下第一剑', function() gg.toast("正在开启请耐心等待") local qmnb= { {['memory']=32}, {['name']='第1步'}, {['value']=4000, ['type']=4}, {['lv']=100007,['offset']=-1548, ['type']=4}, {['lv']=100007,['offset']=-1340, ['type']=4}, {['lv']=100007,['offset']=-1132, ['type']=4}, {['lv']=100007,['offset']=-924, ['type']=4}, {['lv']=100007,['offset']=-716, ['type']=4}, {['lv']=100007,['offset']=-508, ['type']=4}, {['lv']=100007,['offset']=-300, ['type']=4}, {['lv']=100007,['offset']=-92, ['type']=4}, } local qmxg= { {['value']=1000000,['offset']=-4,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("100007", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("100007",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1000)--设置修改前1000个代码 gg.editAll("1000023", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAbutton('摸金符美化祈愿圣杯', function() gg.toast("正在开启请耐心等待") local qmnb= { {['memory']=32}, {['name']='第1步'}, {['value']=4000, ['type']=4}, {['lv']=100007,['offset']=-1548, ['type']=4}, {['lv']=100007,['offset']=-1340, ['type']=4}, {['lv']=100007,['offset']=-1132, ['type']=4}, {['lv']=100007,['offset']=-924, ['type']=4}, {['lv']=100007,['offset']=-716, ['type']=4}, {['lv']=100007,['offset']=-508, ['type']=4}, {['lv']=100007,['offset']=-300, ['type']=4}, {['lv']=100007,['offset']=-92, ['type']=4}, } local qmxg= { {['value']=3000000,['offset']=-4,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("100007", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("100007",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1000)--设置修改前1000个代码 gg.editAll("1000092", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAbutton('摸金符美化传国玉玺', function() gg.toast("正在开启请耐心等待") local qmnb= { {['memory']=32}, {['name']='第1步'}, {['value']=4000, ['type']=4}, {['lv']=100007,['offset']=-1548, ['type']=4}, {['lv']=100007,['offset']=-1340, ['type']=4}, {['lv']=100007,['offset']=-1132, ['type']=4}, {['lv']=100007,['offset']=-924, ['type']=4}, {['lv']=100007,['offset']=-716, ['type']=4}, {['lv']=100007,['offset']=-508, ['type']=4}, {['lv']=100007,['offset']=-300, ['type']=4}, {['lv']=100007,['offset']=-92, ['type']=4}, } local qmxg= { {['value']=1000000,['offset']=-4,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("100007", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("100007",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1000)--设置修改前1000个代码 gg.editAll("1000047", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAbutton('金樽美化传国玉玺', function() gg.toast("正在开启请耐心等待") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("1000039", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("1000039",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1000)--设置修改前1000个代码 gg.editAll("1000023", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAbutton('金樽美化天下第一剑', function() gg.toast("正在开启请耐心等待") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("1000039", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("1000039",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1000)--设置修改前1000个代码 gg.editAll("1000047", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAbutton('金樽美化祈愿圣杯', function() gg.toast("正在开启请耐心等待") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("1000039", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("1000039",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1000)--设置修改前200个代码 gg.editAll("1000092", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAswitch("摸金符改圣杯", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("100007", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("100007",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200) gg.editAll("1,000,092", gg.TYPE_DWORD) gg.toast("实体刷铲铲币开启成功") gg.clearResults() end end ), CAswitch("摸金符改天下第一剑", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("100007", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("100007",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200) gg.editAll("1,000,023", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end ), CAswitch("摸金符改雪莲", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("100007", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("100007",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200) gg.editAll("1000067", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end ), CAswitch("摸金符改鬼喜", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("100007", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("100007",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200) gg.editAll("1000037", gg.TYPE_DWORD) gg.toast("开启成功") gg.clearResults() end end ), CAswitch("增加爆率", function() gg.toast("开启成功") end, function() -- 关闭函数 end ), CAswitch("修改房间号", function() ag= gg.prompt({[1]="请输入你当前的房间号,没效果多改几次,此功能仅供娱乐"}, {[1]=""}, {[1]="txet"}) if ag == nil then else gg.clearResults() gg.setRanges(32) gg.searchNumber(";"..ag[1].."", gg["TYPE_WORD"], false, gg["SIGN_EQUAL"], 0, -1) gg.searchNumber( ag[1] , gg["TYPE_WORD"], false, gg["SIGN_EQUAL"], 0, -1) if gg.getResultCount() >= 300 then gg.alert("修改不了了.你账号有风险")Main0()end gg.getResults(100) gg.searchNumber( ag[1] , gg["TYPE_WORD"], false, gg["SIGN_EQUAL"], 0, -1) if gg.getResultCount() >= 300 then gg.alert("修改不了了.你账号有风险")Main0()end gg.getResults(100) gg.editAll(";0000000",gg["TYPE_WORD"], false, gg["SIGN_EQUAL"], 0, -1) gg.toast("修改成功") gg.clearResults() end end ), CAswitch("修改文字", function() gg.clearResults() gg.setRanges(32) a = gg.prompt({"请输入更改前的文字","请输入更改后的文字"},{[1]="",[2]="!"},{"text","text"}) if not a then return end if a[1] == "" then return end if a[2] == "" then return end gg.searchNumber(";"..a[1], gg.TYPE_WORD, false, gg.SIGN_EQUAL, 0, -1, 0) if gg.getResultsCount() == 0 then gg.alert('搜索失败') return end gg.getResults(99999) gg.editAll(";"..a[2], gg.TYPE_WORD) gg.toast("Done✔️") toMusic('开启成功') end ), }), CAbutton( "✨单字id✨", function() gg.toast("单字id功能启动中...") gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC | gg.REGION_C_HEAP | gg.REGION_ANONYMOUS) gg.searchNumber("1915843121", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultsCount() if count > 0 then gg.toast("找到 " .. count .. " 个结果") local results = gg.getResults(count) for i, v in ipairs(results) do results[i].value = 502930938 results[i].freeze = true results[i].address = results[i].address results[i].flags = gg.TYPE_DWORD end gg.setValues(results) gg.addListItems(results) gg.toast("修改完成!已修改 " .. count .. " 个数值并冻结") else gg.toast("未找到匹配的数值") end gg.clearResults() end), CAbutton( "✨双字id功能✨", function() gg.toast("双字id功能启动中...") gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC | gg.REGION_C_HEAP | gg.REGION_ANONYMOUS) gg.searchNumber("1915843121", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultsCount() if count > 0 then gg.toast("找到 " .. count .. " 个结果") local results = gg.getResults(count) for i, v in ipairs(results) do results[i].value = 502930938 results[i].freeze = true results[i].address = results[i].address results[i].flags = gg.TYPE_DWORD end gg.setValues(results) gg.addListItems(results) gg.toast("修改完成!已修改 " .. count .. " 个数值并冻结") else gg.toast("未找到匹配的数值") end gg.clearResults() end), },{--5皮肤美化 CAbox({'小黄背包美化', CAbutton('毛球夹子', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("20000001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("20000001",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("20004006", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAbutton('兔先生的时钟', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("20000001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("20000001",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("20004002", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAbutton('云梦之星', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("20000001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("20000001",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("20004005", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAbutton('天使的召唤', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("20000001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("20000001",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("20004007", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), CAbutton('蝶恋花', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("20000001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("20000001",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(200)--设置修改前200个代码 gg.editAll("20004008", gg.TYPE_DWORD) gg.toast("成功") gg.clearResults() end end), }), CAbox({'小黄', CAbutton('遗失的童话', function() gg.setRanges(32) Name='遗失的童话' local tb1= { {20000007,4,0}, {20000007,4,0}, {20000008,4,4}, {20000009,4,8}, } local tb2= { {20000259,4,0}, {20000260,4,4}, {20000258,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('罗丽', function() gg.setRanges(32) Name='罗丽' local tb1= { {20000007,4,0}, {20000007,4,0}, {20000008,4,4}, {20000009,4,8}, } local tb2= { {20000285,4,0}, {20000286,4,4}, {20000287,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('青丘一梦', function() gg.setRanges(32) Name='青丘一梦' local tb1= { {20000007,4,0}, {20000007,4,0}, {20000008,4,4}, {20000009,4,8}, } local tb2= { {20000229,4,0}, {20000218,4,4}, {20000210,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('霓裳踏雪', function() gg.setRanges(32) Name='霓裳踏雪' local tb1= { {20000007,4,0}, {20000007,4,0}, {20000008,4,4}, {20000009,4,8}, } local tb2= { {20000244,4,0}, {20000245,4,4}, {20000243,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('呱呱雨衣', function() gg.setRanges(32) Name='呱呱雨衣' local tb1= { {20000007,4,0}, {20000007,4,0}, {20000008,4,4}, {20000009,4,8}, } local tb2= { {20000318,4,0}, {20000319,4,4}, {20000317,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('异色序曲', function() gg.setRanges(32) Name='异色序曲' local tb1= { {20000007,4,0}, {20000007,4,0}, {20000008,4,4}, {20000009,4,8}, } local tb2= { {20000330,4,0}, {20000329,4,4}, {20000328,4,8}, } SearchWrite(tb1,tb2,dataType) end), }), CAbox({'逍遥', CAbutton('泽引山海', function() gg.setRanges(32) Name='泽引山海' local tb1= { {20000601,4,0}, {20000601,4,0}, {20000602,4,4}, {20000603,4,8}, } local tb2= { {20000248,4,0}, {20000249,4,4}, {20000247,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('绣春逍影', function() gg.setRanges(32) Name='绣春逍影' local tb1= { {20000601,4,0}, {20000601,4,0}, {20000602,4,4}, {20000603,4,8}, } local tb2= { {20006002,4,0}, {20006003,4,4}, {20006004,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('莲花渡', function() gg.setRanges(32) Name='莲花渡' local tb1= { {20000601,4,0}, {20000601,4,0}, {20000602,4,4}, {20000603,4,8}, } local tb2= { {20000334,4,0}, {20000333,4,4}, {20000332,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('卡原皮特效', function() gg.setRanges(32) Name='逍遥' local tb1= { {20000601,4,0}, {20000601,4,0}, {20000602,4,4}, {20000603,4,8}, } local tb2= { {20000601,4,0}, {20000334,4,4}, {20000332,4,8}, } SearchWrite(tb1,tb2,dataType) end), }), CAbox({'爱丽丝', CAbutton('血色的玛丽', function() gg.setRanges(32) Name='血色的玛丽' local tb1= { {20000010,4,0}, {20000010,4,0}, {20000011,4,4}, {20000012,4,8}, } local tb2= { {20000233,4,0}, {20000234,4,4}, {20000232,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('瑞羽街春', function() gg.setRanges(32) Name='瑞羽街春' local tb1= { {20000010,4,0}, {20000010,4,0}, {20000011,4,4}, {20000012,4,8}, } local tb2= { {20000251,4,0}, {20000252,4,4}, {20000250,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('冰公主', function() gg.setRanges(32) Name='冰公主' local tb1= { {20000010,4,0}, {20000010,4,0}, {20000011,4,4}, {20000012,4,8}, } local tb2= { {20000278,4,0}, {20000279,4,4}, {20000280,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('甜梦派对', function() gg.setRanges(32) Name='甜梦派对' local tb1= { {20000010,4,0}, {20000010,4,0}, {20000011,4,4}, {20000012,4,8}, } local tb2= { {20000339,4,0}, {20000340,4,4}, {20000341,4,8}, } SearchWrite(tb1,tb2,dataType) end), }), CAbox({'薇薇安', CAbutton('圣光之谕', function() gg.setRanges(32) Name='圣光之谕' local tb1= { {20000701,4,0}, {20000701,4,0}, {20000702,4,4}, {20000703,4,8}, } local tb2= { {20000274,4,0}, {20000275,4,4}, {20000276,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('白光莹', function() gg.setRanges(32) Name='白光莹' local tb1= { {20000701,4,0}, {20000701,4,0}, {20000702,4,4}, {20000703,4,8}, } local tb2= { {20000288,4,0}, {20000289,4,4}, {20000290,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('黑夜挽歌', function() local qmnb= { {['memory']=32}, {['name']='黑夜挽歌'}, {['value']=20000701, ['type']=4}, {['lv']=20000702,['offset']=4, ['type']=4}, {['lv']=20000703,['offset']=8, ['type']=4}, } local qmxg= { {['value']=20000255,['offset']=0,['type']=4,['freeze']=true}, {['value']=20000256,['offset']=4,['type']=4,['freeze']=true}, {['value']=20000257,['offset']=8,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) end), }), CAbox({'零', CAbutton('赤焰将军', function() gg.setRanges(32) Name='赤焰将军' local tb1= { {20000013,4,0}, {20000013,4,0}, {20000014,4,4}, {20000015,4,8}, } local tb2= { {20000238,4,4}, {20000239,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('青云逸歌', function() gg.setRanges(32) Name='青云逸歌' local tb1= { {20000013,4,0}, {20000013,4,0}, {20000014,4,4}, {20000015,4,8}, } local tb2= { {20000265,4,0}, {20000266,4,4}, {20000267,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('爱丽零', function() gg.setRanges(32) Name='神秘皮肤' local tb1= { {20000013,4,0}, {20000013,4,0}, {20000014,4,4}, {20000015,4,8}, } local tb2= { {20000248,4,0}, {20000011,4,4}, {20000012,4,8}, } SearchWrite(tb1,tb2,dataType) end), }), CAbox({'巫铃儿', CAbutton('素影瑶光', function() gg.setRanges(32) Name='素影瑶光' local tb1= { {20000801,4,0}, {20000801,4,0}, {20000802,4,4}, {20000803,4,8}, } local tb2= { {20000268,4,0}, {20000269,4,4}, {20000270,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('素影瑶光[红]', function() gg.setRanges(32) Name='镜生遗梦' local tb1= { {20000801,4,0}, {20000801,4,0}, {20000802,4,4}, {20000803,4,8}, } local tb2= { {20000294,4,0}, {20000295,4,4}, {20000296,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('镜生遗梦[白]', function() gg.setRanges(32) Name='镜生遗梦' local tb1= { {20000801,4,0}, {20000801,4,0}, {20000802,4,4}, {20000803,4,8}, } local tb2= { {20000297,4,0}, {20000298,4,4}, {20000299,4,8}, } SearchWrite(tb1,tb2,dataType) end), }), CAbox({'阿念', CAbutton('灵昭鹿鸣', function() gg.setRanges(32) Name='灵昭鹿鸣' local tb1= { {20000502,4,0}, {20000502,4,0}, {20000503,4,4}, {20000504,4,8}, } local tb2= { {20000241,4,0}, {20000242,4,4}, {20000240,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('迷途僵宝', function() gg.setRanges(32) Name='迷途僵宝' local tb1= { {20000502,4,0}, {20000502,4,0}, {20000503,4,4}, {20000504,4,8}, } local tb2= { {20000320,4,0}, {20000321,4,4}, {20000322,4,8}, } SearchWrite(tb1,tb2,dataType) end), }), CAbox({'莉莉', CAbutton('情公主', function() gg.setRanges(32) Name='情公主' local tb1= { {20000901,4,0}, {20000901,4,0}, {20000902,4,4}, {20000903,4,8}, } local tb2= { {20000281,4,0}, {20000282,4,4}, {20000283,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('除妖小师妹', function() gg.setRanges(32) Name='除妖小师妹' local tb1= { {20000901,4,0}, {20000901,4,0}, {20000902,4,4}, {20000903,4,8}, } local tb2= { {20000323,4,0}, {20000324,4,4}, {20000327,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('莓果陷阱', function() gg.setRanges(32) Name='莓果陷阱' local tb1= { {20000901,4,0}, {20000901,4,0}, {20000902,4,4}, {20000903,4,8}, } local tb2= { {20006008,4,0}, {20006009,4,4}, {20006007,4,8}, } SearchWrite(tb1,tb2,dataType) end), }), CAbox({'艾伦', CAbutton('水王子', function() local qmnb= { {['memory']=32}, {['name']='水王子'}, {['value']=20001001, ['type']=4}, {['lv']=20001001,['offset']=0, ['type']=4}, {['lv']=20001002,['offset']=4, ['type']=4}, {['lv']=20001003,['offset']=8, ['type']=4}, } local qmxg= { {['value']=20000291,['offset']=0,['type']=4}, {['value']=20000292,['offset']=4,['type']=4}, {['value']=20000293,['offset']=8,['type']=4}, } xqmnb(qmnb,qmxg) end), CAbutton('绒绒对决', function() local qmnb= { {['memory']=32}, {['name']='绒绒对决'}, {['value']=20001001, ['type']=4}, {['lv']=20001001,['offset']=0, ['type']=4}, {['lv']=20001002,['offset']=4, ['type']=4}, {['lv']=20001003,['offset']=8, ['type']=4}, } local qmxg= { {['value']=20000342,['offset']=0,['type']=4}, {['value']=20000343,['offset']=4,['type']=4}, {['value']=20000344,['offset']=8,['type']=4}, } xqmnb(qmnb,qmxg) end), }), CAtext('当前道具美化为测试\n开启失败重启\n后面会优化', 0xFFAAC8FA,15),--文本,颜色,字号 CAtext('桃木剑', 0xFFD2B48C,15),--文本,颜色,字号 CAbutton('桃木剑-凤鸣九天', function() function clearSearchHistory() gg.clearResults() gg.clearList() end function safeExit() gg.alert("成功") clearSearchHistory() gg.alert("成功") os.exit() end function universalBeautify(searchValue1, searchValue2, improveValue, comboSearch) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) if comboSearch then gg.searchNumber(comboSearch, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) else gg.searchNumber(searchValue1..";10214", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) end local searchCount1 = gg.getResultsCount() if searchCount1 == 0 then gg.alert("失败") return false end gg.searchNumber(tostring(improveValue), gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults1 = gg.getResults(100) if #improvedResults1 == 0 then gg.alert("失败") return false end local firstResultAddress = improvedResults1[1].address local foundValue = nil local scanRange = 500 local addressesToScan = {} for i = 0, scanRange - 1 do addressesToScan[i + 1] = {address = firstResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues = gg.getValues(addressesToScan) for i, valueInfo in ipairs(scannedValues) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then for j = i + 1, #scannedValues do local nextValue = scannedValues[j].value if (math.abs(nextValue) >= 100000000) then foundValue = nextValue break end end break end end if not foundValue then gg.alert("失败") return false end gg.clearResults() gg.searchNumber("10214;121;10;0;20", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local searchCount2 = gg.getResultsCount() if searchCount2 == 0 then gg.alert("失败") return false end gg.searchNumber("10214", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults2 = gg.getResults(100) if #improvedResults2 == 0 then gg.alert("失败") return false end local secondResultAddress = improvedResults2[1].address local targetAddress = nil local addressesToScan2 = {} for i = 0, scanRange - 1 do addressesToScan2[i + 1] = {address = secondResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues2 = gg.getValues(addressesToScan2) local nineDigitCount = 0 for i, valueInfo in ipairs(scannedValues2) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then nineDigitCount = nineDigitCount + 1 if nineDigitCount == 3 then targetAddress = scannedValues2[i].address break end end end if not targetAddress then gg.alert("失败") return false end local replaceData = {{address = targetAddress, flags = gg.TYPE_DWORD, value = foundValue}} gg.setValues(replaceData) return true end function fenmingjiutian() gg.toast("凤鸣九天美化") local success = universalBeautify(5403103, 10214, 5403103, "5403103;10214") if success then gg.toast("凤鸣九天执行完毕") end clearSearchHistory() end gg.alert("大厅开启") local success = fenmingjiutian() if success then gg.toast("凤鸣九天执行完毕") else gg.alert("成功") end clearSearchHistory() end), CAbutton('桃木剑-永眠曲', function() function clearSearchHistory() gg.clearResults() gg.clearList() end function safeExit() gg.alert("成功") clearSearchHistory() gg.alert("成功") os.exit() end function universalBeautify(searchValue1, searchValue2, improveValue, comboSearch) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) if comboSearch then gg.searchNumber(comboSearch, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) else gg.searchNumber(searchValue1..";10214", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) end local searchCount1 = gg.getResultsCount() if searchCount1 == 0 then gg.alert("失败") return false end gg.searchNumber(tostring(improveValue), gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults1 = gg.getResults(100) if #improvedResults1 == 0 then gg.alert("失败") return false end local firstResultAddress = improvedResults1[1].address local foundValue = nil local scanRange = 500 local addressesToScan = {} for i = 0, scanRange - 1 do addressesToScan[i + 1] = {address = firstResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues = gg.getValues(addressesToScan) for i, valueInfo in ipairs(scannedValues) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then for j = i + 1, #scannedValues do local nextValue = scannedValues[j].value if (math.abs(nextValue) >= 100000000) then foundValue = nextValue break end end break end end if not foundValue then gg.alert("失败") return false end gg.clearResults() gg.searchNumber("10214;121;10;0;20", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local searchCount2 = gg.getResultsCount() if searchCount2 == 0 then gg.alert("失败") return false end gg.searchNumber("10214", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults2 = gg.getResults(100) if #improvedResults2 == 0 then gg.alert("失败") return false end local secondResultAddress = improvedResults2[1].address local targetAddress = nil local addressesToScan2 = {} for i = 0, scanRange - 1 do addressesToScan2[i + 1] = {address = secondResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues2 = gg.getValues(addressesToScan2) local nineDigitCount = 0 for i, valueInfo in ipairs(scannedValues2) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then nineDigitCount = nineDigitCount + 1 if nineDigitCount == 3 then targetAddress = scannedValues2[i].address break end end end if not targetAddress then gg.alert("失败") return false end local replaceData = {{address = targetAddress, flags = gg.TYPE_DWORD, value = foundValue}} gg.setValues(replaceData) return true end function yongmianqu() gg.toast("永眠曲美化") local success = universalBeautify(5403101, 10214, 5403101, "5403101;10214") if success then gg.toast("永眠曲执行完毕") end clearSearchHistory() end gg.alert("大厅开启") local success = yongmianqu() if success then gg.toast("永眠曲执行完毕") else gg.alert("成功") end clearSearchHistory() end), CAbutton('桃木剑-最后的独角兽', function() function clearSearchHistory() gg.clearResults() gg.clearList() end function safeExit() gg.alert("成功") clearSearchHistory() gg.alert("成功") os.exit() end function universalBeautify(searchValue1, searchValue2, improveValue, comboSearch) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) if comboSearch then gg.searchNumber(comboSearch, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) else gg.searchNumber(searchValue1..";10214", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) end local searchCount1 = gg.getResultsCount() if searchCount1 == 0 then gg.alert("失败") return false end gg.searchNumber(tostring(improveValue), gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults1 = gg.getResults(100) if #improvedResults1 == 0 then gg.alert("失败") return false end local firstResultAddress = improvedResults1[1].address local foundValue = nil local scanRange = 500 local addressesToScan = {} for i = 0, scanRange - 1 do addressesToScan[i + 1] = {address = firstResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues = gg.getValues(addressesToScan) for i, valueInfo in ipairs(scannedValues) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then for j = i + 1, #scannedValues do local nextValue = scannedValues[j].value if (math.abs(nextValue) >= 100000000) then foundValue = nextValue break end end break end end if not foundValue then gg.alert("失败") return false end gg.clearResults() gg.searchNumber("10214;121;10;0;20", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local searchCount2 = gg.getResultsCount() if searchCount2 == 0 then gg.alert("失败") return false end gg.searchNumber("10214", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults2 = gg.getResults(100) if #improvedResults2 == 0 then gg.alert("失败") return false end local secondResultAddress = improvedResults2[1].address local targetAddress = nil local addressesToScan2 = {} for i = 0, scanRange - 1 do addressesToScan2[i + 1] = {address = secondResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues2 = gg.getValues(addressesToScan2) local nineDigitCount = 0 for i, valueInfo in ipairs(scannedValues2) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then nineDigitCount = nineDigitCount + 1 if nineDigitCount == 3 then targetAddress = scannedValues2[i].address break end end end if not targetAddress then gg.alert("失败") return false end local replaceData = {{address = targetAddress, flags = gg.TYPE_DWORD, value = foundValue}} gg.setValues(replaceData) return true end function lastunicorn() gg.toast("最后的独角兽美化") local success = universalBeautify(5403102, 10214, 5403102, "5403102;10214") if success then gg.toast("最后的独角兽执行完毕") end clearSearchHistory() end gg.alert("大厅开启") local success = lastunicorn() if success then gg.toast("最后的独角兽执行完毕") else gg.alert("成功") end clearSearchHistory() end), CAtext('短管猎枪', 0xFFC19A6B,15),--文本,颜色,字号 CAbutton('短管猎枪-星光的裁决', function() function clearSearchHistory() gg.clearResults() gg.clearList() end function safeExit() gg.alert("成功") clearSearchHistory() gg.alert("成功") os.exit() end -- 适配猎枪的通用美化逻辑(调整特征码和搜索参数) function universalShotgunBeautify(searchValue1, searchValue2, improveValue, comboSearch, secondSearch) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) if comboSearch then gg.searchNumber(comboSearch, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) else gg.searchNumber(searchValue1..";400005", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) end local searchCount1 = gg.getResultsCount() if searchCount1 == 0 then gg.alert("失败") return false end gg.searchNumber(tostring(improveValue), gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults1 = gg.getResults(100) if #improvedResults1 == 0 then gg.alert("失败") return false end local firstResultAddress = improvedResults1[1].address local foundValue = nil local scanRange = 500 local addressesToScan = {} for i = 0, scanRange - 1 do addressesToScan[i + 1] = {address = firstResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues = gg.getValues(addressesToScan) for i, valueInfo in ipairs(scannedValues) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then for j = i + 1, #scannedValues do local nextValue = scannedValues[j].value if (math.abs(nextValue) >= 100000000) then foundValue = nextValue break end end break end end if not foundValue then gg.alert("失败") return false end gg.clearResults() if secondSearch then gg.searchNumber(secondSearch, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) else gg.searchNumber("400005;121;10;0", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) end local searchCount2 = gg.getResultsCount() if searchCount2 == 0 then gg.alert("失败") return false end gg.searchNumber("400005", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults2 = gg.getResults(100) if #improvedResults2 == 0 then gg.alert("失败") return false end -- 猎枪专属:双结果检测逻辑 local secondResultAddress = nil if #improvedResults2 == 2 then for i, result in ipairs(improvedResults2) do local testAddresses = { {address = result.address + 4, flags = gg.TYPE_DWORD}, {address = result.address + 8, flags = gg.TYPE_DWORD}, {address = result.address + 12, flags = gg.TYPE_DWORD} } local testValues = gg.getValues(testAddresses) local hasZero = false for j, testValue in ipairs(testValues) do if testValue.value == 0 then hasZero = true break end end if hasZero then secondResultAddress = result.address break end end if not secondResultAddress then secondResultAddress = improvedResults2[1].address end else secondResultAddress = improvedResults2[1].address end local targetAddress = nil local addressesToScan2 = {} for i = 0, scanRange - 1 do addressesToScan2[i + 1] = {address = secondResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues2 = gg.getValues(addressesToScan2) local nineDigitCount = 0 for i, valueInfo in ipairs(scannedValues2) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then nineDigitCount = nineDigitCount + 1 if nineDigitCount == 3 then targetAddress = scannedValues2[i].address break end end end if not targetAddress then gg.alert("失败") return false end local replaceData = {{address = targetAddress, flags = gg.TYPE_DWORD, value = foundValue}} gg.setValues(replaceData) return true end function starlightJudgment() gg.toast("星光的裁决美化") -- 星光的裁决专属参数:5401101(特征码)、400005(辅助特征码) local success = universalShotgunBeautify(5401101, 400005, 5401101, "5401101;400005", "400005;121;10;0") if success then gg.toast("星光的裁决执行完毕") end clearSearchHistory() end gg.alert("大厅开启") local success = starlightJudgment() if success then gg.toast("星光的裁决执行完毕") else gg.alert("成功") end clearSearchHistory() end), CAbutton('短管猎枪-赞萌露比水枪', function() function clearSearchHistory() gg.clearResults() gg.clearList() end function safeExit() gg.alert("成功") clearSearchHistory() gg.alert("成功") os.exit() end -- 猎枪通用美化逻辑(保留双结果检测) function universalShotgunBeautify(searchValue1, searchValue2, improveValue, comboSearch, secondSearch) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) if comboSearch then gg.searchNumber(comboSearch, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) else gg.searchNumber(searchValue1..";400005", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) end local searchCount1 = gg.getResultsCount() if searchCount1 == 0 then gg.alert("失败") return false end gg.searchNumber(tostring(improveValue), gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults1 = gg.getResults(100) if #improvedResults1 == 0 then gg.alert("失败") return false end local firstResultAddress = improvedResults1[1].address local foundValue = nil local scanRange = 500 local addressesToScan = {} for i = 0, scanRange - 1 do addressesToScan[i + 1] = {address = firstResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues = gg.getValues(addressesToScan) for i, valueInfo in ipairs(scannedValues) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then for j = i + 1, #scannedValues do local nextValue = scannedValues[j].value if (math.abs(nextValue) >= 100000000) then foundValue = nextValue break end end break end end if not foundValue then gg.alert("失败") return false end gg.clearResults() if secondSearch then gg.searchNumber(secondSearch, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) else gg.searchNumber("400005;121;10;0", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) end local searchCount2 = gg.getResultsCount() if searchCount2 == 0 then gg.alert("失败") return false end gg.searchNumber("400005", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local improvedResults2 = gg.getResults(100) if #improvedResults2 == 0 then gg.alert("失败") return false end -- 猎枪专属双结果检测 local secondResultAddress = nil if #improvedResults2 == 2 then for i, result in ipairs(improvedResults2) do local testAddresses = { {address = result.address + 4, flags = gg.TYPE_DWORD}, {address = result.address + 8, flags = gg.TYPE_DWORD}, {address = result.address + 12, flags = gg.TYPE_DWORD} } local testValues = gg.getValues(testAddresses) local hasZero = false for j, testValue in ipairs(testValues) do if testValue.value == 0 then hasZero = true break end end if hasZero then secondResultAddress = result.address break end end if not secondResultAddress then secondResultAddress = improvedResults2[1].address end else secondResultAddress = improvedResults2[1].address end local targetAddress = nil local addressesToScan2 = {} for i = 0, scanRange - 1 do addressesToScan2[i + 1] = {address = secondResultAddress + i * 4, flags = gg.TYPE_DWORD} end local scannedValues2 = gg.getValues(addressesToScan2) local nineDigitCount = 0 for i, valueInfo in ipairs(scannedValues2) do local currentValue = valueInfo.value if (math.abs(currentValue) >= 100000000) then nineDigitCount = nineDigitCount + 1 if nineDigitCount == 3 then targetAddress = scannedValues2[i].address break end end end if not targetAddress then gg.alert("失败") return false end local replaceData = {{address = targetAddress, flags = gg.TYPE_DWORD, value = foundValue}} gg.setValues(replaceData) return true end function rubyWaterGun() gg.toast("赞萌露比水枪美化") -- 赞萌露比水枪专属参数:5401102(特征码)、400005(辅助特征码) local success = universalShotgunBeautify(5401102, 400005, 5401102, "5401102;400005", "400005;121;10;0") if success then gg.toast("赞萌露比水枪执行完毕") end clearSearchHistory() end gg.alert("大厅开启") local success = rubyWaterGun() if success then gg.toast("赞萌露比水枪执行完毕") else gg.alert("成功") end clearSearchHistory() end), },{--6 CAbutton("自改头部", function() local OP = gg.prompt({ "输入原本头部的代码", "输入你要修改的代码\n代码如下:\n小黄20000002\n遗失的童话20000259\n霓裳踏雪20000244\n青丘一梦20000218\n罗丽20000285\n雨衣20000318\n小黄新皮肤20000329\n爱丽丝20000010\n血色中的玛丽20000233\n瑞羽衔春20000251\n冰公主20000278\n薯排甜心20000231\n零20000013\n赤炼将军20000237\n青云逸歌20000265\n阿念20000502\n灵昭鹿鸣20000241\n王子与骑士20000263\n僵尸20000322\n逍遥20000601\n泽引山海20000248\n逍遥新皮金皮20000333\n逍遥魔盒20006004\n薇薇安20000701\n黑月挽歌20000256\n圣光之逾20000275\n白光莹20000288\n巫铃儿20000801\n素影瑶光20000268\n镜生遗梦:主:20000294 副:20000297\n镜花辞20000316\n莉莉20000901\n情公主20000281\n僵尸20000327\n艾伦20001001\n水王子20000291\n输入你要修改的代码" }, {[1]="", [2]=""}, {[1]='number', [2]='number'}) if OP == nil or OP[1] == '' or OP[2] == '' then gg.toast("取消修改") else gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultCount() if count == 0 then gg.toast("未找到代码") else gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(math.min(count, 1000)) gg.editAll(OP[2], gg.TYPE_DWORD) gg.clearResults() gg.toast("头部修改成功") end end end), -- 取消头部修改 CAbutton("取消头部修改", function() local OP = gg.prompt({ "输入要取消的头部代码", "输入要恢复的默认代码" }, {[1]="", [2]=""}, {[1]='number', [2]='number'}) if OP == nil or OP[1] == '' or OP[2] == '' then gg.toast("取消操作") else gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultCount() if count == 0 then gg.toast("未找到代码") else gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(math.min(count, 1000)) gg.editAll(OP[2], gg.TYPE_DWORD) gg.clearResults() gg.toast("头部已恢复默认") end end end), -- 头像框修改 CAbutton("自改头像框", function() local OP = gg.prompt({ "输入原本头像框代码(默认:230001)", "输入要修改的头像框代码\n代码如下:\n灵狐绘梦230002\n原始股东230003\n血色纸牌230004\n赤焰流霞230005\n千年之约230006\n蔷薇花语230007\n辉光独角230008\n曼珠沙华230009\n神圣殿堂230010\n荣誉行进曲230011\n百万时刻230012\n精灵魔法230013\n与凤歌230014\n渊虹缠金230015\n摸金行动230016\n一花世界230017\n惊魂农场230018" }, {[1]="230001", [2]=""}, {[1]='number', [2]='number'}) if OP == nil or OP[1] == '' or OP[2] == '' then gg.toast("取消修改") else gg.setRanges(32) gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultCount() if count == 0 then gg.toast("未找到代码") else gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(math.min(count, 200)) gg.editAll(OP[2], gg.TYPE_DWORD) gg.clearResults() gg.toast("头像框修改成功") end end end), -- 取消头像框修改 CAbutton("取消头像框修改", function() local OP = gg.prompt({ "输入要取消的头像框代码", "输入要恢复的默认代码(默认:230001)" }, {[1]="", [2]="230001"}, {[1]='number', [2]='number'}) if OP == nil or OP[1] == '' or OP[2] == '' then gg.toast("取消操作") else gg.setRanges(32) gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultCount() if count == 0 then gg.toast("未找到代码") else gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(math.min(count, 200)) gg.editAll(OP[2], gg.TYPE_DWORD) gg.clearResults() gg.toast("头像框已恢复默认") end end end), -- 表情包修改 CAbutton("自改表情包", function() local OP = gg.prompt({ "输入原本表情代码(默认:6000002)", "输入要修改的表情代码\n代码如下:\n哈哈6000002\n求组队6000007\n无语6000010\n哇噻6000013\n敲木鱼6000014" }, {[1]="6000002", [2]=""}, {[1]='number', [2]='number'}) if OP == nil or OP[1] == '' or OP[2] == '' then gg.toast("取消修改") else gg.setRanges(32) gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultCount() if count == 0 then gg.toast("未找到代码") else gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(math.min(count, 200)) gg.editAll(OP[2], gg.TYPE_DWORD) gg.clearResults() gg.toast("表情包修改成功") end end end), -- 取消表情包修改 CAbutton("取消表情包修改", function() local OP = gg.prompt({ "输入要取消的表情代码", "输入要恢复的默认代码(默认:6000002)" }, {[1]="", [2]="6000002"}, {[1]='number', [2]='number'}) if OP == nil or OP[1] == '' or OP[2] == '' then gg.toast("取消操作") else gg.setRanges(32) gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultCount() if count == 0 then gg.toast("未找到代码") else gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(math.min(count, 200)) gg.editAll(OP[2], gg.TYPE_DWORD) gg.clearResults() gg.toast("表情包已恢复默认") end end end), -- 聊天气泡修改 CAbutton("自改聊天气泡", function() local OP = gg.prompt({ "输入原本气泡代码(默认:570001)", "输入要修改的气泡代码\n代码如下:\n默认聊天气泡1570001\n紫晶之扉570002" }, {[1]="570001", [2]=""}, {[1]='number', [2]='number'}) if OP == nil or OP[1] == '' or OP[2] == '' then gg.toast("取消修改") else gg.setRanges(32) gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultCount() if count == 0 then gg.toast("未找到代码") else gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(math.min(count, 200)) gg.editAll(OP[2], gg.TYPE_DWORD) gg.clearResults() gg.toast("聊天气泡修改成功") end end end), -- 取消聊天气泡修改 CAbutton("取消聊天气泡修改", function() local OP = gg.prompt({ "输入要取消的气泡代码", "输入要恢复的默认代码(默认:570001)" }, {[1]="", [2]="570001"}, {[1]='number', [2]='number'}) if OP == nil or OP[1] == '' or OP[2] == '' then gg.toast("取消操作") else gg.setRanges(32) gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local count = gg.getResultCount() if count == 0 then gg.toast("未找到代码") else gg.searchNumber(OP[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(math.min(count, 200)) gg.editAll(OP[2], gg.TYPE_DWORD) gg.clearResults() gg.toast("聊天气泡已恢复默认") end end end), CAbutton("自改头部", function() OP=gg.prompt({"输入原本头部的代码","输入你要修改的代码 代码如下: 小黄20000002 遗失的童话20000259 霓裳踏雪20000244 青丘一梦20000218 罗丽20000285 雨衣20000318 小黄新皮肤20000329 爱丽丝20000010 血色中的玛丽20000233 瑞羽衔春20000251 冰公主20000278 薯排甜心20000231 零20000013 赤炼将军20000237 青云逸歌20000265 阿念20000502 灵昭鹿鸣20000241 王子与骑士20000263 僵尸20000322 逍遥20000601 泽引山海20000248 逍遥新皮金皮20000333 逍遥魔盒20006004 薇薇安20000701 黑月挽歌20000256 圣光之逾20000275 白光莹20000288 巫铃儿20000801 素影瑶光20000268 镜生遗梦:主:20000294 副:20000297 镜花辞20000316 莉莉20000901 情公主20000281 僵尸20000327 艾伦20001001 水王子20000291 输入你要修改的代码"},{[2]=" "," "},{[1]='number'}) if OP == nil or OP[1] == '' or OP[2] == '0' then gg.toast("取消") else gg.setRanges(gg.REGION_ANONYMOUS)--设置搜索内存 gg.searchNumber(OP[1],gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1)--搜索值+类型 gg.searchNumber(OP[1],gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(1000)--设置搜索列表 gg.editAll(OP[2],gg.TYPE_DWORD)--改值+类型 end gg.toast("开启成功") string.toMusic("开启成功") end), CAbutton("自改脸", function() OP=gg.prompt({"输入原本脸部的代码","输入你要修改的代码 代码如下: 小黄--20000005 遗失的童话20000260 霓裳踏雪20000245 青丘一梦20000229 罗丽20000286 雨衣20000319 小黄新皮肤20000330 爱丽丝--20000011 血色中的玛丽20000234 瑞羽衔春20000252 冰公主20000279 零--20000014 赤炼将军20000238 青云逸歌20000266 阿念--20000503 灵昭鹿鸣20000242 王子与骑士20000264 僵尸20000321 逍遥--20000602 泽引山海20000249 新皮金皮20000334 逍遥魔盒20006003 薇薇安--20000702 黑月挽歌20000257 圣光之逾20000276 白光莹20000289 巫铃儿--20000802 素影瑶光20000269 镜生遗梦:主:20000295 副:20000298 镜花辞20000315 莉莉--20000902 情公主20000282 僵尸20000324 艾伦--20001001 水王子20000292 输入你要修改的代码"},{[2]=" "," "},{[1]='number'}) if OP == nil or OP[1] == '' or OP[2] == '0' then gg.toast("取消") else gg.setRanges(gg.REGION_ANONYMOUS)--设置搜索内存 gg.searchNumber(OP[1],gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1)--搜索值+类型 gg.searchNumber(OP[1],gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(1000)--设置搜索列表 gg.editAll(OP[2],gg.TYPE_DWORD)--改值+类型 end gg.toast("开启成功") string.toMusic("开启成功") end), CAbutton("自改身体", function() OP=gg.prompt({"输入原本身体的代码","输入你要修改的代码 代码如下: 小黄--20000008 遗失的童话20000258 霓裳踏雪20000243 青丘一梦20000210 罗丽20000287 雨衣20000317 小黄新皮肤20000328 爱丽丝--20000012 血色中的玛丽20000232 瑞羽衔春20000250 冰公主20000280 薯排甜心20000230 零--20000015 赤炼将军20000239 青云逸歌20000267 阿念20000504 灵昭鹿鸣20000240 王子与骑士20000262 僵尸20000320 逍遥--20000603 泽引山海20000247 碧落20000246 紫气20000253 新皮金皮20000332 逍遥魔盒20006002 薇薇安--20000703黑月挽歌20000255 圣光之逾20000274 白光莹20000290 巫铃儿--20000803 素影瑶光20000270 镜生遗梦:主:20000296 副:20000299 镜花辞20000314 莉莉--20000903 情公主20000283 僵尸20000323 艾伦--20001003 水王子20000293 输入你要修改的代码"},{[2]=" "," "},{[1]='number'}) if OP == nil or OP[1] == '' or OP[2] == '0' then gg.toast("取消") else gg.setRanges(gg.REGION_ANONYMOUS)--设置搜索内存 gg.searchNumber(OP[1],gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1)--搜索值+类型 gg.searchNumber(OP[1],gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(1000)--设置搜索列表 gg.editAll(OP[2],gg.TYPE_DWORD)--改值+类型 end gg.toast("开启成功") string.toMusic("开启成功") end), CAbox({ '薇薇安外观组合', CAbutton('薇薇安白光莹头/圣光之谕身体', function() ggClearEdit('20000274', '20000290') end), CAbutton('薇薇安白光莹身体/圣光之谕头', function() ggClearEdit('20000290', '20000274') end), CAbutton('薇薇安白光莹头/黑月挽歌身体', function() ggClearEdit('20000290', '20000255') end), CAbutton('薇薇圣光之谕头/黑月挽歌身体', function() ggClearEdit('20000274', '20000255') end), CAbutton('薇薇安黑月挽歌头/圣光之谕身体', function() ggClearEdit('20000255', '20000274') end), CAbutton('薇薇安黑月挽歌头/白光莹身体', function() ggClearEdit('20000255', '20000290') end), }), CAbox({ '零外观组合', CAbutton('零赤炼头/青云身体', function() ggClearEdit('20000239', '20000267') end), CAbutton('零赤炼头/汉堡身体', function() ggClearEdit('20000239', '20000203') end), CAbutton('零青云头/赤炼身体', function() ggClearEdit('20000267', '20000239') end), CAbutton('零青云头/汉堡身体', function() ggClearEdit('20000267', '20000203') end), CAbutton('零汉堡头/赤炼身体', function() ggClearEdit('20000203', '20000267') end), CAbutton('青云头/原皮身', function() ggClearEdit('20000203', '20000239') end), CAbutton('零汉堡头/青云身体', function() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000266',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000265',gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000266',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000266',gg.TYPE_DWORD) gg.toast("开启成功") end), }), CAbox({ '爱丽丝外观组合', CAbutton('爱丽丝金皮头/神兽身体', function() ggClearEdit('20000232', '20000250') end), CAbutton('爱丽丝金皮头/冰公主身体', function() ggClearEdit('20000232', '20000280') end), CAbutton('爱丽丝神兽头/金皮身体', function() ggClearEdit('20000250', '20000232') end), CAbutton('爱丽丝神兽头/冰公主身体', function() ggClearEdit('20000250', '20000280') end), CAbutton('爱丽丝冰公主头/金皮身体', function() ggClearEdit('20000280', '20000232') end), CAbutton('爱丽丝冰公主头/神兽身体', function() ggClearEdit('20000280', '20000250') end), CAbutton('绒绒对决/水王子', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000344',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000291',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), CAbutton('甜梦派对/血色中的玛丽', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000233',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000339',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), CAbutton('甜梦派对/瑞羽衔春', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000251',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000339',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), CAbutton('甜梦派对/冰公主', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000278',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000339',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), ----------- CAbutton('血色中的玛丽/甜梦派对', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000341',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000232',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), CAbutton('瑞羽衔春/甜梦派对', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000341',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000250',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), CAbutton('冰公主/甜梦派对', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000341',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000280',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), }), CAbox({ '阿念外观组合', CAbutton('阿念魔盒头/神兽身体', function() ggClearEdit('20000262', '20000240') end), CAbutton('阿念神兽身体/魔盒头', function() ggClearEdit('20000240', '20000262') end), CAbutton('阿念神兽头/僵尸身体', function() ggClearEdit('20000240', '20000320') end), CAbutton('阿念僵尸头/神兽身体', function() ggClearEdit('20000320', '20000240') end), CAbutton('阿念僵尸头/手册身体', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000320',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000262',gg.TYPE_DWORD) gg.toast("开启成功") end), CAbutton('阿念手册头/僵尸身体', function() ggClearEdit('20000262', '20000320') end), }), CAbox({ '小黄外观组合', CAbutton('小黄金皮头/魔盒身体', function() ggClearEdit('20000258', '20000210') end), CAbutton('小黄金皮头/神兽身体', function() ggClearEdit('20000258', '20000243') end), CAbutton('小黄金皮头/罗丽身体', function() ggClearEdit('20000258', '20000287') end), CAbutton('小黄魔盒头/金皮身体', function() ggClearEdit('20000210', '20000258') end), CAbutton('小黄魔盒头/神兽身体', function() ggClearEdit('20000210', '20000243') end), CAbutton('小黄魔盒头/罗丽身体', function() ggClearEdit('20000210', '20000287') end), CAbutton('小黄罗丽头/金皮身体', function() ggClearEdit('20000287', '20000258') end), CAbutton('小黄罗丽头/神兽身体', function() ggClearEdit('20000287', '20000243') end), CAbutton('小黄罗丽头/魔盒身体', function() ggClearEdit('20000287', '20000210') end), CAbutton('青丘头/异色身体', function() gg.setRanges(32) Name='青丘头/异色身体' local tb1= { {20000328,4,0}, {20000328,4,0}, {20000329,4,4}, {20000330,4,8}, } local tb2= { {20000328,4,0,true}, {20000218,4,4,true}, {20000219,4,8,true}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('童话头/异色身体', function() gg.setRanges(32) Name='童话头/异色身体' local tb1= { {20000328,4,0}, {20000328,4,0}, {20000329,4,4}, {20000330,4,8}, } local tb2= { {20000328,4,0,true}, {20000259,4,4,true}, {20000260,4,8,true}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('罗丽头/异色身体', function() gg.setRanges(32) Name='罗丽头/异色身体' local tb1= { {20000328,4,0}, {20000328,4,0}, {20000329,4,4}, {20000330,4,8}, } local tb2= { {20000328,4,0,true}, {20000285,4,4,true}, {20000286,4,8,true}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('异色头/踏雪身体', function() gg.setRanges(32) Name='异色头/踏雪身体' local tb1= { {20000243,4,0}, {20000243,4,0}, {20000224,4,4}, {20000245,4,8}, } local tb2= { {20000243,4,0,true}, {20000330,4,4,true}, {20000329,4,8,true}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('异色头/童话身体', function() gg.setRanges(32) Name='异色头/童话身体' local tb1= { {20000258,4,0}, {20000258,4,0}, {20000259,4,4}, {20000260,4,8}, } local tb2= { {20000258,4,0,true}, {20000330,4,4,true}, {20000329,4,8,true}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('异色头/青丘身体', function() gg.setRanges(32) Name='异色头/青丘身体' local tb1= { {20000210,4,0}, {20000210,4,0}, {20000218,4,4}, {20000229,4,8}, } local tb2= { {20000210,4,0,true}, {20000330,4,4,true}, {20000329,4,8,true}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('异色头/罗丽身体', function() gg.setRanges(32) Name='异色头/罗丽身体' local tb1= { {20000285,4,0}, {20000285,4,0}, {20000286,4,4}, {20000287,4,8}, } local tb2= { {20000330,4,0}, {20000329,4,4}, {20000287,4,8}, } SearchWrite(tb1,tb2,dataType) end), }), CAbox({ '莉莉外观组合', CAbutton('莉莉情公主头/僵尸身体', function() ggClearEdit('20000283', '20000323') end), CAbutton('莉莉僵尸头/情公主身体', function() ggClearEdit('20000323', '20000283') end), CAbutton('莓果身体/情公主头', function() gg.setRanges(32) Name='莓果身体/情公主头' local tb1= { {20006007,4,0}, {20006007,4,0}, {20006008,4,4}, {20006009,4,8}, } local tb2= { {20006007,4,0}, {20000281,4,4}, {20006009,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('莓果身体/小师妹头', function() gg.setRanges(32) Name='莓果身体/小师妹头' local tb1= { {20006007,4,0}, {20006007,4,0}, {20006008,4,4}, {20006009,4,8}, } local tb2= { {20006007,4,0}, {20000324,4,4}, {20006009,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('晴公主身体/莓果头', function() gg.setRanges(32) Name='晴公主身体/莓果头' local tb1= { {20000281,4,0}, {20000281,4,0}, {20000282,4,4}, {20000283,4,8}, } local tb2= { {20000281,4,0}, {20006008,4,4}, {20000283,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('小师妹身体/莓果头', function() gg.setRanges(32) Name='小师妹身体/莓果头' local tb1= { {20000323,4,0}, {20000323,4,0}, {20000324,4,4}, {20000327,4,8}, } local tb2= { {20000323,4,0}, {20006008,4,4}, {20000327,4,8}, } SearchWrite(tb1,tb2,dataType) end), }), CAbox({ '逍遥外观组合', CAbutton('逍遥神兽头/魔盒身体', function() ggClearEdit('20000247', '20006002') end), CAbutton('逍遥魔盒头/神兽身体', function() ggClearEdit('20006002', '20000247') end), CAbutton('逍遥魔盒头/神兽身体2', function() gg.setRanges(32) Name='卡头皮肤' local tb1= { {20006002,4,0}, {20006002,4,0}, {20006003,4,4}, {20006004,4,8}, } local tb2= { {20006002,4,0}, {20000248,4,4}, {20000249,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('莲花渡身体/神兽头', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("20000333", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("20000333",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100)--设置冻结前100个代码 sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = "20000248"}}) end gg.toast("开启成功") gg.clearResults() end end), CAbutton('莲花渡身体/逍遥魔盒头', function() gg.clearResults() gg.setRanges(32) gg.searchNumber("20000333", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("开启失败") else gg.searchNumber("20000333",gg.TYPE_DWORD , false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100)--设置冻结前100个代码 sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = "20006003"}}) end gg.toast("开启成功") gg.clearResults() end end), CAbutton('神兽头/莲花渡眼睛/魔盒身体', function() gg.setRanges(32) Name='卡头皮肤' local tb1= { {20006002,4,0}, {20006002,4,0}, {20006003,4,4}, {20006004,4,8}, } local tb2= { {20006002,4,0}, {20000248,4,4}, {20000334,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('莲花渡头和眼睛/魔盒身体', function() gg.setRanges(32) Name='卡头皮肤' local tb1= { {20006002,4,0}, {20006002,4,0}, {20006003,4,4}, {20006004,4,8}, } local tb2= { {20006002,4,0}, {20000333,4,4}, {20000334,4,8}, } SearchWrite(tb1,tb2,dataType) end), CAbutton('神兽头/莲花渡眼睛/原皮身体', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000247',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000248',gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000249',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000334',gg.TYPE_DWORD) gg.toast("开启成功") end), CAbutton('手册头/碧落身体/莲花渡脸', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20006002',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000246',gg.TYPE_DWORD) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20006004',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000334',gg.TYPE_DWORD) gg.toast("开启成功") end), CAbutton('金瞳/白泽头/蓝皮身体', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000249',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000246',gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000247',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20006002',gg.TYPE_DWORD) gg.toast("开启成功") end), }), CAbox({ '巫铃儿外观组合', CAbutton('巫玲儿瑶光头/镜生遗梦身体(紫皮眼睛)', function() ggClearEdit('20000270', '20000296') end), CAbutton('巫玲儿瑶光头/镜生遗梦身体(金皮眼睛)', function() ggClearEdit('20000294', '20000268') end), CAbutton('巫玲儿瑶光头/镜花辞身体(紫皮眼睛)', function() ggClearEdit('20000270', '20000316') end), CAbutton('巫玲儿瑶光头/镜花辞身体(金皮眼睛)', function() ggClearEdit('20000314', '20000268') end), CAbutton('巫玲儿镜花辞头/镜生遗梦身体', function() ggClearEdit('20000314', '20000296') end), CAbutton('巫玲儿镜生遗梦头/镜花辞身体', function() ggClearEdit('20000294', '20000316') end), CAbutton('镜生遗梦头(白)/素影瑶光身体', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000297',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000268',gg.TYPE_DWORD) gg.toast("开启成功") end), CAbutton('青花瓷头/幻梦脸/原皮身体', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000297',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000268',gg.TYPE_DWORD) gg.toast("开启成功") end), }), CAbox({ '艾伦外观组合', CAbutton('水王子/绒绒对决', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000293',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000342',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), CAbutton('绒绒对决/水王子', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000344',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000291',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), CAbutton('甜梦派对/血色中的玛丽', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000233',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('20000339',gg.TYPE_DWORD) gg.toast("开启成功") string.toMusic("开启成功") end), }), CAbox({ '眼睛效果修改', CAbutton('逍遥神兽头/魔盒身体+金色眼睛', function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000249', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll('20006004', gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('20000247', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll('20006002', gg.TYPE_DWORD) gg.toast("眼睛效果修改成功") end), CAbutton('无效果', function() gg.toast("未启用任何眼睛效果") end), }), },{--7 CAswitch('音乐', function() 打开页面('音乐') end, function() 关闭页面('音乐') end), CAswitch( "退出", function() UIQuit=1 end, function() end), }, })