grobal2.pas
来自「FIR引擎最新源码+注册」· PAS 代码 · 共 2,085 行 · 第 1/4 页
PAS
2,085 行
btEffect: Byte;
bt11: Byte;
wSpell: Word;
wPower: Word;
TrainLevel: array[0..3] of Byte;
w02: Word;
MaxTrain: array[0..3] of Integer;
btTrainLv: Byte;
btJob: Byte;
wMagicIdx: Word;
dwDelayTime: LongWord;
btDefSpell: Byte;
btDefPower: Byte;
wMaxPower: Word;
btDefMaxPower: Byte;
sDescr: string[18];
end;
pTMagic = ^TMagic;
TClientMagic = record //84
Key: Char;
Level: Byte;
CurTrain: Integer;
Def: TMagic;
end;
PTClientMagic = ^TClientMagic;
TUserMagic = record
MagicInfo: pTMagic;
wMagIdx: Word;
btLevel: Byte;
btKey: Byte;
nTranPoint: Integer;
end;
pTUserMagic = ^TUserMagic;
TMinMap = record
sName: string;
nID: Integer;
end;
pTMinMap = ^TMinMap;
TMapRoute = record
sSMapNO: string;
nDMapX: Integer;
nSMapY: Integer;
sDMapNO: string;
nSMapX: Integer;
nDMapY: Integer;
end;
pTMapRoute = ^TMapRoute;
TMapInfo = record
sName: string;
sMapNO: string;
nL: Integer; //0x10
nServerIndex: Integer; //0x24
nNEEDONOFFFlag: Integer; //0x28
boNEEDONOFFFlag: Boolean; //0x2C
sShowName: string; //0x4C
sReConnectMap: string; //0x50
boSAFE: Boolean; //0x51
boDARK: Boolean; //0x52
boFIGHT: Boolean; //0x53
boFIGHT3: Boolean; //0x54
boDAY: Boolean; //0x55
boQUIZ: Boolean; //0x56
boNORECONNECT: Boolean; //0x57
boNEEDHOLE: Boolean; //0x58
boNORECALL: Boolean; //0x59
boNORANDOMMOVE: Boolean; //0x5A
boNODRUG: Boolean; //0x5B
boMINE: Boolean; //0x5C
boNOPOSITIONMOVE: Boolean; //0x5D
end;
pTMapInfo = ^TMapInfo;
TUnbindInfo = record
nUnbindCode: Integer;
sItemName: string[14];
end;
pTUnbindInfo = ^TUnbindInfo;
TQuestDiaryInfo = record
QDDinfoList: TList;
end;
pTQuestDiaryInfo = ^TQuestDiaryInfo;
TAdminInfo = record
nLv: Integer;
sChrName: string[ACTORNAMELEN];
sIPaddr: string[15];
end;
pTAdminInfo = ^TAdminInfo;
THumMagic = record
wMagIdx: Word;
btLevel: Byte;
btKey: Byte;
nTranPoint: Integer; //当前持久值
end;
pTHumMagic = ^THumMagic;
TNakedAbility = packed record //Size 20
DC: Word;
MC: Word;
SC: Word;
AC: Word;
MAC: Word;
HP: Word;
MP: Word;
Hit: Word;
Speed: Word;
X2: Word;
end;
pTNakedAbility = ^TNakedAbility;
TAbility = packed record //OK //Size 40
Level: Word; //0x198 //0x34 0x00
AC: Integer; //0x19A //0x36 0x02
MAC: Integer; //0x19C //0x38 0x04
DC: Integer; //0x19E //0x3A 0x06
MC: Integer; //0x1A0 //0x3C 0x08
SC: Integer; //0x1A2 //0x3E 0x0A
HP: Word; //0x1A4 //0x40 0x0C
MP: Word; //0x1A6 //0x42 0x0E
MaxHP: Word; //0x1A8 //0x44 0x10
MaxMP: Word; //0x1AA //0x46 0x12
Exp: LongWord; //0x1B0 //0x4C 0x18
MaxExp: LongWord; //0x1B4 //0x50 0x1C
Weight: Word; //0x1B8 //0x54 0x20
MaxWeight: Word; //0x1BA //0x56 0x22 背包
WearWeight: Word; //0x1BC //0x58 0x24
MaxWearWeight: Word; //0x1BD //0x59 0x25 负重
HandWeight: Word; //0x1BE //0x5A 0x26
MaxHandWeight: Word; //0x1BF //0x5B 0x27 腕力
end;
pTAbility = ^TAbility;
TOAbility = packed record
Level: Word;
AC: Word;
MAC: Word;
DC: Word;
MC: Word;
SC: Word;
HP: Word;
MP: Word;
MaxHP: Word;
MaxMP: Word;
btReserved1: Byte;
btReserved2: Byte;
btReserved3: Byte;
btReserved4: Byte;
Exp: LongWord;
MaxExp: LongWord;
Weight: Word;
MaxWeight: Word; //背包
WearWeight: Byte;
MaxWearWeight: Byte; //负重
HandWeight: Byte;
MaxHandWeight: Byte; //腕力
end;
pTOAbility = ^TOAbility;
TAddAbility = record //OK //Size 40
wHP: Word;
wMP: Word;
wHitPoint: Word;
wSpeedPoint: Word;
wAC: Integer;
wMAC: Integer;
wDC: Integer;
wMC: Integer;
wSC: Integer;
bt1DF: Byte; //神圣
bt035: Byte;
wAntiPoison: Word;
wPoisonRecover: Word;
wHealthRecover: Word;
wSpellRecover: Word;
wAntiMagic: Word;
btLuck: Byte;
btUnLuck: Byte;
nHitSpeed: Integer;
btWeaponStrong: Byte;
end;
pTAddAbility = ^TAddAbility;
TWAbility = record
dwExp: LongWord; //怪物经验值(Dword)
wHP: Word;
wMP: Word;
wMaxHP: Word;
wMaxMP: Word
end;
TMerchantInfo = record
sScript: string[14];
sMapName: string[14];
nX: Integer;
nY: Integer;
sNPCName: string[40];
nFace: Integer;
nBody: Integer;
boCastle: Boolean;
end;
pTMerchantInfo = ^TMerchantInfo;
TSocketBuff = record
Buffer: PChar; //0x24
nLen: Integer; //0x28
end;
pTSocketBuff = ^TSocketBuff;
TSendBuff = record
nLen: Integer;
Buffer: array[0..DATA_BUFSIZE - 1] of Char;
end;
pTSendBuff = ^TSendBuff;
TUserItem = record
MakeIndex: Integer;
wIndex: Word; //物品id
Dura: Word; //当前持久值
DuraMax: Word; //最大持久值
btValue: array[0..13] of Byte;
end;
pTUserItem = ^TUserItem;
TMonItemInfo = record
SelPoint: Integer;
MaxPoint: Integer;
ItemName: string;
Count: Integer;
end;
pTMonItemInfo = ^TMonItemInfo;
TMonsterInfo = record
Name: string;
ItemList: TList;
end;
PTMonsterInfo = ^TMonsterInfo;
TMapItem = record
Name: string;
Looks: Word;
AniCount: Byte;
Reserved: Byte;
Count: Integer;
OfBaseObject: TObject;
DropBaseObject: TObject;
dwCanPickUpTick: LongWord;
UserItem: TUserItem;
end;
PTMapItem = ^TMapItem;
TVisibleMapItem = record
{wIdent: Word;
nParam1: Integer;
Buff: PChar;}
MapItem: PTMapItem;
nVisibleFlag: Integer;
nX: Integer;
nY: Integer;
sName: string;
wLooks: Word;
end;
pTVisibleMapItem = ^TVisibleMapItem;
TVisibleMapEvent = record
MapEvent: TObject;
nVisibleFlag: Integer;
nX: Integer;
nY: Integer;
end;
pTVisibleMapEvent = ^TVisibleMapEvent;
TVisibleBaseObject = record
BaseObject: TObject;
nVisibleFlag: Integer;
end;
pTVisibleBaseObject = ^TVisibleBaseObject;
THumanRcd = record
sUserID: string[10];
sCharName: string[14];
btJob: Byte;
btGender: Byte;
btLevel: Byte;
btHair: Byte;
sMapName: string[16];
btAttackMode: Byte;
btIsAdmin: Byte;
nX: Integer;
nY: Integer;
nGold: Integer;
dwExp: LongWord;
end;
pTHumanRcd = ^THumanRcd;
TObjectFeature = record
btGender: Byte;
btWear: Byte;
btHair: Byte;
btWeapon: Byte;
end;
pTObjectFeature = ^TObjectFeature;
TStatusInfo = record
nStatus: Integer;
dwStatusTime: LongWord;
sm218: SmallInt;
dwTime220: LongWord;
end;
TMsgHeader = record
dwCode: LongWord;
nSocket: Integer;
wGSocketIdx: Word;
wIdent: Word;
wUserListIndex: Integer;
nLength: Integer;
end;
pTMsgHeader = ^TMsgHeader;
TUserInfo = record
bo00: Boolean; //0x00
bo01: Boolean; //0x01 ?
bo02: Boolean; //0x02 ?
bo03: Boolean; //0x03 ?
n04: Integer; //0x0A ?
n08: Integer; //0x0B ?
bo0C: Boolean; //0x0C ?
bo0D: Boolean; //0x0D
bo0E: Boolean; //0x0E ?
bo0F: Boolean; //0x0F ?
n10: Integer; //0x10 ?
n14: Integer; //0x14 ?
n18: Integer; //0x18 ?
sStr: string[20]; //0x1C
nSocket: Integer; //0x34
nGateIndex: Integer; //0x38
n3C: Integer; //0x3C
n40: Integer; //0x40 ?
n44: Integer; //0x44
List48: TList; //0x48
Cert: TObject; //0x4C
dwTime50: LongWord; //0x50
bo54: Boolean; //0x54
end;
pTUserInfo = ^TUserInfo;
TGlobaSessionInfo = record
sAccount: string;
sIPaddr: string;
nSessionID: Integer;
n24: Integer;
bo28: Boolean;
boLoadRcd: Boolean;
boStartPlay: Boolean;
dwAddTick: LongWord;
dAddDate: TDateTime;
end;
pTGlobaSessionInfo = ^TGlobaSessionInfo;
TUserStateInfo = record
feature: Integer;
UserName: string[ACTORNAMELEN];
NAMECOLOR: Integer;
GuildName: string[ACTORNAMELEN];
GuildRankName: string[16];
UseItems: array[0..12] of TClientItem;
end;
pTUserStateInfo = ^TUserStateInfo;
TSellOffHeader = record
nItemCount: Integer;
end;
TSellOffInfo = packed record //Size 59 拍卖数据结构
sCharName: string[ACTORNAMELEN];
dSellDateTime: TDateTime;
nSellGold: Integer;
N: Integer;
UseItems: TUserItem;
n1: Integer;
end;
pTSellOffInfo = ^TSellOffInfo;
TItemCount = Integer;
TBigStorage = packed record //无限仓库数据结构
boDelete: Boolean;
sCharName: string[ACTORNAMELEN];
SaveDateTime: TDateTime;
UseItems: TUserItem;
nCount: Integer;
end;
pTBigStorage = ^TBigStorage;
TBindItem = record
sUnbindItemName: string[ACTORNAMELEN];
nStdMode: Integer;
nShape: Integer;
btItemType: Byte;
end;
pTBindItem = ^TBindItem;
TOUserStateInfo = packed record //OK
feature: Integer;
UserName: string[15]; // 15
GuildName: string[14]; //14
GuildRankName: string[16]; //15
NAMECOLOR: Word;
UseItems: array[0..8] of TOClientItem;
end;
TIDRecordHeader = packed record
boDeleted: Boolean;
bt1: Byte;
bt2: Byte;
bt3: Byte;
CreateDate: TDateTime;
UpdateDate: TDateTime;
sAccount: string[11];
end;
TRecordHeader = packed record //Size 12
boDeleted: Boolean;
nSelectID: Byte;
boIsHero: Boolean;
bt2: Byte;
dCreateDate: TDateTime; //创建时间
sName: string[15]; //0x15 //角色名称 28
end;
pTRecordHeader = ^TRecordHeader;
TUnKnow = array[0..39] of Byte;
TQuestUnit = array[0..127] of Byte;
TQuestFlag = array[0..127] of Byte;
TStatusTime = array[0..MAX_STATUS_ATTRIBUTE - 1] of Word;
THumItems = array[0..8] of TUserItem;
THumAddItems = array[9..12] of TUserItem;
TBagItems = array[0..45] of TUserItem;
TStorageItems = array[0..45] of TUserItem;
THumMagics = array[0..19] of THumMagic;
THumanUseItems = array[0..12] of TUserItem;
THeroItems = array[0..12] of TUserItem;
THeroBagItems = array[0..40 - 1] of TUserItem;
PTPLAYUSEITEMS = ^THumanUseItems;
pTHeroItems = ^THeroItems;
pTHumItems = ^THumItems;
pTBagItems = ^TBagItems;
pTStorageItems = ^TStorageItems;
pTHumAddItems = ^THumAddItems;
pTHumMagics = ^THumMagics;
pTHeroBagItems = ^THeroBagItems;
pTHeroData = ^THeroData;
THeroData = packed record //Size = 1514-40 英雄数据
sChrName: string[ACTORNAMELEN];
btHair: Byte;
btSex: Byte;
btJob: Byte;
Abil: TOAbility; //+40
//wStatusTimeArr: TStatusTime; //+24
btReLevel: Byte;
btCreditPoint: Byte;
nBagItemCount: Integer;
nPKPOINT: Integer;
btStatus: Byte; //状态
boProtectStatus: Boolean; //是否是守护状态
nProtectTargetX: Integer; //守护坐标
nProtectTargetY: Integer; //守护坐标
UnKnow: array[0..9] of Byte;
HumItems: THumanUseItems; //12格装备 衣服 武器 蜡烛 头盔 项链 手镯 手镯 戒指 戒指
BagItems: THeroBagItems; //包裹装备
HumMagics: THumMagics; //魔法
end;
pTHumData = ^THumData;
THumData = packed record //Size = 3164
sChrName: string[ACTORNAMELEN];
sCurMap: string[MAPNAMELEN];
wCurX: Word;
wCurY: Word;
btDir: Byte;
btHair: Byte;
btSex: Byte;
btJob: Byte;
nGold: Integer;
Abil: TOAbility; //+40
wStatusTimeArr: TStatusTime; //+24
sHomeMap: string[MAPNAMELEN];
btUnKnow1: Byte;
wHomeX: Word;
wHomeY: Word;
sDearName: string[ACTORNAMELEN];
sMasterName: string[ACTORNAMELEN];
boMaster: Boolean;
btCreditPoint: Byte;
btDivorce: Byte; //是否结婚
btMarryCount: Byte; //结婚次数
sStoragePwd: string[7];
btReLevel: Byte;
btUnKnow2: array[0..2] of Byte;
BonusAbil: TNakedAbility; //+20
nBonusPoint: Integer;
nGameGold: Integer;
nGamePoint: Integer;
nPayMentPoint: Integer; //充值点
N: Integer;
nPKPOINT: Integer;
btAllowGroup: Byte;
btF9: Byte;
btAttatckMode: Byte;
btIncHealth: Byte;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?