シレン2 破壊バグの異常な経験値(経験値バグ)の確認

バグの利用は自己責任で!!!

シレン2における無の取得バグとその先の現象について調べています。

バグ印龍神剣-128によって発生する異常な経験値(経験値バグ)について、ンドゥバ2才~99才を除く全モンスターの確認が完了しました。

結論を言えば、外れモンスターは存在せず、経験値が存在する全モンスターの経験値が24.6倍(端数切捨て)になることが確認されました。

一覧表になったものが、「2.3.検証結果:破壊バグ状態の経験値一覧表」です。

 

 

0.はじめに

現在、シレン2では無の取得バグ→マーモガチャ(マーモ変化)を行うことで、異常な印数を持つ龍神剣を作成できることが知られています。

印数が70~7C(112~124)になると破壊バグが発生し、7D(125)以上になるとフリーズすることがAgさんの調査で明らかになっています。

詳しくは下記を参照してください。

shiren2.lsx3.com

 

破壊バグは、印数が70~7C(112~124)である龍神剣の説明コマンドを表示することによって発生します。

破壊バグ発生後は、次のような現象が発生します。

現象①どんな武器を装備しても、武器で攻撃して倒したモンスターの経験値が異常に高くなる。(経験値バグ)

現象②どんな武器を装備しても、特攻印持ちモンスターへ与える武器のダメージが1になる。

現象③武器を未装備(素手)だと、通常のルールと同じになる。

また、現象①の異常な経験値の倍率は24.6倍であることが明らかとなっています。

破壊バグは電源を切ることによって解除されます。

再び電源をつければ通常と同じルールに戻ります。

電源の前後でルールが異なること・乱数の消費数が異なることを利用して回想バグを発生させることができます。

破壊バグや回想バグの詳細はまた別の記事にしようと思います。

 

今回は、「破壊バグの現象①~③を無視できる外れモンスターはいないか?」を念のため確認しました。

私の経験としてバグが発生すると飛び地でズレが発生したりするので・・・。

もし外れモンスターが存在したら、そこから新しいバグが発生する可能性があります。

もし外れモンスターが存在しなかったら、破壊バグはモンスターのステータスとは無関係なものであると推察できます。ダメージや経験値の異常はあくまでも計算式上の問題であり、モンスターのステータス書き換えは別の方法が必要になる。よって、「バグ印龍神剣-128による破壊バグでは、HP100のタベラレルーは発生させられないだろう」と予想できるわけです。

後者のように外れモンスターがいないのであれば影響は限定的と言えそうです。

 

1.理論値

シレン2の経験値の計算では小数点以下の切捨てがあるはずです。

経験値の計算に割り算や掛け算があったら、小数点以下は切り捨てる。

もしかしたらその過程で剰余算が使われているかもしれません。

あと、マイナスの値は考えなくてもよいはず。

 

シレン2の各モンスターの経験値は下記を参考にしています。

shiren2.lsx3.com

便宜上、ここに記載されている経験値を「通常経験値」と呼ぶことにします。

破壊バグによって増加する経験値を「バグ経験値」と呼ぶことにします。

バグ経験値は通常経験値の24.6倍になります。

 

今回はワナ師状態でも調べました。

ワナ師状態で敵を殴って倒すと、通常経験値の20%(1/5)になります。

実際には0.2を掛けているのか、5で割っているかは分かりません。

でも割り算よりは掛け算のほうが計算が早いとのことなので、掛け算を採用していると仮定します。

このワナ師状態の経験値を「ワナ経験値」と呼ぶことにします。

破壊バグ中のワナ師状態の経験値を「バグワナ経験値」と呼ぶことにします。

 

よって、それぞれの経験値は通常経験値から次のように算出できます。

・バグ経験値=通常経験値×24.6(小数切り捨て)

・ワナ経験値=通常経験値×0.2(小数切り捨て)

・バグワナ経験値①=通常経験値×4.92(1回小数切り捨て)

・バグワナ経験値②=通常経験値×24.6×0.2(2回小数切り捨て)

・バグワナ経験値③=通常経験値×0.2×24.6(2回小数切り捨て)

 

ここで問題なのは、「バグワナ経験値」の小数切り捨てが1回だけ(最後だけ)なのか、2回(計算の都度)なのか、ということです。

1回しか小数切り捨てが無ければ、24.6×0.2をまとめることができ、バグワナ経験値①の計算方法が採用されるはずです。

2回小数切り捨てがある場合は、24.6と0.2のどちらを先に計算するかによって変わります。

また、ワナ経験値のように小数を切り捨てた結果、経験値が0になってしまう場合は、最低保証として1になります。

 

ここで具体的な計算例を出してみましょう。

マムルの理論値

・通常経験値=2

・バグ経験値=2×24.6(小数切り捨て)=49.2(小数切り捨て)=49

・ワナ経験値=2×0.2(小数切り捨て)=0.4(小数切り捨て)=0→1

