易语言 读内存占用CPU怎么这么高 只是循环读取怪物死亡状态就达到90%以上CPU 软件还不到1MB大小 晕啊
并不是死循环怪物死亡时候有个值从0变成1怪物尸体消失又会变0死亡状态=1这个值只停留1秒就没了易语言运行的太慢延时就会读取不到死亡状态不延时CPU几乎全部占据了...
并不是死循环 怪物死亡时候有个值从0变成1 怪物尸体消失又会变0 死亡状态=1 这个值只停留1秒就没了 易语言运行的太慢 延时就会读取不到死亡状态 不延时CPU几乎全部占据了
展开
2个回答
展开全部
楼上说的在线程里运行时钟?可能我刚刚才自学编程,不知道怎么在线程里运行时钟...
我发现用循环不是不可以,我做辅助之前也头疼这事,后来解决了,估计你的情况跟我一样(甚至怀疑是同一款游戏..........),看例子:
先启动一个线程,子程序指针就是 &怪物
.版本 2
.子程序 怪物
.局部变量 现行选择怪物数, 整数型
.局部变量 当前有效怪物数, 整数型
.判断循环首 (挂机按钮.标题 = “停止挂机” 且 选择框8.选中)
怪物1.基址 = 读内存整数型 (窗口进程, 读内存整数型 (窗口进程, 读内存整数型 (窗口进程, 十六到十 (#游戏基址文本)) + 十六到十 (“#环境偏移”)) + 4))
怪物1.HP = 读内存整数型 (窗口进程, 怪物1.基址 + 十六到十 (“1c”))
怪物2.基址 = 读内存整数型 (窗口进程, 怪物1.基址 + 4 )
怪物2.HP = 读内存整数型 (窗口进程, 怪物2.基址 + 十六到十 (“1c”))
怪物3.基址 = 读内存整数型 (窗口进程, 怪物2.基址 + 4 )
怪物3.HP = 读内存整数型 (窗口进程, 怪物3.基址 + 十六到十 (“1c”))
''''''''''''''''''''''''后面的如此类推
当前有效怪物数 = 0
现行选择怪物数 = 组合框6.取项目数值 (组合框6.现行选中项)
.如果真 (怪物1.HP > 0)
当前有效怪物数 = 1
.如果真结束
.如果真 (怪物2.HP > 0)
当前有效怪物数 = 当前有效怪物数 + 1
.如果真结束
.如果真 (怪物3.HP > 0)
当前有效怪物数 = 当前有效怪物数 + 1
.如果真结束
''''''''''''''''''''''''''''''''后面的如此类推
.如果 (选择框8.选中 且 当前有效怪物数 < 现行选择怪物数)
选择框8.文本颜色 = 255
.否则
选择框8.文本颜色 = 0
.如果结束
延时 (200)'''''''''''''''''关键在这里要有延时,哪怕10ms也好
.判断循环尾 ()
我发现用循环不是不可以,我做辅助之前也头疼这事,后来解决了,估计你的情况跟我一样(甚至怀疑是同一款游戏..........),看例子:
先启动一个线程,子程序指针就是 &怪物
.版本 2
.子程序 怪物
.局部变量 现行选择怪物数, 整数型
.局部变量 当前有效怪物数, 整数型
.判断循环首 (挂机按钮.标题 = “停止挂机” 且 选择框8.选中)
怪物1.基址 = 读内存整数型 (窗口进程, 读内存整数型 (窗口进程, 读内存整数型 (窗口进程, 十六到十 (#游戏基址文本)) + 十六到十 (“#环境偏移”)) + 4))
怪物1.HP = 读内存整数型 (窗口进程, 怪物1.基址 + 十六到十 (“1c”))
怪物2.基址 = 读内存整数型 (窗口进程, 怪物1.基址 + 4 )
怪物2.HP = 读内存整数型 (窗口进程, 怪物2.基址 + 十六到十 (“1c”))
怪物3.基址 = 读内存整数型 (窗口进程, 怪物2.基址 + 4 )
怪物3.HP = 读内存整数型 (窗口进程, 怪物3.基址 + 十六到十 (“1c”))
''''''''''''''''''''''''后面的如此类推
当前有效怪物数 = 0
现行选择怪物数 = 组合框6.取项目数值 (组合框6.现行选中项)
.如果真 (怪物1.HP > 0)
当前有效怪物数 = 1
.如果真结束
.如果真 (怪物2.HP > 0)
当前有效怪物数 = 当前有效怪物数 + 1
.如果真结束
.如果真 (怪物3.HP > 0)
当前有效怪物数 = 当前有效怪物数 + 1
.如果真结束
''''''''''''''''''''''''''''''''后面的如此类推
.如果 (选择框8.选中 且 当前有效怪物数 < 现行选择怪物数)
选择框8.文本颜色 = 255
.否则
选择框8.文本颜色 = 0
.如果结束
延时 (200)'''''''''''''''''关键在这里要有延时,哪怕10ms也好
.判断循环尾 ()
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询