📄 grobal2.pas
字号:
unit grobal2;
interface
uses
Windows;
const
DR_UP =0;
DR_UPRIGHT =1;
DR_RIGHT =2;
DR_DOWNRIGHT =3;
DR_DOWN =4;
DR_DOWNLEFT =5;
DR_LEFT =6;
DR_UPLEFT =7;
U_DRESS = 0;
U_WEAPON = 1;
U_RIGHTHAND = 2;
U_NECKLACE = 3;
U_HELMET = 4;
U_ARMRINGL = 5;
U_ARMRINGR = 6;
U_RINGL = 7;
U_RINGR = 8;
DEFBLOCKSIZE = 16;
BUFFERSIZE = 10000;
LOGICALMAPUNIT= 40;
UNITX = 48;
UNITY = 32;
HALFX = 24;
HALFY = 16;
MAXBAGITEM = 52;
STATE_STONE_MODE = 1;
STATE_OPENHEATH=1; //jacky ??
ET_DIGOUTZOMBI = 1;
ET_PILESTONES = 3;
ET_HOLYCURTAIN = 4;
ET_FIRE = 5;
ET_SCULPEICE = 6;
RCC_USERHUMAN = 24; //Jacky ??
RCC_MERCHANT = 50;
RCC_GUARD = 12;
VERSION_NUMBER_0522 = 20020522;
CM_QUERYUSERSTATE = 82;
CM_QUERYUSERNAME = 80;
CM_QUERYBAGITEMS = 81;
CM_QUERYCHR = 100;
CM_NEWCHR = 101;
CM_DELCHR = 102;
CM_SELCHR = 103;
CM_SELECTSERVER = 104;
CM_OPENDOOR = 1002;
CM_SOFTCLOSE = 1009;
CM_DROPITEM = 1000;
CM_PICKUP = 1001;
CM_TAKEONITEM = 1003;
CM_TAKEOFFITEM = 1004;
CM_EAT = 1006;
CM_BUTCH = 1007;
CM_MAGICKEYCHANGE = 1008;
CM_CLICKNPC = 1010;
CM_MERCHANTDLGSELECT = 1011;
CM_MERCHANTQUERYSELLPRICE = 1012;
CM_USERSELLITEM = 1013;
CM_USERBUYITEM = 1014;
CM_USERGETDETAILITEM = 1015;
CM_DROPGOLD = 1016;
CM_LOGINNOTICEOK = 1018;
CM_GROUPMODE = 1019;
CM_CREATEGROUP = 1020;
CM_ADDGROUPMEMBER = 1021;
CM_DELGROUPMEMBER = 1022;
CM_USERREPAIRITEM = 1023;
CM_MERCHANTQUERYREPAIRCOST = 1024;
CM_DEALTRY = 1025;
CM_DEALADDITEM = 1026;
CM_DEALDELITEM = 1027;
CM_DEALCANCEL = 1028;
CM_DEALCHGGOLD = 1029;
CM_DEALEND = 1030;
CM_USERSTORAGEITEM = 1031;
CM_USERTAKEBACKSTORAGEITEM = 1032;
CM_WANTMINIMAP = 1033;
CM_USERMAKEDRUGITEM = 1034;
CM_OPENGUILDDLG = 1035;
CM_GUILDHOME = 1036;
CM_GUILDMEMBERLIST = 1037;
CM_GUILDADDMEMBER = 1038;
CM_GUILDDELMEMBER = 1039;
CM_GUILDUPDATENOTICE = 1040;
CM_GUILDUPDATERANKINFO = 1041;
CM_ADJUST_BONUS = 1043;
CM_SPEEDHACKUSER = 10430; //??
CM_PROTOCOL = 2000;
CM_IDPASSWORD = 2001;
CM_ADDNEWUSER = 2002;
CM_CHANGEPASSWORD = 2003;
CM_UPDATEUSER = 2004;
CM_THROW = 3005;
CM_TURN = 3010;
CM_WALK = 3011;
CM_SITDOWN = 3012;
CM_RUN = 3013;
CM_HIT = 3014;
CM_HEAVYHIT = 3015;
CM_BIGHIT = 3016;
CM_SPELL = 3017;
CM_POWERHIT = 3018;
CM_LONGHIT = 3019;
CM_WIDEHIT = 3024;
CM_FIREHIT = 3025;
CM_SAY = 3030;
SM_RUSH = 6;
SM_RUSHKUNG = 7;//
SM_FIREHIT = 8; //烈火
SM_BACKSTEP = 9;
SM_TURN = 10;
SM_WALK = 11; //走
SM_SITDOWN = 12;
SM_RUN = 13;
SM_HIT = 14; //砍
SM_HEAVYHIT = 15;//
SM_BIGHIT = 16;//
SM_SPELL = 17; //使用魔法
SM_POWERHIT = 18;
SM_LONGHIT = 19; //刺杀
SM_DIGUP = 20;
SM_DIGDOWN = 21;
SM_FLYAXE = 22;
SM_LIGHTING = 23;
SM_WIDEHIT = 24;
SM_ALIVE = 27;//
SM_MOVEFAIL = 28;//
SM_HIDE = 29;//
SM_DISAPPEAR = 30;
SM_STRUCK = 31; //弯腰
SM_DEATH = 32;
SM_SKELETON = 33;
SM_NOWDEATH = 34;
SM_HEAR = 40;
SM_FEATURECHANGED = 41;
SM_USERNAME = 42;
SM_WINEXP = 44;
SM_LEVELUP = 45;
SM_DAYCHANGING = 46;
SM_LOGON = 50;
SM_NEWMAP = 51;
SM_ABILITY = 52;
SM_HEALTHSPELLCHANGED = 53;
SM_MAPDESCRIPTION = 54;
SM_SPELL2 = 117;
SM_SYSMESSAGE = 100;
SM_GROUPMESSAGE = 101;
SM_CRY = 102;
SM_WHISPER = 103;
SM_GUILDMESSAGE = 104;
SM_ADDITEM = 200;
SM_BAGITEMS = 201;
SM_DELITEM = 202;
SM_UPDATEITEM = 203;
SM_ADDMAGIC = 210;
SM_SENDMYMAGIC = 211;
SM_DELMAGIC = 212;
SM_CERTIFICATION_FAIL = 501;
SM_ID_NOTFOUND = 502;
SM_PASSWD_FAIL = 503;
SM_NEWID_SUCCESS = 504;
SM_NEWID_FAIL = 505;
SM_CHGPASSWD_SUCCESS = 506;
SM_CHGPASSWD_FAIL = 507;
SM_QUERYCHR = 520;
SM_NEWCHR_SUCCESS = 521;
SM_NEWCHR_FAIL = 522;
SM_DELCHR_SUCCESS = 523;
SM_DELCHR_FAIL = 524;
SM_STARTPLAY = 525;
SM_STARTFAIL = 526;//SM_USERFULL
SM_QUERYCHR_FAIL = 527;
SM_OUTOFCONNECTION = 528; //?
SM_PASSOK_SELECTSERVER= 529;
SM_SELECTSERVER_OK = 530;
SM_NEEDUPDATE_ACCOUNT = 531;
SM_UPDATEID_SUCCESS = 532;
SM_UPDATEID_FAIL = 533;
SM_DROPITEM_SUCCESS = 600;
SM_DROPITEM_FAIL = 601;
SM_ITEMSHOW = 610;
SM_ITEMHIDE = 611;
SM_DOOROPEN = 612;
SM_CLOSEDOOR = 65022;
SM_OPENDOOR_LOCK = 613;
SM_OPENDOOR_OK = 614;//
SM_TAKEON_OK = 615;
SM_TAKEON_FAIL = 616;
SM_TAKEOFF_OK = 619;
SM_TAKEOFF_FAIL = 620;
SM_SENDUSEITEMS = 621;
SM_WEIGHTCHANGED = 622;
SM_CLEAROBJECTS = 633;
SM_CHANGEMAP = 634;
SM_EAT_OK = 635;
SM_EAT_FAIL = 636;
SM_BUTCH = 637;
SM_MAGICFIRE = 638;
SM_MAGICFIRE_FAIL = 639;
SM_MAGIC_LVEXP = 640;
SM_DURACHANGE = 642;
SM_MERCHANTSAY = 643;
SM_MERCHANTDLGCLOSE = 644;
SM_SENDGOODSLIST = 645;
SM_SENDUSERSELL = 646;
SM_SENDBUYPRICE = 647;
SM_USERSELLITEM_OK = 648;
SM_USERSELLITEM_FAIL = 649;
SM_BUYITEM_SUCCESS = 650;//?
SM_BUYITEM_FAIL = 651;//?
SM_SENDDETAILGOODSLIST= 652;
SM_GOLDCHANGED = 653;
SM_CHANGELIGHT = 654;
SM_LAMPCHANGEDURA = 655;
SM_CHANGENAMECOLOR = 656;
SM_CHARSTATUSCHANGED = 657;
SM_SENDNOTICE = 658;
SM_GROUPMODECHANGED = 659;//
SM_CREATEGROUP_OK = 660;
SM_CREATEGROUP_FAIL = 661;
SM_GROUPADDMEM_OK = 662;
SM_GROUPDELMEM_OK = 663;
SM_GROUPADDMEM_FAIL = 664;
SM_GROUPDELMEM_FAIL = 665;
SM_GROUPCANCEL = 666;
SM_GROUPMEMBERS = 667;
SM_SENDUSERREPAIR = 668;
SM_USERREPAIRITEM_OK = 669;
SM_USERREPAIRITEM_FAIL= 670;
SM_SENDREPAIRCOST = 671;
SM_DEALMENU = 673;
SM_DEALTRY_FAIL = 674;
SM_DEALADDITEM_OK = 675;
SM_DEALADDITEM_FAIL = 676;
SM_DEALDELITEM_OK = 677;
SM_DEALDELITEM_FAIL = 678;
SM_DEALCANCEL = 681;
SM_DEALREMOTEADDITEM = 682;
SM_DEALREMOTEDELITEM = 683;
SM_DEALCHGGOLD_OK = 684;
SM_DEALCHGGOLD_FAIL = 685;
SM_DEALREMOTECHGGOLD = 686;
SM_DEALSUCCESS = 687;
SM_SENDUSERSTORAGEITEM= 700;
SM_STORAGE_OK = 701;
SM_STORAGE_FULL = 702;
SM_STORAGE_FAIL = 703;
SM_SAVEITEMLIST = 704;
SM_TAKEBACKSTORAGEITEM_OK = 705;
SM_TAKEBACKSTORAGEITEM_FAIL = 706;
SM_TAKEBACKSTORAGEITEM_FULLBAG = 707;
SM_AREASTATE = 766;
SM_MYSTATUS = 708;
SM_DELITEMS = 709;
SM_READMINIMAP_OK = 710;
SM_READMINIMAP_FAIL = 711;
SM_SENDUSERMAKEDRUGITEMLIST = 712;
SM_MAKEDRUG_SUCCESS = 713;
SM_MAKEDRUG_FAIL=65036;
SM_CHANGEGUILDNAME = 750;
SM_SENDUSERSTATE = 751;//
SM_SUBABILITY = 752;
SM_OPENGUILDDLG = 753;//
SM_OPENGUILDDLG_FAIL = 754;//
SM_SENDGUILDMEMBERLIST= 756;//
SM_GUILDADDMEMBER_OK = 757;//
SM_GUILDADDMEMBER_FAIL= 758;
SM_GUILDDELMEMBER_OK = 759;
SM_GUILDDELMEMBER_FAIL= 760;
SM_GUILDRANKUPDATE_FAIL= 761;
SM_BUILDGUILD_OK = 762;
SM_BUILDGUILD_FAIL = 763;
SM_DONATE_OK = 764;
SM_DONATE_FAIL = 765;
SM_MENU_OK = 767;//?
SM_GUILDMAKEALLY_OK = 768;
SM_GUILDMAKEALLY_FAIL = 769;
SM_GUILDBREAKALLY_OK = 770;//?
SM_GUILDBREAKALLY_FAIL= 771;//?
SM_DLGMSG = 772;//Jacky
SM_SPACEMOVE_HIDE = 800;
SM_SPACEMOVE_SHOW = 801;
SM_RECONNECT = 802;//
SM_GHOST = 803;
SM_SHOWEVENT = 804;
SM_HIDEEVENT = 805;
SM_SPACEMOVE_HIDE2 = 806;
SM_SPACEMOVE_SHOW2 = 807;
SM_TIMECHECK_MSG = 810;
SM_ADJUST_BONUS = 811; //?
SM_OPENHEALTH = 1100;
SM_CLOSEHEALTH = 1101;
SM_CHANGEFACE = 1104;
SM_BREAKWEAPON = 1102;
SM_INSTANCEHEALGUAGE = 1103; //??
SM_VERSION_FAIL = 1106;
SM_ITEMUPDATE = 1500;
SM_MONSTERSAY = 1501;
SM_EXCHGTAKEON_OK=65023;
SM_EXCHGTAKEON_FAIL=65024;
SM_TEST=65037;
SM_THROW=65069;
SM_ACTION_MIN = 65070;
SM_ACTION_MAX = 65071;
SM_ACTION2_MIN=65072;
SM_ACTION2_MAX =65073;
CLIENTTYPE = 0; //普通为0 99为管理客户端
VERSION_NUMBER = 20020522; //客户端 版本号
SM_HORSERUN = 5;
CM_GETBACKPASSWORD =2010; //发送密码找回
SM_GETBACKPASSWD_SUCCESS = 508; //密码找回成功
SM_GETBACKPASSWD_FAIL = 509; //密码找回失败
CM_START=2200;
SM_STARTGAME =2201;
SM_START_FAIL = 2202; //登陆失败
SM_START_SUCCESS = 2203;//? //登陆成功
CM_SEARCH=2205;
SM_SEARCH_SUCCESS=2206;
SM_SEARCH_FAIL=2209;
CM_DOWMLINE=2208;
SM_DOWMLINE_SUCCESS=2209;
SM_DOWMLINE_FAIL=2210;
type
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;
TStdItem =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 :Dword;
end;
TClientItem = record //OK
S :TStdItem;
MakeIndex :Integer;
Dura :Word;
DuraMax :Word;
end;
PTClientItem =^TClientItem;
TUserStateInfo =record //OK
Feature :Integer;
UserName :String[19];
GuildName :String[14];
GuildRankName :String[14];
NameColor :Word;
UseItems :array [0..8] of TClientItem;
end;
TUserCharacterInfo =record
Name:String[19];
Job:Byte;
Hair:Byte;
Level:Byte;
m_btSex: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];
end;
TDropItem =record
X:Integer;
Y:Integer;
Id:integer;
Looks:integer;
Name:String;
FlashTime:Dword;
FlashStepTime:Dword;
FlashStep:Integer;
BoFlash:Boolean;
end;
PTDropItem = ^TDropItem;
TMagic =record //+
MagicId :Word;
MagicName :String[12];
EffectType :Byte;
Effect :Byte;
xx :Byte;
Spell :Word;
DefSpell :Word;
TrainLevel:array[0..2] of Byte;
TrainLeveX:array[0..2] of Byte;
MaxTrain :array[0..2] of Integer;
DelayTime :Integer;
end;
TClientMagic = record //84
Key :Char;
Level :Byte;
CurTrain:Integer;
Def :TMagic;
end;
PTClientMagic = ^TClientMagic;
TNakedAbility =record
DC :Word;
MC :Word;
SC :Word;
AC :Word;
MAC :Word;
HP :Word;
MP :Word;
Hit :Byte;
Speed :Integer;
end;
TAbility =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;
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;
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;
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;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -