|
30HB
|
| 在内存中人形怪的基址为2F691958开头都是2F后面的数字不同 稻草人的基址为 1C578860,请问老师们如何做一个插件或是修改可以让游戏的FZ识别以2F开头的人形怪为稻草人 这样游戏FZ就能自动打怪了,求求各位老师了?真不懂呀 |
| 大漠试试 |
|
好的,我试试,是那个按键精灵的大漠插件吧 |
|
我找到方法了,谢谢大家的回复。 只需要下面的代码就可以自动攻击人形怪就是心魔怪了。 local pattern = "27 E0 ?? ??" -- 扫描所有27E开头的地址 local addresses = AOBScan("27 E0 * * * * * *") if addresses == nil then showMessage("未找到27E开头的地址模式") return end local count = addresses.Count print(string.format("找到 %d 个27E开头的地址", count)) local modifiedCount = 0 for i = 0, count - 1 do local addressStr = addresses[i] local address = tonumber(addressStr, 16) if address then -- 确保在27E范围内 if address >= 0x27E00000 and address <= 0x27EFFFFF then local currentValue = readInteger(address) if currentValue ~= nil then -- 尝试写入 local success = writeInteger(address, targetValue) if success then print(string.format("修改 0x%X: 0x%X → 0x%X", address, currentValue, targetValue)) modifiedCount = modifiedCount + 1 -- 创建内存记录 CreateMemoryRecord(address, currentValue, targetValue) end end end end end addresses.destroy() print(string.format("\n高级扫描完成")) print(string.format("成功修改了 %d 个地址", modifiedCount)) showMessage(string.format("高级扫描完成!\n修改了 %d 个27E开头的地址", modifiedCount)) end -- 创建内存记录 function CreateMemoryRecord(address, oldValue, newValue) local al = getAddressList() if al then local mr = al.createMemoryRecord() mr.Description = string.format("27E_Static_0x%X", address) mr.Address = string.format("%X", address) mr.Type = vtDword mr.Active = true mr.Comment = string.format("静态基址 | 原始: 0x%X | 新值: 0x%X", oldValue, newValue) end end -- 使用特定基址范围的方法 function ModifySpecific27EAddresses() -- 目标值 local targetValue = 0x0D867778 -- 可能的关键地址列表(可以根据扫描结果添加) local keyAddresses = { 0x27E083B0, -- 你提到的地址 0x27E00000, 0x27E01000, 0x27E02000, -- 可以添加更多 } print("=== 修改特定27E地址 ===") local modifiedCount = 0 for i, address in ipairs(keyAddresses) do local currentValue = readInteger(address) if currentValue ~= nil then local success = writeInteger(address, targetValue) if success then print(string.format("0x%X: 0x%X → 0x%X", address, currentValue, targetValue)) modifiedCount = modifiedCount + 1 -- 添加到地址列表 AddToAddressList(address, currentValue, targetValue) end end end print(string.format("修改了 %d 个特定地址", modifiedCount)) showMessage(string.format("已修改 %d 个特定27E地址", modifiedCount)) end -- 主菜单 function ShowMenu() local choice = messageDialog( "选择操作模式:\n\n".. "1. 全范围扫描并修改(慢但全面)\n".. "2. 高级模式扫描\n".. "3. 修改特定已知地址\n".. "4. 修改单个地址 27E083B0", mtInformation, mbYesNoCancel) if choice == mrYes then -- 选项1 FindAndModify27EAddresses() elseif choice == mrNo then -- 选项2 AdvancedScanAndModify() elseif choice == mrCancel then -- 选项3 ModifySpecific27EAddresses() else -- 选项4:修改单个地址 local address = 0x27E083B0 local targetValue = 0x0D867778 local current = readInteger(address) if current ~= nil then writeInteger(address, targetValue) showMessage(string.format("修改 27E083B0:\n0x%X → 0x%X", current, targetValue)) else showMessage("无法读取地址 27E083B0") end end end -- 执行主菜单 ShowMenu() |
陌上花开 发表于 2026-1-22 11:11 厉害了 。。你这是直接修改了 不是破解了 |
呴呴喽 发表于 2026-1-30 07:56 是呀,想破解找不到方法,这样用CE是有点麻烦,要是有破解的方法就更好了 |
| 这个简单,问题不是基址的原因,是类型的问题,怪物的类型,与人形的类型不一样,应该是FZ过滤了挂机不攻击人,只攻击怪,人形怪的类型应该是和玩家的类型一样,所以不会攻击,能遍历出名字来,基址就是对的,如果有FZ源码,就需要改下攻击类型,不过滤人物,或者把遍历到的人形怪,类型改为其他怪的类型,FZ就会攻击了,如果没有FZ源码,就只有OD反汇编去改了 |
fafa 发表于 2026-2-26 02:32 是这个意思的,请问你会OD反汇编吗?教教 我怎么弄 |
你也可以写个补丁程序,遍历出你指定人形怪的名字后,用写内存数据,修改类型为其他任意怪的类型即可, |
免责声明
吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。
站长邮箱:SharkHeng@sina.com
站长QQ:1140549900
|RSS|手机版|小黑屋|帮助|吾爱汇编
(
京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图
Powered by Discuz!
吾爱汇编 www.52hb.com