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

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

 [复制链接]

TA的专栏

  • 打卡等级:炽炎魔

今日最高分:0

今日排行:未上榜

等级头衔

等級:雪人王

活跃状态

59

主题

566

回帖

430

积分

积分货币
祝福
634 颗
灵魂
54 颗
玛雅
53593 颗
元宝
0 锭
积分
3625 枚
注册时间
2023-11-27
最后登录
2024-10-18

联系方式

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

    主题

    554

    回帖

    106

    积分

    积分货币
    祝福
    276 颗
    灵魂
    1 颗
    玛雅
    20422 颗
    元宝
    0 锭
    积分
    572 枚
    注册时间
    2023-11-27
    最后登录
    2024-10-18

    联系方式

    违规信息
    违规:0

    荣誉勋章

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

      TA的专栏

      • 打卡等级:炽炎魔

      今日最高分:0

      今日排行:未上榜

      等级头衔

      等級:哥布林

      活跃状态

      0

      主题

      545

      回帖

      104

      积分

      积分货币
      祝福
      272 颗
      灵魂
      1 颗
      玛雅
      21161 颗
      元宝
      0 锭
      积分
      564 枚
      注册时间
      2023-11-27
      最后登录
      2024-10-18

      联系方式

      违规信息
      违规:0

      荣誉勋章

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

        TA的专栏

        • 打卡等级:炽炎魔

        今日最高分:0

        今日排行:未上榜

        等级头衔

        等級:哥布林

        活跃状态

        0

        主题

        501

        回帖

        96

        积分

        积分货币
        祝福
        248 颗
        灵魂
        1 颗
        玛雅
        19943 颗
        元宝
        0 锭
        积分
        516 枚
        注册时间
        2023-11-27
        最后登录
        2024-10-18

        联系方式

        违规信息
        违规:0

        荣誉勋章

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

          TA的专栏

          • 打卡等级:炽炎魔

          今日最高分:0

          今日排行:未上榜

          等级头衔

          等級:哥布林

          活跃状态

          0

          主题

          506

          回帖

          97

          积分

          积分货币
          祝福
          251 颗
          灵魂
          1 颗
          玛雅
          19415 颗
          元宝
          0 锭
          积分
          522 枚
          注册时间
          2023-11-27
          最后登录
          2024-10-18

          联系方式

          违规信息
          违规:0

          荣誉勋章

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

            TA的专栏

            • 打卡等级:炽炎魔

            今日最高分:0

            今日排行:未上榜

            等级头衔

            等級:哥布林

            活跃状态

            0

            主题

            514

            回帖

            98

            积分

            积分货币
            祝福
            256 颗
            灵魂
            1 颗
            玛雅
            19585 颗
            元宝
            0 锭
            积分
            532 枚
            注册时间
            2023-11-27
            最后登录
            2024-10-18

            联系方式

            违规信息
            违规:0

            荣誉勋章

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

              TA的专栏

              • 打卡等级:炽炎魔

              今日最高分:0

              今日排行:未上榜

              等级头衔

              等級:哥布林

              活跃状态

              0

              主题

              503

              回帖

              96

              积分

              积分货币
              祝福
              250 颗
              灵魂
              1 颗
              玛雅
              19096 颗
              元宝
              0 锭
              积分
              520 枚
              注册时间
              2023-11-27
              最后登录
              2024-10-18

              联系方式

              违规信息
              违规:0

              荣誉勋章

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

                TA的专栏

                • 打卡等级:炽炎魔

                今日最高分:0

                今日排行:未上榜

                等级头衔

                等級:哥布林

                活跃状态

                0

                主题

                526

                回帖

                101

                积分

                积分货币
                祝福
                262 颗
                灵魂
                1 颗
                玛雅
                20313 颗
                元宝
                0 锭
                积分
                544 枚
                注册时间
                2023-11-27
                最后登录
                2024-10-18

                联系方式

                违规信息
                违规:0

                荣誉勋章

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

                  TA的专栏

                  • 打卡等级:炽炎魔

                  今日最高分:0

                  今日排行:未上榜

                  等级头衔

                  等級:哥布林

                  活跃状态

                  0

                  主题

                  503

                  回帖

                  96

                  积分

                  积分货币
                  祝福
                  250 颗
                  灵魂
                  1 颗
                  玛雅
                  19096 颗
                  元宝
                  0 锭
                  积分
                  520 枚
                  注册时间
                  2023-11-27
                  最后登录
                  2024-10-18

                  联系方式

                  违规信息
                  违规:0

                  荣誉勋章

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

                    TA的专栏

                    • 打卡等级:炽炎魔

                    今日最高分:0

                    今日排行:未上榜

                    等级头衔

                    等級:哥布林

                    活跃状态

                    0

                    主题

                    557

                    回帖

                    106

                    积分

                    积分货币
                    祝福
                    278 颗
                    灵魂
                    1 颗
                    玛雅
                    20457 颗
                    元宝
                    0 锭
                    积分
                    576 枚
                    注册时间
                    2023-11-27
                    最后登录
                    2024-10-18

                    联系方式

                    违规信息
                    违规:0

                    荣誉勋章

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

                      本版积分规则