・バグワナ経験値①=2×4.92(1回小数切り捨て)=9.84(小数切り捨て)=9

・バグワナ経験値②=2×24.6×0.2(2回小数切り捨て)

         =49.2×0.2(2回小数切り捨て)=49×0.2(小数切り捨て)

         =9.8(小数切り捨て)=9

・バグワナ経験値③=2×0.2×24.6(2回小数切り捨て)

         =0.4×24.6(2回小数切り捨て)→1×24.6(小数切り捨て)

         =24.6(小数切り捨て)=24

ちゅうチンタラの理論値

・通常経験値=12

・バグ経験値=12×24.6(小数切り捨て)=295.2(小数切り捨て)=295

・ワナ経験値=12×0.2(小数切り捨て)=2.4(小数切り捨て)=2

・バグワナ経験値①=12×4.92(1回小数切り捨て)=59.04(小数切り捨て)=59

・バグワナ経験値②=12×24.6×0.2(2回小数切り捨て)

         =295.2×0.2(2回小数切り捨て)=295×0.2(小数切り捨て)

         =59(小数切り捨て)=59

・バグワナ経験値③=12×0.2×24.6(2回小数切り捨て)

         =2.4×24.6(2回小数切り捨て)=2×24.6(小数切り捨て)

         =49.2(小数切り捨て)=49

オヤジ戦車の理論値

・通常経験値=41

・バグ経験値=41×24.6(小数切り捨て)=1008.6(小数切り捨て)=1008

・ワナ経験値=41×0.2(小数切り捨て)=8.2(小数切り捨て)=8

・バグワナ経験値①=41×4.92(1回小数切り捨て)=201.72(小数切り捨て)=201

・バグワナ経験値②=41×24.6×0.2(2回小数切り捨て)

         =1008.6×0.2(2回小数切り捨て)=1008×0.2(小数切り捨て)

         =201.72(小数切り捨て)=201

・バグワナ経験値③=41×0.2×24.6(2回小数切り捨て)

         =8.2×24.6(2回小数切り捨て)=8×24.6(小数切り捨て)

         =196.8(小数切り捨て)=196

 

こんな感じです。

 

2.検証

2.1.検証目的

破壊バグ状態で、全モンスターを倒したときの経験値を観察したい。

 

2.2.検証方法

前準備とバグ印龍神剣-128の作成方法

今回も唯一のバグアイテムがバグ印龍神剣-128となります。

バグ印龍神剣には複数のレシピが存在しますが、今回は次のような方法で作成しました。下記方法であれば、どの印になるかはランダムですが、印が114個表示されるバグ印龍神剣-128が作成されます。

バグ印龍神剣-128の作成に必要なもの
  • ワナ師の腕輪
  • 転び石
  • ワナ作動の巻物1個
  • 草杖(草受けの杖[99]を使用)
バグ印龍神剣-128の作成方法
  1. データをコピペする。もしくは「ナタネ村に戻る」を選択する。
  2. マーモを倉庫に連れていく。
  3. マーモに草受けの杖[99]→ワナ作動の巻物→ワナ師の腕輪の順番で入れ、倉庫を出入りする。
  4. マーモから草杖・巻物・腕輪を引き出す。
  5. ワナ師の腕輪を装備し、転び石の上でワナ作動の巻物を読む。
    (無を新規生成する。)
  6. マーモに無→草杖[99]の順番で入れ、倉庫を出入りする。
やること

素手で倒す

・武器で攻撃して倒す

・ワナ師の腕輪をつけた状態で、素手で倒す

・ワナ師の腕輪をつけた状態で、武器で攻撃して倒す

見落としがちだったのは「素手で倒したときの経験値」です。破壊バグ状態なので、必ずしも通常の経験値であるとは限りません。

注意点

いくつかの注意点があります。

①武器を投げて倒す場合

下記の結果には記載していませんが、確認できた範囲では、武器を投げて倒した場合は通常の経験値と同じになります。

ふきとばしの杖で武器を投げ当てるとか、イアイにのりうつって弾き当てるとか、特殊な投げ当てる方法も試しましたが、通常の経験値でした。

 

②ンドゥバについて

ンドゥバ(1才)だけを確認しています。残りの2~99才は未確認です。

シレン2ではレベル5~99が存在する唯一のモンスターなので、何かしらの操作ができる可能性があるような気はします。

ただ、今回は見送らせていただきました。

もののけ王国ほぼ4回分+鬼ヶ島4周は・・・ちょっと大変だった・・・。

やってほしいという声があれば、やるかもしれません。

 

③女王グモについて

ワナ師状態で倒す場面が現状では存在しません。

なので、ワナ経験値とバグワナ経験値を省略します。

今後のバグの調査では、ワナ師状態で女王グモを倒す方法が存在するかもしれません。

任意の敵生成によって女王グモの生成が可能となりました。

