上一节,我们了解到了宝石升级动画延时机制的修改,这一节,我们将全方位地介绍游戏中多个常用功能的延时机制修改,优化玩家的游戏体验,相信经过本节,读者的程序分析能力会有进一步提高
1. 我们首先从鉴定**物品的进度条开始,为了瞬间鉴定物品,我们搜索进度英文progress,发现了函数UIInventory::Console::GetIdentifyingProgress,根据名字以及调用次函数的代码分析,确定了鉴定物品的进度就是由此函数返回的,因此就在此函数里做hack,转到汇编代码,找到2.6.6对应的地址,修改指令即可,最后写成金手指格式
2. 接下来我们修改打造物品的延时,搜索craftitem,发现了函数UIInventory::Console::PlayerBlacksmithScreen::CraftItem,在这个函数里找到了延时是150,然后转到汇编代码,再找到2.6.6的地址,hack掉即可,注意延时不要改为0,因为太小会出问题,可能导致主窗口还没刷新就结束了,那么程序会出问题,从而导致消息发送不到本地服务器,打造物品失败,改为5就可以了
3. 接下来我们修改给装备附魔的延时,搜索选择词缀的英文SelectAffix,发现函数UIInventory::Console::PlayerMysticScreen::TrySelectAffixToRecast,进去后又发现UIMystic::Console::UIEnchantView::SelectCurrentAffix,继续点进去,找到了延时120,改为1即可,然后去找到2.6.6对应的指令进行hack,最后写成金手指
4. 还剩下一个卡奈魔盒转换物品的延时,我们继续搜索Transmute,发现了UITransmute::OnTransmuteResults,往下分析,找到了延时的地方,找到2.6.6对应的地址,hack掉延时指令,写成金手指代码即可
5. 除了这些功能上的延时,每当我们在背包或仓库中找某个物品时,希望按键按住不放的响应速度更快一些,也就是按键取消延时,为此,我们开始寻找摇杆和十字键的延时取消办法,搜索stick,发现函数 Console::AnalogStickInputFilter::HandleInput,猜测这个函数可以控制摇杆延时,往下分析,果然找打了延时控制的地方,找到2.6.6地址,hack之
6. 下一步寻找十字键的延时,我们搜索dpad, 发现函数UISafeZoneSettings::HandleDPadInput,可知这里是处理十字键事件的,点进去,发现Console::InputSpeedLimiter::HasWaitTimeExpired,这个是判断延时时间是否达到的,点进去,找到了我们要hack的地方,修改返回值为true即可,找到2.6.6对应地址,对指令做hack,最后和摇杆无延时以及之前所有取消延时功能一起写成金手指代码
7. 进游戏测试无延时的金手指功能,发现打造物品,附魔物品,转化物品,以及摇杆十字键等延时均已消除,大功告成。
8. 另外,我们根据之前做卡奈魔盒的无延时功能时,发现了一个函数sTransmuteConsumeItems,字面意思可以知道这是用来消耗卡奈魔盒转化时的材料的,我们可以简单地让这个函数直接返回,进而做出了一个有用的功能:卡奈魔盒不消耗材料,找到2.6.6版本中的地址,hack之,写成金手指,测试一番没有问题
好了,本节到此结束,通过本节,我们学会了如何取消游戏里的各种延时机制,也知道了如何根据功能快速找到要hack的位置。下一节,将会向终极hack发起进军,从如何制作全**威能讲起,让读者一步一步成为真正的hack大神