2012-10-28 17 views

Antwort

2

Sie können nichts tun, um dies zu vermeiden. Sie können es schwieriger machen, indem Sie Code verschleiern, aber es ist immer noch möglich, das Ergebnis zu hacken.

Ein Weg, um es auch schwieriger zu machen, ist es, den Score zu speichern und in loop oder einer Funktion nur zu überprüfen, ob es sich außerhalb der Spiellogik geändert hat, auf diese Weise muss der Benutzer beide Variablen finden.

Und wenn der zweite Score-Wert doppelt so hoch ist wie ein anderer Score-Wert, ist es noch schwieriger zu finden, indem der aktuelle Score mit allen Variablen-Scores verglichen wird.

+0

Danke. Ich benutze http://www.javascriptofuscator.com/ und funktioniert gut. – Sekhmet

3

können Sie legen die Partitur Variable als lokale Variable in einer Klasse Konstruktor, so ist es schwieriger zu bekommen:

function MyClass() { 
    var score = 0; 

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

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

} 

Es ist natürlich immer noch möglich, den Code zu knacken, aber es ist gar nicht so einfach wie eine globale Variable ändern.

+0

Ja, aber der Benutzer kann auch die Punkte bearbeiten. – Sekhmet

+0

@SeCorp Sie können sogar das ganze Objekt ersetzen! Ich denke, du solltest den Code, der den gespielten Highscore hinzufügt, besser schützen (= "schwieriger machen"). – ComFreek

+0

@SeCorp: Ja, du kannst kein Skript erstellen, das unmöglich zu hacken ist, du kannst es nur schwerer machen, herauszufinden, wie es geht. – Guffa

4

Sie können wirklich keinen Code schützen, der auf der Client-Seite läuft!

Daher können Sie den Inhalt Ihrer Variablen nicht schützen. Sie können es nur schwieriger machen zu hacken - wie Guffa sagte.

+0

Das ist richtig, was Sie tun können, ist die Schwierigkeit zu ändern, indem Sie in Ihrem Skript Zeiger verschleiern, komprimieren oder hinzufügen, so dass es schwerer ist, Kommentare zu dekodieren und sicher zu entfernen – PauAI

7

Javascript ist ein ausgeführt clientseitig. Alles, was auf dem Client passiert, kann dadurch gesteuert werden. Es gibt keinen Weg darum herum. Du kannst versuchen, deinen Code zu verschleiern, aber das macht es nur ein bisschen schwieriger herauszufinden, wie man schummelt. Es kann jemanden nicht aufhalten, der entschlossen genug ist.

Die einzige Möglichkeit, ein Cheat-Proof-Spiel zu entwickeln, besteht darin, alle Spielmechaniken auf dem Server auszuführen. Dies ist natürlich technisch sehr viel schwieriger, beeinträchtigt das Spielerlebnis, wenn der Benutzer eine schlechte Verbindung hat und zusätzliche Ressourcen kostet, weil Sie viel mehr Serverkapazität benötigen, aber es ist der einzige Weg.

Übrigens: wir haben eine Schwesterseite http://gamedev.stackexchange.com, die speziell für Fragen zur Spieleentwicklung gedacht ist. Sie könnten dort einige bessere Antworten bekommen.