-
-
[原创][原创]获取热血江湖怪物信息的DELPHI2010源代码
-
发表于: 2010-2-21 21:21 3984
-
为了大家看的方便,编程环境又用的是DELPHI2010,所以一些变量就用汉字来定义了.更多有CALL请看www.tansoo.cn
[CODE=Delphi]
[CODE=Delphi]
[*]<LI class=alt>procedure TfrmMain.Button8Click(Sender: TObject);
[*]var <LI class=alt> 怪物基址, 怪物类型, 怪物数组下标, 怪物服务器ID, 怪物当前血, 怪物最大血, 怪物等级: PDword;
[*]怪物距离: PSingle; <LI class=alt> 怪物名字: PAnsiChar;
[*]i: Integer; <LI class=alt>begin
[*]Memo1.Lines.Clear; <LI class=alt> Memo1.Lines.add('怪物名字 怪物基址 怪物类型 怪物下标 怪物ID 怪物距离');
[*]for i := 1 to 64 do <LI class=alt> begin
[*]怪物基址 := Pointer($05EBCA78 + i * 4); // 第一个为角色,类型为$31,以后为怪物 <LI class=alt> if 怪物基址^ = 0 then
[*]Break; <LI class=alt>
[*]怪物类型 := Pointer(怪物基址^ + 8); // +8 :有可能是对象分类 怪是$2E <LI class=alt> if 怪物类型^<>$2E then Continue;
[*]<LI class=alt> 怪物数组下标 := Pointer(怪物基址^ + $0C); // +C :数组下标
[*]怪物服务器ID := Pointer(怪物基址^ + $14); // 服务器上 对象ID(对象在服务器唯一ID标识)(?) <LI class=alt> 怪物距离 := Pointer(怪物基址^ + $31C); // 怪到玩家距离
[*]怪物名字 := PAnsiChar(怪物基址^ + $320); // 怪对象名字 <LI class=alt> 怪物当前血 := Pointer(怪物基址^ + $610);
[*]怪物最大血 := Pointer(怪物基址^ + $62C); <LI class=alt> 怪物等级 := Pointer(怪物基址^ + $614);
[*]<LI class=alt> Memo1.Lines.add(怪物名字+' '+
[*]IntToHex(怪物基址^, 8) + ' ' + <LI class=alt> IntToHex(怪物类型^, 8) + ' ' +
[*]IntToHex(怪物数组下标^, 8) + ' ' + <LI class=alt> IntToHex(怪物服务器ID^, 8) + ' ' +
[*]FormatFloat('#0.00',怪物距离^)+' '+ <LI class=alt> inttostr(怪物当前血^)+'/'+inttostr(怪物最大血^)+' '+
[*]inttostr(怪物等级^)+'级'); <LI class=alt> end;
[*]end;
赞赏
看原图
赞赏
雪币:
留言: