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

📄 grobal2.pas

📁 飘飘的传奇服务端院代码 能编译的 要控件 老大就让我传上去吧
💻 PAS
字号:
unit Grobal2;

interface
uses
  Windows;
const
  DEFBLOCKSIZE = 16;
  BUFFERSIZE = 10000;

  SM_CERTIFICATION_SUCCESS = 502;

  GS_QUIT = 2000;
  GS_USERACCOUNT =2001;
  GS_CHANGEACCOUNTINFO =2002;

  SG_USERACCOUNT =1003;
  SG_USERACCOUNTNOTFOUND =1004;       //没有找到账号
  SG_USERACCOUNTCHANGESTATUS =1005;  //账号更新成功
  SG_CHECKCODEADDR =1006;


  SG_FORMHANDLE=1000;//账号服务器HANLD
  SG_STARTNOW=1001;  //正在启动登录服务器...
  SG_STARTOK=1002;   //登录服务器启动完成...
  
  WM_SENDPROCMSG=11111;

  CM_GETGAMELIST  = 2000;

  SM_SENDGAMELIST = 5000;
ResourceString
  sDBHeaderDesc     = '翎风游戏数据库文件 2005/04/20';
  sDBIdxHeaderDesc  = '翎风游戏数据库索引文件 2005/04/20';
type
  TDBHeader = packed record
    sDesc       :String[34]; //0x00
    n23         :Integer;    //0x23
    n28         :Integer;    //0x27
    n2C         :Integer;    //0x2B
    n30         :Integer;    //0x2F
    n34         :Integer;    //0x33
    n38         :Integer;    //0x37
    n3C         :Integer;    //0x3B
    n40         :Integer;    //0x3F
    n44         :Integer;    //0x43
    n48         :Integer;    //0x47
    n4B         :Byte;       //0x4B
    n4C         :Integer;    //0x4C
    n50         :Integer;    //0x50
    n54         :Integer;    //0x54
    n58         :Integer;    //0x58
    nLastIndex  :Integer;    //0x5C
    dLastDate   :TDateTime;  //0x60
    nIDCount    :Integer;    //0x68
    n6C         :Integer;    //0x6C
    nDeletedIdx :Integer;    //0x70
    dUpdateDate :TDateTime;  //0x74
  end;
  pTDBHeader = ^TDBHeader;

  TIdxHeader = packed record
    sDesc       :String[43]; //0x00
    n2C         :Integer;    //0x2C
    n30         :Integer;    //0x30
    n34         :Integer;    //0x34
    n38         :Integer;    //0x38
    n3C         :Integer;    //0x3C
    n40         :Integer;    //0x40
    n44         :Integer;    //0x44
    n48         :Integer;    //0x48
    n4C         :Integer;    //0x4C
    n50         :Integer;    //0x50
    n54         :Integer;    //0x54
    n58         :Integer;    //0x58
    n5C         :Integer;    //0x5C
    n60         :Integer;    //0x60
    nQuickCount :Integer;    //0x64
    nIDCount    :Integer;    //0x68
    nLastIndex  :Integer;    //0x6C
    dUpdateDate :TDateTime;  //0x70
  end;

  TRecordDeletedHeader = packed record
    boDeleted     :Boolean;
    bt1           :Byte;
    bt2           :Byte;
    bt3           :Byte;
    CreateDate    :TDateTime; //0x04
    LastLoginDate :TDateTime; //0x0C
    n14           :Integer;
    nNextDeletedIdx  :Integer;
//    sAccount   :String[11];//0x14
  end;
  TRecordHeader =   packed record
    boDeleted     :Boolean;
    bt1           :Byte;
    bt2           :Byte;
    bt3           :Byte;
    CreateDate    :TDateTime; //0x04
    UpdateDate    :TDateTime; //0x0C
    sAccount      :String[11];
  end;

  TUserEntry = packed  record
    sAccount: string[10];
    sPassword: string[10];
    sUsername: string[20];
    sSSNo: string[14];
    sPhone: string[14];
    sQuiz: string[20];
    sAnswer: string[12];
    sEMail: string[40];
  end;
  TUserEntryAdd = packed  record
    sQuiz2: string[20];
    sAnswer2: string[12];
    sBirthDay: string[10];
    sMobilePhone: string[13];
    sMemo: string[20];
    sMemo2: string[20];
  end;

  TAccountDBRecord = packed record
    Header       :TRecordHeader;
    UserEntry    :TUserEntry;
    UserEntryAdd :TUserEntryAdd;
    nErrorCount  :Integer;
    dwActionTick :LongWord;
    n            :array [0..38] of Byte;
  end;

  TDefaultMessage = record
    Recog: Integer;
    Ident: word;
    Param: word;
    Tag: word;
    Series: word;
  end;

  TChrMsg = record
    Ident: Integer;
    X: Integer;
    Y: Integer;
    Dir: Integer;
    State: Integer;
    feature: Integer;
    saying: string;
    sound: Integer;
  end;
  PTChrMsg = ^TChrMsg;
  TStdItem = record //OK
    Name: string[14];
    StdMode: Byte;
    Shape: Byte;
    Weight: Byte;
    AniCount: Byte;
    Source: Byte;
    Reserved: Byte;
    NeedIdentify: Byte;
    Looks: word;
    DuraMax: word;
    AC: word;
    MAC: word;
    DC: word;
    MC: word;
    SC: word;
    Need: Byte;
    NeedLevel: Byte;
    Price: DWORD;
  end;
  TClientItem = record //OK
    S: TStdItem;
    MakeIndex: Integer;
    Dura: word;
    DuraMax: word;
  end;
  PTClientItem = ^TClientItem;
  TUserStateInfo = record //OK
    feature: Integer;
    Username: string[19];
    GuildName: string[14];
    GuildRankName: string[14];
    NameColor: word;
    UseItems: array[0..8] of TClientItem;
  end;
  TUserCharacterInfo = record
    Name: string[19];
    Job: Byte;
    Hair: Byte;
    Level: Byte;
    m_btSex: Byte;
  end;
  TDropItem = record
    X: Integer;
    Y: Integer;
    Id: Integer;
    Looks: Integer;
    Name: string;
    FlashTime: DWORD;
    FlashStepTime: DWORD;
    FlashStep: Integer;
    BoFlash: Boolean;
  end;
  PTDropItem = ^TDropItem;
  TMagic = record //+
    MagicId: word;
    MagicName: string[12];
    EffectType: Byte;
    Effect: Byte;
    xx: Byte;
    Spell: word;
    DefSpell: word;
    TrainLevel: array[0..2] of Byte;
    TrainLeveX: array[0..2] of Byte;
    MaxTrain: array[0..2] of Integer;
    DelayTime: Integer;
  end;
  TClientMagic = record //84
    Key: Char;
    Level: Byte;
    CurTrain: Integer;
    Def: TMagic;
  end;
  PTClientMagic = ^TClientMagic;
  TNakedAbility = record
    DC: word;
    MC: word;
    SC: word;
    AC: word;
    MAC: word;
    HP: word;
    MP: word;
    Hit: Byte;
    Speed: Integer;
  end;

  TAbility = record //OK    //Size 40
    Level: word; //0x198
    AC: word; //0x19A
    MAC: word; //0x19C
    DC: word; //0x19E
    MC: word; //0x1A0
    SC: word; //0x1A2
    HP: word; //0x1A4
    MP: word; //0x1A6
    MaxHP: word; //0x1A8
    MaxMP: word; //0x1AA
    dw1AC: DWORD; //0x1AC
    Exp: DWORD; //0x1B0
    MaxExp: DWORD; //0x1B4
    Weight: word; //0x1B8
    MaxWeight: word; //0x1BA
    WearWeight: Byte; //0x1BC
    MaxWearWeight: Byte; //0x1BD
    HandWeight: Byte; //0x1BE
    MaxHandWeight: Byte; //0x1BF
  end;

  TShortMessage = record
    Ident: word;
    wMsg: word;
  end;

  TMessageBodyW = record
    Param1: word;
    Param2: word;
    Tag1: word;
    Tag2: word;
  end;

  TMessageBodyWL = record //16  0x10
    lParam1: Integer;
    lParam2: Integer;
    lTag1: Integer;
    lTag2: Integer;
  end;

  TCharDesc = record
    feature: Integer;
    Status: Integer;
  end;
  TClientGoods = record
    Name: string;
    SubMenu: Integer;
    Price: Integer;
    Stock: Integer;
    Grade: Integer;
  end;
  pTClientGoods = ^TClientGoods;
  //ResourceString
function APPRfeature(cfeature: Integer): word;
function RACEfeature(cfeature: Integer): Byte;
function HAIRfeature(cfeature: Integer): Byte;
function DRESSfeature(cfeature: Integer): Byte;
function WEAPONfeature(cfeature: Integer): Byte;
implementation

function WEAPONfeature(cfeature: Integer): Byte;
begin
  Result := HiByte(cfeature);
end;
function DRESSfeature(cfeature: Integer): Byte;
begin
  Result := HiByte(HiWord(cfeature));
end;
function APPRfeature(cfeature: Integer): word;
begin
  Result := HiWord(cfeature);
end;
function HAIRfeature(cfeature: Integer): Byte;
begin
  Result := HiWord(cfeature);
end;
function RACEfeature(cfeature: Integer): Byte;
begin
  Result := cfeature;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -