2012-10-28 23 views

Trả lời

2

Không có bất cứ điều gì bạn có thể làm để tránh điều này. Bạn có thể làm cho nó khó hơn bằng cách làm xáo trộn mã, nhưng vẫn có thể hack được điểm số.

Một cách để làm khó hơn là tăng gấp đôi lưu số điểm và vòng lặp hoặc chức năng nào đó chỉ kiểm tra nếu nó đã thay đổi bên ngoài logic trò chơi, theo cách này người dùng cần tìm cả hai biến.

Và nếu giá trị điểm số thứ hai là gấp đôi giá trị điểm số khác, nó thậm chí còn khó tìm hơn bằng cách so sánh điểm hiện tại với tất cả các điểm số biến.

+0

Cảm ơn. Tôi sử dụng http://www.javascriptobfuscator.com/ và hoạt động tốt. – Sekhmet

3

Bạn có thể đặt các biến số như là một biến cục bộ bên trong một constructor lớp, cách mà nó khó khăn hơn để có được:

function MyClass() { 
    var score = 0; 

    this.somethingHappened = function() { 
    if (someondition) { 
     score++; 
    } 
    } 

    this.getScore = function() { 
    return score; 
    } 

} 

Đó là tất nhiên vẫn có thể hack mã, nhưng nó không phải là ở tất cả như đơn giản như thay đổi một biến toàn cục.

+0

Có, nhưng người dùng cũng có thể chỉnh sửa điểm số. – Sekhmet

+0

@SeCorp Bạn thậm chí có thể thay thế toàn bộ đối tượng! Tôi nghĩ rằng bạn nên bảo vệ tốt hơn (= "làm cho khó khăn hơn") mã cho biết thêm điểm cao chơi. – ComFreek

+0

@SeCorp: Có, bạn không thể tạo một tập lệnh không thể hack được, bạn chỉ có thể làm cho việc tìm ra cách thực hiện nó khó khăn hơn. – Guffa

4

Bạn thực sự không thể bảo vệ bất kỳ mã nào chạy ở phía máy khách!

Vì vậy, bạn không thể bảo vệ nội dung của các biến của mình. Bạn chỉ có thể làm cho nó khó khăn hơn để hack - như Guffa nói.

+0

Đúng vậy, những gì bạn có thể làm là thay đổi độ khó bằng cách làm xáo trộn, nén hoặc thêm con trỏ trong tập lệnh của bạn để khó giải mã hơn và đảm bảo xóa nhận xét, đó là cách tôi dễ dàng hack các tập lệnh js – PauAI

7

Javascript là một mặt được thực thi của khách hàng. Bất cứ điều gì xảy ra trên máy khách đều có thể được điều khiển bởi nó. Không có cách nào xung quanh nó. Bạn có thể cố gắng làm xáo trộn mã của bạn, nhưng điều đó chỉ làm cho nó khó hơn một chút để tìm ra cách ăn gian. Nó không thể ngăn một người được xác định đủ.

Cách duy nhất để thiết kế trò chơi chống gian lận là thực hiện tất cả các cơ chế trò chơi trên máy chủ. Điều này tất nhiên là khó khăn hơn nhiều, làm suy giảm trải nghiệm trò chơi khi người dùng có kết nối kém và chi phí cho bạn thêm tài nguyên vì bạn cần nhiều dung lượng máy chủ hơn, nhưng đó là cách duy nhất.

Nhân tiện: chúng tôi có trang web chị em http://gamedev.stackexchange.com, đặc biệt dành cho các câu hỏi về phát triển trò chơi. Bạn có thể nhận được một số câu trả lời tốt hơn ở đó.

Các vấn đề liên quan