正規の状態ではありませんが、ワナ師状態の女王グモの経験値を掲載しておきます。

 

④店主などの経験値について

テキストメッセージに経験値が表示されません。

店主を倒した前後でメニュー画面で経験値の変動を確認しましたが、変動しませんでした。

同様に、店長・大店長・行商人・おしうり・とうぞく番・番犬も確認できませんでした。

鬼親分はテキストメッセージ以外で経験値を確認する方法が思いつきませんでした。

いずれも経験値が0であるか、経験値を無の値にして経験値の処理を飛ばしているかだと思います。

これらのキャラクターを倒したときの経験値は省略します。

 

2.3.検証結果:破壊バグ状態の経験値一覧表

破壊バグ状態の経験値は次のようになりました。

表の各項目は次を意味しています。

・ID:キャラクターのID。16進数の数字2桁。
   キャラクターを判別するための出席番号みたいなものです。
   ここでは下記に掲載されているキャラクター種別コードを表示しています。

shiren2.lsx3.com

・Lv:モンスターのレベル。
   マムルは1。あなぐらマムルは2。どうくつマムルは3。

・モンスター名:モンスターの名前。

・通常:バグ無し通常プレイの経験値。

素手素手で倒したときの経験値。通常経験値と一致するはず。

・バグ:バグ経験値。武器で通常攻撃して倒したときの経験値。

・ワナ:ワナ経験値。ワナ師状態で素手で倒したときの経験値。

・バグワナ:バグワナ経験値。ワナ師状態で武器で通常攻撃して倒したときの経験値。

・耐性:武器の通常攻撃に対する耐性。
    耐性があると、武器で通常攻撃した時のダメージが1ポイントになる。
    「--」は耐性なし。「1」は耐性あり。

 

ID
Lv
モンスター名
通常
バグ
ワナ
バグワナ
耐性
1D 1 マムル 2 2 49 1 24 --
1D 2 あなぐらマムル 4 4 98 1 24 --
1D 3 どうくつマムル 500 500 12300 100 2460 --
1E 1 ドラゴン 350 350 8610 70 1722 1
1E 2 スカイドラゴン 450 450 11070 90 2214 1
1E 3 アークドラゴン 1300 1300 31980 260 6396 1
1F 1 ガマラ 6 6 147 1 24 --
1F 2 ガマグッチ 25 25 615 5 123 --
1F 3 ガマゴン 300 300 7380 60 1476 --
20 1 ぬすっトド 12 12 295 2 49 --
20 2 みどりトド 13 13 319 2 49 --
20 3 アイアント 14 14 344 2 49 --
21 1 くねくねハニー 300 300 7380 60 1476 1
22 1 タウロス 2500 2500 61500 500 12300 --
22 2 ミノタウロス 3000 3000 73800 600 14760 --
22 3 メガタウロス 5000 5000 123000 1000 24600 --
23 1 にぎりみならい 6 6 147 1 24 --
23 2 にぎりへんげ 28 28 688 5 123 --
23 3 にぎり親方 65 65 1599 13 319 --
23 4 にぎりもとじめ 1600 1600 39360 320 7872 --
24 1 ゲイズ 20 20 492 4 98 1
24 2 スーパーゲイズ 200 200 4920 40 984 1
24 3 ハイパーゲイズ 2000 2000 49200 400 9840 1
25 1 チンタラ 3 3 73 1 24 --
25 2 ちゅうチンタラ 12 12 295 2 49 --
25 3 おおチンタラ 500 500 12300 100 2460 --
26 1 デブータ 80 80 1968 16 393 --
26 2 デブーチョ 1800 1800 44280 360 8856 --
26 3 デブートン 2150 2150 52890 430 10578 --
27 1 ケンゴウ 55 55 1353 11 270 --
27 2 イアイ 1450 1450 35670 290 7134 --
27 3 シハン 2250 2250 55350 450 11070 --
28 1 しおいやん 5 5 123 1 24 1
28 2 まじしおいやん 35 35 861 7 172 1
28 3 しおやだん 690 690 16974 138 3394 1
28 4 しおかんべん 750 750 18450 150 3690 1
29 1 ンドゥバ 16 16 393 3 73 --
2A 1 プチフェニックス 350 350 8610 70 1722 --
2B 1 シャーガ 35 35 861 7 172 1
2B 2 ナシャーガ 1150 1150 28290 230 5658 1
2B 3 ラシャーガ 1500 1500 36900 300 7380 1
2C 1 シューベル 100 100 2460 20 492 --
2C 2 メンベルス 1600 1600 39360 320 7872 --
2C 3 ベルトーベン 1900 1900 46740 380 9348 --
2D 1 パコレプキン 50 50 1230 10 246 1
2D 2 パコレプキーナ 60 60 1476 12 295 1
2D 3 パコレプキング 950 950 23370 190 4674 1
2E 1 ワラドール 14 14 344 2 49 --
2E 2 クギワラドール 800 800 19680 160 3936 --
2E 3 ゴスンドール 1650 1650 40590 330 8118 --
2F 1 ハラヘリーニョ 11 11 270 2 49 1
2F 2 ハラヘリータ 50 50 1230 10 246 1
2F 3 ハラヘッリオ 810 810 19926 162 3985 1
2F 4 ハラベルト 1300 1300 31980 260 6396 1
30 1 マルジロウ 9 9 221 1 24 --
30 2 マルジロウ兄 11 11 270 2 49 --
30 3 マルジロウ父 700 700 17220 140 3444 --
31 1 かんにんぶくろ 200 200 4920 40 984 1
32 1 ものまね仮面 10 10 246 2 49 --
32 2 ふるまいカブリ 500 500 12300 100 2460 --
33 3 なりきりマスク 700 700 17220 14 344 --
34 1 イダテン 35 35 861 7 172 1
34 2 シップウ 85 85 2091 17 418 1
34 3 カミカゼ 2000 2000 49200 400 9840 1
34 4 ダイレップウ 4000 4000 98400 800 19680 1
35 1 Mr.ブーン 7 7 172 1 24 --
35 2 Mr.ヘリコ 8 8 196 1 24 --
35 3 Mr.ジャイロ 20 20 492 4 98 --
36 1 パ王 47 47 1156 9 221 --
36 2 パオパ王 100 100 2460 20 492 --
36 3 パオパ王ーン 3500 3500 86100 700 17220 --
37 1 ボウヤー 14 14 344 2 49 --
37 2 コドモ戦車 20 20 492 4 98 --
37 3 オヤジ戦車 41 41 1008 8 196 1
37 4 イッテツ戦車 2300 2300 56580 460 11316 1
38 1 馬武者 21 21 516 4 98 --
38 2 荒馬ザムライ 800 800 19680 160 3936 --
38 3 あばれ馬将軍 1950 1950 47970 390 9594 --
38 4 乱れ馬王 3100 3100 76260 620 15252 --
39 1 ウルロイド 60 60 1476 12 295 1
39 2 ゴリボット 1750 1750 43050 350 8610 1
39 3 ベアボーグ 2500 2500 61500 500 12300 1
3A 1 アイアンヘッド 43 43 1057 8 196 1
3A 2 チェインヘッド 75 75 1845 15 369 1
3A 3 ギガヘッド 3150 3150 77490 630 15498 1
3B 1 バットカンガルー 52 52 1279 10 246 --
3B 2 エビルカンガルー 60 60 1476 12 295 --
3B 3 デビルカンガルー 450 450 11070 90 2214 --
3C 1 エスカルゴン 800 800 19680 160 3936 --
3D 1 マゼルン 45 45 1107 9 221 --
3D 2 マゼモン 58 58 1426 11 270 --
3D 3 マゼゴン 2500 2500 61500 500 12300 --
3E 1 タベラレルー 1 1 24 1 24 --
3F 1 スイテキマル 9 9 221 1 24 --
3F 2 ジライヤ 35 35 861 7 172 --
3F 3 ショウカンマル 46 46 1131 9 221 --
3F 4 ダイジライヤ 300 300 7380 60 1476 --
40 1 ひまガッパ 21 21 516 4 98 --
40 2 いやすぎガッパ 450 450 11070 90 2214 --
40 3 たまらんガッパ 2050 2050 50430 410 10086 --
41 1 ピコタン 10 10 246 2 49 --
41 2 ポコタン 350 350 8610 70 1722 --
41 3 パコタン 1500 1500 36900 300 7380 --
42 1 ドスコーイ 120 120 2952 24 590 --
42 2 ハッケヨーイ 1900 1900 46740 380 9348 --
42 3 ゴッツァーン 3000 3000 73800 600 14760 --
43 1 ヒツジ神官 32 32 787 6 147 --
43 2 ヤギ司祭 48 48 1180 9 221 --
43 3 ガゼル教皇 2200 2200 54120 440 10824 --
44 1 タイガーウッホ 35 35 861 7 172 --
44 2 タイガーウホホ 65 65 1599 13 319 --
44 3 タイガーウホーン 2400 2400 59040 480 11808 --
45 1 ギャドン 90 90 2214 18 442 --
45 2 ギャイラス 230 230 5658 46 1131 --
45 3 ギャンドラー 500 500 12300 100 2460 --
46 1 足軽どん 6 6 147 1 24 --
46 2 侍どん 18 18 442 3 73 --
46 3 大将どん 38 38 934 7 172 --
46 4 殿様どん 250 250 6150 50 1230 --
47 1 テッポーウオー 30 30 738 6 147 1
47 2 テッポウ竜 34 34 836 6 147 1
47 3 キングオトシゴ 1800 1800 44280 360 8856 1
48 1 シャチーン 250 250 6150 50 1230 --
48 2 シャチーダ 900 900 22140 180 4428 --
48 3 シャチオーン 2000 2000 49200 400 9840 --
49 1 水龍 100 100 2460 20 492 1
49 2 海龍 1000 1000 24600 20 4920 1
49 3 神龍 2500 2500 61500 500 12300 1
4A 1 オトト兵 13 13 319 2 49 --
4A 2 オトト軍曹 15 15 369 3 73 --
4A 3 オトト大将 22 22 541 4 98 --
4A 4 オトトげんすい 550 550 13530 110 2706 --
4B 1 ゴーレム 40 40 984 8 196 1
4B 2 ストーンゴーレム 550 550 13530 110 2706 1
4B 3 マグマゴーレム 1250 1250 30750 250 6150 1
4C 1 ヤミキチ 6 6 147 1 24 1
4C 2 ワルキチ 25 25 615 5 123 1
4C 3 ズルキチ 790 790 19434 158 3886 1
4D 1 毒サソリ 30 30 738 6 147 1
4D 2 鬼サソリ 95 95 2337 19 467 1
4D 3 しびれサソリ 4900 4900 120540 980 24108 1
4E 1 ボーンドラゴン 57 57 1402 11 270 1
4E 2 スカルドラドン 400 400 9840 80 1968 1
4E 3 ガルムドラゴン 3500 3500 86100 700 17220 1
4F 1 岩獣ズドン 40 40 984 8 196 --
4F 2 岩獣ガガン 85 85 2091 17 418 --
4F 3 岩獣ドガガーン 3100 3100 76260 620 15252 --
50 1 チビオニ 8 8 196 1 24 --
50 2 ゴツオニ 70 70 1722 14 344 --
50 3 ズングリオニ 50 50 1230 10 246 --
51 1 ヤセオニ 60 60 1476 12 295 --
51 2 ヒョロオニ 50 50 1230 10 246 --
51 3 ガリガリオニ 60 60 1476 12 295 --
52 1 ヨロイグモ 100 100 2460 20 492 --
53 1 女王グモ 200 200 4920 40 984 --
54 1 アメンジャ 100 100 2460 20 492 --
55 1 ガラハ 120 120 2952 24 590 --

 

※ちょっと気になったことは、4周した鬼ヶ島4~6Fでいくら粘ってもマルジロウが出現しなかったことです。通常なら出るらしいとのことだったので。「モンスターの罠」に198本矢を撃ちこんでみましたが出ませんでした。ただの乱数だったのか、モンスターテーブルに影響があるのか。そこらへんはもう少し調査が必要かもです。

 

2.4.経験値の一覧表から思うこと

私の見間違いや入力ミスが無ければ、次のことが言えると思います。

 

①通常経験値と素手で倒したときの経験値に差はありませんでした。

武器を未装備なら通常プレイのルールと同じになります。

 

②バグワナ経験値はワナ師状態の経験値に24.6倍を掛けていることが分かりました。(バグワナ経験値③が正解)

それぞれの経験値は通常経験値から次のように算出できます。

素手=通常経験値

・バグ経験値=通常経験値×24.6(小数切り捨て)

・ワナ経験値=通常経験値×0.2(小数切り捨て)

・バグワナ経験値=通常経験値×0.2×24.6(2回小数切り捨て)

        =ワナ経験値×24.6(小数切り捨て)

 

③特攻印対象のモンスターに与えるダメージが1になる。

一ツ目・ドレイン・ゴースト・ドラゴン・爆弾。

このような武器の特攻印の対象になるモンスターへのダメージはすべて1になりました。

経験値バグが最後に24.6倍したように、ダメージ計算の最後に0倍をしているような印象があります。とんでもなく大きな数字で割り算か引き算をしているしれません。

いずれにしても最低保証の1ダメージなのかなと。

ちなみに会心の一撃の場合、通常のモンスターにはダメージ上昇効果が機能しましたが、特攻印対象のモンスターに与えるダメージは1になりました。

会心の腕輪状態は試していません。どうなるんだろう・・・。

 

④本題の外れモンスターはいませんでした。

まだ可能性があるとするならば、ンドゥバ2才~99才ですね。

 

⑤他のルールの場合について(印が及ぼす影響)

なお、破壊バグでは他のルールに指定することが可能です。

次の動画はAgさんが会心の一撃の発生確率を247/255(約96.86%)に書き換えた動画です。

www.youtube.com

他のルールであっても、バグ印龍神剣-128を通じたルール変更であれば今回の確認と同じようにすべてのモンスターに適用されると思います。

武器の印に関係するルール変更はすでに可能なはずです。

炎耐性持ちを除けば、どんなモンスターも一撃で倒せる炎飛ばしはたぶん可能なはず。

 

ここから先は予想ですが、盾の印も同様に変更可能だと思います。

見切りの盾の印があるので、回避率も変更できるはず。

弟切草の印があるので、とんでもない回復量を実現できるはず。

 

あとはマイナス・ゼロ・プラスの変更が可能かどうかですね。

デメリット無しでサトリの盾の印のように満腹度が減らないようにする。そういうことが重装の盾の印を通じて実現できてしまうかもしれません。

超不幸の種を合成した武器の印を使って、武器を振るたびにレベルアップするとか。

 

その先は武器・盾以外の印を持たないアイテムですね。

巻物を読むと透視状態になる「疑似あかりの巻物」とか。

壺を使う(入れる・出す)と最高の鬼よけ水の効果を得る「疑似背中の壺」とか。

草を飲むと分身が出てくる「分身の草」とか。

罠を踏むと店主を召喚する「店主召喚スイッチ」とか。

印を持たないアイテムでもルール変更ができると、こういうバグアイテムが作成できるかもしれません。

でも現状では、特定の印数以外によるルール変更は発見されていません。

ルール変更に限って言えば、武器・盾の印に関係する部分の変更が現在の限界であると予想しています。

 

3.おわりに

今回も考察や結論を出すことよりもデータを提供することに意味があると思うので。

 

ンドゥバ2才~99才を除く全モンスターについて、破壊バグの異常な経験値(経験値バグ)の確認が完了しました。

その結果、外れモンスターは存在せず、経験値が存在する全モンスターの経験値が24.6倍(端数切捨て)になることが確認されました。

 

結局は冒頭に書いた感じになりそうですね。

今回は、「破壊バグの現象①~③を無視できる外れモンスターはいないか?」を念のため確認しました。

私の経験としてバグが発生すると飛び地でズレが発生したりするので・・・。

もし外れモンスターが存在したら、そこから新しいバグが発生する可能性があります。

もし外れモンスターが存在しなかったら、破壊バグはモンスターのステータスとは無関係なものであると推察できます。ダメージや経験値の異常はあくまでも計算式上の問題であり、モンスターのステータス書き換えは別の方法が必要になる。よって、「バグ印龍神剣-128による破壊バグでは、HP100のタベラレルーは発生させられないだろう」と予想できるわけです。

後者のように外れモンスターがいないのであれば影響は限定的と言えそうです。

というわけで、バグはバグだけど秩序があるような感じがします。

プログラムを作った人が非常に上手だった。「飛び地でズレが生じる」なんて無秩序なことは起きません。

 

読込みの位置がズレる(しかも規則正しくズレる)だけで、プレイヤーにできることは読込ませる位置を予測し、指定した値にすることが限界な気がします。マーモガチャや破壊バグだけで電卓を作るとか、テトリスを作るとかそういうレベルのことはたぶんできない。

あくまでもゲームが用意してくれたものを使うのが限界。内部処理そのものには嘘をつけない気がします。計算に使う値を変えることはできても、「ダメージ計算を他のシレンシリーズのものに変更する」などのように計算式そのものをいじることはたぶんできない。計算の都度、整数に直される。

ゲームを作る目線だと、まずは「0.5マス移動」とか「小数点のステータス(HP・力・経験値・武器盾の修正値など)」ができるかどうかが現在の壁だと思います。この壁を突破すると、電卓やテトリスが見えてくるはずです。

 

現在できることは、任意のアイテム生成・バグアイテム生成・任意のルール変更・任意のイベント呼出し(デバッグモードはイベントの一つ)。これらはデバッグモード無しで可能になっています。

この他にもシレン2の通常プレイでできることで、異常な組合せは大体できると思います。

表示と効果(正体)のズレはすでに多くの事例がありますが、その延長でたぶん「砂鉄(カタナ)をかじる」くらいならできそう。

任意のアイテム生成によって装備かけ完成が簡単になったのと同様に、モン壺のマーモガチャを応用して任意の仲間モンスターの壺を作成し、ガゼルバグよりも効率がいい王国図鑑埋めもできそう。

 

以下はできるかどうか微妙なラインとして。

・任意の敵キャラ変更:敵のンドゥバかビックリの壺(モンスター入り)を媒介して。(まだやっていないけれど、ビックリの壺を無で複製して吸出しの巻物を使うとどうなるのか。)任意の敵が出せれば店主・行商人は当然として、任意のキャラ(仲間・・・もしかしたら村人も?)の生成もできるはず。ダンジョンで村人は非対応だからさすがにフリーズかな?

・何かのON/OFFの変更:そのON/OFFがどこに埋まっているかが分かればできそう。

・ババ様の占い結果の変更:冒険していないのに形見の壺(中身あり)を作成するとか。ババ様にはダンジョンに残された情報を見る能力があるはず。ババ様の能力を何か使えないかな・・・。

・任意のダンジョンの任意の階層に飛ぶ:一度にフロアをn回降りる階段の作成。

・一夜城:一夜で黄金城を完成させる。逆に完成した城を未完成にする。

ようやく破壊バグのできること・できないことが見えてきた気がします。

 

残された可能性は回想バグかな。

