任何玩家都可以通过浏览器控制台更改纸杯蛋糕的数量轻松欺骗这款游戏.我想知道是否有办法阻止用户这样做.这也发布在github上.
var numberOfCupcakesDisplay = document.getElementById("numberOfCupcakes"); var cupcake = document.getElementById("cupcake"); function updateValues() { numberOfCupcakesDisplay.innerHTML = amountOfCupcakes.toString(); //displays number of cupcakes to screen document.getElementById("amountOfToasters").innerHTML = amountOfToasters.toString(); //displays number of toasters to screen document.getElementById("toasterButton").innerHTML = "        " + Math.round(costOfToasters).toString() + " cc"; //changes cost of toaster every time it is bought by 110% } cupcake.addEventListener('webkitAnimationEnd', function(e){ e.preventDefault(); this.style.webkitAnimationName = ''; }, false); function clickCupcake() { ++amountOfCupcakes; cupcake.style.animation = "shiftCupcake"; cupcake.style.webkitAnimationName = "shiftCupcake"; } updateValues();
sachinjain02.. 6
是啊!正如其他答案所述,阻止用户更改浏览器控制台中的值是不可能的.换句话说,您只是问如何编写JS代码,以便用户无法对其进行调试.你可以随时使用一些方法,让想要在游戏中作弊的人生活艰难.
1.批量处理代码.
有关混淆的更多信息,请查看这些链接.
SO:如何混淆Javascript
Jsobfuscate.com
2.不要将游戏的控制值存储在全局变量中.
不要将控制值存储在全局变量中.而是定义一个类并将这些变量作为私有变量,以便用户必须深入挖掘才能找到断点的位置.
3.Minify /压缩你的javascripts.
混淆或多或少也包括缩小.
是啊!正如其他答案所述,阻止用户更改浏览器控制台中的值是不可能的.换句话说,您只是问如何编写JS代码,以便用户无法对其进行调试.你可以随时使用一些方法,让想要在游戏中作弊的人生活艰难.
1.批量处理代码.
有关混淆的更多信息,请查看这些链接.
SO:如何混淆Javascript
Jsobfuscate.com
2.不要将游戏的控制值存储在全局变量中.
不要将控制值存储在全局变量中.而是定义一个类并将这些变量作为私有变量,以便用户必须深入挖掘才能找到断点的位置.
3.Minify /压缩你的javascripts.
混淆或多或少也包括缩小.