【TC8.0】05.大漠内存读写命令

在开发脚本中,其实有很多厉害的插件可以供我们使用,不再自己再去额外的写复杂的代码,类似的插件很多,比如:天使插件、DD、大漠等,各个插件都有比较擅长的功能,有些小众的插件更是给力,因为可以过NP。

//代码开始区域
功能 发包(包长, 内容)//仅限于测试和参考例子
变量 空白地址=”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 延迟()
结束

功能 打开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
结束

功能 游戏人物寻路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
结束
//代码结束区域