📄 grobal2.pas
字号:
SM_ACTION2_MIN=65072;
SM_ACTION2_MAX =65073;
CM_SERVERREGINFO = 65074;
//-------------------------------------
CM_GETGAMELIST = 5001;
SM_SENDGAMELIST = 5002;
CM_GETBACKPASSWORD = 5003;
SM_GETBACKPASSWD_SUCCESS = 5005;
SM_GETBACKPASSWD_FAIL = 5006;
SM_SERVERCONFIG = 5007;
SM_GAMEGOLDNAME = 5008;
SM_PASSWORD = 5009;
SM_HORSERUN = 5010;
UNKNOWMSG = 199;
//以下几个正确
SS_OPENSESSION = 100;
SS_CLOSESESSION = 101;
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; //物品种类(<=3时可以在快捷栏上显示)
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]; //名称 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..
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -