示例#1
0
 public static int GetMultiple(ref COMDT_REWARD_MULTIPLE_DETAIL multipleDetail, CUseable usb)
 {
     for (int i = 0; i < (int)multipleDetail.bNum; i++)
     {
         COMDT_REWARD_MULTIPLE_INFO cOMDT_REWARD_MULTIPLE_INFO = multipleDetail.astMultiple[i];
         if (cOMDT_REWARD_MULTIPLE_INFO.wRewardType == (ushort)usb.MapRewardType)
         {
             int   multipleValue = CUseable.GetMultipleValue(cOMDT_REWARD_MULTIPLE_INFO.stNewMultipleInfo, 1);
             float num           = (float)multipleValue / 10000f;
             int   result        = 0;
             if (multipleValue != 0)
             {
                 if (num > 0f)
                 {
                     result = (int)(num + 0.9999f);
                 }
                 else if (num < 0f)
                 {
                     result = (int)(num - 0.9999f);
                 }
             }
             if (cOMDT_REWARD_MULTIPLE_INFO.wRewardType != 1)
             {
                 return(result);
             }
             if ((uint)((CItem)usb).m_itemData.bClass == cOMDT_REWARD_MULTIPLE_INFO.dwRewardTypeParam)
             {
                 return(result);
             }
         }
     }
     return(0);
 }
示例#2
0
 public static ushort GetMultiple(ref COMDT_REWARD_MULTIPLE_DETAIL multipleDetail, ushort rewardType, short subType = -1)
 {
     for (int i = 0; i < multipleDetail.bNum; i++)
     {
         COMDT_REWARD_MULTIPLE_INFO comdt_reward_multiple_info = multipleDetail.astMultiple[i];
         if ((comdt_reward_multiple_info.wRewardType == rewardType) && ((subType < 0) || (((uint)subType) == comdt_reward_multiple_info.dwRewardTypeParam)))
         {
             return((ushort)((((((comdt_reward_multiple_info.stMultipleInfo.dwWealRatio + comdt_reward_multiple_info.stMultipleInfo.dwQQVIPRatio) + comdt_reward_multiple_info.stMultipleInfo.dwPropRatio) + comdt_reward_multiple_info.stMultipleInfo.dwPvpDailyRatio) + comdt_reward_multiple_info.stMultipleInfo.dwWXGameCenterLoginRatio) + comdt_reward_multiple_info.stMultipleInfo.dwGuildRatio) / 100));
         }
     }
     return(0);
 }
示例#3
0
 public static COMDT_MULTIPLE_INFO GetMultipleInfo(ref COMDT_REWARD_MULTIPLE_DETAIL multipleDetail, ushort rewardType, short subType = -1)
 {
     for (int i = 0; i < multipleDetail.bNum; i++)
     {
         COMDT_REWARD_MULTIPLE_INFO comdt_reward_multiple_info = multipleDetail.astMultiple[i];
         if ((comdt_reward_multiple_info.wRewardType == rewardType) && ((subType < 0) || (((uint)subType) == comdt_reward_multiple_info.dwRewardTypeParam)))
         {
             return(comdt_reward_multiple_info.stMultipleInfo);
         }
     }
     return(null);
 }
示例#4
0
 public static uint GetMultipleInfo(out COMDT_MULTIPLE_DATA[] multipleData, ref COMDT_REWARD_MULTIPLE_DETAIL multipleDetail, ushort rewardType, short subType = -1)
 {
     for (int i = 0; i < (int)multipleDetail.bNum; i++)
     {
         COMDT_REWARD_MULTIPLE_INFO cOMDT_REWARD_MULTIPLE_INFO = multipleDetail.astMultiple[i];
         if (cOMDT_REWARD_MULTIPLE_INFO.wRewardType == rewardType && (subType < 0 || (uint)subType == cOMDT_REWARD_MULTIPLE_INFO.dwRewardTypeParam))
         {
             multipleData = cOMDT_REWARD_MULTIPLE_INFO.stNewMultipleInfo.astMultipleData;
             return(cOMDT_REWARD_MULTIPLE_INFO.stNewMultipleInfo.dwMultipleNum);
         }
     }
     multipleData = null;
     return(0u);
 }
