짧은 대답은 당신이 그것을 할 수 없다는 것입니다. 클라이언트 측, 특히 소스에서 실행되는 모든 것을 수정하여 전술을 사소하게 물리 칠 수 있습니다. 갑작스러운 변경 사항을 찾기 위해 클라이언트 측 검사기를 설치하면 사용자는 검사기를 비활성화 할 수 있습니다.
좋은 소식은 일반적으로 싱글 플레이어 게임에 대한 부정 행위가 거의 없다는 것입니다. 플레이어가 YouTube를 통해 서로 경쟁하는 Line Rider와 같은 대규모 "youtube 최고 점수"커뮤니티가있는 게임의 유일한 예외입니다.
만약 당신이 그것을 목표로하고 있거나 사람들이 게임에서 부정 행위를 할 수 있다는 것을 받아들이기에는 너무 고집이 났거나 자신 (고급 플레이어의 형태)을 최고 점수로 유지하고 있다면 서버 측의 모든 계산이 필요합니다. . 네, 모든 것이 중요합니다. 계산 클라이언트 측을 반복하여 사용자에게 점수를 부여한 다음 서버를 사용하여 점수를 '확인'하려고 시도 할 수도 없습니다. 사용자는 검사를 비활성화하고 검사가 필요한 시스템을 비활성화 할 수 있기 때문입니다.
이에 대한 더 나은 답변이 있었으면 좋겠지 만 그렇지 않습니다.
즉, 속임수를 조금 더 어렵게 만들기 위해 할 수있는 일이 있습니다. 그들은 심각한 일을하는 사람을 막고 속임수를 내기위한 툴킷을 공개하지는 않지만 속도를 늦출 것입니다.
- JS를 축소하고 난독 처리하면 코드를 읽기가 더 어려워집니다. 난독 화 및 난독 처리를 해제 할 수는 있지만 올바른 변수 및 함수 이름이나 주석을 다시 가져올 수는 없습니다.
- 다른 언어로 값을 구우십시오. 이 경우 PHP 또는 다른 서버 측 언어를 사용하여 정적 설정 변수를 처리 할 수 있습니다. 점프 거리가 항상 2 칸인 경우, 일반적으로 플레이어 오브젝트의 점프 거리를 정의합니다. PHP로 처리하지 마십시오 .JS 소스는 코드 전체에 백만 곳의 석고가 2 개로 마감됩니다. 이것은 JS 속도를 높일 수 있다는 추가적인 부작용이 있습니다.
- 약간의 연습으로 믹스에 능숙 해지며 각 플레이어에 맞게 JS를 사용자 정의 할 수도 있습니다. 부정 행위를 방지하는 또 다른 방법입니다. 각 플레이어의 코드가 어떻게 든 다르면 툴킷의 일부일 수있는 치트를 작성하기가 더 어렵습니다.
- 마지막으로 플레이어의 신원을 기반으로 소스를 체크섬 할 수 있습니다. 그들의 IP 주소 및 / 또는 사용자 이름을 말하십시오. JS의 플레이어 특정 버전이 무엇인지 알고, 체크섬을 굽고 반대쪽에서도 동일하게 요구할 수 있습니다. 클라이언트 쪽 JS처럼 쉽게 비활성화 할 수 있지만 다시 한 번 툴킷을 만드는 것이 조금 더 어려워집니다.
그래서. 보시다시피,이 길을가는 것은 가치가 없을 것입니다. 그것은 어렵다. 실제로 어리석은 코딩 방법이 많이 필요하며 궁극적으로는 여전히 쉽게 패배 할 수 있습니다. 부정 행위를 방지하기 위해 서버 측에서 모든 계산을 수행해야합니다. 아니면 가자 속임수가 일어날 것이라는 사실을 받아들이십시오.