一个用SearchValidAddr搜索基址的例子

时间:2023年08月16日

/

来源:如如☀️

/

编辑:本站小编

收藏本文

下载本文

以下是小编帮大家整理的一个用SearchValidAddr搜索基址的例子,本文共2篇,仅供参考,大家一起来看看吧。本文原稿由网友“如如☀️”提供。

篇1:一个用SearchValidAddr搜索基址的例子

作者: 字体:[增加 减小] 类型:

诛仙基址搜索工具脚本,此脚本用于帮助一些使用不了官方发布的基址的朋友。

代码如下:

#SetArgsOnCompile

#诛仙基址搜索工具脚本。此脚本用于帮助一些使用不了官方发布的基址的朋友。

#使用方法:

#首先在参数中填入自己角色的HP和MP值,需要的话适合修改搜索范围。然后在诛仙游戏中启动脚本。

#当输出“搜索到可能的基址”字样时,记下输出的基址,在诛仙打怪脚本中设置参数“基地址”。

#如果输出多个基址,那么退出游戏多搜索几次,找一个不变的地址使用。

#如果没有输出,调整范围再搜索,但是不要一次搜索的范围太大,速度会很慢。

dim myHP, myMP

function LogPrint(msg)

Print(msg)

WriteLog(“搜索结果.txt”, msg)

end function

function HexStr(num)

str=“”

while num>0

n=num mod 16

if n<10 then

str=Chr(n+ASC(“0”))&str

else

str=Chr(n-10+ASC(“A”))&str

end if

num=num\\16

wend

HexStr=str

end function

function TryAddr(byref addFirst)

TryAddr=false

if not SearchValidAddr(addFirst, &H0000000, addResult) then

exit function

end if

addFirst=addResult

if not ReadMemoryEx(addFirst, 2, Number1, 1) then

exit function

end if

addSecond=Number1+40

if not ReadMemoryEx(addSecond, 2, Number3, 1) then

exit function

end if

addNowBlood=Number3+596

addAllBlood=addNowBlood+&h18

addNowMP=addNowBlood+&h4

addAllMP=addNowBlood+&h1c

if not ReadMemoryEx(addNowBlood, 2, NowBlood, 1) then

exit function

end if

if NowBloodmyHP then

exit function

end if

if not ReadMemoryEx(addAllBlood, 2, AllBlood, 1) then

exit function

end if

if AllBloodmyHP then

exit function

end if

if not ReadMemoryEx(addNowMP, 2, NowMP, 1) then

exit function

end if

if NowMPmyMP then

exit function

end if

if not ReadMemoryEx(addAllMP, 2, AllMP, 1) then

exit function

end if

if AllMPmyMP then

exit function

end if

TryAddr=true

end function

function main

dim progress[11]

for i=1 to 11

progress[i]=false

next

myHP=GetConfigNumber(“当前血值”)

myMP=GetConfigNumber(“当前MP值”)

startAddr=CNum(GetConfigString(“搜索起始地址”))

endAddr=CNum(GetConfigString(“搜索结束地址”))

Print(“起始地址:&H”& HexStr(startAddr))

Print(“结束地址:&H”& HexStr(endAddr))

Print(“搜索HP值:”&myHP)

Print(“搜索MP值:”&myMP)

LogPrint(“开始搜索.....”)

for addr=startAddr to endAddr step 4

if TryAddr(addr) then

LogPrint(“搜索到可能的基址: &H”& HexStr(addr))

end if

prg=Int((addr-startAddr)/(endAddr-startAddr)*10)

if prg>10 then

prg=10

end if

if not progress[prg+1] then

Print(“已完成 %”&(prg*10))

progress[prg+1]=true

end if

next

end function

上面的代码是COPY的诛仙用于搜索基址的代码,

我来解释下原理。

诛仙里,血的地址是 [[[基址]+40]+596]

就是基址读出数据+40,再读出数据+596,再读出数据就是血的地址