示例#5
0
 public static uint GetQqVipExtraCoin(uint totalCoin, ref COMDT_REWARD_MULTIPLE_DETAIL multipleDetail, ushort rewardType)
 {
     for (int i = 0; i < multipleDetail.bNum; i++)
     {
         COMDT_REWARD_MULTIPLE_INFO comdt_reward_multiple_info = multipleDetail.astMultiple[i];
         if (comdt_reward_multiple_info.wRewardType == rewardType)
         {
             if (comdt_reward_multiple_info.stMultipleInfo.dwQQVIPRatio <= 0)
             {
                 break;
             }
             float num2 = ((float)comdt_reward_multiple_info.stMultipleInfo.dwQQVIPRatio) / 10000f;
             return((uint)((((float)totalCoin) / ((((float)comdt_reward_multiple_info.stMultipleInfo.dwWealRatio) / 10000f) + num2)) * num2));
         }
     }
     return(0);
 }
示例#6
0
 public static ushort GetMultiple(ref COMDT_REWARD_MULTIPLE_DETAIL multipleDetail, CUseable usb)
 {
     for (int i = 0; i < multipleDetail.bNum; i++)
     {
         COMDT_REWARD_MULTIPLE_INFO comdt_reward_multiple_info = multipleDetail.astMultiple[i];
         if (comdt_reward_multiple_info.wRewardType == ((ushort)usb.MapRewardType))
         {
             if (comdt_reward_multiple_info.wRewardType == 1)
             {
                 if (((CItem)usb).m_itemData.bClass == comdt_reward_multiple_info.dwRewardTypeParam)
                 {
                     return((ushort)(comdt_reward_multiple_info.stMultipleInfo.dwWealRatio / 0x2710));
                 }
             }
             else
             {
                 return((ushort)(comdt_reward_multiple_info.stMultipleInfo.dwWealRatio / 0x2710));
             }
         }
     }
     return(0);
 }
示例#7
0
 public static int GetMultiple(uint baseVal, ref COMDT_REWARD_MULTIPLE_DETAIL multipleDetail, ushort rewardType, short subType = -1)
 {
     for (int i = 0; i < (int)multipleDetail.bNum; i++)
     {
         COMDT_REWARD_MULTIPLE_INFO cOMDT_REWARD_MULTIPLE_INFO = multipleDetail.astMultiple[i];
         if (cOMDT_REWARD_MULTIPLE_INFO.wRewardType == rewardType && (subType < 0 || (uint)subType == cOMDT_REWARD_MULTIPLE_INFO.dwRewardTypeParam))
         {
             int num  = 0;
             int num2 = 0;
             while ((long)num2 < (long)((ulong)cOMDT_REWARD_MULTIPLE_INFO.stNewMultipleInfo.dwMultipleNum))
             {
                 byte bOperator = cOMDT_REWARD_MULTIPLE_INFO.stNewMultipleInfo.astMultipleData[num2].bOperator;
                 if (bOperator != 0)
                 {
                     if (bOperator == 1)
                     {
                         double num3 = baseVal * (double)cOMDT_REWARD_MULTIPLE_INFO.stNewMultipleInfo.astMultipleData[num2].iValue / 10000.0;
                         if (num3 > 0.0)
                         {
                             num += (int)(num3 + 0.9999);
                         }
                         else if (num3 < 0.0)
                         {
                             num += (int)(num3 - 0.9999);
                         }
                     }
                 }
                 else
                 {
                     num += cOMDT_REWARD_MULTIPLE_INFO.stNewMultipleInfo.astMultipleData[num2].iValue;
                 }
                 num2++;
             }
             return(num);
         }
     }
     return(0);
 }
示例#8
0
 public static uint GetQqVipExtraCoin(uint totalCoin, ref COMDT_REWARD_MULTIPLE_DETAIL multipleDetail, ushort rewardType)
 {
     for (int i = 0; i < (int)multipleDetail.bNum; i++)
     {
         COMDT_REWARD_MULTIPLE_INFO cOMDT_REWARD_MULTIPLE_INFO = multipleDetail.astMultiple[i];
         if (cOMDT_REWARD_MULTIPLE_INFO.wRewardType == rewardType)
         {
             int   multipleValue  = CUseable.GetMultipleValue(cOMDT_REWARD_MULTIPLE_INFO.stNewMultipleInfo, 1);
             int   multipleValue2 = CUseable.GetMultipleValue(cOMDT_REWARD_MULTIPLE_INFO.stNewMultipleInfo, 2);
             float num            = (float)multipleValue2 / 10000f;
             float num2           = totalCoin / ((float)multipleValue / 10000f + num) * num;
             if (num2 > 0f)
             {
                 return((uint)(num2 + 0.9999f));
             }
             if (num2 < 0f)
             {
                 return((uint)(num2 - 0.9999f));
             }
         }
     }
     return(0u);
 }