見出し画像

Elona改造講座 第11回(すくつ捕獲玉を願えるようにする)

Elona改造講座、第11回です。
今回は第10回で実装したすくつ捕獲玉を願えるようにしてみましょう。
本家ooではややバランスブレイカー気味のアイテムとされているので、テスト用にウィザードモード限定にしておきます。また、すくつ捕獲玉のレベルは入手条件の都合により必ず5の倍数になる為、願いで入手できるすくつ捕獲玉も5の倍数になるようにします。


①願いの追加

願いの定義をしている部分に、すくつ捕獲玉(英:void ball)を願う処理を追加します。「inputlog == "プラチナ"」で検索して、その下に以下の記述を追加します。

// すくつ捕獲玉を願いの対象に追加(LvはPCのLvを5の倍数になるよう切り捨てた値,最小5)
if ( gdata(828) ) {
	if ( inputlog == "すくつ捕獲玉" | inputlog == "void ball" ) {
		flt
		itemcreate -1, 685, cdata(1, 0), cdata(2, 0), 0
		ibitmod 5, ci, 1
		inv(22, ci) = 2
		inv(26, ci) = (cdata(38, 0) / 5) * 5
		if ( inv(26, ci) <= 4 ) {
			inv(26, ci) = 5
		}
		inv(1, ci) = 2000 + powf(inv(26, ci) + 50, 2) + (inv(26, ci) + 50) * 100
		txtef 5
		txt_select -1, lang("足元に" + itemname(ci) + "が転がってきた。", "" + itemname(ci) + " appear" + _s2(inv(0, ci)) + "."), "", "", "", "", "", "", "", ""
		txtgod godcheck(), 2415
		return
	}
}

次の画像のようになれば成功です。

すくつ捕獲玉を願えるようにしました

②解説

最初のif文のgdata(828)はお馴染みのウィザードモードフラグです。通常モードでも願えるようにしたい方はこのif文は不要です。次のif文は願いの入力結果をチェックしています。"すくつ捕獲玉"または"void ball"の場合、すくつ捕獲玉の生成処理に入ります。
 
すくつ捕獲玉の生成処理は以下のようになっています。基本的には前回のすくつボス撃破時のドロップと同様、MB(ID:685)を生成し、★フラグを立て、緑色にするという流れです。

flt
itemcreate -1, 685, cdata(1, 0), cdata(2, 0), 0
ibitmod 5, ci, 1
inv(22, ci) = 2
inv(26, ci) = (cdata(38, 0) / 5) * 5
if ( inv(26, ci) <= 4 ) {
	inv(26, ci) = 5
}
inv(1, ci) = 2000 + powf(inv(26, ci) + 50, 2) + (inv(26, ci) + 50) * 100

MBレベル(inv(26, ci))の設定だけは異なっており、PCレベルを5の倍数になるように切り捨てた値になるようにしています。例えばPCがLv39の場合、Lv35のすくつ捕獲玉が生成されます。ただし最低でもLv5となるように制限をかけています(PCが低レベルの場合にLv0のすくつ捕獲玉が手に入るのを防ぐ為)。

最後の4行はアイテム獲得メッセージを表示して、信仰中の神の台詞を表示し、願いの処理を終了するというものです。

txtef 5
txt_select -1, lang("足元に" + itemname(ci) + "が転がってきた。", "" + itemname(ci) + " appear" + _s2(inv(0, ci)) + "."), "", "", "", "", "", "", "", ""
txtgod godcheck(), 2415
return

参考までに、前回のすくつ捕獲玉生成処理を掲載しておきます。MBレベルはドロップした階層と等しい値で生成されるようになっていました。

flt
itemcreate -1, 685, cdata(1, 0), cdata(2, 0), 0
ibitmod 5, ci, 1
inv(22, ci) = 2
inv(26, ci) = gdata(22) - 49
inv(1, ci) = 2000 + powf(inv(26, ci) + 50, 2) + (inv(26, ci) + 50) * 100

③動作確認

実際に願ってみましょう。F5キーで願って"すくつ捕獲玉"または"void ball"と入力してください。

すくつ捕獲玉が願えました!

この時のPCはLv61だった為、Lv60のすくつ捕獲玉が入手できました。

すくつ捕獲玉はLv60でした

④検証:すくつ捕獲玉を他環境に持ち込んだ場合

※この項目は以前第10回の末尾に書いていた内容とほぼ同内容です(一部追加あり)
 
すくつ捕獲玉をバニラ(本家Elona)・omake・無改造MMAhに持ち込むと、★が付いた緑色の通常MBとして見えます。下記の画像はバニラで見た場合で「★モンスターボール Lv60 (空)」と「★モンスターボール Lv70 (空)」が映っていますが、これらは改造MMAhですくつ捕獲玉として生成したアイテムになります。バニラの他、omakeや無改造MMAhでも同様の結果になることは確認しています。

すくつ捕獲玉はバニラでは通常MBとして見えます

★付きなことを除けば機能的にも通常のMBと同じようです。例えば「★モンスターボール Lv60 (空)」はすくつ外でのカオスドラゴンLv50の捕獲に使用できます。

通常MBなのでカオスドラゴンLv50の捕獲に使えます

※ヴァリアントの渡り歩き自体が危険を伴うことは注意しておいてください。上記はあくまで「とりあえず動作はした」という程度の確認です。予期せぬエラーの発生や黄金様の降臨をも招く可能性も無いとは言い切れません。

⑤余談(検証:自分を捕獲!?)

omakeやMMA系等の一部ヴァリアントでは、ウィザードモードにすることであらゆるキャラをMBで捕獲できるようになります。このあらゆるキャラというのは比喩ではなく文字通りの意味で、HP満タンやユニークはもちろんのこと、通常は絶対に捕獲できないNPC冒険者や町の住人、果ては自分自身でさえも捕獲できてしまいます。
 
以下がそれを実際に試してみた時の画像になります。HP満タンなのに遺言入力窓が出ているとは何とも不思議な光景です。さてこの場合の死因は何になるのやら……と期待したものですが、残念ながら「HspError 6」でエラー落ちしてしまいました。

NPC冒険者や町の住人の捕獲がどんな悪影響を及ぼすかも分からないことですし、皆さんもウィザードモードでのMBの取り扱いにはご注意を……

自分をゲットだぜ!(この後エラー落ちしました)

この記事が気に入ったらサポートをしてみませんか?