易语言关于内存和时钟
现在的情况是这样的,我写了一个单机游戏加HP的程序,但是不能实现数值锁定的效果。也就是说,我在使用之后,他的血是到了100,但是,没有固定住,所以请求各位帮忙。我在网上找...
现在的情况是这样的,我写了一个单机游戏加HP的程序,但是不能实现数值锁定的效果。
也就是说,我在使用之后,他的血是到了100,但是,没有固定住,所以请求各位帮忙。
我在网上找了一下,说是可以用时钟周期来进行反复的写,但是我不会,大家能不能写出一个代码的例子呢,
最好是实现关闭了程序之后,内存地址的这个值还是固定的?
请大家帮忙,我是初学者。。
下面是我写的代码
=============================================================
.版本 2
.程序集 窗口程序集1
.程序集变量 游戏窗口句柄, 整数型
.程序集变量 游戏进程句柄, 整数型
.程序集变量 游戏进程ID, 整数型
.子程序 __启动窗口_创建完毕
.子程序 _按钮1_被单击
游戏窗口句柄 = 取窗体句柄 (“SPC_adc”, “Test Game”)
.判断开始 (游戏窗口句柄 ≠ 0)
.默认
信息框 (“游戏没运行”, 64, “提示”)
返回 ()
.判断结束
游戏进程ID = 取窗口进程ID (游戏窗口句柄)
写内存整数型 (游戏进程ID, 十六到十 (“00A6D36C”), 到整数 (“100”))
信息框 (“成功加血”, 64, “恭喜”)
=============================================================
谢谢!
希望大家可以给我代码。
意思就是可以利用易语言的时钟,来实现锁内存的数值!
======================================================
谢谢2、3楼的解释,现在是可以实现了,但是对话框是不断弹出的。不管是判断之后是不是运行游戏,我设定的是时钟周期是1000,对话框会每隔1秒钟弹出一次。。晕,怎么办? 展开
也就是说,我在使用之后,他的血是到了100,但是,没有固定住,所以请求各位帮忙。
我在网上找了一下,说是可以用时钟周期来进行反复的写,但是我不会,大家能不能写出一个代码的例子呢,
最好是实现关闭了程序之后,内存地址的这个值还是固定的?
请大家帮忙,我是初学者。。
下面是我写的代码
=============================================================
.版本 2
.程序集 窗口程序集1
.程序集变量 游戏窗口句柄, 整数型
.程序集变量 游戏进程句柄, 整数型
.程序集变量 游戏进程ID, 整数型
.子程序 __启动窗口_创建完毕
.子程序 _按钮1_被单击
游戏窗口句柄 = 取窗体句柄 (“SPC_adc”, “Test Game”)
.判断开始 (游戏窗口句柄 ≠ 0)
.默认
信息框 (“游戏没运行”, 64, “提示”)
返回 ()
.判断结束
游戏进程ID = 取窗口进程ID (游戏窗口句柄)
写内存整数型 (游戏进程ID, 十六到十 (“00A6D36C”), 到整数 (“100”))
信息框 (“成功加血”, 64, “恭喜”)
=============================================================
谢谢!
希望大家可以给我代码。
意思就是可以利用易语言的时钟,来实现锁内存的数值!
======================================================
谢谢2、3楼的解释,现在是可以实现了,但是对话框是不断弹出的。不管是判断之后是不是运行游戏,我设定的是时钟周期是1000,对话框会每隔1秒钟弹出一次。。晕,怎么办? 展开
3个回答
展开全部
.版本 2
.程序集 窗口程序集1
.程序集变量 游戏窗口句柄, 整数型
.程序集变量 游戏进程句柄, 整数型
.程序集变量 游戏进程ID, 整数型
.子程序 _按钮1_被单击
时钟1.时钟周期 = 100
.子程序 _时钟1_周期事件
游戏窗口句柄 = 取窗体句柄 (“SPC_adc”, “Test Game”)
.判断开始 (游戏窗口句柄 ≠ 0)
.如果真 (读内存整数型 (游戏进程ID, 十六到十 (“00A6D36C”)) < 80) ' 做个血值判断,当少于多少时再加血,不要满血也加
游戏进程ID = 取窗口进程ID (游戏窗口句柄)
写内存整数型 (游戏进程ID, 十六到十 (“00A6D36C”), 100)
信息框 (“成功加血”, 64, “恭喜”) ' 其实没有必要加信息框,可以删掉
.如果真结束
.默认
信息框 (“游戏没运行”, 64, “提示”) ' 假如你真的很想知道,可以把它写在标签上,不用确认
时钟1.时钟周期 = 0 ' 当游戏没有运行时,把时钟关掉
返回 ()
.判断结束
.程序集 窗口程序集1
.程序集变量 游戏窗口句柄, 整数型
.程序集变量 游戏进程句柄, 整数型
.程序集变量 游戏进程ID, 整数型
.子程序 _按钮1_被单击
时钟1.时钟周期 = 100
.子程序 _时钟1_周期事件
游戏窗口句柄 = 取窗体句柄 (“SPC_adc”, “Test Game”)
.判断开始 (游戏窗口句柄 ≠ 0)
.如果真 (读内存整数型 (游戏进程ID, 十六到十 (“00A6D36C”)) < 80) ' 做个血值判断,当少于多少时再加血,不要满血也加
游戏进程ID = 取窗口进程ID (游戏窗口句柄)
写内存整数型 (游戏进程ID, 十六到十 (“00A6D36C”), 100)
信息框 (“成功加血”, 64, “恭喜”) ' 其实没有必要加信息框,可以删掉
.如果真结束
.默认
信息框 (“游戏没运行”, 64, “提示”) ' 假如你真的很想知道,可以把它写在标签上,不用确认
时钟1.时钟周期 = 0 ' 当游戏没有运行时,把时钟关掉
返回 ()
.判断结束
参考资料: http://www.jdw8.com
展开全部
这个不难 你先添加一个时钟组件 然后下面的代码
.版本 2
.子程序 _按钮1_被单击
时钟1.时钟周期 = 1
.子程序 _时钟1_周期事件
游戏窗口句柄 = 取窗体句柄 (“SPC_adc”, “Test Game”)
.判断开始 (游戏窗口句柄 ≠ 0)
.默认
信息框 (“游戏没运行”, 64, “提示”)
返回 ()
.判断结束
游戏进程ID = 取窗口进程ID (游戏窗口句柄)
写内存整数型 (游戏进程ID, 十六到十 (“00A6D36C”), 到整数 (“100”))
信息框 (“成功加血”, 64, “恭喜”)
可以了 如果地址对的话
你弹出信息框是因为你的血减少 你补血了 把信息框去掉就行了
.版本 2
.子程序 _按钮1_被单击
时钟1.时钟周期 = 1
.子程序 _时钟1_周期事件
游戏窗口句柄 = 取窗体句柄 (“SPC_adc”, “Test Game”)
.判断开始 (游戏窗口句柄 ≠ 0)
.默认
信息框 (“游戏没运行”, 64, “提示”)
返回 ()
.判断结束
游戏进程ID = 取窗口进程ID (游戏窗口句柄)
写内存整数型 (游戏进程ID, 十六到十 (“00A6D36C”), 到整数 (“100”))
信息框 (“成功加血”, 64, “恭喜”)
可以了 如果地址对的话
你弹出信息框是因为你的血减少 你补血了 把信息框去掉就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
子程序 _按钮1_被单击
直接加时钟周期
二楼正解
不过建议时钟周期 = 100
直接加时钟周期
二楼正解
不过建议时钟周期 = 100
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询