grobal2.pas
来自「FIR引擎最新源码+注册」· PAS 代码 · 共 2,085 行 · 第 1/4 页
PAS
2,085 行
btIncSpell: Byte;
btIncHealing: Byte;
btFightZoneDieCount: Byte;
sAccount: string[10];
btEE: Byte;
btEF: Byte;
boLockLogon: Boolean;
wContribution: Word;
nHungerStatus: Integer;
boAllowGuildReCall: Boolean; // 是否允许行会合一
wGroupRcallTime: Word; //队传送时间
dBodyLuck: Double; //幸运度 8
boAllowGroupReCall: Boolean; // 是否允许天地合一
nEXPRATE: Integer; //经验倍数
nExpTime: Integer; //经验倍数时间
btLastOutStatus: Byte; //2006-01-12增加 退出状态 1为死亡退出
wMasterCount: Word; //出师徒弟数
boHasHero: Boolean; //是否有英雄
boIsHero: Boolean; //是否是英雄
btStatus: Byte; //状态
sHeroChrName: string[ACTORNAMELEN];
UnKnow: TUnKnow;
QuestFlag: TQuestFlag; //脚本变量
HumItems: THumItems; //9格装备 衣服 武器 蜡烛 头盔 项链 手镯 手镯 戒指 戒指
BagItems: TBagItems; //包裹装备
HumMagics: THumMagics; //魔法
StorageItems: TStorageItems; //仓库物品
HumAddItems: THumAddItems; //新增4格 护身符 腰带 鞋子 宝石
end;
THumDataInfo = packed record //Size 3164
Header: TRecordHeader;
Data: THumData;
end;
pTHumDataInfo = ^THumDataInfo;
TSaveRcd = record
sAccount: string[12];
sChrName: string[ACTORNAMELEN];
nSessionID: Integer;
nReTryCount: Integer;
dwSaveTick: LongWord; //2006-11-12 增加 保存错误下次保存TICK
PlayObject: TObject;
HumanRcd: THumDataInfo;
boIsHero: Boolean;
end;
pTSaveRcd = ^TSaveRcd;
TLoadDBInfo = record
sAccount: string[12];
sCharName: string[ACTORNAMELEN];
sIPaddr: string[15];
sMsg: string;
nSessionID: Integer;
nSoftVersionDate: Integer;
nPayMent: Integer;
nPayMode: Integer;
nSocket: Integer;
nGSocketIdx: Integer;
nGateIdx: Integer;
boClinetFlag: Boolean;
dwNewUserTick: LongWord;
PlayObject: TObject;
nReLoadCount: Integer;
boIsHero: Boolean;
btLoadDBType: Byte;
end;
pTLoadDBInfo = ^TLoadDBInfo;
TUserOpenInfo = record
sAccount: string[12];
sChrName: string[ACTORNAMELEN];
LoadUser: TLoadDBInfo;
HumanRcd: THumDataInfo;
nOpenStatus: Integer;
end;
pTUserOpenInfo = ^TUserOpenInfo;
TLoadUser = record
sAccount: string[12];
sChrName: string[ACTORNAMELEN];
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[ACTORNAMELEN];
sMAP: string[MAPNAMELEN];
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[MAPNAMELEN];
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[MAPNAMELEN];
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;
TItemEvent = record
m_sItemName: string[ACTORNAMELEN];
m_nMakeIndex: Integer;
m_sMapName: string[MAPNAMELEN];
m_nCurrX: Integer;
m_nCurrY: Integer;
end;
pTItemEvent = ^TItemEvent;
TSendUserData = record
nSocketIndx: Integer;
nSocketHandle: Integer;
sMsg: string;
end;
pTSendUserData = ^TSendUserData;
TCheckVersion = record
end;
pTCheckVersion = ^TCheckVersion;
TRecordDeletedHeader = packed record
boDeleted: Boolean;
bt1: Byte;
bt2: Byte;
bt3: Byte;
CreateDate: TDateTime;
LastLoginDate: TDateTime;
n14: Integer;
nNextDeletedIdx: Integer;
// sAccount :String[11];//0x14
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: TIDRecordHeader;
UserEntry: TUserEntry;
UserEntryAdd: TUserEntryAdd;
nErrorCount: Integer;
dwActionTick: LongWord;
N: array[0..38] of Byte;
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;
sMUSICName: string;
boUnAllowStdItems: Boolean;
sUnAllowStdItemsText: string;
sUnAllowMagicText: string; //不允许魔法
boNOTALLOWUSEMAGIC: Boolean; //不允许魔法
boAutoMakeMonster: Boolean;
boFIGHTPK: Boolean; //PK可以爆装备不红名
end;
pTMapFlag = ^TMapFlag;
TUserLevelSort = record //人物等级排行
nIndex: Integer;
wLevel: Word;
sChrName: string[ACTORNAMELEN];
end;
pTUserLevelSort = ^TUserLevelSort;
THeroLevelSort = record //英雄等级排行
nIndex: Integer;
wLevel: Word;
sChrName: string[ACTORNAMELEN];
sHeroName: string[ACTORNAMELEN];
end;
pTHeroLevelSort = ^THeroLevelSort;
TUserMasterSort = record //徒弟数量排行
nIndex: Integer;
nMasterCount: Integer;
sChrName: string[ACTORNAMELEN];
end;
pTUserMasterSort = ^TUserMasterSort;
TCharName = string[ACTORNAMELEN + 1];
pTCharName = ^TCharName;
THeroName = string[ACTORNAMELEN * 2 + 2];
pTHeroName = ^THeroName;
TChrMsg = record
Ident: Integer;
x: Integer;
y: Integer;
dir: Integer;
State: Integer;
feature: Integer;
saying: string;
sound: Integer;
end;
pTChrMsg = ^TChrMsg;
TRegInfo = record
sKey: string;
sServerName: string;
sRegSrvIP: string[15];
nRegPort: Integer;
end;
TDropItem = record
x: Integer;
y: Integer;
id: Integer;
Looks: Integer;
Name: string;
FlashTime: DWord;
FlashStepTime: DWord;
FlashStep: Integer;
BoFlash: Boolean;
end;
pTDropItem = ^TDropItem;
TUserCharacterInfo = record
Name: string[19];
Job: Byte;
HAIR: Byte;
Level: Word;
sex: Byte;
end;
TClientGoods = record
Name: string;
SubMenu: Integer;
Price: Integer;
Stock: Integer;
Grade: Integer;
end;
PTClientGoods = ^TClientGoods;
TClientConf = record
boClientCanSet: Boolean;
boRUNHUMAN: Boolean;
boRUNMON: Boolean;
boRunNpc: Boolean;
boWarRunAll: Boolean;
btDieColor: Byte;
wSpellTime: Word;
wHitIime: Word;
wItemFlashTime: Word;
btItemSpeed: Byte;
boCanStartRun: Boolean;
boParalyCanRun: Boolean;
boParalyCanWalk: Boolean;
boParalyCanHit: Boolean;
boParalyCanSpell: Boolean;
boShowRedHPLable: Boolean;
boShowHPNumber: Boolean;
boShowJobLevel: Boolean;
boDuraAlert: Boolean;
boMagicLock: Boolean;
boAutoPuckUpItem: Boolean;
end;
pTPowerBlock = ^TPowerBlock;
TPowerBlock = array[0..100 - 1] of Word;
TShowRemoteMessage = record
btMessageType: Byte;
boShow: Boolean;
BeginDateTime: TDateTime;
EndDateTime: TDateTime;
dwShowTime: LongWord;
dwShowTick: LongWord;
boSuperUserShow: Boolean;
sMsg: string;
end;
pTShowRemoteMessage = ^TShowRemoteMessage;
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;
function Horsefeature(cfeature: Integer): Byte;
function Effectfeature(cfeature: Integer): Byte;
function MakeHumanFeature(btRaceImg, btDress, btWeapon, btHair: Byte): Integer;
function MakeMonsterFeature(btRaceImg, btWeapon: Byte; wAppr: Word): Integer;
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;
function Horsefeature(cfeature: Integer): Byte;
begin
Result := LoByte(LoWord(cfeature));
end;
function Effectfeature(cfeature: Integer): Byte;
begin
Result := HiByte(LoWord(cfeature));
end;
function MakeHumanFeature(btRaceImg, btDress, btWeapon, btHair: Byte): Integer;
begin
Result := MakeLong(MakeWord(btRaceImg, btWeapon), MakeWord(btHair, btDress));
end;
function MakeMonsterFeature(btRaceImg, btWeapon: Byte; wAppr: Word): Integer;
begin
Result := MakeLong(MakeWord(btRaceImg, btWeapon), wAppr);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?