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.