⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 packstruct.pas

📁 千年2的脱机源代码
💻 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 + -