好吧,所以我的游戏出现了这个错误。错误在这里详细说明:https://www.rune-server.ee/runescape-development/rs2-server/help/668521-very-weird-backdoor-dupe.html
但简单地说,错误是由于用户输入的值超过了int数据类型值,并导致它欺骗系统。
所以向你解释这个错误,用户会去游戏商店购买东西,在选择商品的数量时,他可以输入一个高于我假设的int值的值,因为这样,价格会变成负数并且它允许玩家购买无限量的物品,同时还从玩家点中移除这个负值,这实际上导致它被添加(+) - ( - ) - > +。
使用switch语句声明的那些项目的价格。
public int getSpecialItemValue14(int id) {// member points shop
switch (id) {
case 1038:
case 1040:
case 1042:
case 1044:
case 1046:
case 1048:
return 45000;
现在我试图阻止服务器接受该值的是创建一个IF STATEMENT,这样如果该值超过int值来阻止该请求,而不是转发它。
我该怎么办?
只需在发送到服务器之前将值转换为INTEGER,如果超过最大值,则将其设置为0并启动警报。
为什么不检查价格是否为负数?如果是,则可以显示“错误。太多项目”之类的消息。