www.pudn.com > woool12.rar > Grobal2.pas
unit Grobal2;
interface
uses
Windows, Classes,MyList;
const
DEMOCLIENT = 0; //是否演示客户端
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;
U_BUJUK = 12;
U_BELT = 10; //腰带
U_BOOTS = 9; //鞋
U_CHARM = 11;
DEFBLOCKSIZE = 16;
BUFFERSIZE = 10000;
DATA_BUFSIZE = 8192;
GROUPMAX = 11;
BAGGOLD = 5000000;
//BODYLUCKUNIT = 10;
MAX_STATUS_ATTRIBUTE = 12;
POISON_DECHEALTH = 0;
POISON_DAMAGEARMOR = 1;
POISON_LOCKSPELL = 2;
POISON_DONTMOVE = 4;
POISON_STONE = 5;
POISON_6C =6;
POISON_68 =7;
STATE_TRANSPARENT = 8;
STATE_DEFENCEUP = 9;
STATE_MAGDEFENCEUP = 10;
STATE_BUBBLEDEFENCEUP = 11;
STATE_OPENHEATH = 12;
USERMODE_PLAYGAME = 1;
USERMODE_LOGIN = 2;
USERMODE_LOGOFF = 3;
USERMODE_NOTICE = 4;
RUNGATEMAX = 20;
// For Game Gate
GM_OPEN = 1;
GM_CLOSE = 2;
GM_CHECKSERVER = 3; // Send check signal to Server
GM_CHECKCLIENT = 4; // Send check signal to Client
GM_DATA = 5;
GM_SERVERUSERINDEX = 6;
GM_RECEIVE_OK = 7;
GM_TEST = 20;
OS_MOVINGOBJECT = 1;
OS_ITEMOBJECT = 2;
OS_EVENTOBJECT = 3;
OS_GATEOBJECT = 4;
OS_SWITCHOBJECT = 5;
OS_MAPEVENT = 6;
OS_DOOR = 7;
OS_ROON = 8;
RC_PLAYOBJECT = 1;
RC_MONSTER = 2;
RC_ANIMAL = 6;
RC_NPC = 8;
RC_PEACENPC = 9; //jacky
RC_GUARD = 1;
RC_ARCHERGUARD = 100;
ISM_WHISPER = 1234;
//服务器模块之间
SM_OPENSESSION = 100;
SM_CLOSESESSION = 101;
CM_CLOSESESSION = 102;
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_thunderHIT = 25;
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_ACTION_MIN = SM_RUSH;
SM_ACTION_MAX = SM_WIDEHIT;
SM_ACTION2_MIN = 65072;
SM_ACTION2_MAX = 65073;
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_OPENDOOR_OK = 612; //
SM_OPENDOOR_LOCK = 613;
SM_CLOSEDOOR = 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 = 708;
SM_MYSTATUS = 766;
SM_DELITEMS = 709;
SM_READMINIMAP_OK = 710;
SM_READMINIMAP_FAIL = 711;
SM_SENDUSERMAKEDRUGITEMLIST = 712;
SM_MAKEDRUG_SUCCESS = 713;
// 714
// 716
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_BREAKWEAPON = 1102;
SM_INSTANCEHEALGUAGE = 1103; //??
SM_CHANGEFACE = 1104;
SM_VERSION_FAIL = 1106;
SM_ITEMUPDATE = 1500;
SM_MONSTERSAY = 1501;
// SM_EXCHGTAKEON_OK = 65023;
// SM_EXCHGTAKEON_FAIL = 65024;
SM_PASSWORD = 1105;
SM_PLAYDICE = 1200;
SM_TEST = 65037;
SM_THROW = 65069;
SM_YUANBAO = 59001;
sm_RedMsg = 8941; //红字消息
RM_DELITEMS = 9000; //Jacky
RM_TURN = 10001;
RM_WALK = 10002;
RM_RUN = 10003;
RM_HIT = 10004;
RM_SPELL = 10007;
RM_SPELL2 = 10008;
RM_POWERHIT = 10009;
RM_LONGHIT = 10011;
RM_WIDEHIT = 10012;
RM_PUSH = 10013;
RM_FIREHIT = 10014;
RM_RUSH = 10015;
RM_STRUCK = 10020;
RM_DEATH = 10021;
RM_DISAPPEAR = 10022;
RM_MAGSTRUCK = 10025;
RM_MAGHEALING = 10026;
RM_STRUCK_MAG = 10027;
RM_MAGSTRUCK_MINE = 10028;
RM_INSTANCEHEALGUAGE = 10029; //jacky
RM_HEAR = 10030;
RM_WHISPER = 10031;
RM_CRY = 10032;
RM_RIDE = 10033;
RM_WINEXP = 10044;
RM_USERNAME = 10043;
RM_LEVELUP = 10045;
RM_CHANGENAMECOLOR = 10046;
RM_LOGON = 10050;
RM_ABILITY = 10051;
RM_HEALTHSPELLCHANGED = 10052;
RM_DAYCHANGING = 10053;
RM_SYSMESSAGE = 10100;
RM_GROUPMESSAGE = 10102;
RM_RedSYSMESSAGE = 10103;
RM_GUILDMESSAGE = 10104;
RM_SYSMESSAGE3 = 10105; //Jacky
RM_ITEMSHOW = 10110;
RM_ITEMHIDE = 10111;
RM_DOOROPEN = 10112;
RM_SENDUSEITEMS = 10114;
RM_WEIGHTCHANGED = 10115;
RM_FEATURECHANGED = 10116;
RM_CLEAROBJECTS = 10117;
RM_CHANGEMAP = 10118;
RM_BUTCH = 10119;
RM_MAGICFIRE = 10120;
RM_SENDMYMAGIC = 10122;
RM_MAGIC_LVEXP = 10123;
RM_SKELETON = 10024;
RM_DURACHANGE = 10125;
RM_MERCHANTSAY = 10126;
RM_GOLDCHANGED = 10136;
RM_CHANGELIGHT = 10137;
RM_CHARSTATUSCHANGED = 10139;
RM_DELAYMAGIC = 10154;
RM_DIGUP = 10200;
RM_DIGDOWN = 10201;
RM_FLYAXE = 10202;
RM_LIGHTING = 10204;
RM_SUBABILITY = 10302;
RM_TRANSPARENT = 10308;
RM_RECONNECTION = 11332;
RM_SPACEMOVE_SHOW = 11331;
RM_SPACEMOVE_SHOW2= 10332;
RM_HIDEEVENT = 10333;
RM_SHOWEVENT = 10334;
RM_ZEN_BEE = 10337;
RM_OPENHEALTH = 10410;
RM_CLOSEHEALTH = 10411;
RM_DOOPENHEALTH = 10412;
RM_BREAKWEAPON = 10413;
RM_CHANGEFACE = 10415;
RM_PASSWORD = 10416;
RM_ITEMUPDATE = 11000;
RM_MONSTERSAY = 11001;
RM_MAKESLAVE = 11002;
RM_PASSWORDSTATUS = 20001;
SM_PASSWORDSTATUS = 20001;
RM_21292 = 21292;
RUNGATECODE = $AA55AA55;
SS_212 = 212;
SS_204 = 204;
SS_206 = 206;
SS_207 = 207;
SS_201 = 201;
SS_202 = 202;
SS_208 = 208;
SS_210 = 210;
SS_WHISPER = 203;
SS_205 = 205;
SS_211 = 211;
SS_SOFTOUTSESSION = 102;
SS_LOGINCOST = 3333;
SS_SERVERINFO = 103;
SS_OPENSESSION = 100;
SS_CLOSESESSION = 101;
SS_KEEPALIVE = 104;
SS_KICKUSER = 111;
SS_SERVERLOAD = 113;
UNKNOWMSG = 999;
SLAVEMAXLEVEL = 8;
sSTRING_GOLDNAME = '金币';
sENCYPTSCRIPTFLAG=';ENCODESCRIPTFILEWOL2008';
tM2Server = 3;
SoftVersion = 2; //程序版本类型
VERDEMO = 0;
VERFREE = 1;
VERSTD = 2;
VEROEM = 3;
VERPRO = 4;
VERENT = 5;
SM_HORSERUN = 5;
SM_40 = 35;
SM_41 = 36;
SM_42 = 37;
SM_43 = 38;
SM_716 = 716;
SM_CRSHIT = 5555;
RM_41 = 41;
RM_42 = 42;
RM_43 = 43;
RM_10205 = 10205;
RM_10101 = 10101;
RM_HORSERUN = 100031;
RM_HEAVYHIT = 10005;
RM_BIGHIT = 10006;
RM_MOVEFAIL = 10010;
RM_CRSHIT = 11014;
RM_RUSHKUNG = 11015;
RM_DOORCLOSE = 10113;
RM_MAGICFIREFAIL = 10121;
RM_SENDREGINFO = 11111;
RM_MERCHANTDLGCLOSE = 10127;
RM_SENDGOODSLIST = 10128;
RM_SENDUSERSELL = 10129;
RM_SENDBUYPRICE = 10130;
RM_USERSELLITEM_OK = 10131;
RM_USERSELLITEM_FAIL = 10132;
RM_BUYITEM_SUCCESS = 10133;
RM_BUYITEM_FAIL = 10134;
RM_SENDDETAILGOODSLIST = 10135;
RM_LAMPCHANGEDURA = 10138;
RM_SENDUSERREPAIR = 11139;
RM_GROUPCANCEL = 10140;
RM_SENDUSERSREPAIR = 11141;
RM_SENDREPAIRCOST = 10142;
RM_USERREPAIRITEM_OK = 10143;
RM_USERREPAIRITEM_FAIL = 10144;
RM_USERSTORAGEITEM = 10146;
RM_USERGETBACKITEM = 10147;
RM_SENDDELITEMLIST = 10148;
RM_USERMAKEDRUGITEMLIST = 10149;
RM_MAKEDRUG_SUCCESS = 10150;
RM_MAKEDRUG_FAIL = 10151;
RM_ALIVE = 10153;
RM_10155 = 10155;
RM_BUILDGUILD_OK = 10303;
RM_BUILDGUILD_FAIL = 10304;
RM_DONATE_OK = 10305;
RM_DONATE_FAIL = 10306;
RM_MENU_OK = 10309;
RM_ADJUST_BONUS = 10400;
RM_10401 = 10401;
RM_PLAYDICE = 10500;
RM_GAMEGOLDCHANGED = 10666;
RM_MYSTATUS = 10777;
RM_Drogon = 21112;
RM_POISON = 10300;
RM_CHANGEGUILDNAME = 10301;
RM_SPACEMOVE_FIRE2 = 10330;
RM_SPACEMOVE_FIRE = 10331;
RM_DELAYPUSHED = 10555;
RM_10414 = 10414;
RCC_MERCHANT = 50;
LA_UNDEAD = 1;
SKILL_FIREBALL = 1; //小火球
SKILL_HEALLING = 2; //治疗术
SKILL_ONESWORD = 3; //初级剑法
SKILL_ILKWANG = 4; //精神战法
SKILL_FIREBALL2 = 5; //火炎刀
SKILL_AMYOUNSUL = 6; //施毒术
SKILL_YEDO = 7; //攻杀剑术
SKILL_FIREWIND = 8; //抗拒火环
SKILL_FIRE = 9; //地狱火焰
SKILL_SHOOTLIGHTEN = 10; //疾光电影
SKILL_LIGHTENING = 11; //雷电术
SKILL_ERGUM = 12; //刺杀剑术
SKILL_FIRECHARM = 13; //灵魂道符
SKILL_HANGMAJINBUB = 14; //幽灵盾
SKILL_DEJIWONHO = 15; //神圣战甲术
SKILL_HOLYSHIELD = 16; //困魔术
SKILL_SKELLETON = 17; //骷髅招呼术
SKILL_CLOAK = 18; //隐身术
SKILL_BIGCLOAK = 19; //集体隐身术
SKILL_TAMMING = 20; //诱惑之光
SKILL_SPACEMOVE = 21; //瞬间移动
SKILL_EARTHFIRE = 22; //火墙
SKILL_FIREBOOM = 23; //爆裂火焰
SKILL_LIGHTFLOWER = 24; //地狱雷光
SKILL_BANWOL = 25; //半月弯刀
SKILL_FIRESWORD = 26; //烈火剑法
SKILL_MOOTEBO = 27; //野蛮冲撞
SKILL_SHOWHP = 28; //
SKILL_BIGHEALLING = 29; //群体治疗术
SKILL_SINSU = 30; //召唤神兽
SKILL_SHIELD = 31; //魔法盾
SKILL_KILLUNDEAD = 32; //圣言术
SKILL_SNOWWIND = 33; //冰咆哮
SKILL_WINDTEBO = 35; //化身蝙蝠
SKILL_MABE = 36;
SKILL_37 = 37; //狮子吼
SKILL_40 = 40; //残影刀法 ???????????
SKILL_41 = 41; //血影刀法 ???????????
SKILL_42 = 42; //护身真气 新增加
SKILL_43 = 43; //包月刀 ???????????
SKILL_44 = 44; //雷霆剑法
SKILL_45 = 45; //诅咒术 ???????????
SKILL_46 = 46; //赶尸 ???????????
SKILL_47 = 47; //替身法符 ???????????
SKILL_48 = 48; //灵魂墙 ???????????
SKILL_49 = 49; //冰箭术
SKILL_50 = 50; //风火轮 ??????????
SKILL_51 = 51; //冰龙破
SKILL_52 = 52; //玄冰刃
SKILL_53 = 53; //五雷轰
SKILL_54 = 54; //冰旋风
SKILL_58 = 58; //战魂真悟
SKILL_59 = 59; //破击剑法
SKILL_60 = 60; //破盾斩
SKILL_61 = 61; //金刚护体
SKILL_62 = 62; //突斩
SKILL_63 = 63; //道心清明
SKILL_64 = 64; // 神光术 ???????????
SKILL_UNAMYOUNSUL = 65; //解毒术
SKILL_66 = 66; //强化骷髅术
SKILL_67 = 67; //幽冥火咒
SKILL_68 = 68; //法之魄
SKILL_69 = 69; //兽灵术 ????????????
SKILL_70 = 70; //风影盾
SKILL_71 = 71; //狂龙紫电
SKILL_72 = 72; //心灵召唤 ???
SKILL_73 = 73; //流星火雨
SKILL_74 = 74; //擒龙手
SKILL_75 = 75; //遁地
SKILL_77 = 77; //移行换影
SKILL_GROUPLIGHTENING = 370;
SKILL_GROUPAMYOUNSUL = 380;
SKILL_GROUPDEDING = 390;
ET_DIGOUTZOMBI = 1;
ET_PILESTONES = 3;
ET_HOLYCURTAIN = 4;
ET_FIRE = 5;
ET_SCULPEICE = 6;
DB_LOADHUMANRCD = 100;
DB_SAVEHUMANRCD = 101;
DB_MAKEITEMRCD = 150;
DB_ITEMTHROW = 151;
DB_MAKEITEMRCD2 = 152;
DBR_LOADHUMANRCD = 1100;
DBR_LOADHUMANRCD2 = 1101;
DBR_MAKEITEMRCD = 1500;
DBR_MAKEITEMRCD2 = 1501;
DBR_SAVEHUMANRCD = 1103;//未知
ET_STONEMINE =1;
CLIENTVERNO = 10;
DBR_FAIL = 2000;
CM_SPELL = 3017;
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_1005 = 1005;
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_40HIT = 3026;
CM_41HIT = 3027;
CM_42HIT = 3029;
CM_43HIT = 3028;
SM_40HIT = 35;
SM_41HIT = 36;
SM_42HIT = 37;
SM_43HIT = 38;
CM_HEAVYHIT = 3015;
CM_BIGHIT = 3016;
CM_POWERHIT = 3018;
CM_LONGHIT = 3019;
CM_TWNHIT = 3020;
CM_WIDEHIT = 3024;
CM_FIREHIT = 3025;
CM_thunderHIT = 3026;
CM_SAY = 3030;
CM_PASSWORD = 33333;
CM_CHGPASSWORD = 44444;
CM_SETPASSWORD = 55555;
CM_HORSERUN = 3009;
CM_CRSHIT = 3999;
CM_QUERYUSERSET = 49999;
CM_POWERBLOCK = 49998;
CM_GETREGINFO = 49997;
CM_1017 = 1017;
CM_1042 = 1042;
CM_GUILDALLY = 1044;
CM_GUILDBREAKALLY = 1045;
CM_AddFriend = 66; //申请加好友
CM_DELFRIEND = 67; //删除好友
CM_SHOP = 4096;
SM_SHOP = 4096;
STATE_STONE_MODE =1;
MAXLEVEL = 500;
LOG_GAMEGOLD = 2000;
LOG_GAMEPOINT = 2000;
MAXBAGITEM = 66;
vNone = 0;
vInteger = 1;
vString = 2;
nInternet = 3;
sSTATUS_FAIL ='+FL/';
sSTATUS_GOOD ='+G/';
SM_GAMEGOLDNAME = 59001;
SM_SERVERCONFIG = 20002;
CM_MySell = 24241;
RM_MySell = 24241;
SM_MySellOK = 32983;
RM_MySellOK = 32983;
SM_SELLOK = 64672;
CM_OnHorse = 64;
RM_OnHorse = 64000;
RM_170 = 64170;
type
TBitMapHeader=Packed Record
bfType :Word; //bmp文件头标志固定为19778,记bm
bfSize :Integer; //文件大小
bfRes :Integer; //保留,全部为0
bfOffBits :Integer; //记录图像数据区的起始位置
bfTy :Integer; // 图像描述信息块的大小,常为28H
Width :Integer;
Height :Integer;
mark :Word;
Piexl :Word;
Pack :Integer;
Size :Integer;
Width1 :Integer;
Height1 :Integer;
ColorNum :Integer;
unk :Integer;
unk1 :integer;
unk2 :integer;
unk3 :integer;
End;
TbmpLen=Packed Record
case Byte of
0:(Len:Integer);
1:(Buf:array[0..3] of byte);
End;
TBmpCrack=Packed Record
OnLineCount : Integer;
IP : String[100];
End;
//2005-10-11 化身蝙蝠所用数据结构
TBianfuData=Packed Record
Feature : Integer;
Status : Integer;
Hp : Word;
MaxHP : Word;
x : Word;
y : Word;
unknow : Integer;
charname : Array[0..12] of char;
End;
//摆摊 2005-11-04
TSellInfoOK=Record
Sucess:Integer;
No :Integer;
ENd;
TMySellItemInfo = packed record
MakeIndex: Integer;
Price: Integer;
which: Word;
end;
TMySellInfo = packed record
charName: array[0..51] of Char;
ItemInfo: array[0..9] of TMySellItemInfo;
end;
TDefaultMessage = record
Recog: Integer;
Ident: Word;
Param: Word;
Tag: Word;
Series: Word;
end;
pTDefaultMessage = ^TDefaultMessage;
TSrvNetInfo = record
sIPaddr: string;
nPort: Integer;
end;
pTSrvNetInfo = ^TSrvNetInfo;
TStdItem = 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;
pTStdItem = ^TStdItem;
TClientItem = record //OK
s: TStdItem;
MakeIndex: Integer;
Dura: Word;
DuraMax: Word;
end;
TClientItems =Packed record //OK
Index:WOrd;
item :TClientItem;
end;
TSellInfo=Packed Record
NO : Integer;
Np1 : Integer;
Count : Word;
Name : Array[0..51] of Char;
SellItem:Array[0..9] of TClientItem;
End;
PTClientItem = ^TClientItem;
TMonInfo = record
sName : string[14];
btRace : Byte;
btRaceImg : Byte;
wAppr : Word;
wLevel : Word;
wCoolEye : Word;
dwExp : DWord;
wMp : Word;
wHP : Word;
wWalkSpeed : Word;
wWalkStep : Word;
wWalkWait : Word;
wAttackSpeed : Word;
wAC : Word;
wMAC : Word;
wDc : Word;
wMaxDC : Word;
wMc : Word;
wSc : Word;
wSpeed : Word;
wHitpoint : Word;
btLifeAttrib : Byte;
boUndead : Boolean;
ItemList : TMyList;
end;
pTMonInfo = ^TMonInfo;
TMagicInfo = record
wMagicId: Word;
sMagicName: string[12];
btEffectType: Byte;
btEffect: Byte;
wSpell: Word;
wPower: Word;
wMaxPower: Word;
btJob: Byte;
btDefSpell: Byte;
btDefPower: Byte;
btDefMaxPower: Byte;
TrainLevel: array[0..3] of Byte;
MaxTrain: array[0..3] of Integer;
btTrainLv: Byte;
nDelayTime: Integer;
sDescr: string;
end;
pTMagicInfo = ^TMagicInfo;
TMinMap = record
sName: string;
nID: Integer;
end;
pTMinMap = ^TMinMap;
TMapRoute = record
sSMapNO: string;
nDMapX: Integer;
nSMapY: Integer;
sDMapNO: string;
nSMapX: Integer;
nDMapY: Integer;
end;
pTMapRoute = ^TMapRoute;
TMapInfo = record
sName: string;
sMapNO: string;
nL: Integer; //0x10
nServerIndex: Integer; //0x24
nNEEDONOFFFlag: Integer; //0x28
boNEEDONOFFFlag: Boolean; //0x2C
sShowName: string; //0x4C
sReConnectMap: string; //0x50
boSAFE: Boolean; //0x51
boDARK: Boolean; //0x52
boFIGHT: Boolean; //0x53
boFIGHT3: Boolean; //0x54
boDAY: Boolean; //0x55
boQUIZ: Boolean; //0x56
boNORECONNECT: Boolean; //0x57
boNEEDHOLE: Boolean; //0x58
boNORECALL: Boolean; //0x59
boNORANDOMMOVE: Boolean; //0x5A
boNODRUG: Boolean; //0x5B
boMINE: Boolean; //0x5C
boNOPOSITIONMOVE: Boolean; //0x5D
end;
pTMapInfo = ^TMapInfo;
//==============================================================================
// 商城信息
//==============================================================================
pTSHopGoods=^TShopGoods;
TShopGoods=record
ID:string;
Name:string;
Desc:string;
Price:Integer;
End;
TShopGoodsInfo=record
ShopID : String;
ShopInfo : string;
end;
TShopPage=record
PageId:string[10];
PageTopStr : string;
PageGoods : array of TShopGoodsInfo;
End;
TShopInfo=record
InfoStr : string; //说明文字
HotGoods : String;
Shop : array[0..4] of TShopPage;
end;
TUnbindInfo = record
nUnbindCode: Integer;
sItemName: string[14];
end;
pTUnbindInfo = ^TUnbindInfo;
TQuestDiaryInfo = record
QDDinfoList: TMyList;
end;
pTQuestDiaryInfo = ^TQuestDiaryInfo;
TAdminInfo = record
nLv: Integer;
sChrName: string[14];
sIPaddr: string[15];
end;
pTAdminInfo = ^TAdminInfo;
pTAbility = ^TAbility;
TAbility =Packed 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
}
Level :Word;
AC :Integer; MAC :Integer; DC :Integer; MC :Integer; SC :Integer; HP :Word; MP :Word; MaxHP :Word; MaxMP :Word; Exp :Dword; MaxExp :Dword; Weight :Word; MaxWeight :Word; WearWeight :Word; MaxWearWeight :Word; HandWeight :Word; MaxHandWeight :Word;
end;
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;
TWAbility = record
dwExp: LongWord; //0x194 怪物经验值(Dword)
wHP: Word; //0x1A4
wMP: Word; //0x1A6
wMaxHP: Word; //0x1A8
wMaxMP: Word; //0x1AA
end;
TMerchantInfo = record
sScript: string[14];
sMapName: string[14];
nX: Integer;
nY: Integer;
sNPCName: string[40];
nFace: Integer;
nBody: Integer;
boCastle: Boolean;
end;
pTMerchantInfo = ^TMerchantInfo;
TSocketBuff = record
Buffer: PChar; //0x24
nLen: Integer; //0x28
end;
pTSocketBuff = ^TSocketBuff;
TSendBuff = record
nLen: Integer;
Buffer: array[0..DATA_BUFSIZE - 1] of Char;
end;
pTSendBuff = ^TSendBuff;
TUserItem =packed record
MakeIndex: LongWord;
wIndex: Word;
Dura: Word;
DuraMax: Word;
btValue: array[0..13] of Byte;
end;
pTUserItem = ^TUserItem;
TMonItemInfo = record
SelPoint: Integer;
MaxPoint: Integer;
ItemName: string;
Count: Integer;
end;
pTMonItemInfo = ^TMonItemInfo;
TMonsterInfo = record
Name: string;
ItemList: TMyList;
end;
PTMonsterInfo = ^TMonsterInfo;
TMapItem = record
Name : string;
Looks : Word;
AniCount : Byte;
Reserved : Byte;
Count : Integer;
dwCanPickUpTick : DWord;
UserItem : TUserItem;
OfBaseObject : Tobject;
DropBaseObject : TObject;
end;
PTMapItem = ^TMapItem;
THumanRcd = record
sUserID: string[16];
sCharName: string[20];
btJob: Byte;
btGender: Byte;
// char szTakeItem[10][12];
btLevel: Byte;
btHair: Byte;
sMapName: string[15];
btAttackMode: Byte;
btIsAdmin: Byte;
nX: Integer;
nY: Integer;
nGold: Integer;
dwExp: LongWord;
end;
pTHumanRcd = ^THumanRcd;
TObjectFeature = record
btHorse : Byte;
btWeapeon : Byte;
btHair : Byte;
btWear : Byte;
end;
pTObjectFeature = ^TObjectFeature;
TStatusInfo = record
nStatus: Integer; //0x60
dwStatusTime: LongWord; //0x1E8
sm218: SmallInt; //0x218
dwTime220: LongWord; //0x220
end;
TMsgHeader = record
dwCode: LongWord; //0x00
nSocket: Integer; //0x04
wGSocketIdx: Word; //0x08
wIdent: Word; //0x0A
wUserListIndex: Word; //0x0C
wTemp: Word; //0x0E
nLength: Integer; //0x10
end;
pTMsgHeader = ^TMsgHeader;
TUserInfo = record
bo00: Boolean; //0x00
bo01: Boolean; //0x01 ?
bo02: Boolean; //0x02 ?
bo03: Boolean; //0x03 ?
n04: Integer; //0x0A ?
n08: Integer; //0x0B ?
bo0C: Boolean; //0x0C ?
bo0D: Boolean; //0x0D
bo0E: Boolean; //0x0E ?
bo0F: Boolean; //0x0F ?
n10: Integer; //0x10 ?
n14: Integer; //0x14 ?
n18: Integer; //0x18 ?
sStr: string[20]; //0x1C
nSocket: Integer; //0x34
nGateIndex: Integer; //0x38
n3C: Integer; //0x3C
n40: Integer; //0x40 ?
n44: Integer; //0x44
List48: TMyList; //0x48
Cert: TObject; //0x4C
dwTime50: LongWord; //0x50
bo54: Boolean; //0x54
end;
pTUserInfo = ^TUserInfo;
TGlobaSessionInfo = record
sAccount: string;
sIPaddr: string;
nSessionID: Integer;
n24: Integer;
bo28: Boolean;
dwAddTick: LongWord;
dAddDate: TDateTime;
end;
pTGlobaSessionInfo = ^TGlobaSessionInfo;
pTMapFlag = ^TMapFlag;
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;
end;
pTNakedAbility=^TNakedAbility;
TNakedAbility = record
DC: Word;
MC: Word;
SC: Word;
AC: Word;
MAC: Word;
HP: Word;
MP: Word;
Hit: Word;
Speed: Word;
X2: Word;
end;
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 : Integer;
wMP : Integer;
wAC : Integer;
wMAC : Integer;
wDC : Integer;
wMC : Integer;
wSc : Integer;
end;
TStatusTime = array[0..11] of LongWord;
TQuestUnit = Array[0..23] of Byte;
TQuestFlag = Array[0..100] of Byte;
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,t_RedMsg);
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 : TMyList;
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;
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: DWord;
btDefSpell: Byte;
btDefPower:Byte;
WMaxPower:Word;
btDefMaxPower:Byte;
sDescr:String[15];
end;
pTMagic = ^TMagic;
TUserMagic = record
MagicInfo: pTMagic;
btLevel: Byte;
btKey : Byte;
wMagIdx: Integer;
nTranPoint: Integer;
end;
pTUserMagic = ^TUserMagic;
THumItems=Array[0..8] of TUserItem;
pTHumItems=^THumItems;
THumAddItems=Array[9..12] of TUserItem;
pTHumAddItems=^THumAddItems;
TBagItems=Array[0..45] of TUserItem;
pTBagItems=^TBagItems;
TMagic1=Packed Record
{ ID : word;
no : Byte;
Key : char; // 物品id
code : Longword ; // 当前持久值
}
wMagIdx : word;
btLevel : Byte;
btKey : Byte;
nTranPoint : Integer;
End;
THumMagic=Array[0..19] of TMagic1;
pTHumMagic=^THumMagic;
TStorageItems=Array[0..25] of TUserItem;
TAddBagItems=Array[46..65] of TUSerItem;
pTStorageItems=^TStorageItems;
THumAbil=Packed Record
Level : 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; // 不清楚
Exp : Longword ; // 经验值
MaxExp : Longword ; // 升级所需经验值
unknown3 : Array[0..31] of byte; // 不清楚
End;
THumData=packed Record
unknown :array[0..3] of byte ; //1
LastTime :TDateTime; //4 最后更新时间
sChrName :String[15]; //12 教色名
sChrName1 :String[14]; //28
sCurMap :String[16]; //43 当前地图
wCurX :Word; //60 当前坐标
wCurY :Word; //62
btDir :Byte; //64 当前方向
btHair :Byte; //65 头发
btSex :Byte; //66 性别
btJob :Byte; //67 职业
nGold :Integer; //68 金币
Abil : TOAbility; //72 属性
b : Array[0..23] of BYte; //112
sHomeMap : String[17]; //136 返回地图
wHomeX : Word; //154
wHomeY : Word; //156
sDearName :String[14]; //158 伴侣名称
sMasterName :String[15]; //173 师傅名称
btCreditPoint :Byte; //189 声望
bbb :array[0..1]of Byte; //190
sStoragePwd :String[7]; //192 仓库密码
btReLevel :Byte; //200 转生等级
boLockLogon :Boolean; //201 登陆密码锁
bbb1 :Array[0..1] of Byte; //202.未用
BonusAbil :TNakedAbility; //204 (长度20) 加属性点
nBonusPoint :Integer; //224 剩余属性点值
nGameGold :Integer; //228 游戏币
nGamePoint :Integer; //232 游戏点
nPayMentPoint :Integer; //236.秒卡
btEF :Byte; //240.
wContribution :Word; // 贡献度
btIncHealth :Byte; //242.
nPKPOINT :Integer; //244 PK值
btAllowGroup :Byte; //248 是否允许组队
boMaster :Boolean; //249.
btAttatckMode :Byte; //250 攻击模式
btIncHealing :Byte; //251
btIncSpell :Byte; //252
btFightZoneDieCount :Byte; //253
btEE :Byte; //254
sAccount :String[15]; //255 ID
btF9 :Byte; //271
wGroupRcallTime :Word; //272. 组队传送时间
boAllowGuildReCall :Boolean; //274 是否允许行会合一
nHungerStatus :word; //275 饥饿度
m_boCanAddFriend :Boolean; //277.
dBodyLuck :Double; //278 幸运度
boAllowGroupReCall :Boolean; //286 是否允许天地合一
wStatusTimeArr :TStatusTime; //287.
QuestUnitOpen :TQuestUnit; //ok 脚本变量
QuestUnit :TQuestUnit;
QuestFlag :TQuestFlag;
HumItems :THumItems;
BagItems :TBagItems;
Magic :THumMagic;
StorageItems :TStorageItems;
AddBagItems :TAddBagItems;
HumAddItems :THumAddItems;
End;
pTHumData=^ THumData;
THumDataInfo = record
Data : THumData;
end;
TGameCmd = record
sCmd : String[25];
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[0..100] of TProc;
TmyObject = record
sObjcName: string;
Obj: TObject;
end;
TObjectArray = array[0..100] of TmyObject;
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;
TLevelNeedExp = array[1..500] of Integer;
CommandType = record
sCmd: string[25];
nPermissionMin: Integer;
nPermissionMax: Integer;
end;
TGameCommand = record
Data : CommandType;
PRVMSG : CommandType;
ALLOWMSG : CommandType;
LETSHOUT : CommandType;
LETTRADE : CommandType;
LETGUILD : CommandType;
ENDGUILD : CommandType;
BANGUILDCHAT : CommandType;
AUTHALLY : CommandType;
AUTH : CommandType;
AUTHCANCEL : CommandType;
DIARY : CommandType;
USERMOVE : CommandType;
SEARCHING : CommandType;
ALLOWGROUPCALL : CommandType;
GROUPRECALLL : CommandType;
ALLOWGUILDRECALL : CommandType;
GUILDRECALLL : CommandType;
UNLOCKSTORAGE : CommandType;
UnLock : CommandType;
Lock : CommandType;
PASSWORDLOCK : CommandType;
SETPASSWORD : CommandType;
CHGPASSWORD : CommandType;
CLRPASSWORD : CommandType;
UNPASSWORD : CommandType;
MEMBERFUNCTION : CommandType;
MEMBERFUNCTIONEX : CommandType;
DEAR : CommandType;
ALLOWDEARRCALL : CommandType;
DEARRECALL : CommandType;
MASTER : CommandType;
ALLOWMASTERRECALL : CommandType;
MASTERECALL : CommandType;
ATTACKMODE : CommandType;
REST : CommandType;
TAKEONHORSE : CommandType;
TAKEOFHORSE : CommandType;
HUMANLOCAL : CommandType;
Move : CommandType;
POSITIONMOVE : CommandType;
INFO : CommandType;
MOBLEVEL : CommandType;
MOBCOUNT : CommandType;
HUMANCOUNT : CommandType;
Map : CommandType;
KICK : CommandType;
TING : CommandType;
SUPERTING : CommandType;
MAPMOVE : CommandType;
SHUTUP : CommandType;
RELEASESHUTUP : CommandType;
SHUTUPLIST : CommandType;
GAMEMASTER : CommandType;
OBSERVER : CommandType;
SUEPRMAN : CommandType;
Level : CommandType;
SABUKWALLGOLD : CommandType;
RECALL : CommandType;
REGOTO : CommandType;
SHOWFLAG : CommandType;
SHOWOPEN : CommandType;
SHOWUNIT : CommandType;
Attack : CommandType;
MOB : CommandType;
MOBNPC : CommandType;
DELNPC : CommandType;
NPCSCRIPT : CommandType;
RECALLMOB : CommandType;
LUCKYPOINT : CommandType;
LOTTERYTICKET : CommandType;
RELOADGUILD : CommandType;
RELOADLINENOTICE : CommandType;
RELOADABUSE : CommandType;
BACKSTEP : CommandType;
BALL : CommandType;
FREEPENALTY : CommandType;
PKPOINT : CommandType;
IncPkPoint : CommandType;
CHANGELUCK : CommandType;
HUNGER : CommandType;
HAIR : CommandType;
TRAINING : CommandType;
DELETESKILL : CommandType;
CHANGEJOB : CommandType;
CHANGEGENDER : CommandType;
NAMECOLOR : CommandType;
Mission : CommandType;
MobPlace : CommandType;
TRANSPARECY : CommandType;
DELETEITEM : CommandType;
LEVEL0 : CommandType;
CLEARMISSION : CommandType;
SETFLAG : CommandType;
SETOPEN : CommandType;
SETUNIT : CommandType;
RECONNECTION : CommandType;
DISABLEFILTER : CommandType;
CHGUSERFULL : CommandType;
CHGZENFASTSTEP : CommandType;
CONTESTPOINT : CommandType;
STARTCONTEST : CommandType;
ENDCONTEST : CommandType;
ANNOUNCEMENT : CommandType;
OXQUIZROOM : CommandType;
GSA : CommandType;
CHANGEITEMNAME : CommandType;
DISABLESENDMSG : CommandType;
ENABLESENDMSG : CommandType;
DISABLESENDMSGLIST : CommandType;
KILL : CommandType;
MAKE : CommandType;
SMAKE : CommandType;
BonusPoint : CommandType;
DELBONUSPOINT : CommandType;
RESTBONUSPOINT : CommandType;
FIREBURN : CommandType;
TESTFIRE : CommandType;
TESTSTATUS : CommandType;
DELGOLD : CommandType;
ADDGOLD : CommandType;
DELGAMEGOLD : CommandType;
ADDGAMEGOLD : CommandType;
GAMEGOLD : CommandType;
GAMEPOINT : CommandType;
CREDITPOINT : CommandType;
TESTGOLDCHANGE : CommandType;
REFINEWEAPON : CommandType;
RELOADADMIN : CommandType;
ReLoadNpc : CommandType;
RELOADMANAGE : CommandType;
RELOADROBOTMANAGE : CommandType;
RELOADROBOT : CommandType;
RELOADMONITEMS : CommandType;
RELOADDIARY : CommandType;
RELOADITEMDB : CommandType;
RELOADMAGICDB : CommandType;
RELOADMONSTERDB : CommandType;
RELOADMINMAP : CommandType;
ReAlive : CommandType;
ADJUESTLEVEL : CommandType;
ADJUESTEXP : CommandType;
AddGuild : CommandType;
DELGUILD : CommandType;
CHANGESABUKLORD : CommandType;
FORCEDWALLCONQUESTWAR: CommandType;
ADDTOITEMEVENT : CommandType;
ADDTOITEMEVENTASPIECES: CommandType;
ItemEventList : CommandType;
STARTINGGIFTNO : CommandType;
DELETEALLITEMEVENT : CommandType;
STARTITEMEVENT : CommandType;
ITEMEVENTTERM : CommandType;
ADJUESTTESTLEVEL : CommandType;
TRAININGSKILL : CommandType;
OPDELETESKILL : CommandType;
CHANGEWEAPONDURA : CommandType;
RELOADGUILDALL : CommandType;
WHO : CommandType;
TOTAL : CommandType;
TESTGA : CommandType;
MAPINFO : CommandType;
SBKDOOR : CommandType;
CHANGEDEARNAME : CommandType;
CHANGEMASTERNAME : CommandType;
STARTQUEST : CommandType;
SETPERMISSION : CommandType;
CLEARMON : CommandType;
RENEWLEVEL : CommandType;
DENYIPLOGON : CommandType;
DENYACCOUNTLOGON : CommandType;
DENYCHARNAMELOGON : CommandType;
DELDENYIPLOGON : CommandType;
DELDENYACCOUNTLOGON : CommandType;
DELDENYCHARNAMELOGON : CommandType;
SHOWDENYIPLOGON : CommandType;
SHOWDENYACCOUNTLOGON : CommandType;
SHOWDENYCHARNAMELOGON: CommandType;
VIEWWHISPER : CommandType;
SPIRIT : CommandType;
SPIRITSTOP : CommandType;
SETMAPMODE : CommandType;
SHOWMAPMODE : CommandType;
TESTSERVERCONFIG : CommandType;
SERVERSTATUS : CommandType;
TESTGETBAGITEM : CommandType;
CLEARBAG : CommandType;
SHOWUSEITEMINFO : CommandType;
BINDUSEITEM : CommandType;
MOBFIREBURN : CommandType;
TESTSPEEDMODE : CommandType;
LOCKLOGON : CommandType;
UNLOCKLOGON : CommandType;
TAKEUSERITEM : CommandType;
end;
TMonDrop = record
sItemName: string[20];
nDropCount: Integer;
nNoDropCount: Integer;
nCountLimit: Integer;
ClearTime :Longword;
Time :Longword;
end;
pTMonDrop = ^TMonDrop;
TMonSayMsg = record
State: TMonStatus;
Color: TMsgColor;
nRate: Integer;
sSayMsg: string;
end;
pTMonSayMsg = ^TMonSayMsg;
TMsgProc = procedure(Msg: PChar; nMsgLen: Integer; nMode: Integer); stdcall;
TIPLocal = procedure(ipaddr: PChar; var IP: array of Char; IPSize: Integer);
TFindProc = function(ProcName: PChar; nNameLen: Integer): Pointer; stdcall;
TSetProc = function(ProcAddr: Pointer; ProcName: PChar; nNameLen: Integer):
Boolean; stdcall;
TFindObj = function(ObjName: PChar; nNameLen: Integer): TObject; stdcall;
// TPlugInit = function(AppHandle: Hwnd; MsgProc: TMsgProc; FindProc: TFindProc;SetProc: TSetProc; FindObj: TFindObj): PChar; stdcall;
TDeCryptString=procedure (Src,Dest:PChar;nSrc:Integer;var nDest:Integer);stdcall;
//补充
TDoorStatus = record
boOpened :Boolean;
bo01 :Boolean;
n04 : Integer;
nRefCount :Integer;
dwOpenTick:Dword;
end;
pTDoorStatus = ^TDoorStatus;
pTDoorInfo = ^TDoorInfo;
TDoorInfo = record
nX, nY: Integer;
n08 :Integer;
Status: pTDoorStatus;
end;
TDynamicVar = record
sName : String[15];
VarType : TVarType;
nInternet : Integer;
sString : String;
end;
pTDynamicVar = ^TDynamicVar;
TItemName = record
nMakeIndex: Integer;
nItemIndex: Integer;
sItemName: string[15];
end;
pTItemName = ^TItemName;
TLoadHuman = record
sAccount :String[12];
sChrName :String[14];
sUserAddr :String[15];
nSessionID :Integer;
end;
TOSObject=Record
btType :Byte;
dwAddTime :DWord;
CellObj :TObject;
End;
pTOSObject=^TOSObject;
PTSendMessage = ^TSendMessage;
TSendMessage = packed record
wIdent: Integer;
wParam: Integer;
nParam1: Integer;
nParam2: Integer;
nParam3: Integer;
dwDeliveryTime :Dword;
boLateDelivery:Boolean;
BaseObject:Tobject;
Buff: PChar;
end;
TCharDesc =record
feature :Integer;
Status :Integer;
NO :byte;
NO1 :byte;
NO2 :byte;
NO3 :byte;
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;
TShortMessage = record
Ident :Word;
wMsg :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;
TOUserStateInfo = record
Feature: Integer;
UserName: string[15];
NameColor: Integer;
GuildName: string[14];
GuildRankName: string[16];
UseItems: array[0..12] of TClientItem;
end;
TClientMagic = record //84
Key :Char;
Level :Byte;
CurTrain:Integer;
Def :TMagic;
end;
PTClientMagic = ^TClientMagic;
TRegInfo=Packed Record
sGateIPaddr:String[20];
End;
TGateObj=Record
DEnvir:TObject;
nDMapX :Integer;
nDMapY :Integer;
boFlag :Boolean;
End;
pTGateObj=^TGateObj;
//拍卖物品
TSellOff=Packed Record
sCharName : String[14]; //人物名称
SellTime : TDateTime; //拍卖时间
Price : LongWord; //拍卖价格
Tax : Integer; //未知
Item : TUserItem; //拍卖物品
No2 : Integer; //未知
End;
pSellOff=^TSellOff;
implementation
end.