好吧,所以我的游戏出现了这个错误。 错误详见此处: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值来阻止该请求,而不是转发它。
我该怎么做?
答案 0 :(得分:0)
在发送到服务器之前将值转换为INTEGER,如果超过最大值,则将其设置为0并启动警报。
答案 1 :(得分:0)
为什么不检查价格是否为负数?如果是,则可以显示类似"错误的消息。项目太多"。