📄 datamanage.pas
字号:
unit datamanage;
interface
uses
SysUtils,windows,
gamecode, dllform, packstruct,sendmypack;
procedure collectgoods ( buf:pchar ); //单击拾取物品
procedure showdropgoods( buf:pchar ); //显示掉落物品
procedure eatmedication( buf:pchar ); //自动吃药
procedure gaingoods ( buf:pchar ); //物品栏增删物品
implementation
procedure collectgoods( buf:pchar ); //单击拾取物品
var
sendbuf : array [0..23] of char;
begin
sendbuf[0] := char($17);
sendbuf[1] := char($00);
sendbuf[2] := char($00);
sendbuf[3] := char($00);
sendbuf[4] := char($00);
sendbuf[5] := char($00);
sendbuf[6] := char($00);
sendbuf[7] := char($00);
sendbuf[8] := char($0D);
sendbuf[9] := char($00);
sendbuf[10] := char($14); //ctrl
sendbuf[11] := char($03); //地图
sendbuf[12] := char($00);
sendbuf[13] := buf[11]; //ID
sendbuf[14] := buf[12];
sendbuf[15] := buf[13];
sendbuf[16] := buf[14];
sendbuf[17] := char($05); //方向
sendbuf[18] := char($00);
sendbuf[19] := buf[35]; //x
sendbuf[20] := buf[36];
sendbuf[21] := buf[37]; //y
sendbuf[22] := buf[38];
sendbuf[23] := char($00); //00
sendmsg (sendbuf,24);
end;
{
procedure collectgoods( buf:pchar ); //单击拾取物品
var
sendbuf : array [0..23] of char;
oldpack : ^packetC;
newpack : packetA;
header : headerA;
ctrl :byte;
cc,dd :pchar;
begin
oldpack := @buf;
header.size := $0017;
header.num := $0000;
header.four := 0;
header.len := $000D;
ctrl := 14;
newpack.panel:= $0003;
newpack.id := oldpack.id;
newpack.place:= $0006;
newpack.x := oldpack.x;
newpack.y := oldpack.y;
newpack.w1 := 0;
dd := pchar(@header);
cc := pchar(@newpack);
dd := dd and pchar(@ctrl);
dd := dd and cc;
sendmsg (dd,24);
// sendmsg (pchar(@header) and pchar(@ctrl) and pchar(@newpack) ,24);
end; }
procedure showdropgoods ( buf:pchar ); //显示掉落物品
var
goods : string [20];
begin
goods := string(@buf[15]);
dllform1.memo1.lines.Add(goods);
end;
procedure gaingoods ; //物品栏增删物品
var
goods : string [20];
begin
if ord(buf[12]) <> $00 then //因为物品栏里物品移动时会发两个包.去掉一个
begin
goods := string(@buf[12]);
dllform1.memo2.Lines.Add(goods);
end;
end;
{
procedure eatmedication( buf:pchar ); //吃药 双击药品
var
sendbuf : array [0..23] of char;
dddd,newhuo:array [0..1] of char;
huo :string;
dd : pointer;
begin
newhuo[1]:= buf[33]; //当前活力
newhuo[0]:= buf[34];
dd := @buf[33];
// huo[1]:= buf[35]; //活力值
// huo[0]:= buf[36];
huo := inttohex (strtoint(dllform1.Edit5.text),4); //吃药的落力
// dddd[0] := char($05);
// dddd[1] := char($DC);
// inttostr(ord($4d2)); // 十六进制转十进制
// inttohex (1234,4); //4为返回的长度 如返回值 1 4-0001 2-01 3-1 // 十进制转十六进制
if newhuo < huo then
begin
dllform1.memo3.Lines.Add(inttostr(ord($4d2))); //显示十六进制.
dllform1.memo4.Lines.Add(chartoascii (dd,2)); //显示十六进制.
// dllform1.memo3.Lines.Add(huo);
{ bb:= strtoint(dllform1.Edit1.text);
// if bb
dllform1.memo3.Lines.Add(chartoascii (pchar(huo),2));}
{ sendbuf[0] := char($17);
sendbuf[1] := char($00);
sendbuf[2] := char($00);
sendbuf[3] := char($00);
sendbuf[4] := char($00);
sendbuf[5] := char($00);
sendbuf[6] := char($00);
sendbuf[7] := char($00);
sendbuf[8] := char($0D);
sendbuf[9] := char($00);
sendbuf[10] := char($15); //ctrl
sendbuf[11] := char($01); //物品栏
sendbuf[12] := char($00);
sendbuf[13] := char($00); //ID
sendbuf[14] := char($00);
sendbuf[15] := char($00);
sendbuf[16] := char($00);
sendbuf[17] := char($01); //位置
sendbuf[18] := char($00);
sendbuf[19] := char($00); //x
sendbuf[20] := char($00);
sendbuf[21] := char($00); //y
sendbuf[22] := char($00);
sendbuf[23] := char($00); //00
sendmsg (sendbuf,24);
end;
end; }
procedure eatmedication( buf:pchar ); //吃药 双击药品
var
oldpack : ^packetB;
sendbuf : array [0..23] of char;
dddd,newhuo:array [0..1] of char;
huo :string;
dd : pointer;
begin
oldpack := @buf[0];
newhuo[1]:= buf[22]; //当前活力
newhuo[0]:= buf[23];
dd := @buf[23];
dllform1.Edit1.Text := string(@oldpack.huo);
dllform1.Label8.Caption :=(chartoascii (pchar(@oldpack.yuan),4)); //当前元气
dllform1.Label9.Caption :=(chartoascii (pchar(@oldpack.nei),2)); //当前内功
dllform1.Label10.Caption :=(chartoascii (pchar(@oldpack.nei1),2)); //当前外功
dllform1.Label11.Caption :=(chartoascii (pchar(@oldpack.wai1),2)); //当前武功
dllform1.Label12.Caption :=(chartoascii (pchar(@oldpack.wu1),2)); //当前活力
dllform1.Label8.Caption :=(chartoascii (buf,28)); //显示十六进制.
dllform1.memo4.Lines.Add(chartoascii (buf,28)); //显示十六进制.
// huo[1]:= buf[35]; //活力值
// huo[0]:= buf[36];
huo := inttohex (strtoint(dllform1.Edit5.text),4);
dllform1.Label12.Caption := huo; //吃药的
// dddd[0] := char($05);
// dddd[1] := char($DC);
// inttostr(ord($4d2)); // 十六进制转十进制
// inttohex (1234,4); //4为返回的长度 如返回值 1 4-0001 2-01 3-1 // 十进制转十六进制
if newhuo < huo then
begin
// dllform1.memo3.Lines.Add(inttostr(ord($4d2))); //显示十六进制.
// dllform1.memo3.Lines.Add(chartoascii (pchar(@oldpack.huo),2)); //显示十六进制.
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -