2012-01-18 4 views
7

iphone 게임 "Tiny Tower"에서 마지막 시간과 현재 시간 사이의 시간을 기준으로 시뮬레이션을 사용하고있는 것으로 추측합니다. 현재 시간을 앞으로 설정할 수 있고 이로부터 혜택을 얻을 수 있습니다. 가짜 경과 시간시간 기반 시뮬레이션 게임에서 시간 기반 치트를 방지하는 방법은 무엇입니까?

이런 종류의 문제를 방지하는 데 사용할 수있는 알고리즘이 있습니까? (또는 평균적인 사용자가 벗어나기에 충분히 어렵게 만드십시오!)

편집 : 감사합니다. 내 말씨에도 불구하고 클라이언트 측에 저장하는 것을 방지 할 수있는 방법이 없지만 그것을 해킹하기 위해 "시간을 바꾸는 것"보다 적어도 더 어렵게 만드십시오!

+3

언제든지 정확성은 사용자가 변경할 수있는 변수에 따라 달라지며 손상 될 수 있습니다. – corsiKa

+0

예, 나는 물건을 더 열심히 만들 수있는 최소한의 방법이 있는지에 관해서는 알지 못합니다. – Timmy

답변

4

게임 큐브는 그것이 가능해야하므로이 작업을 수행 할 수있는 방법을 가지고 일관성있는 시간을 얻을 수있는 Network Time Protocol (NTP) servers를 사용할 수 있습니다.

으로 설정하면 이벤트가 발생합니까? 이 경우 당신은 그것에 반응 할 수 있습니다.

게임을 시작할 때 또 다른 해결책은 원격 서버의 의 시간을 확인할 수있는 방법입니다.

전화 로그인에 이벤트가 있는지 확인하거나에 반응하여 DB에 그 순간의 시간을 절약 할 수 있습니다. 마지막으로 수정하지 않은 시간이 있습니다.

마지막으로 가능한 트릭은 입니다. 시간 변경 (예 : 로그인) 이전에 조치하여을 수정하고 '마지막 수정 날짜'를 확인하십시오.

에서 GPS 방향도 조사 할 수 있습니다. GPS는 접촉하는 위성과 동기화되어야하기 때문에 어떤 방식 으로든 시간을 추적해야하며, 아마도 API가 있습니다.

유감스럽게도 아이폰을 사용하고있어서 응용 프로그램에 거의 권한이 없으며 샌드 박스 처리가 가능하므로 가능성이 제한됩니다.

편집 :

그냥 약하지만, 당신은 아이폰 캘린더에 이벤트를 만들 수 있지만? 그리고 그것이 trigered되었는지 확인하십시오? 왜냐하면 매일 가짜 모임이나 무언가를 설정할 수 있기 때문이죠. 깨끗하지는 않지만 창의적입니다.

EDIT 2 : IOS를 60 분 내에 실행하기위한 코드로 타이머를 설정할 수 있습니까? 가능한 경우이 타이머를 설정하고이 코드가 실행될 때 예상되는 시간을 전달한 다음 코드가 실행될 때이를 비교하여 프로그램에 알립니다.

+0

감사합니다.이 트릭을 검토 할 것입니다 ..;) – Timmy

2

데이터베이스에서 로그인에 대한 시간 소인을 확인하여 시간이 지나가는 것을 모니터하는 한 가지 방법은 방지하는 것입니다. 클라이언트의 iPhone 시간이 꺼져 있는지 여부는 중요하지 않습니다. 당신의 데이터베이스는 마지막 로그인 이후 얼마나 오랫동안 있는지 알게 될 것입니다.

1

전화를 사용하는 대신 웹 서비스를 호출하여 시간을 확보하십시오. 당신이 시간을 가질 수있는 장소가 몇 군데 있습니다. 구글은 당신의 친구입니다. 나는 확신합니다. 또는 스스로를 만들고, 서비스가 실행되는 기계의 로컬 시간을 사용하십시오.

는 또한

1

인터넷 액세스가 있으면 서버에서 시간을 할애 할 수 있다고 생각합니다.

두 번째 솔루션 : "datetime"을 기록 할 수 있으며 레코드 datetime과 실행중인 datetime간에 "BIG"차이가있을 때마다 문제가있을 수 있습니다. 하지만 이것은 우아하지 않습니다. 알아요.

응용 프로그램이 시작한 작은 양의 datetimes를 기록하고 실행중인 datetime으로 diffrence를 확인할 수도 있습니다.

또한 "활동"-> "날짜/시간"을 사용하여 "업데이트"(레벨 등)를 다시 가져올 수 없습니다.

시스템 날짜 시간은 사용자가 변경할 수 있으므로 "해킹"이 발생할 수 있습니다.

+0

그래, 나는 게임이 해킹당하는 것에 대해 너무 걱정하지 않습니다. se .. 의욕있는 사용자는 그렇게 할 것입니다. 단지 가장 평범한 사용자에게 최소한 힘들게하고 싶습니다! – Timmy

+0

대부분의 일반 사용자가 사용하기에 충분하지 않습니까? 위의 방법을 사용하면 충분히 어렵다고 생각합니다. (두 번째 해법) – Sanosay

관련 문제