运行环境为wemade 的一套vcl 组件(你得从代码中剔出来),另外,需要delphiX 。缺少文件为: Grobal2 in ‘\\\\mir2-dev\\mud2\\mir200\\grobal2.pas‘,
去年我即拿到该代码,已经重写了一部分grobal2.pas 的代码了;还有很多问题没有解决
ftp://new:[email protected]/datanew/2004042208554728709.rar
先声明:仅供研究……
版主如果觉得不合适可以删除该贴,但别扣我信誉分,谢了

解决方案 »

  1.   

    http://www.cssafe.gov.cn/bbs/pic/green/client.rar新得下载地址,这个帖子其实很早就发表了,不信看看发表日期,可惜不知道为什么这个帖子不在论坛得列表中显示,知道昨天才发现你们开始回复了,呵呵保证长期可以下载,不能下载得给我来信,昨天有个朋友问我要,可是我发了过去结果收到信箱得退信,看样子来email得请注意自己信箱得空间大小问题。
      

  2.   

    fei19790920(饭桶的马甲) 
    大鸟哥,我还没你刁,不能骗人
      

  3.   

    部分常量定义:
      VERSION_NUMBER_0522 = 20020522;
      CM_PROTOCOL = 2000;
      CM_IDPASSWORD = 2001; //发送用户名/密码
      CM_ADDNEWUSER = 2002; //
      CM_CHANGEPASSWORD = 2003; //更改密码
      CM_UPDATEUSER = 2004;  CM_QUERYCHR = 100; //查询人物
      CM_NEWCHR = 101; //新人物
      CM_DELCHR = 102; //删除人物
      CM_SELCHR = 103; //选择人物
      CM_SELECTSERVER = 104; //选择服务器  CM_QUERYUSERNAME = 80; //查询用户姓名
      CM_QUERYBAGITEMS = 81; //查询包裹内容  CM_USERREPAIRITEM = 1023; //修理物品
      CM_USERSTORAGEITEM = 1031; //用户存储物品  CM_USERTAKEBACKSTORAGEITEM = 1032; //从仓库取回物品
      CM_USERMAKEDRUGITEM = 1034; //制作毒药物品
      CM_DROPGOLD = 1016; //丢掉金币  //交易相关
      CM_DEALTRY = 1025; //交易开始//////////////
      CM_DEALCANCEL = 1028; //交易取消/////////////
      CM_DEALADDITEM = 0; //交易添加物品////////////
      CM_DEALDELITEM = 0; //交易删除物品////////////
      CM_DEALCHGGOLD = 0; //交易改变金币////////////
      CM_DEALEND = 0; //交易完毕//////////////  CM_DROPITEM = 1000; //丢掉物品
      CM_TAKEONITEM = 1003; //穿上/戴上/拿上 物品
      CM_TAKEOFFITEM = 1004; //脱下物品
      CM_EAT = 1006; //吃物品
      CM_BUTCH = 1007; //
      CM_MAGICKEYCHANGE = 1008; //改变魔法按键  CM_MERCHANTQUERYREPAIRCOST = 1024; //查询修理价格
      CM_MERCHANTQUERYSELLPRICE = 1012; //查询出卖给商人的价格
      CM_USERSELLITEM = 1013; //选择物品
      CM_USERBUYITEM = 1014; //购买物品
      CM_USERGETDETAILITEM = 1015; //????????????????????????
      CM_LOGINNOTICEOK = 1018; //进入游戏窗口确定按钮  //编组相关
      CM_GROUPMODE = 1019; //编组模式
      CM_CREATEGROUP = 1020; //创建编组
      CM_ADDGROUPMEMBER = 1021; //添加编组成员
      CM_DELGROUPMEMBER = 1022; //删除编组成员
      //行会相关
      CM_OPENGUILDDLG = 1035; //打开行会窗口
      CM_GUILDHOME = 1036; //行会主页
      CM_GUILDMEMBERLIST = 1037; //行会成员列表
      CM_GUILDADDMEMBER = 1038; //添加行会成员
      CM_GUILDDELMEMBER = 1039; //删除行会成员
      CM_GUILDUPDATENOTICE = 1040; //更新行会信息
      CM_GUILDUPDATERANKINFO = 1041; //更新行会等级/排列信息????
      ///////////
      CM_SPEEDHACKUSER = 0; //??????????
      //动作
      CM_PICKUP = 1001; //拣东西
      CM_TRUN = 3010; //转
      CM_WALK = 3011; //走路
      CM_RUN = 3013; //跑
      CM_HIT = 3014; //砍
      CM_LONGHIT = 3019; //刺杀
      CM_POWERHIT = 3018; //攻杀
      CM_SPELL = 3017; //魔法
      CM_WIDEHIT = 3024; //半月
      CM_FIREHIT = 3025; //烈火
      CM_SAY = 3030; //说话
      CM_RIDE = 3031; //骑乘???
      CM_SITDOWN = 3012; //挖
      CM_CLICKNPC = 1010; //点击NPC???
      CM_OPENDOOR = 1002; //开门
      CM_MERCHANTDLGSELECT = 1011; // NPC Tag Click 选择商人功能窗口
      CM_GUILDMAKEALLY = 1044; //行会结盟
      CM_GUILDBREAKALLY = 1045; //行会解盟  {+//****************************************** }
      { #1. Server To Client Message                 }
      {=******************************************** }
      SM_RUSH = 6; //
      SM_FIREHIT = 8; //烈火
      SM_BACKSTEP = 9; //走路不成功????
      SM_TURN = 10; //转动方向
      SM_WALK = 11; //走路
      SM_RUN = 13; //跑
      SM_HIT = 14; //攻击
      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_DISAPPEAR = 30; //物品消失??????
      SM_STRUCK = 31; //
      SM_DEATH = 32; //
      SM_NOWDEATH = 34; //
      SM_HEAR = 40; //听到说话
      SM_FEATURECHANGED = 41; //容貌??特征??改变???????????
      SM_USERNAME = 42; //用户名??玩家名???????
      SM_WINEXP = 44; //胜利指数???杀怪获得的经验值???????????????
      SM_LEVELUP = 45; //等级提升
      SM_LOGON = 50; //登录注册
      SM_NEWMAP = 51; //新地图
      SM_ABILITY = 52; //能力
      SM_HEALTHSPELLCHANGED = 53; //红血兰血 改变
      SM_MAPDESCRIPTION = 54;//地图形容,地图描述
      SM_SYSMESSAGE = 100; //系统消息
      SM_GROUPMESSAGE = 101; //组队消息
      SM_CRY = 102; //喊
      SM_WHISPER = 103; //私聊
      SM_GUILDMESSAGE = 104; //行会信息
      SM_ADDITEM = 200; //添加物品
      SM_BAGITEMS = 201; //包裹物品
      SM_ADDMAGIC = 210; //添加魔法
      SM_DROPITEM_SCCESS = 600; //丢弃物品成功
      SM_DROPITEM_FAIL = 601; //丢弃物品失败
      SM_ITEMSHOW = 610; //显示物品
      SM_ITEMHIDE = 611; //地上的物品消失
      SM_TAKEON_OK = 615; //穿上戴上成功
      SM_TAKEON_FAIL = 616; //穿失败
      SM_DOOROPEN = 612; //开门
      SM_TAKEOFF_OK = 619; //脱下成功
      SM_TAKEOFF_FAIL = 620; //脱下失败
      SM_WEIGHTCHANGED = 622; //背包重量改变
      SM_CHANGEMAP = 634; //地图改变
      SM_CLEAROBJECT = 633; //清除对象??????????
      SM_EAT_OK = 635; //吃物品成功
      SM_EAT_FAIL = 636; //吃物品失败
      SM_MAGICFIRE = 638; //魔法火?????????????
      SM_MAGIC_LVEXP = 640; //魔法等级
      SM_DURACHANGE = 642;
      SM_GOLDCHANGE = 653; //金币改变
      SM_CHANGELIGHT = 654; //改变亮度????
      SM_CHANGENAMECOLOR = 656; //改变宝宝颜色?????
      //SM_CHARSTATUSCHANGE = 657;
      SM_CHARSTATUSCHANGED = 657;
      SM_CREATEGROUP_OK = 660; //创建编组成功
      SM_CREATEGROUP_FAIL = 661; //创建编组失败
      SM_GROUPCANCEL = 666; //编组取消??????????
      SM_GROUPMEMBERS = 667; //编组成员
      SM_CHANGEGUILDNAME = 750; //改变行会名称
      SM_SUBABILITY = 752;
      SM_SHOWEVENT = 804; //显示事件????????
      SM_HIDEEVENT = 805; //隐藏事件?????????
      SM_DELITEM = 202; //删除物品????
      SM_DELITEMS = 203; //删除物品??????
      SM_CLOSEHEALTH = 1101; //关闭健康???????
      SM_OPENHEALTH = 1100; //打开健康????????
      SM_MONSTERSAY = 1501; //怪物说话
      SM_SITDOWN = 12; //挖
      SM_BUTCH = 637; //
      SM_SKELETON = 33; // SM_DEATH 尸骨??尸体
      SM_CHANGEFACE = 1104; //
      SM_OPENDOOR_OK = 612; //开门成功
      SM_OPENDOOR_LOCK = 613; //
      SM_CLOSEDOOR = 614; //
      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_OPENGUILDDLG = 753; //打开行会窗口
      SM_OPENGUILDDLG_FAIL = 754; //打开行会窗口失败
      SM_SENDGUILDHOME = 755; //行会主页
      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_GUILDMAKEALLY_OK = 768; //创建行会同盟成功
      SM_GUILDMAKEALLY_FAIL = 769; //创建行会同盟失败
      SM_GUILDBREAKALLY_OK = 770; //删除行会同盟成功
      SM_GUILDBREAKALLY_FAIL = 771; //删除行会同盟失败
      SM_DLGMSG = 772; //窗口消息????弹出窗口???????
      SM_RIDEHORSE = 1300; //骑马
      SM_DAYCHANGING = 46; //日期正在改变????
      SM_SENDMYMAGIC = 211; //我所会的魔法
      SM_VERSION_AVAILABLE = 500; //
      SM_CERTIFICATION_FAIL = 501; //
      SM_ID_NOTFOUND = 502; //ID未发现,用户名错误
      SM_PASSWD_FAIL = 503; //密码错误
      SM_NEWID_SUCCESS = 504; //创建新ID成功
      SM_NEWID_FAIL = 505; //新ID失败
      SM_CHGPASSWD_SUCCESS = 506; //更改密码成功
      SM_CHGPASSWD_FAIL = 507; //更改密码失败
      SM_QUERYCHR = 520; //查询人物(2人窗口)
      SM_NEWCHR_SUCCESS = 521; //创建人物成功
      SM_NEWCHR_FAIL = 522; //创建人物失败
      SM_DELCHR_SUCCESS = 523; //删除人物成功
      SM_DELCHR_FAIL = 524; //删除人物失败
      SM_STARTPLAY = 525; //开始游戏
      SM_STARTFAIL = 526; //进入游戏失败
      SM_QUERYCHR_FAIL = 527; //查询人物失败
      SM_OUTOFCONNECTION = 528; //连接已断开
      SM_PASSOK_SELECTSERVER = 529; //用户名/密码 验证通过
      SM_SELECTSERVER_OK = 530; //服务器选择成功
      SM_NEEDUPDATE_ACCOUNT = 531; //需要更新_说明????
      SM_UPDATEID_SUCCESS = 532; //更新ID成功?????
      SM_UPDATEID_FAIL = 533; //更新ID失败???????
      SM_SENDUSEITEMS = 621; //身上穿戴物品
      SM_SENDNOTICE = 658; //进入游戏弹出窗口
      SM_AREASTATE = 708; //地区状态
      //SM_MAPDESCRIPTION = 54; //地图类型  
      

  4.   

    type
      MAPFILEHEADER = record
        shWidth: word;
        shHeight: word;
        desc: array[1..48] of char;
      end;
      mapTILEINFO = record
        btitle1: byte;
        btitle2: byte;
        bmtitle1: byte;
        bmtitle2: byte;
        bobject1: byte;
        bobject2: byte;
        bflag: byte;
        boffset: byte;
        bframecount: byte;
        bdelaytime: byte;
        bobjgroup: byte;
        bunused: byte;
      end;
      TMatrix = array of array of byte;type
      TMESSAGEBODYWL = record
        lParam1: LongInt;
        lParam2: LongInt;
        lTag1: LongInt;//低位表示是否允许编组
        lTag2: LongInt;
      end;
    type
      TMESSAGEBODYW = record
        Param1: Word;
        Param2: Word;
        Tag1: Word;
        Tag2: Word;
      end {tagMESSAGEBODYW};type
      TCHARDESC = record
        Feature: LongInt;
        Status: LongInt;
      end ;type
      TFEATURE = record
        Gender: BYTE;
        Weapon: BYTE;
        Dress: BYTE;
        Hair: BYTE;
      end;type
      TSTANDARDITEM = record
        Num:byte;     //名字的有效个数//源程序中这里应为name:array[0..14] of char;
        Name: array[0..13] of char;
        StdMode: BYTE;      //物品种类(<=3时可以在快捷栏上显示)
        Shape: BYTE;        //外形
        Weight: BYTE;       //重量
        AniCount: BYTE;     //
        SpecialPower: BYTE; //特殊用途
        NeedIdentify: BYTE; //需要鉴别
        Looks: Word;        //
        DuraMax: Word;      //最大持久
        AC: Word;           //防
        MAC: Word;          //魔防
        DC: Word;           //攻击
        MC: Word;           //魔
        SC: Word;           //道
        Need: BYTE;         //
        NeedLevel: BYTE;    //需要等级
        Price: Integer;     //价格
      end;type
      TCLIENTITEM = record
        s: TSTANDARDITEM;
        MakeIndex: Integer; //
        Dura: Word;         //持久
        DuraMax: Word;      //最大持久
      end;type
      TSTANDARDMAGIC = record   //魔法
        MagicID: Word;          //编号
        Num:byte;          //这里应为MagicName:Array[0..13] of char //num 是我自己加的,表示后面名字的有效字符数.
        MagicName: Array[0..12] of Char;   //名称 12
        EffectType: BYTE;
        Effect: BYTE;    //效果
        Spell: Word;     //魔法
        MinPower: Word;  //
        Need: Array[0..3] of BYTE;     //升级需要的等级
        Train: Array[0..3] of Integer; //锻炼
        MaxTrainLevel: BYTE;           //最大锻炼等级
        Job: BYTE;
        DelayTime: Integer;   //延迟时间
        DefSpell: BYTE;       //默认
        DefMinPower: BYTE;
        MaxPower: Word;
        DefMaxPower: BYTE;
        szDesc: Array[0..15] of Char;
      end;type
      TCLIENTMAGIC = record    //魔法
        UseKey: Char;          //按键
        level:byte;            //等级
        CurrTrain:integer;     //当前经验
        Def: TSTANDARDMAGIC;
      end;  
    这段是delphiBBS得哥们写的,我自己得那份在家中,而且没有调试好,就不贴算了,另外,这套源码在delphiBBS中已经由解元兄在调试通过,解元得Grobal2.pas源码马上就贴。另外,如果要和现在得Mir3server兼容,还有许多工作需要做,至少一些action得常量定义需要测试更改。我提供得源码是从uk得网站拿到得原版,未做任何修改得 ,DFM得窗体资源和shanda 得版本不一样,请用dede从盛大得exe中取得dfm资源。另外,一定要找delphiX 而不是undelphix或者是delphiX for dx8.1得组件一起编译。资源文件就随便找套client即可。
      

  5.   

    DFW 得解元版本unit Grobal2;interface
    uses
       Math,windows;
    Const
      BUFFERSIZE    =1024;  //客户端发送的命令
      CM_SOFTCLOSE  =0;   //登录有关的命令
      CM_IDPASSWORD  =1;
      CM_QUERYUSERSTATE=2;
      CM_ADDNEWUSER =3;
      CM_UPDATEUSER =4;
      CM_SELECTSERVER =5;
      CM_CHANGEPASSWORD =6;
      CM_NEWCHR =7;
      CM_QUERYCHR =8;
      CM_DELCHR =9;
      CM_SELCHR =10;
      CM_QUERYUSERNAME=11;  CM_SAY =22;  CM_MAGICKEYCHANGE = 30;
      CM_CREATEGROUP =42;
      CM_WANTMINIMAP =43;
      CM_OPENGUILDDLG =45;
      CM_GROUPMODE=41;
      CM_ADDGROUPMEMBER =51;
      CM_DELGROUPMEMBER =52;  CM_SPEEDHACKUSER =59;
      CM_ADJUST_BONUS =60;  CM_QUERYBAGITEMS=62;
      CM_LOGINNOTICEOK = 63;
      //动作命令1
      CM_TURN       =4001;
      CM_WALK       =4002;
      CM_SITDOWN    =4003;
      CM_RUN        =4004;
      CM_HIT        =4005;
      CM_POWERHIT   =4008;
      CM_LONGHIT    =4009;
      CM_WIDEHIT    =4010;
      CM_HEAVYHIT   =4011;
      CM_BIGHIT     =4012;
      CM_THROW      =4013;
      CM_FIREHIT    =4014;
      CM_SPELL      =4015;  CM_CLICKNPC   =3015;  //动作命令2
      CM_OPENDOOR   =2001;
      CM_DROPITEM =2010;
      CM_PICKUP =2011;
      CM_TAKEONITEM =2021;
      CM_TAKEOFFITEM = 2022;
      CM_EAT =2023;
      CM_BUTCH =2024;  CM_MERCHANTDLGSELECT =2030;
      CM_MERCHANTQUERYSELLPRICE =2031;
      CM_MERCHANTQUERYREPAIRCOST =2032;  CM_USERSELLITEM =2040;
      CM_USERREPAIRITEM =2041;
      CM_USERSTORAGEITEM =2042;
      CM_USERGETDETAILITEM =2043;
      CM_USERBUYITEM =2044;
      CM_USERTAKEBACKSTORAGEITEM =2045;
      CM_USERMAKEDRUGITEM =2046;
      CM_DROPGOLD =2050;  CM_DEALTRY =2060;
      CM_DEALCANCEL =2061;
      CM_DEALADDITEM =2062;
      CM_DEALDELITEM =2063;
      CM_DEALCHGGOLD =2064;
      CM_DEALEND =2069;  CM_GUILDHOME =2070;
      CM_GUILDMEMBERLIST =2071;
      CM_GUILDADDMEMBER =2072;
      CM_GUILDDELMEMBER =2073;
      CM_GUILDUPDATENOTICE =2074;
      CM_GUILDUPDATERANKINFO =2075;  //装备项目
      U_WEAPON      =0;    //武器
      U_RIGHTHAND   =1;    //右手
      U_DRESS       =2;    //衣服
      U_HELMET      =3;    //头盔
      U_NECKLACE    =4;    //项链
      U_ARMRINGR    =5;    //右手戒指
      U_ARMRINGL    =6;    //左手戒指
      U_RINGR       =7;    //右戒指
      U_RINGL       =8;    //左戒指  //服务器端发送的命令  //登录、新帐号、新角色、查询角色等
      SM_NEWID_SUCCESS =101;
      SM_NEWID_FAIL =102;
      SM_PASSWD_FAIL =103;
      SM_NEEDUPDATE_ACCOUNT =104;
      SM_UPDATEID_SUCCESS =105;
      SM_UPDATEID_FAIL =106;
      SM_PASSOK_SELECTSERVER = 107;
      SM_SELECTSERVER_OK =109;
      SM_QUERYCHR =111;
      SM_QUERYCHR_FAIL =112;
      SM_NEWCHR_SUCCESS  =113;
      SM_NEWCHR_FAIL =114;
      SM_CHGPASSWD_SUCCESS =115;
      SM_CHGPASSWD_FAIL =116;
      SM_DELCHR_SUCCESS =117;
      SM_DELCHR_FAIL =118;
      SM_STARTPLAY=119;
      SM_STARTFAIL =120;  SM_VERSION_FAIL =121;
      SM_OUTOFCONNECTION =122;
      SM_RECONNECT =125;
      SM_SENDNOTICE =202;  SM_MYSTATUS =131;
      SM_TIMECHECK_MSG = 227;  SM_CHANGEMAP   =201;
      SM_AREASTATE = 228;
      SM_NEWMAP =223;
      SM_MAPDESCRIPTION = 229;
      SM_LOGON =224;  SM_CHANGELIGHT =240;
      SM_LAMPCHANGEDURA=241;
      SM_LIGHTING =242;  SM_OPENDOOR_OK=249;
      SM_OPENDOOR_LOCK=250;
      SM_CLOSEDOOR =251;  SM_DEATH=260;
      SM_NOWDEATH =261;
      SM_SKELETON=262;
      SM_ALIVE =263;
      SM_ABILITY =264;
      SM_SUBABILITY=265;
      SM_DAYCHANGING=266;
      SM_WINEXP =267;
      SM_LEVELUP =268;
      SM_HEALTHSPELLCHANGED =269;
      SM_ADJUST_BONUS =280;
      

  6.   

    SM_STRUCK =310;
      SM_CHANGEFACE=311;
      SM_OPENHEALTH=312;
      SM_CLOSEHEALTH =313;
      SM_INSTANCEHEALGUAGE=314;
      SM_BREAKWEAPON=315;  //对话消息
      SM_CRY=316;
      SM_GROUPMESSAGE =347;
      SM_GUILDMESSAGE =348;
      SM_WHISPER=349;
      SM_HEAR=351;
      SM_SYSMESSAGE=390;  SM_USERNAME =352;
      SM_CHANGENAMECOLOR=353;
      
      //移动动作
      SM_TURN       =1001;
      SM_WALK       =1002;
      SM_SITDOWN    =1003;
      SM_RUN        =1004;
      SM_HIT        =1005;
      SM_POWERHIT   =1008;
      SM_LONGHIT    =1009;
      SM_WIDEHIT    =1010;
      SM_HEAVYHIT   =1011;
      SM_BIGHIT     =1012;
      SM_THROW      =1013;
      SM_FIREHIT    =1014;
      SM_SPELL      =1015;
      SM_BACKSTEP   =1021;
      SM_RUSH       =1022;
      SM_RUSHKUNG   =1023;  SM_SPACEMOVE_HIDE =1041;
      SM_SPACEMOVE_HIDE2=1042;
      SM_SPACEMOVE_SHOW =1043;
      SM_SPACEMOVE_SHOW2=1044;
      SM_MOVEFAIL       =1045;
      SM_BUTCH          =1046;  SM_FLYAXE         =1060;  SM_MAGICFIRE      =1072;
      SM_MAGICFIRE_FAIL = 1073;  SM_HIDE =1224;
      SM_GHOST=1225;
      SM_DISAPPEAR=1226;
      SM_DIGUP=1227;
      SM_DIGDOWN=1228;
      SM_SHOWEVENT =1229;
      SM_HIDEEVENT = 1230;  SM_ADDITEM=2040;
      SM_BAGITEMS =2041;
      SM_UPDATEITEM=2042;
      SM_DELITEM =2043;
      SM_DELITEMS=2044;
      SM_DROPITEM_SUCCESS=2045;
      SM_DROPITEM_FAIL=2046;
      SM_ITEMSHOW=2047;
      SM_ITEMHIDE=2048;
      SM_TAKEON_OK=2052;
      SM_TAKEON_FAIL=2053;
      SM_TAKEOFF_OK=2054;
      SM_TAKEOFF_FAIL=2055;
      SM_EXCHGTAKEON_OK=2056;
      SM_EXCHGTAKEON_FAIL=2057;  SM_SENDUSEITEMS=2058;
      SM_WEIGHTCHANGED=2059;
      SM_GOLDCHANGED=2060;
      SM_FEATURECHANGED=2061;
      SM_CHARSTATUSCHANGED=2062;
      SM_CLEAROBJECTS=2063;
      SM_EAT_OK=2064;
      SM_EAT_FAIL=2065;
      SM_ADDMAGIC=2066;
      SM_SENDMYMAGIC=2067;
      SM_DELMAGIC=2068;
      SM_MAGIC_LVEXP=2069;
      SM_DURACHANGE=2070;
      SM_MERCHANTSAY=2071;
      SM_MERCHANTDLGCLOSE=2072;  SM_SENDGOODSLIST=2073;
      SM_SENDUSERMAKEDRUGITEMLIST=2074;
      SM_SENDUSERSELL=2075;
      SM_SENDUSERREPAIR=2076;
      SM_SENDBUYPRICE=2077;
      SM_USERSELLITEM_OK=2078;
      SM_USERSELLITEM_FAIL=2079;
      SM_SENDREPAIRCOST=2080;
      SM_USERREPAIRITEM_OK=2081;
      SM_USERREPAIRITEM_FAIL=2082;
      SM_STORAGE_OK=2083;
      SM_STORAGE_FULL=2084;
      SM_STORAGE_FAIL=2085;
      SM_SAVEITEMLIST=2086;  SM_TAKEBACKSTORAGEITEM_OK=2087;
      SM_TAKEBACKSTORAGEITEM_FAIL=2088;
      SM_TAKEBACKSTORAGEITEM_FULLBAG=2089;  SM_BUYITEM_SUCCESS=2090;
      SM_BUYITEM_FAIL=2091;  SM_MAKEDRUG_SUCCESS=2092;
      SM_MAKEDRUG_FAIL=2093;  SM_SENDDETAILGOODSLIST=2094;
      SM_TEST=2095;
      SM_GROUPMODECHANGED=2096;
      SM_CREATEGROUP_OK=2097;
      SM_CREATEGROUP_FAIL=2098;
      SM_GROUPADDMEM_OK=2099;
      SM_GROUPADDMEM_FAIL=2100;
      SM_GROUPDELMEM_OK=2101;
      SM_GROUPDELMEM_FAIL=2102;
      SM_GROUPCANCEL=2103;
      SM_GROUPMEMBERS=2104;  SM_OPENGUILDDLG=2105;
      SM_SENDGUILDMEMBERLIST=2106;
      SM_OPENGUILDDLG_FAIL=2107;
      SM_CHANGEGUILDNAME=2124;
      SM_GUILDADDMEMBER_OK=2126;
      SM_GUILDADDMEMBER_FAIL=2127;
      SM_GUILDDELMEMBER_OK=2128;
      SM_GUILDDELMEMBER_FAIL=2129;
      SM_GUILDRANKUPDATE_FAIL=2130;
      SM_GUILDMAKEALLY_OK=2131;
      SM_GUILDMAKEALLY_FAIL=2132;
      SM_GUILDBREAKALLY_OK=2133;
      SM_GUILDBREAKALLY_FAIL=2134;  SM_DEALTRY_FAIL=2108;
      SM_DEALMENU=2109;
      SM_DEALCANCEL=2110;
      SM_DEALADDITEM_OK=2111;
      SM_DEALADDITEM_FAIL=2112;
      SM_DEALDELITEM_OK=2113;
      SM_DEALDELITEM_FAIL=2114;
      SM_DEALREMOTEADDITEM=2115;
      SM_DEALREMOTEDELITEM=2116;
      SM_DEALCHGGOLD_OK=2117;
      SM_DEALCHGGOLD_FAIL=2118;
      SM_DEALREMOTECHGGOLD=2119;
      SM_DEALSUCCESS=2120;  SM_SENDUSERSTORAGEITEM=2121;  SM_READMINIMAP_OK=2122;
      SM_READMINIMAP_FAIL=2123;  SM_SENDUSERSTATE=2125;  SM_BUILDGUILD_OK=2135;
      SM_BUILDGUILD_FAIL=2136;
      SM_MENU_OK=2137;
      SM_DLGMSG=2138;
      SM_DONATE_OK=2139;
      SM_DONATE_FAIL=2140;  SM_ACTION_MIN=2200;
      SM_ACTION_MAX=2499;
      SM_ACTION2_MIN=2500;
      SM_ACTION2_MAX=2999;  RCC_MERCHANT  =1;
      RCC_GUARD     =2;  VERSION_NUMBER_0522=522;  DEFBLOCKSIZE =16;  UNITX = 48;
      UNITY = 32;
      LOGICALMAPUNIT =20;
      HALFX = 24;
      HALFY = 16;  ET_DIGOUTZOMBI =0;
      ET_PILESTONES = 1;
      ET_HOLYCURTAIN = 2;
      ET_FIRE= 3;
      ET_SCULPEICE = 4;  STATE_STONE_MODE =0;
      STATE_OPENHEATH = 1;  MAXBAGITEM = 52;  DR_UP=0;
      DR_UPRIGHT =1;
      DR_RIGHT =2;
      DR_DOWNRIGHT =3;
      DR_DOWN =4;
      DR_DOWNLEFT =5;
      DR_LEFT =6;
      DR_UPLEFT =7;
      

  7.   

    鄙视喜欢数据库、web、游戏、算法的人hehe^^
      

  8.   

    type  TDefaultMessage=packed record  //Size=12
        Ident :word;
        Recog :integer;  //识别码
        Param :smallint;
        Tag   :smallint;
        Series:smallint;
      end;
      //Ident=SM_DAYCHANGING
      //   Param=DayBright
      //   Tag=雾的浓度:0,1,2,3  TUserInfo=Record
         Name:String[32];
         Looks:integer;
         StdMode:Integer;
         Shape:Integer;
      end;  TStdItem=record
         Name:String[16];   //物品名称
         Looks:integer;     //外观,即Items.WIL中的图片索引
         StdMode:integer;   //0/1/2/3:药, 5/6:武器,10/11:盔甲,15:头盔,22/23:戒指,24/26:手镯,19/20/21:项链
         Shape:integer;
         AC:Integer;
         MAC:integer;
         Weight:integer;
         DuraMax:integer;
         NeedIdentify:byte;
         DC,MC,SC:Integer;
         Source:integer;
         Need:integer;
         NeedLevel:integer;
      end;  PTClientItem=^TClientItem;
      TClientItem=Record
         s:TStdItem;
         MakeIndex:Integer;
         Dura:Integer;
         DuraMax:Integer;
      end;  TAbility= packed record
         MP,MaxMP:Integer;
         HP,MaxHP:integer;
         Exp,MaxExp:Integer;
         Level:Integer;
         Weight,MaxWeight:Integer;
         WearWeight,MaxWearWeight:Integer;
         HandWeight,MaxHandWeight:Integer;
         AC:Integer;
         MAC:Integer;
         DC:Integer;
         MC,SC:Integer;
      end;  PTChrMsg=^TChrMsg;
      TChrMsg=Record
         Ident:integer;
         Dir:Integer;
         X,Y:Integer;
         State:integer;
         feature:integer;
         saying:string;
         Sound:integer;
      end;  TUserStateInfo=Record
         UserName:String[32];
         GuildName:String[32];
         GuildRankName:String[32];
         NameColor:Integer;
         Feature:integer;
         UseItems:Array[0..127] of TClientItem;
      end;  TUserCharacterInfo=Record
         Name:String;
         Job:byte;
         Hair:smallint;
         level:Integer;
         Sex:byte;
      end;  TUserEntryInfo=Record
         LoginId:String[16];
         Password:String[16];
         UserName:String[32];
         SSNo:String[18];
         Quiz:String[32];
         Answer:String[32];
         Phone:String[15];
         EMail:String[64];
         
      end;  TUserEntryAddInfo=Record
         Quiz2:String[32];
         Answer2:String[32];
         MobilePhone:String[15];
         BirthDay:String[16];
      end;  PTDropItem=^TDropItem;
      TDropItem=record
         Id:Integer;
         X,Y:Integer;
         Looks:integer;
         FlashTime:LongInt;
         Name:String[16];
         BoFlash:Boolean;
         FlashStepTime:LongInt;
         FlashStep:Integer;
      end;  TDef=Record
        Spell:integer;
        DefSpell:integer;
        EffectType:Integer;
        MagicId:Integer;
        Effect:Integer;
        DelayTime:Integer;
        MagicName:String[16];
        MaxTrain:Array [0..255] of integer;
      end;  PTClientMagic=^TClientMagic;
      TClientMagic=Record
         Key:Char;
         Def:TDef;
         Level:Integer;
         CurTrain:Integer;
      end;  TNakedAbility=Record
         DC,MC,SC,AC,MAC:Integer;
         HP,MP:Integer;
         Hit:integer;
         Speed:integer;
      end;
      

  9.   

    TShortMessage=Record
         Ident:Integer;
      end;  TMessageBodyW=Record
         Param1:integer;
         Param2:integer;
         Tag1:integer;
         Tag2:integer;
      end;  TCharDesc=Record
         Feature:Integer;
         Status:Integer;
      end;  TMessageBodyWL=Record
         lParam1,lParam2:longint;
         lTag1,lTag2:longint;
      end;  PTClientGoods=^TClientGoods;
      TClientGoods=record
         Name:string[16];
         SubMenu:Integer;
         Price:Integer;
         Stock:integer;
         Grade:integer;
      end;function  MakeDefaultMsg (msg:smallint; Recog:integer; param, tag, series:smallint):TDefaultMessage;
    function  UpInt(i:double):integer;
    Function  RACEfeature(Feature:word):smallint;
    Function  HAIRfeature(Feature:word):byte;
    Function  DRESSfeature(Feature:word):byte;
    Function  APPRfeature(Feature:word):byte;
    Function  WEAPONfeature(Feature:word):byte;
    function  MakeFeature(Race:Word;Appr,Hair,Dress,Weapon:byte):Integer;
    implementationfunction  MakeDefaultMsg (msg:smallint; Recog:integer; param, tag, series:smallint):TDefaultMessage;
    begin
        result.Ident:=Msg;
        result.Param:=Param;
        result.Tag:=Tag;
        result.Series:=Series;
        result.Recog:=Recog;
    end;function  UpInt(i:double):integer;
    begin
      result:=Ceil(i);
    end;//人物Feature属性的分解和合成,共32位,高16位为Race和Appr,
    //   低16位中,最左四位表示Hair,接下来6位表示Dress,最右6位表示Weapon。
    //   当Race=0时,Dress mod 2 表示性别
    //   Race=0时武器也分男女,男的武器应该是偶数,女的是奇数
    //*******对Feature的解释可以自己定义,但Race取值至少0..90,Appr:0..9
    //*******Hair最多有6种发型(3600幅图片,每600幅图片一种发型),男女各3
    //*******Dress的数量好象在Hum.WIL中表示,有多少种图片就有多少种服装,Hum.WIL可以扩展
    //*******Weapon的数量见Weapon.WIL,有数万幅图片,同样的,每600幅对应一个Appr,分男女
    //*********例如40800幅对应68种武器(男女合计)
    Function  RACEfeature(Feature:word):smallint;
    begin
      result:=Hiword(Feature) div 10;
    end;Function  HAIRfeature(Feature:word):byte;
    begin
      result:=(LoWord(Feature) and $F000) shr 12 ;  //1111000000000000
    end;Function  DRESSfeature(Feature:word):byte;
    begin
      result:=(LoWord(Feature) and $3F00) shr 7;    //0000111111000000
    end;Function  WEAPONfeature(Feature:word):byte;
    begin
      result:=LoWord(Feature) and $3F;              //0000000000111111
    end;Function  APPRfeature(Feature:word):byte;
    begin
      result:=hiword(Feature) mod 10;
    end;function  MakeFeature(Race:Word;Appr,Hair,Dress,Weapon:byte):Integer;
    begin
      result:=MakeLong(((Hair And $0F)shl 12) + ((Dress And $3F) shl 6) + (Weapon And $3F) ,Race*10+Appr);
    end;end.
    祝大家好运
      

  10.   

    to fei19790920(饭桶的马甲) 晕,鄙视讨厌数据库的人,呵呵
      

  11.   

    说错了,是Mir2server不是mir3server另外mir3server的C++全部源码我这里也有,不过网络上到处也是,大家可以google
      

  12.   

    回复人: fei19790920(饭桶的马甲) ( ) 信誉:99  2004-07-06 10:06:00  得分: 0  
     
     
       鄙视喜欢数据库、web、游戏、算法的人hehe^^
      
     
    ----------------------------------------------------
    求大同,存小异,随便鄙视人的人才值得鄙视
      

  13.   

    回复人: S.F.(CSDN:896410000) ( ) 信誉:99  2004-07-06 10:10:00  得分: 0  
     
     
       说错了,是Mir2server不是mir3server另外mir3server的C++全部源码我这里也有,不过网络上到处也是,大家可以google
      
     
    ===========================
    来一份呀??搜不到哟~~~~
      

  14.   

    请下载的人仔细看看帖子,我回复的有正确的地址!
    http://www.cssafe.gov.cn/bbs/pic/green/client.rar
      

  15.   

    TO:S.F.(CSDN:896410000)来一份mir3 的c++ 源码???
    [email protected]
      

  16.   

    我倒,楼主。你行行好,给个能下载的地址吧。
    你上面给的都不行#$*@#$%&
      

  17.   

    我刚恢复了下载链接
    http://www.cssafe.gov.cn/bbs/pic/green/client.rar
      

  18.   

    支持,UP楼主有DELPHI的direct资料吗?
      

  19.   


    另外mir3server的C++全部源码我这里也有,不过网络上到处也是,大家可以google
      
     
    ===========================我搜索到了,在  http://www.fernys.co.uk/