【发布时间】:2014-01-02 15:35:27
【问题描述】:
任何玩家都可以通过浏览器控制台更改纸杯蛋糕的数量来轻松地在此游戏中作弊。我想知道是否有办法阻止用户这样做。这也发布在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();
【问题讨论】:
-
任何您尝试设置的保护措施,人们都可以撤消。这是不可能的。
-
JS 是客户端。这是不可能改变的。
-
创建一个局部变量来保存要保护的值,并且从不直接使用用户提供的值来更改其值。当然,如果您将分数发送到服务器,那么事情会更加困难(因为 HTTP 请求很容易被伪造)。如果您能提供更多信息,我们可以为您提供更好的帮助。
-
你可以想办法让它更尴尬,但是,是的,我们都可以看到。
标签: javascript html console console.log