(((lpObj->Inventory[n].m_SetOption >> 2) & 3)*5) 是什么意思
这段代码是在计算装备道具的附加属性值,具体解释如下:
2:表示将 m_SetOption 的二进制值向右移动两位,相当于除以 4。
因此,这段代码的意思是将角色背包中第 n 个装备道具的附加属性值(m_SetOption)按照一定规则转换为实际的附加属性值。具体规则为,将 m_SetOption 的值除以 4,再取最后两位的值乘以 5,得到实际的附加属性值。
lpObj->Inventory[n].m_SetOption 等于10
如果 lpObj->Inventory[n].m_SetOption 等于10,那么根据上述代码,计算出来的实际附加属性值为 25,具体计算过程如下:
因此,如果 lpObj->Inventory[n].m_SetOption 等于10,那么计算出来的实际附加属性值为 25。
lpObj->Inventory[n].m_SetOption 等于9
如果 lpObj->Inventory[n].m_SetOption 等于9,那么根据上述代码,计算出来的实际附加属性值为 20,具体计算过程如下:
因为 lpObj->Inventory[n].m_SetOption 的最后一位是 1,所以在第二步取最后两位的时候,实际上是取到了 01,这个二进制值转换成十进制就是 1,所以最后得到的值是 2。因此,如果 lpObj->Inventory[n].m_SetOption 等于9,那么计算出来的实际附加属性值为 20。