📄 grobal2.pas
字号:
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;
TVisibleBaseObject = record
BaseObject: TObject;
nVisibleFlag: Integer;
end;
pTVisibleBaseObject = ^TVisibleBaseObject;
THumanRcd = record
sUserID: string[10];
sCharName: string[15];
btJob: Byte;
btGender: Byte;
btLevel: Byte;
btHair: Byte;
sMapName: string[15];
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;
dwAddTick: LongWord;
dAddDate: TDateTime;
end;
pTGlobaSessionInfo = ^TGlobaSessionInfo;
THumItems = array[0..8] of TUserItem;
THumAddItems = array[9..12] of TUserItem;
TBagItems = array[0..45] of TUserItem;
TStorageItems = array[0..45] of TUserItem;
THumMagic = array[0..19] of THumMagics;
THumanUseItems = array[0..12] of TUserItem;
PTPlayUseItems = ^THumanUseItems;
pTHumItems = ^THumItems;
pTBagItems = ^TBagItems;
pTStorageItems = ^TStorageItems;
pTHumAddItems = ^THumAddItems;
pTHumMagic = ^THumMagic;
TUserStateInfo = record
Feature: Integer;
UserName: string[15];
NameColor: Integer;
GuildName: string[14];
GuildRankName: string[16];
UseItems: array[0..12] of TClientItem;
end;
pTUserStateInfo = ^TUserStateInfo;
TSellOffHeader = record
nItemCount: Integer;
end;
TSellOffInfo = packed record //Size 59 拍卖数据结构
sCharName: string[14];
dSellDateTime: TDateTime;
nSellGold: Integer;
n: Integer;
UseItems: TUserItem;
n1: Integer;
end;
pTSellOffInfo = ^TSellOffInfo;
TItemCount = Integer;
TBigStorage = packed record //无限仓库数据结构
boDelete: Boolean;
sCharName: string[14];
SaveDateTime: TDateTime;
UseItems: TUserItem;
nCount: Integer;
end;
pTBigStorage = ^TBigStorage;
TBindItem = record
sUnbindItemName: string[14];
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;
TRecordHeader = packed record //Size 12
boDeleted: Boolean;
nSelectID: Byte;
w1: Word;
dCreateDate: TDateTime; //创建时间
sName: string[15]; //0x15 //角色名称 28
end;
pTRecordHeader = ^TRecordHeader;
TQuestUnit = array[0..22] of Byte; //0..34
TQuestFlag = array[0..106] of Byte;
TStatusTime = array[0..MAX_STATUS_ATTRIBUTE - 1] of Word;
THumData = packed record
sChrName: string[14]; //0x14 //角色名称
sCurMap: string[16]; //0x04 //返城地图 57
wCurX: Word; //0x24 人物所在座标X(2字节) 59
wCurY: Word; //0x28 人物所在座标Y(2字节) 61
btDir: Byte; //0x2C 人物所在方向(1字节) 62
btHair: Byte; //0x2E 人物的头发(1字节) 63
btSex: Byte; //0x2D 人物的性别(1字节) 64
btJob: Byte; //0x2F 人物的职业(1字节) 65
nGold: Integer; //0x30 人物金币数(4字节) 69
Abil: TRAbility; //0x34 -> 0x5B //44 人物属性 113 50
BonusAbil: TNakedAbility; //20 133
sHomeMap: string[17]; //17 0x78 //回城地图 150
wHomeX: Word; //0x8C //回城座标X 152
wHomeY: Word; //0x90 //回城座标Y 154
n1: array[0..14] of Byte; //未知
sMasterName: string[14];
boMaster: Boolean; //是否是师傅
btCreditPoint: Byte; //声望
n2: Word; //未知
sStoragePwd: string[7]; //仓库密码
btReLevel: Byte; //转生等级
n3: array[0..22] of Byte; //未知
//nDay :Integer;//剩余天数
nBonusPoint: Integer; //属性点
nGameGold: Integer; //元宝
nGamePoint: Integer; //泡点
nPayMentPoint: Integer; //冲值点
n4: array[0..3] of Byte;
nPKPOINT: Word; //PK值
btAllowGroup: Byte; //允许组队
btF9: Byte;
btAttatckMode: Byte;
btIncHealth: Byte;
btIncSpell: Byte;
btIncHealing: Byte;
btFightZoneDieCount: Byte;
n5: array[0..1] of Byte;
sAccount: string[10]; //账号
btEE: Byte;
boLockLogon: Boolean;
wContribution: Word; //贡献度
btEF: Byte;
nHungerStatus: Integer;
boAllowGuildReCall: Boolean;
wGroupRcallTime: Word;
dBodyLuck: Double;
boAllowGroupReCall: Boolean; //17
wStatusTimeArr: TStatusTime; //24
QuestUnitOpen: TQuestUnit; //23
QuestUnit: TQuestUnit; //23
sDearName: string[14]; //老婆名称
n8: Word;
btDivorce: Byte; //是否结婚
n9: Byte;
btMarryCount: Byte; //结婚次数
QuestFlag: TQuestFlag;
HumItems: array[0..8] of TUserItem; //9格装备 衣服 武器 蜡烛 头盔 项链 手镯 手镯 戒指 戒指
BagItems: array[0..45] of TUserItem; //包裹装备
Magic: array[0..19] of THumMagics; //魔法
StorageItems: array[0..45] of TUserItem; //仓库物品
HumAddItems: array[0..3] of TUserItem; //新增4格 护身符 腰带 鞋子 宝石
end;
pTHumData = ^THumData;
THumDataInfo = packed record //Size 3164
Header: TRecordHeader;
Data: THumData;
end;
pTHumDataInfo = ^THumDataInfo;
TLoadUser = record
sAccount: string[12];
sChrName: string[14];
sIPaddr: string[15];
nSessionID: Integer;
nSocket: Integer;
nGateIdx: Integer;
nGSocketIdx: Integer;
nPayMent: Integer;
nPayMode: Integer;
dwNewUserTick: LongWord;
nSoftVersionDate: Integer;
end;
pTLoadUser = ^TLoadUser;
TDoorStatus = record
bo01: Boolean;
boOpened: Boolean;
dwOpenTick: LongWord;
nRefCount: Integer;
n04: Integer;
end;
pTDoorStatus = ^TDoorStatus;
TDoorInfo = record
nX: Integer;
nY: Integer;
n08: Integer;
Status: pTDoorStatus;
end;
pTDoorInfo = ^TDoorInfo;
TSlaveInfo = record
sSalveName: string;
btSalveLevel: Byte;
btSlaveExpLevel: Byte;
dwRoyaltySec: LongWord;
nKillCount: Integer;
nHP: Integer;
nMP: Integer;
end;
pTSlaveInfo = ^TSlaveInfo;
TSwitchDataInfo = record
sChrName: string[14];
sMAP: string[16];
wX: Word;
wY: Word;
Abil: TAbility;
nCode: Integer;
boC70: Boolean;
boBanShout: Boolean;
boHearWhisper: Boolean;
boBanGuildChat: Boolean;
boAdminMode: Boolean;
boObMode: Boolean;
BlockWhisperArr: array[0..5] of string;
SlaveArr: array[0..10] of TSlaveInfo;
StatusValue: array[0..5] of Word;
StatusTimeOut: array[0..5] of LongWord;
end;
pTSwitchDataInfo = ^TSwitchDataInfo;
TGoldChangeInfo = record
sGameMasterName: string;
sGetGoldUser: string;
nGold: Integer;
end;
pTGoldChangeInfo = ^TGoldChangeInfo;
TGateInfo = record
Socket: TCustomWinSocket;
boUsed: Boolean;
sAddr: string[15];
nPort: Integer;
n520: Integer;
UserList: TList;
nUserCount: Integer;
Buffer: PChar;
nBuffLen: Integer;
BufferList: TList;
boSendKeepAlive: Boolean;
nSendChecked: Integer;
nSendBlockCount: Integer;
dwTime544: LongWord;
nSendMsgCount: Integer;
nSendRemainCount: Integer;
dwSendTick: LongWord;
nSendMsgBytes: Integer;
nSendBytesCount: Integer;
nSendedMsgCount: Integer;
nSendCount: Integer;
dwSendCheckTick: LongWord;
end;
pTGateInfo = ^TGateInfo;
TStartPoint = record //安全区回城点 增加光环效果
m_sMapName: string[16];
m_nCurrX: Integer; // 人物所在座标X(4字节)
m_nCurrY: Integer;
m_boNotAllowSay: Boolean;
m_nRange: Integer;
m_nType: Integer;
m_nPkZone: Integer;
m_nPkFire: Integer;
m_btShape: Byte;
end;
pTStartPoint = ^TStartPoint;
//地图事件数据配置详解
TQuestUnitStatus = record
nQuestUnit: Integer;
boOpen: Boolean;
end;
pTQuestUnitStatus = ^TQuestUnitStatus;
TMapCondition = record
nHumStatus: Integer;
sItemName: string[14];
boNeedGroup: Boolean;
end;
pTMapCondition = ^TMapCondition;
TStartScript = record
nLable: Integer;
sLable: string[100];
end;
TMapEvent = record
m_sMapName: string[16];
m_nCurrX: Integer;
m_nCurrY: Integer;
m_nRange: Integer;
m_MapFlag: TQuestUnitStatus;
m_nRandomCount: Integer; //; 范围:(0 - 999999) 0 的机率为100% ; 数字越大,机率越低
m_Condition: TMapCondition; //触发条件
m_StartScript: TStartScript;
end;
pTMapEvent = ^TMapEvent;
TSendUserData = record
nSocketIndx: Integer;
nSocketHandle: Integer;
sMsg: string;
end;
pTSendUserData = ^TSendUserData;
TCheckVersion = record
end;
pTCheckVersion = ^TCheckVersion;
TGList = class(TList)
private
GLock: TRTLCriticalSection;
public
constructor Create;
destructor Destroy; override;
procedure Lock;
procedure UnLock;
end;
TGStringList = class(TStringList)
private
GLock: TRTLCriticalSection;
public
constructor Create;
destructor Destroy; override;
procedure Lock();
procedure UnLock;
end;
TMapFlag = record
boSAFE: Boolean;
boDARK: Boolean;
boFIGHT: Boolean;
boFIGHT3: Boolean;
boDAY: Boolean;
boQUIZ: Boolean;
boNORECONNECT: Boolean;
boMUSIC: Boolean;
boEXPRATE: Boolean;
boPKWINLEVEL: Boolean;
boPKWINEXP: Boolean;
boPKLOSTLEVEL: Boolean;
boPKLOSTEXP: Boolean;
boDECHP: Boolean;
boINCHP: Boolean;
boDECGAMEGOLD: Boolean;
boDECGAMEPOINT: Boolean;
boINCGAMEGOLD: Boolean;
boINCGAMEPOINT: Boolean;
boRUNHUMAN: Boolean;
boRUNMON: Boolean;
boNEEDHOLE: Boolean;
boNORECALL: Boolean;
boNOGUILDRECALL: Boolean;
boNODEARRECALL: Boolean;
boNOMASTERRECALL: Boolean;
boNORANDOMMOVE: Boolean;
boNODRUG: Boolean;
boMINE: Boolean;
boNOPOSITIONMOVE: Boolean;
boNoManNoMon: Boolean;
nL: Integer;
nNEEDSETONFlag: Integer;
nNeedONOFF: Integer;
nMUSICID: Integer;
nPKWINLEVEL: Integer;
nEXPRATE: Integer;
nPKWINEXP: Integer;
nPKLOSTLEVEL: Integer;
nPKLOSTEXP: Integer;
nDECHPPOINT: Integer;
nDECHPTIME: Integer;
nINCHPPOINT: Integer;
nINCHPTIME: Integer;
nDECGAMEGOLD: Integer;
nDECGAMEGOLDTIME: Integer;
nDECGAMEPOINT: Integer;
nDECGAMEPOINTTIME: Integer;
nINCGAMEGOLD: Integer;
nINCGAMEGOLDTIME: Integer;
nINCGAMEPOINT: Integer;
nINCGAMEPOINTTIME: Integer;
sReConnectMap: string;
boUnAllowStdItems: Boolean;
sUnAllowStdItemsText: string;
boAutoMakeMonster: Boolean;
boNOFIREMAGIC: Boolean;//不允许火墙
end;
pTMapFlag = ^TMapFlag;
implementation
constructor TGList.Create;
begin
inherited Create;
InitializeCriticalSection(GLock);
end;
destructor TGList.Destroy;
begin
DeleteCriticalSection(GLock);
inherited;
end;
procedure TGList.Lock;
begin
EnterCriticalSection(GLock);
end;
procedure TGList.UnLock;
begin
LeaveCriticalSection(GLock);
end;
constructor TGStringList.Create;
begin
inherited Create;
InitializeCriticalSection(GLock);
end;
destructor TGStringList.Destroy;
begin
DeleteCriticalSection(GLock);
inherited;
end;
procedure TGStringList.Lock;
begin
EnterCriticalSection(GLock);
end;
procedure TGStringList.UnLock;
begin
LeaveCriticalSection(GLock);
end;
initialization
finalization
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -