📄 grobal2.pas
字号:
SS_KEEPALIVE = 104;
SS_KICKUSER = 111;
SS_SERVERLOAD = 113;
SS_200 = 200;
SS_201 = 201;
SS_202 = 202;
SS_203 = 203;
SS_204 = 204;
SS_205 = 205;
SS_206 = 206;
SS_207 = 207;
SS_208 = 208;
SS_209 = 209;
SS_210 = 210;
SS_211 = 211;
SS_212 = 212;
SS_213 = 213;
SS_214 = 214;
SS_WHISPER = 299;//?????
//不正确
//Damian
SS_SERVERINFO = 103;
SS_SOFTOUTSESSION = 102;
//SS_SERVERINFO = 30001;
//SS_SOFTOUTSESSION = 30002;
SS_LOGINCOST = 30002;
//Damian
DBR_FAIL = 2000;
DB_LOADHUMANRCD = 100;
DB_SAVEHUMANRCD = 101;
DB_SAVEHUMANRCDEX = 102;//?
DBR_LOADHUMANRCD = 1100;
DBR_SAVEHUMANRCD = 1102; //?
{DBR_FAIL = 31001;
DB_LOADHUMANRCD = 31002;
DB_SAVEHUMANRCD = 31003;
DB_SAVEHUMANRCDEX = 31004;
DBR_LOADHUMANRCD = 31005;
DBR_SAVEHUMANRCD = 31006;}
SG_FORMHANDLE = 32001;
SG_STARTNOW = 32002;
SG_STARTOK = 32003;
SG_CHECKCODEADDR = 32004;
SG_USERACCOUNT = 32005;
SG_USERACCOUNTCHANGESTATUS = 32006;
SG_USERACCOUNTNOTFOUND = 32007;
GS_QUIT = 32101;
GS_USERACCOUNT = 32102;
GS_CHANGEACCOUNTINFO = 32103;
type
//-----------------------------------------
pTDefaultMessage=^TDefaultMessage;
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;
pTOStdItem=^TOStdItem;
TOStdItem =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 :UINT;
end;
pTStdItem=^TStdItem;
TStdItem=packed record //60 bytes
Name :String[20]; //15 物品名称
StdMode :Byte; //1 物品种类
Shape :Byte; //1 书的类别
Weight :Byte; //1 重量
AniCount :Byte; //1
Source :shortint; //1 武器神圣值
reserved :byte; //1
NeedIdentify :byte; //1 武器升级后标记
Looks :Word; //2 外观,即Items.WIL中的图片索引
DuraMax :DWord; //4 持久力
AC :Dword; //4 防御 高位:武器准确 低位:武器幸运
MAC :Dword; //4 防魔 高位:武器速度 低位:武器诅咒
DC :Dword; //4 攻击
MC :Dword; //4 魔法
SC :DWord; //4 道术
Need :DWord; //4 其他要求 0:等级 1:攻击力 2:魔法力 3:精神力
NeedLevel :DWord; //4 Need要求数值
Price :UINT; //4 价格
end;
PTClientItem =^TClientItem;
TClientItem = record //OK
S :TStdItem;
MakeIndex :Integer;
Dura :Word;
DuraMax :Word;
end;
TOClientItem=record
S :TOStdItem;
MakeIndex :Integer;
Dura :Word;
DuraMax :Word;
end;
TUserStateInfo =record //OK
Feature :Integer;
UserName :String[19];
GuildName :String[14];
GuildRankName :String[14];
NameColor :Word;
UseItems :array [0..12] of TClientItem;
end;
TUserCharacterInfo =record
Name:String[19];
Job:Byte;
Hair:Byte;
Level:Byte;
Sex:Byte;
end;
TUserEntry =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 =record
sQuiz2 :String[20];
sAnswer2 :String[12];
sBirthDay :String[10];
sMobilePhone :String[15];
sMemo :String[40];
sMemo2 :String[40];
end;
TOUserStateInfo = record
Feature :Integer;
UserName :String[19];
GuildName :String[14];
GuildRankName :String[14];
NameColor :Word;
UseItems :array [0..8] of TOClientItem;
end;
TDropItem =record
X:Integer;
Y:Integer;
Id:integer;
Looks:integer;
Name:String;
FlashTime:Dword;
FlashStepTime:Dword;
FlashStep:Integer;
BoFlash:Boolean;
end;
PTDropItem = ^TDropItem;
pTMagic=^TMagic;
TMagic =record //+
wMagicID:Word;
sMagicName:String[12];
btEffectType:Byte;
btEffect:Byte;
wSpell:Word;
wPower:Word;
TrainLevel:Array[0..3] of Byte;
MaxTrain:Array[0..3] of Integer;
btTrainLv:Byte;
btJob:Byte;
dwDelayTime:Integer;
btDefSpell:Byte;
btDefPower:Byte;
wMaxPower:Word;
btDefMaxPower:Byte;
sDescr:String[15];
end;
TClientMagic = record //84
Key :Char;
Level :Byte;
CurTrain:Integer;
Def :TMagic;
end;
PTClientMagic = ^TClientMagic;
pTNakedAbility=^TNakedAbility;
TNakedAbility =record
DC :Word;
MC :Word;
SC :Word;
AC :Word;
MAC :Word;
HP :Word;
MP :Word;
Hit :Byte;
Speed :integer;
X2 :byte;
end;
TOAbility =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;
//for db
//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;
//支持4格的人物能力值
pTAbility=^TAbility;
TAbility= packed record //50Bytes
Level :Word; //1 2 等级
AC :DWord; //3 6
MAC :DWord; //7 10
DC :DWord; //11 14
MC :DWord; //15 18
SC :DWord; //19 22
HP :Word; //23 24 生命值
MP :Word; //25 26 魔法值
MaxHP :Word; //27 28
MaxMP :Word; //29 30
Exp :DWord; //31 34 当前经验
MaxExp :DWord; //35 38 最大经验
Weight :Word; //39 40 背包重
MaxWeight :Word; //41 42 背包最大重量
WearWeight :Word; //43 44 当前负重
MaxWearWeight :Word; //45 46 最大负重
HandWeight :Word; //47 48 腕力
MaxHandWeight :Word; //49 50 最大腕力
end;
//---------------------------------------------
type
TProgamType=(tDBServer,tLoginSrv,tLogServer,tM2Server,tLoginGate,
tLoginGate1,tSelGate,tSelGate1,tRunGate,tRunGate1,tRunGate2,
tRunGate3,tRunGate4,tRunGate5,tRunGate6,tRunGate7);
TRecordHeader = packed record
sAccount:String[16];
sName:String[20];
nSelectID:integer;
dCreateDate:TDateTime;
boDeleted:boolean;
UpdateDate:TDateTime;
CreateDate:TDateTime;
end;
THumInfo = record
boDeleted:Boolean;
boSelected:Boolean;
sAccount:String[10];
dModDate:TDateTime;
sChrName:String[20];
btCount:Byte;
Header:TRecordHeader;
end;
pTUserItem=^TUserItem;
TUserItem=record //=24
MakeIndex :Integer; //+4
wIndex :Word; //+2
Dura :word; //+2
DuraMax :Word; //+2
btValue :Array[0..13] of byte; //+14
//sPrefix :String[10];
end;
THumanUseItems=array[0..12] of TUserItem;
THumItems=array[0..12] of TUserItem;
pTHumItems=^THumItems;
pTBagItems=^TBagItems;
TBagItems=array[0..54-12] of TUserItem;
pTStorageItems=^TStorageItems;
TStorageItems=array[0..49] of TUserItem;
pTUserMagic=^TUserMagic;
TUserMagic=record
MagicInfo:pTMagic;
btLevel:byte;
wMagIdx:word;
nTranPoint:integer;
btKey:byte;
end;
pTHumMagic=^THumMagic;
THumMagic=Array[0..HOWMANYMAGICS-1] of TUserMagic;
pTHumMagicInfo=^THumMagicInfo;
THumMagicInfo=TUserMagic;
TStatusTime=array [0..MAX_STATUS_ATTRIBUTE - 1] of Word;
TQuestUnit=array[0..127] of Byte;
TQuestFlag=array[0..127] of Byte;
//Correct structure..
{
unknown: array[0..3] of byte; //未知
LastTime: TDateTime; //最后登陆时间
szCharName: string[15]; //角色名称
szCharName1: string[14]; //角色名称1
szMapName: string[16]; //返城地图
nCX: word; //返城地图x坐标
nCY: word; //返城地图y坐标
nDirection: byte; // 方向
szHair: byte; //头发
Sex: byte; //性别
btJob: byte; //职业
dwGold: longword; //金钱
szLevel: byte; //等级
unknown1: byte; //保留
AC: word;
MAC: word;
MinAttack: byte; // 最小攻击力
MaxAttack: byte; // 最大攻击力
MinMagic: byte; // 最小魔法
MaxMagic: byte; // 最大魔法
MinDao: byte; // 最小道术
MaxDao: byte; // 最大道术
HP: word; // 生命值
MP: word; // 魔法值
MaxHP: word; // 最大生命值
NowMaxMagic: word; // 最大魔法值
unknown2: array[0..3] of byte; // 不清楚
nExp: longword; // 经验值
UpExp: longword; // 升级所需经验值
unknown3: array[0..31] of byte; // 不清楚
ReTurnMap: string[17];
ReTurnX: word;
ReTurnY: word;
Neck: string[85]; // 项链
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -