查看:52418|回复:15
收起左侧

奇迹mu 物品数据库转换代码

 [复制链接]

TA的专栏

  • 打卡等级:丛林召唤者

今日最高分:0

今日排行:未上榜

等级头衔

等級:雪人王

活跃状态

67

主题

654

回帖

460

积分

积分货币
祝福
718 颗
灵魂
54 颗
玛雅
61782 颗
元宝
0 锭
积分
3843 枚
注册时间
2023-11-27
最后登录
2024-12-4

联系方式

QQ
QQ

违规信息
违规:0

荣誉勋章

实力无需隐藏勇者大陆炉石流亡指引者合作服玩家卓越奇迹玩家祥龙贺岁

    发表于 2023-12-6 01:55:48|显示全部楼层|阅读模式
    星级打分
    • 1
    • 2
    • 3
    • 4
    • 5
    平均分:0  参与人数:0  我的评分:未评

    1. #define CHECK_LIMIT(value, limit) ( ((value)<0)?FALSE:((value)>((limit)-1))?FALSE:TRUE  )
    2. #define ITEMGET(x,y) ( (x)*512 + (y))
    3. #define SET_NUMBERH(x) ( (BYTE)((DWORD)(x)>>(DWORD)8) )
    4. #define SET_NUMBERL(x) ( (BYTE)((DWORD)(x) & 0xFF) )
    5. #define SET_NUMBERHW(x) ( (WORD)((DWORD)(x)>>(DWORD)16) )
    6. #define SET_NUMBERLW(x) ( (WORD)((DWORD)(x) & 0xFFFF) )


    7. class CItem // 0xd0
    8. {
    9. public:
    10.     ULONG m_Number; // +0x0(0x4                                物品序列号
    11.     short m_Type; // +0x6(0x2)                                物品编号
    12.     short m_Level; // +0x8(0x2)                                物品等级
    13.     float m_Durability; // +0x24(0x4)                        耐久
    14.     BYTE m_Option1; // +0x84(0x1)                        技能       
    15.     BYTE m_Option2; // +0x85(0x1)                        幸运
    16.     BYTE m_Option3; // +0x86(0x1)                        追加
    17.     BYTE m_NewOption; // +0x87(0x1)                        卓越
    18.     BYTE m_SetOption; // +0x9e(0x1)                         套装
    19.     BYTE m_JewelOfHarmonyOption; // +0xb4(0x1)                强化属性
    20.     BYTE m_ItemOptionEx; // +0xba(0x1)                        380属性
    21.     BYTE m_SocketOptionIndex; // +0xbb(0x1)                镶嵌荧光属性
    22.     BYTE m_SocketOption[0x5]; // +0xbc(0x5)                镶嵌5洞属性               
    23.     BYTE m_PeriodItemOption; // +0xc2(0x1)                期限道具物品属性

    24. };

    25. //这个是物品转化为16个BYTE数据存到数据库,可以反推
    26. void ItemByteConvert16(LPBYTE buf, CItem * const item , int maxitem)
    27. {
    28.         int n=0;
    29.         WORD hiWord, loWord;

    30.         for (int index=0; index < maxitem ;index++)
    31.         {
    32.                 if ( item[index].m_Type == ITEMGET(13,19) )
    33.                 {
    34.                         if ( CHECK_LIMIT(item[index].m_Level, 3) != FALSE )
    35.                         {
    36.                                 buf[n+0]=-1;
    37.                                 buf[n+1]=-1;
    38.                                 buf[n+2]=-1;
    39.                                 buf[n+3]=-1;
    40.                                 buf[n+4]=-1;
    41.                                 buf[n+5]=-1;
    42.                                 buf[n+6]=-1;
    43.                                 buf[n+7]=-1;
    44.                                 buf[n+8]=-1;
    45.                                 buf[n+9]=-1;
    46.                                 buf[n+10]=-1;
    47.                                 buf[n+11]=-1;
    48.                                 buf[n+12]=-1;
    49.                                 buf[n+13]=-1;
    50.                                 buf[n+14]=-1;
    51.                                 buf[n+15]=-1;
    52.                                 n+=16;

    53.                                 continue;
    54.                         }
    55.                 }

    56.                 if ( item[index].m_Type == ITEMGET(14,64) ) //Season 2.5 Illusion Torch add-on
    57.                 {
    58.                         buf[n] = -1;
    59.                         buf[n+1]= -1;
    60.                         buf[n+2]= -1;
    61.                         buf[n+3]= -1;
    62.                         buf[n+4]= -1;
    63.                         buf[n+5]= -1;
    64.                         buf[n+6]= -1;
    65.                         buf[n+7]= -1;
    66.                         buf[n+8]= -1;
    67.                         buf[n+9]= -1;
    68.                         buf[n+10]=-1;
    69.                         buf[n+11]=-1;
    70.                         buf[n+12]=-1;
    71.                         buf[n+13]=-1;
    72.                         buf[n+14]=-1;
    73.                         buf[n+15]=-1;
    74.                         n += 16;
    75.                         continue;
    76.                 }

    77.                 if ( item[index].m_Type < ITEMGET(0,0) )
    78.                 {
    79.                         buf[n+0]=-1;
    80.                         buf[n+1]=-1;
    81.                         buf[n+2]=-1;
    82.                         buf[n+3]=-1;
    83.                         buf[n+4]=-1;
    84.                         buf[n+5]=-1;
    85.                         buf[n+6]=-1;
    86.                         buf[n+7]=-1;
    87.                         buf[n+8]=-1;
    88.                         buf[n+9]=-1;
    89.                         buf[n+10]=-1;
    90.                         buf[n+11]=-1;
    91.                         buf[n+12]=-1;
    92.                         buf[n+13]=-1;
    93.                         buf[n+14]=-1;
    94.                         buf[n+15]=-1;
    95.                         n+=16;
    96.                 }
    97.                 else
    98.                 {
    99.                         memset(buf+n, 0, 16);

    100.                         buf[n] = (BYTE)item[index].m_Type % 256;
    101.                         n++;
    102.                         buf[n]=0;
    103.                         buf[n] |= item[index].m_Level * 8;
    104.                         buf[n] |= item[index].m_Option1 * 128;
    105.                         buf[n] |= item[index].m_Option2 * 4;
    106.                         buf[n] |= item[index].m_Option3 & 3;
    107.                         n++;
    108.                         buf[n] = item[index].m_Durability;
    109.                         n++;
    110.                         hiWord = item[index].m_Number >> 16;
    111.                         loWord = item[index].m_Number  & 0xFFFF;
    112.                         buf[n] = SET_NUMBERH(hiWord);
    113.                         n++;
    114.                         buf[n] = SET_NUMBERL(hiWord);
    115.                         n++;
    116.                         buf[n] = SET_NUMBERH(loWord);
    117.                         n++;
    118.                         buf[n] = SET_NUMBERL(loWord);
    119.                         n++;
    120.                         buf[n] = 0;
    121.                         BYTE btItemType=0;
    122.                         btItemType |= (item[index].m_Type & 0x1E00 ) >> 5;
    123.                         buf[n] |= ((item[index].m_Type & 0x100) >> 1);

    124.                         if ( item[index].m_Option3 > 3 )
    125.                         {
    126.                                 buf[n] |= 0x40; // item +16 option
    127.                         }

    128.                         buf[n] |= item[index].m_NewOption;
    129.                         n++;
    130.                         buf[n] = item[index].m_SetOption;
    131.                         n++;
    132.                         buf[n] = 0;
    133.                         buf[n] |= btItemType;
    134.                         BYTE btItemEffectFor380 = 0;
    135.                         btItemEffectFor380 = (item[index].m_ItemOptionEx & 0x80 ) >> 4;
    136.                         buf[n] |= btItemEffectFor380;
    137.                        
    138.                         BYTE btPartialyChargeOption = 0;
    139.                         btPartialyChargeOption = item[index].m_PeriodItemOption << 1;
    140.                         buf[n] |= btPartialyChargeOption;

    141.                         n++;

    142.                         if ( item[index].m_JewelOfHarmonyOption == 0xFF )
    143.                                 item[index].m_JewelOfHarmonyOption = 0;

    144.                         buf[n] = item[index].m_JewelOfHarmonyOption;

    145.                         //Season4 add-on
    146.                         if(IsSocekt(item[index].m_Type) >0 || //镶嵌
    147.                                 IsPentagram(item[index].m_Type )|| IsMuunItem(item[index].m_Type) || IsStoneofEvolution(item[index].m_Type) >0)//元素 宠物  宠物升级道具
    148.                         {
    149.                                 buf[n] = item[index].m_SocketOptionIndex;
    150.                         }
    151.                         n++;
    152.                         buf[n] = item[index].m_SocketOption[0];
    153.                         n++;
    154.                         buf[n] = item[index].m_SocketOption[1];
    155.                         n++;
    156.                         buf[n] = item[index].m_SocketOption[2];
    157.                         n++;
    158.                         buf[n] = item[index].m_SocketOption[3];
    159.                         n++;
    160.                         buf[n] = item[index].m_SocketOption[4];
    161.                         n++;
    162.                 }
    163.         }
    164. }
    复制代码


    吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

    TA的专栏

    • 打卡等级:丛林召唤者

    今日最高分:0

    今日排行:未上榜

    等级头衔

    等級:哥布林

    活跃状态

    0

    主题

    648

    回帖

    123

    积分

    积分货币
    祝福
    323 颗
    灵魂
    1 颗
    玛雅
    23872 颗
    元宝
    0 锭
    积分
    666 枚
    注册时间
    2023-11-27
    最后登录
    2024-12-3

    联系方式

    违规信息
    违规:0

    荣誉勋章

      发表于 2023-12-6 01:55:49|显示全部楼层
      很有看点!
      我要说一句
      吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

      TA的专栏

      • 打卡等级:丛林召唤者

      今日最高分:0

      今日排行:未上榜

      等级头衔

      等級:哥布林

      活跃状态

      0

      主题

      643

      回帖

      123

      积分

      积分货币
      祝福
      321 颗
      灵魂
      1 颗
      玛雅
      23468 颗
      元宝
      0 锭
      积分
      662 枚
      注册时间
      2023-11-27
      最后登录
      2024-12-3

      联系方式

      违规信息
      违规:0

      荣誉勋章

        发表于 2023-12-6 14:19:26|显示全部楼层
        论坛人气好旺!
        我要说一句
        吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

        TA的专栏

        • 打卡等级:丛林召唤者

        今日最高分:0

        今日排行:未上榜

        等级头衔

        等級:哥布林

        活跃状态

        0

        主题

        599

        回帖

        114

        积分

        积分货币
        祝福
        297 颗
        灵魂
        1 颗
        玛雅
        23419 颗
        元宝
        0 锭
        积分
        614 枚
        注册时间
        2023-11-27
        最后登录
        2024-12-3

        联系方式

        违规信息
        违规:0

        荣誉勋章

          发表于 2023-12-6 18:54:01|显示全部楼层
          我裤子脱了,纸都准备好了,你就给我看这个?
          我要说一句
          吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

          TA的专栏

          • 打卡等级:丛林召唤者

          今日最高分:0

          今日排行:未上榜

          等级头衔

          等級:哥布林

          活跃状态

          0

          主题

          602

          回帖

          115

          积分

          积分货币
          祝福
          299 颗
          灵魂
          1 颗
          玛雅
          22950 颗
          元宝
          0 锭
          积分
          618 枚
          注册时间
          2023-11-27
          最后登录
          2024-12-3

          联系方式

          违规信息
          违规:0

          荣誉勋章

            发表于 2023-12-7 00:22:52|显示全部楼层
            最近回了很多帖子,都没人理我!
            我要说一句
            吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

            TA的专栏

            • 打卡等级:丛林召唤者

            今日最高分:0

            今日排行:未上榜

            等级头衔

            等級:哥布林

            活跃状态

            0

            主题

            606

            回帖

            116

            积分

            积分货币
            祝福
            302 颗
            灵魂
            1 颗
            玛雅
            23016 颗
            元宝
            0 锭
            积分
            624 枚
            注册时间
            2023-11-27
            最后登录
            2024-12-3

            联系方式

            违规信息
            违规:0

            荣誉勋章

              发表于 2023-12-8 16:34:22|显示全部楼层
              顶一个!
              我要说一句
              吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

              TA的专栏

              • 打卡等级:丛林召唤者

              今日最高分:0

              今日排行:未上榜

              等级头衔

              等級:哥布林

              活跃状态

              0

              主题

              599

              回帖

              114

              积分

              积分货币
              祝福
              298 颗
              灵魂
              1 颗
              玛雅
              22575 颗
              元宝
              0 锭
              积分
              616 枚
              注册时间
              2023-11-27
              最后登录
              2024-12-3

              联系方式

              违规信息
              违规:0

              荣誉勋章

                发表于 2023-12-9 13:22:33|显示全部楼层
                回帖也有有水平的!
                我要说一句
                吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

                TA的专栏

                • 打卡等级:丛林召唤者

                今日最高分:0

                今日排行:未上榜

                等级头衔

                等級:哥布林

                活跃状态

                0

                主题

                626

                回帖

                119

                积分

                积分货币
                祝福
                312 颗
                灵魂
                1 颗
                玛雅
                23817 颗
                元宝
                0 锭
                积分
                644 枚
                注册时间
                2023-11-27
                最后登录
                2024-12-3

                联系方式

                违规信息
                违规:0

                荣誉勋章

                  发表于 2023-12-10 07:44:18|显示全部楼层
                  勤奋灌水,天天向上!
                  我要说一句
                  吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

                  TA的专栏

                  • 打卡等级:丛林召唤者

                  今日最高分:0

                  今日排行:未上榜

                  等级头衔

                  等級:哥布林

                  活跃状态

                  0

                  主题

                  599

                  回帖

                  114

                  积分

                  积分货币
                  祝福
                  298 颗
                  灵魂
                  1 颗
                  玛雅
                  22575 颗
                  元宝
                  0 锭
                  积分
                  616 枚
                  注册时间
                  2023-11-27
                  最后登录
                  2024-12-3

                  联系方式

                  违规信息
                  违规:0

                  荣誉勋章

                    发表于 2023-12-10 11:44:25|显示全部楼层
                    支持感谢大佬分享
                    我要说一句
                    吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

                    TA的专栏

                    • 打卡等级:丛林召唤者

                    今日最高分:0

                    今日排行:未上榜

                    等级头衔

                    等級:哥布林

                    活跃状态

                    0

                    主题

                    651

                    回帖

                    124

                    积分

                    积分货币
                    祝福
                    325 颗
                    灵魂
                    1 颗
                    玛雅
                    23939 颗
                    元宝
                    0 锭
                    积分
                    670 枚
                    注册时间
                    2023-11-27
                    最后登录
                    2024-12-3

                    联系方式

                    违规信息
                    违规:0

                    荣誉勋章

                      发表于 2023-12-10 18:11:30|显示全部楼层
                      谢谢分享。收下了
                      我要说一句
                      吾爱一起玩儿,一个游戏爱好者的聚集地!《新会员请仔细阅读入坑须知!发布资源请阅读资源分享规则!》用户组达到[戈登]后可修改此签名!

                      本版积分规则