📄 packstruct.pas
字号:
unit PackStruct;
interface
uses Windows, Classes, ExtCtrls;
//--------------------------------接收的封包-----------------------------------
type
THeader = packed record //封包头
size : word; //封包总长度(包括封包头和封包尾)
num : word; //封包序列号是
Reserved : dword; //保留.总是为0
len : word; //后面封包长度
end;
type
TpacketB = packed record //人物状态 05
cmd : byte;
age : word; //年龄
yuanqNow : dword; //元气
yuanqMAX : dword;
neigNow : word; //内功
neigMAX : word;
waigNow : word; //外功
waigMAX : word;
wugNow : word; //武功
wugMAX : word;
huolNow : word; //活力 (元.内.外.武.活力. 均为 当前值+最大值 如 A510+A510 )
huolMAX : word;
Reserved : word;
end;
type
TpacketC = packed record // 地图出现物品 1C
cmd : byte;
id : dword; //物品id
name : array [0..18] of char; //中文名称:数量 (如 小刀:2 )
x : word;
y : word;
flag : array [0..2] of byte; //图形代码 皮380001 牛黄1b0101
Reserved : dword; //有3个字节是颜色.这里还没有区分它
end;
type
TpacketF = packed record // 地图物品消失 1E
cmd : byte; //1E
id : dword; //物品id
end;
type
TpacketD = packed record // 往物品栏增加减少物品 06 (减少时 id用0代替)
cmd : byte;
place: byte; //位置
name : array [0..18] of char; //中文名称 共19字节
num : dword; //数量
flag : array [0..2] of byte; //图形代码 书类 013500 斧头 010200
BColor : array[0..2] of byte; //背景色
Reserved : byte;
end;
//--------------------------------发送的封包-----------------------------------
type
TpacketA = packed record //单击拾取物品 14 双击吃药 15
header: THeader;
ctrl : byte;
panel: word; //面板
id : dword; //人物id
place: word; //位置
x : word;
y : word;
Reserved : byte;
end;
type
TpacketE = packed record // 说话 0c //可能还有问题
header: THeader;
ctrl : byte;
char : string;
end;
//-----------------------------------数据结构----------------------------------
type //每个结构长度为 $23
PTGameGoods = ^TGameGoods;
TGameGoods = packed record // 游戏物品栏在内存中的结构
cmd : byte; // 06
place: byte; //位置
name : array [0..18] of char; //中文名称 共19字节
num : dword; //数量
flag : array [0..2] of byte; //图形代码 书类 013500 斧头 010200
BColor : array[0..2] of byte; //背景色
FColor : array[0..2] of byte; //前景色
end;
type
PDropGoods = ^TDropGoods;
TDropGoods = packed record
id : dword;
x : word;
y : word;
end;
type
PTmyGoods = ^TmyGoods;
TmyGoods = record
name : array [0..18] of char; //中文名称 共19字节
num : dword; //数量
end;
//-------------------------------------------------------------------------------
const
PGoodsStart : dword = $005ACF84; //内存中物品栏数据起始位置
var
myInfor : TpacketB; //人物信息
YuanQMedication : integer = 0; //药物变量
HuoLMedication : integer = 0;
NeiGMedication : integer = 0;
WaiGMedication : integer = 0;
WuGMedication : integer = 0;
myGoods : array [0..29] of TmyGoods; //创建自已的物品栏数据结构
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -