📄 grobal2.pas
字号:
pTNakedAbility = ^TNakedAbility;
TNakedAbility = record
DC: Word;
MC: Word;
SC: Word;
AC: Word;
MAC: Word;
HP: Word;
MP: Word;
Hit: Byte;
Speed: Integer;
X2: Integer;
end;
TQuestUnit = array[0..7] of Integer;
TQuestFlag = array[0..7] of Byte;
TAddAbility = record
btWeaponStrong: Byte;
bt1DF: Byte;
wHitpoint: Word;
wSpeedPoint: Word;
wAntiPoison: Word;
wPoisonRecover: Word;
wHealthRecover: Word;
wSpellRecover: Word;
wAntiMagic: Word;
btLuck: Byte;
btUnLuck: Byte;
nHitSpeed: Integer;
wHP: Word;
wMp: Word;
wAC: Word;
wMAC: Word;
wDc: Word;
wMc: Word;
wSc: Word;
end;
TStatusTime = array[0..12] of LongWord;
THumanUseItems = array[0..13] of TUserItem;
TMsgColor = (c_Red, c_Green, c_Blue, c_White);
TMsgType = (t_Mon, t_Hint, t_GM, t_System, t_Notice, t_Cust, t_Castle, t_say);
TMonStatus = (s_KillHuman, s_UnderFire, s_Die, s_MonGen);
TProcessMessage = packed record
wIdent: Integer;
wParam: Integer;
nParam1: Integer;
nParam2: Integer;
nParam3: Integer;
dwDeliveryTime: DWord;
sMsg: string;
BaseObject: TObject;
boLateDelivery: Boolean;
end;
pTProcessMessage = ^TProcessMessage;
TSessInfo = record
nSessionID: Integer;
nPayMent: Integer;
nPayMode: Integer;
nSessionStatus: Integer;
dwStartTick: LongWord;
dwActiveTick: LongWord;
nRefCount: Integer;
nSocket: Integer;
nGateIdx: Integer;
nGSocketIdx: Integer;
dwNewUserTick: DWord;
nSoftVersionDate: Integer;
sAccount: string;
sIPaddr: string[15];
end;
TQuestInfo = record
wFlag: Word;
btValue: Byte;
nRandRage: Integer;
end;
pTSessInfo = ^TSessInfo;
TScript = record
boQuest: Boolean;
nQuest: Integer;
QuestInfo: array[0..9] of TQuestInfo;
RecordList: TList;
end;
pTScript = ^TScript;
TPowerBlock = array[0..99] of Byte;
pTPowerBlock = ^TPowerBlock;
TSlaveInfo = record
sSalveName: string;
btSalveLevel: Byte;
btSlaveExpLevel: Byte;
dwRoyaltySec: DWord;
nKillCount: Integer;
nHP: Integer;
nMP: Integer;
end;
pTSlaveInfo = ^TSlaveInfo;
TOAbility = packed record
Level: Word; //0x198 //0x34 0x30
AC: Word; //0x19A //0x36 0x32
MAC: Word; //0x19C //0x38 0x034
DC: Word; //0x19E //0x3A 0x36
MC: Word; //0x1A0 //0x3C 0x38
SC: Word; //0x1A2 //0x3E 0x3A
HP: Word; //0x1A4 //0x40 0x3C
MP: Word; //0x1A6 //0x42 0x3E
MaxHP: Word; //0x1A8 //0x44 0x40
MaxMP: Word; //0x1AA //0x46 0x42
bt48: Byte; //0x1AC 0x44
bt49: Byte; //0x1AD 0x45
bt4A: Byte; //0x1AE 0x46
bt4B: Byte; //0x1AF 0x47
Exp: LongWord; //0x1B0 //0x4C 0x48
MaxExp: LongWord; //0x1B4 //0x50 0x4C
Weight: Word; //0x1B8 //0x54 0x50
MaxWeight: Word; //0x1BA //0x56 0x52 背包
WearWeight: Byte; //0x1BC //0x58 0x54
MaxWearWeight: Byte; //0x1BD //0x59 0x55 负重
HandWeight: Byte; //0x1BE //0x5A 0x56
MaxHandWeight: Byte; //0x1BF //0x5B 0x57 腕力
end;
TMagic = record //+
wMagicId: Word;
sMagicName: string[12];
btEffectType: Byte;
btEffect: Byte;
xx: Byte;
wSpell: Word;
wPower: Word;
wMaxPower: Word;
btJob: Byte;
btTrainLv: Byte;
btDefSpell: Byte;
btDefPower: Byte;
btDefMaxPower: Byte;
TrainLevel: array[0..3] of Byte;
TrainLeveX: array[0..3] of Byte;
MaxTrain: array[0..3] of Integer;
dwDelayTime: DWord;
sDescr: string;
end;
pTMagic = ^TMagic;
TUserMagic = record
MagicInfo: pTMagic;
btLevel: Byte;
btKey: Byte;
wMagIdx: Integer;
nTranPoint: Integer;
end;
pTUserMagic = ^TUserMagic;
THumItems = array[0..13] of TUserItem;
pTHumItems = ^THumItems;
THumAddItems = array[0..13] of TUserItem;
pTHumAddItems = ^THumAddItems;
TBagItems = array[0..40] of TUserItem;
pTBagItems = ^TBagItems;
THumMagic = array[0..40] of TUserMagic;
pTHumMagic = ^THumMagic;
TStorageItems = array[0..20] of TUserItem;
pTStorageItems = ^TStorageItems;
THumData = record
sChrName: string[15];
sAccount: string[15];
sCurMap: string[15];
sHomeMap: string[15];
sMasterName: string[15];
wCurX: Word;
wCurY: Word;
btDir: Byte;
btHair: Byte;
btSex: Byte;
btJob: Byte;
nGold: Integer;
wHomeX: Word;
wHomeY: Word;
BonusAbil: TNakedAbility;
nBonusPoint: Integer;
btCreditPoint: Byte;
btReLevel: Byte;
boMaster: Boolean;
sDearName: string[15];
sStoragePwd: string[15];
nGameGold: Integer;
nGamePoint: Integer;
nPayMentPoint: Integer;
nPKPOINT: Integer;
btAllowGroup: Byte;
btF9: Byte;
btAttatckMode: Byte;
btIncHealth: Byte;
btIncSpell: Byte;
btIncHealing: Byte;
btFightZoneDieCount: Byte;
btEE: Byte;
btEF: Byte;
boLockLogon: Boolean;
boAllowGuildReCall: Boolean;
boAllowGroupReCall: Boolean;
wGroupRcallTime: Word;
dBodyLuck: Double;
QuestUnitOpen: TQuestUnit;
QuestUnit: TQuestUnit;
QuestFlag: TQuestFlag;
wContribution: Word;
nHungerStatus: Integer;
wStatusTimeArr: TStatusTime;
HumItems: THumItems;
HumAddItems: THumAddItems;
BagItems: TBagItems;
StorageItems: TStorageItems;
Magic: THumMagic;
Abil: TAbility;
end;
pTHumData = ^THumData;
THumDataInfo = record
Data: THumData;
end;
TGameCmd = record
sCmd: string;
nPermissionMin: Integer;
nPermissionMax: Integer;
end;
pTGameCmd = ^TGameCmd;
TLoadDBInfo = record
nGateIdx: Integer;
nSocket: Integer;
nSessionID: Integer;
nSoftVersionDate: Integer;
nPayMent: Integer;
nPayMode: Integer;
nGSocketIdx: Integer;
nReLoadCount: Integer;
dwNewUserTick: LongWord;
PlayObject: TObject;
sAccount: string[15];
sCharName: string[15];
sIPaddr: string[15];
end;
pTLoadDBInfo = ^TLoadDBInfo;
TGoldChangeInfo = record
sGameMasterName: string;
sGetGoldUser: string;
nGold: Integer;
end;
pTGoldChangeInfo = ^TGoldChangeInfo;
TSwitchDataInfo = record
sMAP: string[15];
sChrName: string[15];
wX: Word;
wY: Word;
nCode: Integer;
boC70: Boolean;
boBanShout: Boolean;
boHearWhisper: Boolean;
boBanGuildChat: Boolean;
boAdminMode: Boolean;
boObMode: Boolean;
BlockWhisperArr: array[0..20] of string;
SlaveArr: array[0..5] of TSlaveInfo;
StatusValue: array[0..5] of Word;
StatusTimeOut: array[0..5] of LongWord;
Abil: TAbility;
end;
pTSwitchDataInfo = ^TSwitchDataInfo;
TUserOpenInfo = record
sChrName: string[15];
LoadUser: TLoadDBInfo;
HumanRcd: THumDataInfo;
end;
pTUserOpenInfo = ^TUserOpenInfo;
PTIPAddr = ^TIPaddr;
TIPaddr = packed record
a, B, C, d: Byte;
Port: Integer;
sIPaddr: string[15];
dIPaddr: string[15];
end;
TClassProc = procedure(Sender: TObject);
TProc = record
sProcName: string;
nProcAddr: Pointer;
end;
TProcArray = array of TProc;
TmyObject = record
sObjcName: string;
Obj: TObject;
end;
TObjectArray = array[0..100] of TmyObject;
TOStdItem = packed record //OK
Name: string[14];
StdMode: Byte; //0x0F
Shape: Byte; //0x10
Weight: Byte; //0x11
AniCount: Byte; //0x12
Source: ShortInt; //0x13
Reserved: Byte; //0x14
NeedIdentify: Byte; //0x15
Looks: Word; //0x16
DuraMax: Word; //0x18
AC: Word; //0x1A
MAC: Word; //0x1C
DC: Word; //0x1E
MC: Word; //0x20
SC: Word; //0x22
Need: Byte; //0x24
NeedLevel: Byte; //0x25
w26: Word;
Price: Integer; //0x28
end;
pTOStdItem = ^TOStdItem;
TCheckCode = record
end;
TClientConf = record
boClientCanSet: Boolean;
boRUNHUMAN: Boolean;
boRUNMON: Boolean;
boRunNpc: Boolean;
boWarRunAll: Boolean;
btDieColor: Integer;
wSpellTime: Integer;
wHitIime: Integer;
wItemFlashTime: Integer {5 * 1000};
btItemSpeed: Integer; {60}
boCanStartRun: Boolean;
boParalyCanRun: Boolean;
boParalyCanWalk: Boolean;
boParalyCanHit: Boolean;
boParalyCanSpell: Boolean;
boShowRedHPLable: Boolean;
boShowHPNumber: Boolean;
boShowJobLevel: Boolean;
boDuraAlert: Boolean;
boMagicLock: Boolean;
boAutoPuckUpItem: Boolean;
end;
TRecallMigic = record
nHumLevel: Integer;
nCount: Integer;
nLevel: Integer;
sMonName: string;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -