RPGツクール2000/システム【サイトトップへ戻る】 数値入力型パスワード ■岩ゴロのパスワード (更新:2020/07/05)
■はじめに 気紛れな空間で公開中の岩ゴロや迷路2のパスワードの構造を紹介します。 少々複雑なイベント処理になるので、完全にパスワードの構造を理解した上でご利用ください。 YADOTで紹介している名前入力型パスワードや数値入力型パスワードと大きく異なる点は、 パスワードの中に何らかのスイッチのON/OFFなどの情報を組み込める所です。 例えば、3つのクリアルートがあり、 どのルートをクリアしたのかをパスワードに組み込む事ができます。 このページのパスワードでは、ある程度の複雑なパスワードを作る事ができますが、 ツクールの上級者ならば、パスワードの解析もできます。 必ずしも解析不可能なパスワードと言う訳では無いので、それを踏まえた上でご利用ください。 ▲トップへ戻る▲ ■パスワードの値を作る基本 岩ゴロの2つのパスワードには、 記録などの情報を一緒に組み込んでパスワードを作成しています。 3つのスイッチのON/OFF情報を保存する場合は…
スイッチごとに割り振った値を加算してパスワードを作成します。 加算する値は「+1」「+2」「+4」「+8」と2倍の値を加算します。 このように2倍の値を加算する事で、 どのスイッチがONになっているのかを判断する事ができます。 例えばスイッチ[0001(+1)]と[0003(+4)]がONの時には、 パスワードの値は「5」になります。 ▲トップへ戻る▲ ■パスワードが正しいかどうかを判断する基本 岩ゴロのパスワードでは、2つのパスワードを適当に入力しても、 パスワードが合わない事が多くあります。 これは2つのパスワードの中に同じ情報を保存しているためであり、 両方が持つ情報が一致しないと「パスワードが正しくない」と判断されます。 例えば、スイッチ[0001]がONの時に… パスワードAは「+8」、パスワードBは「+32」になる場合、パスワードの入力時に… パスワードA「0」→パスワードB「0」 →パスワードは正しい(スイッチ[0001]OFF) パスワードA「8」→パスワードB「32」→パスワードは正しい(スイッチ[0001]ON) となります。 そのため… パスワードA「0」→パスワードB「0以外」 →パスワードは正しくない パスワードA「8」→パスワードB「32以外」→パスワードは正しくない と言ったように、パスワードAに合わせてパスワードBを入力しないと、 パスワードが正しいとは判断されません。 パスワードの値は、 スイッチがOFFの時にはパスワードAは「+8」、パスワードBは「+0」。 スイッチがONの時にはパスワードAは「+0」、パスワードBは「32」と言ったように、 OFFの時にパスワードの値が設定されるようにする事もできます。 この場合は… パスワードA「8」→パスワードB「0」 →パスワードは正しい(スイッチ[0001]OFF) パスワードA「0」→パスワードB「32」→パスワードは正しい(スイッチ[0001]ON) となります。 ▲トップへ戻る▲ ■変数の値などをパスワード化 所持金や大事なアイテムの所持数など、何らかの数値をパスワードへ組み込む事もできます。 しかし2つのパスワードで保存できる数値はかなり限られてしまいます。 もしもたくさんの数値情報をパスワードで保存する場合は、 それに合わせてたくさんのパスワードを入力する必要があります。 今回は所持金の情報を2つのパスワードへ保存するシステムを作ります。 所持金は6桁の数値で構成されています。 1つのパスワードとして設定できる数値も6桁なので、簡単な方法としては、 所持金の6桁をそのままパスワードの6桁の数値にする方法です。 しかし所持金が「347」でパスワードが「000347」では、 簡単にパスワードの構造が分かってしまい、簡単に所持金を増やしてしまいます。 このような場合は、所持金の数値を位ごとに分散化させると良いでしょう。 もしも所持金が…
また指定した位の数値に「加算7」を設定し、 10以上になったら「減算10」を実行して、値を変化させる方法もあります。 例えば…
2つ目のパスワードBを作る場合は、位の移動位置や加算を行う内容を変える事で、 パスワードAとはパスワードの値が異なるが、 パスワードAと同じ情報を持つパスワードBを作る事ができます。 2つのパスワードが一致する確率は「100万分の1」なので、 適当にパスワードを入力しても、中々パスワードが一致する事はないでしょう。 ▲トップへ戻る▲ ■パスワードシステムを作る 1桁の数値と2つのスイッチの情報を保存した2桁×2個のパスワードを作成します。 スイッチと変数の値によって、以下の表のようにパスワードの値を変化させます。
例えば…
この場合、パスワードAが「21」、パスワードBが「49」になります。 パスワードを表示するイベントを作成します。
パスワードを入力するイベントを作成します。 2つのパスワードが一致しているかどうか確認は、 パスワードAの情報を基にパスワードBのパスワード数値を作成して確認します。 2つのパスワードが合っていた場合は、 パスワードBの情報を基に数値やスイッチの設定を行います。
以上で設定完了です。 ▲トップへ戻る▲ ■補足 今回はイベントコマンド:数値入力の処理を使ってパスワードを入力していますが、 例えば自作メニューでアルファベットのパスワード入力ができるようにすれば、 かなりの情報量をパスワードに保存する事ができます。 ▲トップへ戻る▲ ◎関連ページ ●数値入力型パスワード ┗○岩ゴロのパスワード ●名前入力型パスワード ●ダイヤル式の南京錠 ●イベントコマンド:数値入力の処理 ●イベントコマンド:変数の操作 |