回想バグを何回か試してはいるんですが・・・再現性はないし、フリーズの仕方が今までのとちょっとレベルが違うんですよね・・・。電子の海の海岸線まで来たような感覚になります。

何かを発見する前に、本当にカセットと64本体が壊れる感覚があります・・・。

 

4.おまけ:割り算について

ここから先は自分用のメモです。

 

経験値バグの謎の数字24.6倍は、元はF6(246)のようです。

「0A(10)+F6(246)=100(256)」という繰り上がりによって「00」にしたい辻褄合わせ(0を足す・1を掛ける)を感じますが、そもそも通常時にこの計算が必要である理由が当初はあまりピンと来ていませんでした。

正確なことや正解は知りませんが、何が起きているかを想像するのが大事だと思ったので。ちょっとだけ考えてみました。

 

4.1.「19÷5=?」の問題

「19÷5=?」この計算の答えはいくつでしょうか?

Aさんは「3.8」と答えるでしょう。

Bさんは「4」と答えるでしょう。

Cさんは「3」と答えるでしょう。

Dさんは「3あまり4」と答えるでしょう。「3・・・4」という表記になじみを持っている人もいるでしょう。「・・・」派は年齢がバレるらしいですよ。

この割り算に対する考え方の違いは、ゲームのルールとしてけっこう大事です。

プログラム上の問題でも大事です。

 

Aさんは最後まで割り切ったんですね。

Bさんは割り切って、四捨五入して整数にした。あるいは切り上げをした。

Cさんは割り切って、小数点以下を切り捨てした。あるいは切り下げをした。

Dさんは整数まで割って、割り切れない数字を出した。

 

Dさんの考えなら、「19÷5=3あまり4」と答えるはずです。

19を「被除数」、5を「除数」、3を「商」、4を「剰余」と言います。

それぞれ「割られる数」、「割る数」、「割った後の数」、「あまり」ですね。

私も用語を久々に確認しました。

割り算のことを「除算」とか「除法」と言います。

割り算の余りを求める計算を「剰余算」と言います。

ゲームプログラムでは剰余算が重宝する場面が多いです。ダメージなどの計算に限らず、方向とかループ(繰り返し)とかの表現でも使います。シレン2なら「木の矢の罠を踏んだ時に、シレンの右から木の矢が飛んでくる」表現とか。本当に使っているかは別として、木の矢の罠も剰余算で表現可能です。

プログラミングの世界では、都合のいいことに除算と剰余算をしてくれる記号があります。多くのプログラミング言語では、除算を「/」で表し、剰余算を「%」で表します。他の表現方法として、エクセルなら剰余算を表すmod関数(=MOD(被除数 , 除数))があります。

 

除算の記号「/」は、整数の商を出して計算がストップする場合と、桁数の限界まで割り続ける場合があります。

例えば「4÷3=?」を計算させると、

前者なら「1」と答えます。

後者なら「1.3333」とか、たまに「1.3334」とか答えます。

もし後者の計算方法が採用されている場合で、前者のように商だけ出したいなら、「1.3333」から「0.3333」を引いて辻褄を合わせてしまえという考え方があります。

よって、次のような計算式が採用されます。

(4/3)-(4%3)=1.3333-0.3333=1.0000

こんな感じ。

でも前者のように一発で整数の商を出したいという人もいるはずです。

そのために「int型(integer type:整数型)の変数を使う」などが挙げられます。

int型の変数は、名前の通りいつも整数部分だけを見て生きています。

int型の変数同士で割り算をした結果も通常はint型になり、小数点以下は切り捨てられます。

 

でもゲームではちょっとだけ小数点の値を使いたいこともあります。

とくに百分率。「〇%増加」とか。

場合によっては千分率(〇.〇%)かもしれません。

「1%=0.01」のように、小数はそのまま小数として扱う方法もあります。

「1%=1とする。それから100で割る」ように、まずは整数として扱い、最後に小数に変換する方法もあります。

どの方法がベストかはゲームを作る人が意図的に決めるものだと思います。

しかし、小数を扱えない状況なら後者の方法しか選択できないかもしれません。

 

4.2.コンピュータの割り算

でも割り算の話はここからです。

人間だって割り算につまづくのだから、コンピュータも割り算が嫌いなのです。

だからコンピュータは割り算をどう扱っているかというと、割り算を別の計算方法によって実現しているらしいです。

その実現方法を「除算アルゴリズム」って言うらしいです。

検索して1番上に出てきた埼玉大学の講義資料を見て「ほへー」ってなってます。専門家はこういう勉強をしているんだなーと感心しています。

www.elc.ees.saitama-u.ac.jp

この講義資料以外にもいろいろな方法を見てみましたが、多くは「上手に引き算する」のが基本的なやり方のようです。

コンピュータは2進数で生きているから2進数の計算であることは大前提として。

本当は2進数でやっていることは念頭にしますが、ここではあえて10進数で考え方を書いてます。考え方が大事なので。

 

