【C++】指针引发的bug
如果你要从配置里面取一个属性,需要修改这个属性,注意不要把配置的属性修改掉了。取的是配置的指针属性,需要弄个临时属性来修改计算。
int nLuckValue = WingsAngelCfg.m_Config.nWing[nLevel].nLuck; double percentage = (double)nLuckPoint/nLuckValue; nCount = WingsAngelCfg.m_Config.nWing[nLevel].nCount; if(nCount == 0) return calc; GAMEATTR* tmpValueProp = WingsAngelCfg.m_Config.nWing[nLevel].PropList; if(tmpValueProp == NULL) return calc; for (int i = 0; i < nCount; i++) { //if(tmpValueProp[i].reserve[0] == 0) { GAMEATTR Prop; INT_PTR nValue = tmpValueProp[i].value.nValue * percentage; if(nValue <1) { nValue = 1; } Prop.type = tmpValueProp->type; Prop.value.nValue = nValue; calc << Prop; } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步