关于GTA5的问题
关于GTA5的问题GTA5金币不是有银行和现金2栏么我的现金一栏的金币数我没有存银行它就自动变成零了为什么...
关于GTA5的问题GTA5金币不是有银行和现金2栏么 我的现金一栏的金币数 我没有存银行 它就自动变成零了 为什么
展开
1个回答
展开全部
首先我来说一下我对这次bug的理解吧。
首先是当我身上有现金时进入抢劫任务,下面的金钱数为0,而当我将现金全部存入银行,进入抢劫时现金数为2147483647,刚好为一个int类型最大数值。在程序中,如果一个int类型在最大数值时继续做增加,那么这个数值会变为负数。
在以前的gtav中,我的钱数显示的是十亿加身上现金,这次更新明显是修改了银行钱数到现金的显示。
根据我的猜测以前的方式应该是,判断银行钱数大于十亿,则该值赋值十亿然后加上现金。现在应该是将这个if去掉了,然后r星数据库里存放钱的类型应该不是int,而是long或者其他类型,在程序中转换的时候,如果值大于int类型的最大值则该int值为int类型的最大值,然后同时r星原有的计算方式没有改变(银行钱数加现金),超越int类型最大值然后变成负数。
关于显示为0的原因,r星计算消费的方式应该是上面我提到的值减去消费值不小于0这样的判定方式。所以上面类型是int,而显示的金钱是不允许为负数所以估摸着r星用了unsigned的数值类型。
以上为我对这次bug的猜测。
首先是当我身上有现金时进入抢劫任务,下面的金钱数为0,而当我将现金全部存入银行,进入抢劫时现金数为2147483647,刚好为一个int类型最大数值。在程序中,如果一个int类型在最大数值时继续做增加,那么这个数值会变为负数。
在以前的gtav中,我的钱数显示的是十亿加身上现金,这次更新明显是修改了银行钱数到现金的显示。
根据我的猜测以前的方式应该是,判断银行钱数大于十亿,则该值赋值十亿然后加上现金。现在应该是将这个if去掉了,然后r星数据库里存放钱的类型应该不是int,而是long或者其他类型,在程序中转换的时候,如果值大于int类型的最大值则该int值为int类型的最大值,然后同时r星原有的计算方式没有改变(银行钱数加现金),超越int类型最大值然后变成负数。
关于显示为0的原因,r星计算消费的方式应该是上面我提到的值减去消费值不小于0这样的判定方式。所以上面类型是int,而显示的金钱是不允许为负数所以估摸着r星用了unsigned的数值类型。
以上为我对这次bug的猜测。
更多追问追答
追问
你的意思是说当银行里的数目大于10亿 由于计算方法的缺陷 他将我现金里的数目减掉了
就是说当我银行里数目小于10亿 现金就不会出现清零的状况了呗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询