掛け算を習うときに、「3×5=?」という問題を「3を5回繰り返し足す」問題として習った記憶はありませんか?「3×5=3+3+3+3+3」だと。

割り算はその逆をする。「15÷3=?」という問題を「15から3を繰り返し引く」問題として考えます。

  1. 15-3=12
  2. 12-3=9
  3. 9-3=6
  4. 6-3=3
  5. 3-3=0
  6. 0-3=-3→①マイナスになったから、②0は3より小さいから、ここでストップ
  7. マイナスになる前に何回引きましたか?→5回(商)
  8. 最後の数字は何ですか?→0(剰余。0なので割り切れる)

こんな感じの発想です。

この方法を採用すると、割り算の問題を引き算・繰り返した数のカウント・数の大小の問題に変換できます。割り算が極端に嫌いなコンピュータでも割り算の計算ができるし、もしかしたら割り算の処理よりも早く計算できる・・・かも?

 

でも上記の方法にはまだまだ改善の余地がありそうですよね。

・「15÷3=?」を計算するために処理を何回行いましたか?少なくとも8回はやってますよね?それは手数が多くないですか?

・マイナスの割り算はどうしますか?

・小数点はどうしますか?

平方根とか無理数はどうしますか?

・0で割ったらどうしますか?

・もっと巨大な数字の割り算はどうしますか?

・コンピュータがもっと早く解ける方法はありませんか?

などなど。

そのような改善をした結果、「謎の数字を掛ける」とか「都合のいい数字を足して桁をずらす」なんてこともされているようです。

この先にも・・・まあ、いろいろあるようです。今も研究している人がいるくらいには。

私は専門家ではないので詳しくは分かりませんが、割り算と切捨ては奥が深いように感じます。だいぶ話がそれてしまいましたが、いつか役に立つはず。

 

通常時にも「0A(10)+F6(246)=100(256)」という繰り上がりによって「00」にする必要性について思いを馳せてみました。私が書いたしょうもないプログラムの下にも無数の努力がきっとあるんですね。

通常時にもF6(246)を使う理由はゲーム制作側(意図したプログラム)の問題か、コンピュータの解釈(計算のアルゴリズム)の問題かは分かりませんが、たぶんどっちかだろうなーと今では思っています。本当のところは知りません。知りたければもっと勉強しないといけないのかも・・・。

 

 

修正履歴

・2023年12月24日:任意の敵生成によって女王グモの生成が可能となりました。女王グモのワナ師状態の経験値を掲載しておきます。

任意の敵生成については、瀬澄タカトさんからの情報を参考にしました。

準備や手順を書いておくと、次のようになります。

・準備

罠師の腕輪、ころび石、罠作動の巻物2個以上、のりうつりの杖[5以上]、草杖3本、ガマラのモン壺(王国登録済み)、任意の草、保存の壺
→腕輪は装備、ガマラの壺は手持ち、他は倉庫の床に置く

・手順

01.銀行から任意のギタンを引き出す。
02.ガマラのモン壺を倉庫の床に置く。
03.倉庫で無を新規生成する。
04.ガマラを出してのりうつり、シレンからギタンを盗む。
05.のりうつりを解除し、ガマラのモン壺を拾い、呼ぶ。
06.無が「ガマラ(敵アイコン)」になっていることを確認する。
07.「ガマラ(敵アイコン)」を倉庫番に預け、倉庫を出る。
08.銀行・のりうつり・ガマラのモン壺を使って、次の額のギタンを作る。
 ①生成したい敵のレベル(レベルギタン)
 ②生成したい敵のキャラクター種別コード(コードギタン)
 ③60ギタン
 ④240ギタン
09.マーモを倉庫に連れて行き、草杖3本→レベルギタンの順番でマーモに預ける。
10.倉庫を出入りする。
11.草杖2本→レベルギタン→コードギタンの順番でマーモに預ける。
12.倉庫を出入りする。
13.レベルギタン→コードギタン→240ギタン→60ギタンの順番でマーモに預ける。
14.倉庫を出入りする。
15.草杖2本→ワナ作動の巻物→240ギタンの順番でマーモに預ける。
16.倉庫を出入りする。
17.無を新規生成する。
18.倉庫番に預けていた「ガマラ(敵アイコン)」を引き出し、複製する。
19.「ガマラ(敵アイコン)」の片方を捨て、再利用可能な無(敵アイコン)にする。
20.240ギタン→任意のギタン2個→任意の草→再利用可能な無(敵アイコン)の順番でマーモに預ける。
21.倉庫を出る。
22.屋外でマーモから生成された敵を引き出す。
23.生成された敵を一度保存の壺に入れる。
24.敵が入った保存の壺を投げて割ると、敵として生成される。
※手順22で生成された敵をそのまま置いたり、投げたりすると「拾えない透明なアイテム」の扱いになる。