注册 登录
编程论坛 Delphi论坛

怪物之间的距离,就近打怪delphi,不会写

shfdljz 发布于 2013-03-19 11:44, 765 次点击
var
monid,Goods,juli :PDWORD;
i:DWord;
begin
for i:=0 to 80 -1 do
begin
Goods:=Pointer(0415550);
Goods:=Pointer(Goods^+I*4);
monid:=Pointer(Goods^+$20);  //+20怪物ID
juli:=Pointer(Goods^+$90);  //+90怪物与人的距离(juli^)
..
//这里是重点 比大小 算你和怪物之间的距离,就近打怪 我问好多人都怎么说但我不会写
..
pickgoods55(monid^);     //技能攻击里面的monid^是怪物ID
end;
end;
3 回复
#2
shfdljz2013-03-19 12:59
juli^ 这里已经算出来人物和所有怪物的浮点距离,就是不会 算你和怪物之间的距离,就近打怪,如果这样的话也可以打怪就是循环出来打任何怪。
当然我简化了下,其实还有一些怪物和人物的区分 等级 血量 那些我都会,就是不会 怪物之间的距离,就近打怪
#3
wp2319572013-03-20 08:36
关注
#4
shfdljz2013-03-20 16:23
var
monid,monid1,Goods,Goods1:PDWORD;
nid,e,r,i,pi:DWord;
njl:=single;
for i:=0 to  80 do
begin
nid:=99999;
nid:=0;
Goods:=Pointer($0415550);
Goods:=Pointer(Goods^+I*4);
monid:=Pointer(Goods^+$20);  //+20怪物ID 怪物ID=取怪物ID(搜索范围)
juli:=Pointer(Goods^+$90);   //+90人物与人的距离 浮点
//if (juli^>$447A0000) then continue; //我如果这样设置相当于1000范围内打所有怪 447A0000浮点=1000
 if juli^<njl then continue;
  njl:=juli^
  nid:=monid^
 end;
if nid>0 then
pickgoods55(nid) //攻击技能(怪物ID)
end;
end;
//我这样还是乱打怪 到底怎么能从距离我最近的怪开始打起?
1