function afa() CodMon( {{32}, {"修改"}, {-6964263601101211885, 32}, {0, 0x18, 4}}, {{170000, 0x24, 32}}) --这里上面是攻速(170000) CodMon( {{32}, {"修改"}, {-5747850999177622479, 32}, {2, -0xC, 32}}, {{868380483922551055, -0x4, 32}, {4585666243950043308, 0x4, 32}}) CodMon( {{32}, {"修改"}, {868380483922551055, 32}, {65536, 0x30, 32}}, {{7100, 0x10, 32}}) CodMon( {{32}, {"修改"}, {4585666243950043308, 32}, {65536, 0x30, 32}}, {{7100, 0x10, 32}}) end function CodMon(qmnb, qmxg) local start_time = os.clock() gg.setVisible(false) gg.clearResults() local search_value = qmnb[3]["value"] or qmnb[3][1] local value_type = qmnb[3]["type"] or qmnb[3][2] local feature_name = qmnb[2]["name"] or qmnb[2][1] gg.setRanges(qmnb[1]["memory"] or qmnb[1][1]) gg.searchNumber(search_value, value_type) local result_count = gg.getResultCount() if result_count == 0 then local time_used = os.clock() - start_time gg.toast(feature_name.." 搜索失败 耗时: "..string.format("%.3f", time_used).."秒\n请重新选择游戏进程再开启功能修改") return end gg.refineNumber(search_value, value_type) local results = gg.getResults(5000) local xgsl = 0 local xgjg = false for i = 1, #results do local valid = true for v = 4, #qmnb do if valid then local verify_addr = results[i].address + (qmnb[v]["offset"] or qmnb[v][2]) local verify_val = gg.getValues({{ address = verify_addr, flags = qmnb[v]["type"] or qmnb[v][3] }}) local expected = tostring(qmnb[v]["lv"] or qmnb[v][1]):gsub(",", "") local actual = tostring(verify_val[1].value):gsub(",", "") if expected ~= actual then valid = false break end end end if valid then local base_addr = results[i].address for x = 1, #qmxg do local modify_addr = base_addr + (qmxg[x]["offset"] or qmxg[x][2]) local new_value = qmxg[x]["value"] or qmxg[x][1] local modify_type = qmxg[x]["type"] or qmxg[x][3] local freeze = qmxg[x]["freeze"] or qmxg[x][4] if freeze then gg.addListItems({{ address = modify_addr, flags = modify_type, value = new_value, freeze = freeze }}) else gg.setValues({{ address = modify_addr, flags = modify_type, value = new_value }}) end xgsl = xgsl + 1 end xgjg = true end end local time_used = os.clock() - start_time if xgjg then gg.toast(feature_name.." 成功 共修改"..xgsl.."条数值 耗时"..string.format("%.3f", time_used).."秒") else gg.toast(feature_name.." 失败 耗时: "..string.format("%.3f", time_used).."秒请点击该兵种再开启修改功能") end gg.clearResults() end function as() Lua=gg.prompt( {"输入修改后的攻速"}, {2} ) if Lua == nil then gg.toast("取消") return elseif Lua[1] == "" then gg.toast("禁止为空") return end Lua[1] = Lua[1] * 65536 LY(Lua[1]) end function ac() Lua=gg.prompt( {"输入巨人棍棒攻击动作的攻速\n数字越小越快,搭配局内修改功能"}, {1} ) if Lua == nil then gg.toast("取消") return elseif Lua[1] == "" then gg.toast("禁止为空") return end Lua[1] = Lua[1] * 65536 Ly(Lua[1]) end function al() Lua=gg.prompt( {"输入巨人跺脚攻击动作的攻速\n数字越小越快,搭配局内修改功能"}, {1} ) if Lua == nil then gg.toast("取消") return elseif Lua[1] == "" then gg.toast("禁止为空") return end Lua[1] = Lua[1] * 65536 Cl(Lua[1]) end function bbb3() Lua=gg.prompt( {"输入巨人增加伤害倍率%", "输入巨人增加血量倍率%"}, {10,10} ) if Lua == nil then gg.toast("取消") return elseif Lua[1] == "" then gg.toast("禁止为空") return end Lua[1] = Lua[1] * 65536 Lua[2]= Lua[2]*65536 bb3(Lua[1], Lua[2]) end function Ly(lue2) CodMon( {{32}, {"修改"}, {693938055, 4}, {65536, 0x30, 32}}, {{lue2, 0x10, 32}}) end function bb3(a,b) CodMon( {{32}, {"修改"}, {-5130459204604951259, 32}, {0, 0x28, 32}}, {{a, 0x1C, 4}, {b, 0x14, 4}}) end function Cl(lue2) CodMon( {{32}, {"修改"}, {1674988202, 4}, {65536, 0x30, 32}}, {{lue2, 0x10, 32}}) end function LY(lue1) CodMon( {{32}, {"修改"}, {-8550582490398016887, 32}}, {{lue1, -0x54, 4}}) end function ab() CodMon( {{32}, {"修改"}, {-6964263601101211885, 32}, {65536, 0x14, 32}}, {{100000, 0x24, 32}}) CodMon( {{32}, {"修改"}, {-5747850999177622479, 32}, {2, -0xC, 32}}, {{868380483922551055, -0x4, 32}, {4585666243950043308, 0x4, 32}}) CodMon( {{32}, {"修改"}, {868380483922551055, 32}, {65536, 0x30, 32}}, {{7000, 0x10, 32}}) CodMon( {{32}, {"修改"}, {4585666243950043308, 32}, {65536, 0x30, 32}}, {{7000, 0x10, 32}}) end function fff() Lua=gg.prompt( {"输入剑士增加伤害倍率%", "输入剑士增加血量倍率%"}, {10,10} ) if Lua == nil then gg.toast("取消") return elseif Lua[1] == "" then gg.toast("禁止为空") return end Lua[1] = Lua[1] * 65536 Lua[2]= Lua[2]*65536 ff2(Lua[1], Lua[2]) end function ff2(aa, bb) CodMon( {{32}, {"修改"}, {-6964263601101211885, 32}, {0, 0x18, 4}}, {{aa, 0x1C, 32}, {bb, 0x14, 32}}) end function af() CodMon( {{32}, {"修改"}, {-6964263601101211885, 32}, {0, 0x18, 4}}, {{150000, 0x24, 32}}) CodMon( {{32}, {"修改"}, {-5747850999177622479, 32}, {2, -0xC, 32}}, {{868380483922551055, -0x4, 32}, {4585666243950043308, 0x4, 32}}) CodMon( {{32}, {"修改"}, {868380483922551055, 32}, {65536, 0x30, 32}}, {{7100, 0x10, 32}}) CodMon( {{32}, {"修改"}, {4585666243950043308, 32}, {65536, 0x30, 32}}, {{7100, 0x10, 32}}) end function ag() CodMon( {{32}, {"修改"}, {-5747850999177622479, 32}, {2, -0xC, 32}}, {{868380483922551055, -0x4, 32}, {4585666243950043308, 0x4, 32}}) end function aaa1() choice = gg.choice({ '修改剑士攻速(只能局内修改)', "嗜血剑士关卡皮攻速修改+修改遗产动作\n攻速中等", "嗜血剑士关卡皮攻速修改+修改遗产动作\n攻速快", "嗜血剑士关卡皮攻速修改+修改遗产动作\n极快攻速", "自定义嗜血剑士关卡皮参数", "遗产动作修改", '返回' },nil,"") if choice == 1 then as() elseif choice == 2 then ab() elseif choice == 3 then af() elseif choice == 4 then afa() elseif choice == 5 then fff() elseif choice == 6 then ag() elseif choice == 7 then ColdMoon() end end function bbb1() Lua=gg.prompt( {"输入当前伤害", "输入修改后的攻速"}, {35,1} ) if Lua == nil then gg.toast("取消") return elseif Lua[1] == "" then gg.toast("禁止为空") return end Lua[1] = Lua[1] * 65536 Lua[2] = Lua[2] * 65536 bb1(Lua[1],Lua[2]) end function bb1(lue1,lue2) CodMon( {{32}, {"修改"}, {lue1, 32}, {lue1, -0x8, 32}, {65536, 0x20, 32}}, {{lue2, 0x28, 32}}) end function bbb2() CodMon( {{32}, {"修改"}, {5391705676359901462, 32}, {2, -0xC, 32}}, {{331709130628025002, 0xC, 32}, {3, -0xC, 4}}) CodMon( {{32}, {"修改"}, {-5130459204604951259, 32}, {0, 0x28, 32}}, {{180000, 0x24, 4}}) CodMon( {{32}, {"修改"}, {693938055, 4}, {65536, 0x30, 32}}, {{136000, 0x10, 32}}) CodMon( {{32}, {"修改"}, {1255354303, 4}, {65536, 0x30, 32}}, {{140000, 0x10, 32}}) CodMon( {{32}, {"修改"}, {1674988202, 4}, {65536, 0x30, 32}}, {{100000, 0x10, 32}}) end function ccc2() Lua=gg.prompt( {"输入弓箭手增加伤害倍率%", "输入弓箭手增加血量倍率%"}, {10,10} ) if Lua == nil then gg.toast("取消") return elseif Lua[1] == "" then gg.toast("禁止为空") return end Lua[1] = Lua[1] * 65536 Lua[2]= Lua[2]*65536 cc2(Lua[1], Lua[2]) end function ccc1() Lua=gg.prompt( { "输入修改攻速"}, {5} ) if Lua == nil then gg.toast("取消") return elseif Lua[1] == "" then gg.toast("禁止为空") return end Lua[1] = Lua[1] * 65536 cc1(Lua[1]) end function cc2(a,b) CodMon( {{32}, {"修改"}, {8314112470882640310, 32}, {0, 0x28, 32}}, {{9999991, -0x14, 4}, {2670409837129696915, 0x4, 32}}) CodMon( {{32}, {"修改"}, {9999991, 32}}, {{a, 0x30, 4}, {b, 0x28, 4}}) end function cc1(a) CodMon( {{32}, {"修改"}, {8314112470882640310, 32}, {0, 0x28, 32}}, {{9999991, -0x14, 4}, {2670409837129696915, 0x4, 32}}) CodMon( {{32}, {"修改"}, {9999991, 32}}, {{a, 0x38, 4}}) end function aaa2() choice = gg.choice({ '自定义修改巨人攻速(只能局内修改)', "修改巨人关卡皮攻速修改+增加地震动作+攻速修改", "自定义修改巨人关卡皮增加伤害血量属性", '返回' },nil,"") if choice == 1 then bbb1() elseif choice == 2 then bbb2() elseif choice == 3 then bbb3() elseif choice == 4 then ColdMoon() end end function aaa3() choice = gg.choice({ '自定义修改弓箭手关卡皮攻速', "自定义修改弓箭手关卡皮增加伤害血量属性", '返回' },nil,"") if choice == 1 then ccc1() elseif choice == 2 then ccc2() elseif choice == 3 then ColdMoon() end end function ddd1() Lua=gg.prompt( { "输入修改攻速"}, {5} ) if Lua == nil then gg.toast("取消") return elseif Lua[1] == "" then gg.toast("禁止为空") return end Lua[1] = Lua[1] * 65536 dd1(Lua[1]) end function dd1(a) CodMon( {{32}, {"修改"}, {-3166269642542499191, 32}}, {{a, -0x54, 4}}) end function aaa4() choice = gg.choice({ '自定义修改矛士攻速(局内修改)', '返回' },nil,"") if choice == 1 then ddd1() elseif choice == 2 then ColdMoon() end end function ColdMoon() choice = gg.choice({ '修改剑士攻速', "修改巨人关卡皮属性", "修改弓箭手关卡皮属性", "修改矛士攻速", '退出脚本' },nil,"") if choice == 1 then aaa1() elseif choice == 2 then aaa2() elseif choice == 3 then aaa3() elseif choice == 4 then aaa4() elseif choice == 5 then os.exit() end end while true do if gg.isVisible(true) then gg.setVisible(false) ColdMoon() end gg.sleep(100) end