06.按键精灵大漠内存汇编命令
在开发脚本中,我们需要对游戏中的一些功能CALL进行调用,这样便于我们对游戏中的人物进行控制,以及一些操作如果只用图色类的游戏这个可以过滤不用看。
//代码开始区域 Function 发包(包长, 内容)//仅限于测试和参考例子 空白地址="00400400" 发包ecx = "基址" dm.WriteData 获取鼠标指向句柄, 空白地址,"66 FF 00 00" dm.WriteData 获取鼠标指向句柄, 空白地址, 内容 dm.AsmClear dm.AsmAdd "mov esi, ["&发包ecx&"]" dm.AsmAdd "mov ecx,[?]" dm.AsmAdd "mov edx,dword ptr ds:[?]" dm.AsmAdd "push 00" dm.AsmAdd "push 0" & Hex(包长) dm.AsmAdd "push "&空白地址 dm.AsmAdd "mov ebx, dword ptr [?]" dm.AsmAdd "push ebx" dm.AsmAdd "call [封包CALL]" dm.AsmCall 游戏句柄, 3 dm.VirtualFreeEx 游戏句柄, 空白地址 Call 延迟() End Function Function 打开NPC(NPCID十六进制) //仅限于测试和参考例子 For 2 dm.AsmClear dm.AsmAdd "push ?" dm.AsmAdd "push ?" dm.AsmAdd "mov eax,?" dm.AsmAdd "mov eax,eax" dm.AsmAdd "push eax" dm.AsmAdd NPCID十六进制 dm.AsmAdd "push ?" dm.AsmAdd "push ? dm.AsmAdd "mov ecx,基址" dm.AsmAdd "mov ecx,ecx" dm.AsmAdd "call NPC打开CALL" dm.AsmCall 游戏句柄, 3 Call 等待() Next End Function Function 游戏人物寻路A(寻路x, 寻路y) //分配一段内存 = dm.VirtualAllocEx(游戏句柄,0,50,0) //读取地址 = hex(分配一段内存) //TracePrint 读取地址 X坐标 = dm.WriteFloat(游戏句柄 , "00400FA0", 寻路x) Y坐标 = dm.WriteFloat(游戏句柄 , "00400FA8", 寻路y) //TracePrint X坐标&Y坐标 For 2 dm.AsmClear dm.AsmAdd "mov eax,?" dm.AsmAdd "mov eax,eax" dm.AsmAdd "push 00" dm.AsmAdd "push 00400FA0" dm.AsmAdd "push ?" dm.AsmAdd "push ?" dm.AsmAdd "push ?" dm.AsmAdd "push ?" dm.AsmAdd "push ?" dm.AsmAdd "mov ecx,基址" dm.AsmAdd "mov ecx,ecx" dm.AsmAdd "call 寻路CALL" dm.AsmCall 游戏句柄, 3 Call 等待() Next do 寻路状态 = dm.ReadFloat( 游戏句柄 , "[基址]+偏移") If 寻路状态 > 0 Then TracePrint "寻路中" Call 延迟() Else TracePrint "已到达目的地" Call 延迟() Exit do End If loop End Function //代码结束区域