我们搜索基址的原理是,知道这个公式,但是基址改了。我们从一个大致的范围里,一个个当作基址来试,直到通过这个公式找到与参数设置里相匹配的血值。

SearchValidAddr就是从内在的指定地址开始往下一个个找,直到找到一个地址,他的值大于我们指定的值(这个例子里是0),然后返回这个地址。那么我们要问,为什么我们不能写个循环用ReadMemoryEx一个个读呢?答案是,用这个函数速度快1000倍。

找到了那个地址以后,我们用ReadMemoryEx读出来,当然有可能读取失败,要判断一下的。如果读出来了,照那个公式,读三级地址,再尝试读数据。一路读下来,直到读成功数据了,而且和指定的值匹配。那么我们就说这个可能是基址了。

篇2:多久跳一次槽?用一个朋友的例子告诉你,为什么你没有圈子

论坛里经常看到跳槽的帖子,总体感觉只能是一声叹息,

那些1年一跳甚至1年N跳的朋友,请记住,如果你没有自己创业的打算的话,你们现在的选择,会成为你们将来职业发展的致命伤。

跟很多开发经理,架构师,产品经理等朋友聊过,招人最大的感触就是,绝大多数IT人都说不清楚自己是做什么的。

为什么这点特别重要?

因为如果你讲不清楚自己是做什么的,或者说不清楚自己为什么跳槽,很有可能就是,

1. 你过去几年就是打酱油的。

2. 你是个没有思考能力的人。

3. 你缺乏基本的表述能力。

4. 你是个随心所欲的人,缺乏对工作的尊重。

。。。

从面试者的角度,他们只能这样猜测。是不是很触目惊心。

这里我给个建议,一份工作,最好能做2年时间。如果你无法做到,一定要想清楚原因,而且能说服别人。

为什么是2年?

原因很多,

从技术角度,任何IT行业,如果没有从事2年或2年以上时间,很难说对这个领域有所了解。

从人际关系拓展的角度,没有2年时间,你很难和该建立关系的人培养起深厚的感情,如果一直如此,圈子自然无法扩大。

而因为以上原因,2年已经成为很多公司的HR和招聘经理判断候选人是否有职业规划的基本指标,

既然从事一份工作,就一定要把这份工作的价值最大化。

技术上就不说了,就说一个扩大圈子的例子吧。

一个80后的朋友,外地人,大专学历。

来上海后,在一个专门做外包的公司,被派驻到一个NB的外资公司做helpdesk。

大家都知道,helpdesk收入其实都不高,发展空间也不大。

而这个朋友,在这个公司做了3年,做到什么程度了呢?

第二年,把自己同样为大专学历的女朋友弄到这个公司做前台,半年后转为市场部正式员工。

本人在第三年转为这个公司IT部的正式员工。

现在在上海也有两套房子,一部小车,虽然谈不上高薪,但生活也过得有滋有味。

这就是圈子的力量。

如果没有2年的时间,你怎么能和接触到的上司,客户,客户的朋友,同事的朋友,关系深化到这种程度?

没有时间的积累,你怎么能给别人留下深刻的印象?没有这种关系,有机会的时候,别人为什么要给你?

所以,当你想跳槽的时候,请思考一下,你从这份工作得到了些什么?你的工作表现是否在平均水平之上?你是否能讲清楚你到底做了哪些事情以及你从事的工作方方面面的情况?你是否通过这份工作,认识了一帮真正的朋友?

如果答案都是否定的,很遗憾,你过去那份工作是白做了。

更悲剧的是,非常可能,你不管如何跳槽,也无法得到本质的提升。

一个VLAN配置的实际例子

用心存一个梦作文

用空虚造一个句子

用星星写一个拟人句

用小雪花变成一个童话故事范文

下载一个用SearchValidAddr搜索基址的例子(精选2篇)
一个用SearchValidAddr搜索基址的例子.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
热门文章
    猜你喜欢
    点击下载本文文档