0

「モノポリー」というゲームに似た基本的なゲームを作っています。サイコロを転がし、サイコロが転がった場所の数 (1 ~ 6) を移動する必要があります。

コード例は次のようになります。

public function RollDice() : int
{
    return randRange(1, 6);
}

private function randRange(param1:int, param2:int) : int
{
    return Math.floor(Math.random() * (param2 - param1 + 1)) + param1;
}

しかし、このコードが何らかの操作に対して十分に安全であるかどうかが心配です(たとえば、チートエンジンを使用してロール数を変更するなど)。私は実際に自分のゲームを「ハック」しようとしましたが、randRange 関数の数字を変更することに成功しただけなので、特定の数字またはより短い範囲の数字など、サイコロを振ることができます。しかし、これはプレイする前にしかできませんでした(ゲームのスタートボタンを押します)。値を再度変更しようとしたとき、何も変更されませんでした (まあ、私はあまりハッカーではありません...)。

少し調べてみたところ、Actionscript Virtual Machine の JIT コンパイラが、私のゲーム (SWF) を CPU で実行されるマシン コードにコンパイルするため、私の失敗の原因である可能性があることがわかりました。私が知る限り、JIT コンパイラは関数を最初に実行するまでコンパイルしませんが、一度コンパイルすると、その関数の SWF バイトコードは二度とアクセスされなくなります。

問題はこれです: Cheat Engine などのプログラムを使用して関数を呼び出した後に、サイコロの出目の数を変更する方法はありますか?

4

1 に答える 1

0

問題はこれです: Cheat Engine などのプログラムを使用して関数を呼び出した後に、サイコロの出目の数を変更する方法はありますか?

はい。原則として、クライアント側の場合は、アクセスして操作できます。

誰かの不正行為を本当に心配しているなら、彼らがより困難になるように努力することしかできませんが、いつでも不正行為をすることは可能です.

本当に避けたい場合は、サーバー側にします。

于 2013-11-11T13:18:21.090 に答える