〔解決済み〕選択式のアイテム入手

豆打@
記事: 3
登録日時: 2024年12月02日(月) 21:05

〔解決済み〕選択式のアイテム入手

投稿記事by 豆打@ » 2024年12月02日(月) 22:03

宝箱を開けるor敵撃破後のドロップ時等に、
3つのアイテムから一つを選んで入手するシステムを作りたいです。

イメージとしては
①敵のドロップ/宝箱ごとにドロップアイテムを10コ程度設定
②設定されたアイテムの内3つがランダムに選出され、選択肢として表示
③プレイヤーはそのうち1個を選択して入手

という処理を作れたらいいな…という感じです。

”固定のアイテムプール10個から3つのアイテムをランダムで選出”
”3択から1個アイテムを入手”
の2段階に分けて作ったらいいのかな…?と思っていますが、
こういったシステムの作り方や使えそうなプラグイン等ご存じの方おられますでしょうか?
知恵をお借りできたらうれしいです。
最後に編集したユーザー 豆打@ on 2024年12月05日(木) 00:02 [ 編集 1 回目 ]

アバター
DoujinRuis
記事: 152
登録日時: 2022年10月25日(火) 10:59

Re: 選択式のアイテム入手

投稿記事by DoujinRuis » 2024年12月03日(火) 23:38

こんにちは!DoujinRuisと言います!
今回の質問の件について説明用の動画を用意いたしましたので、
よろしければご覧ください!
リンク
https://www.youtube.com/watch?v=ppwVEfKw3jI

ツクール初心者の方質問し放題のディスコードです↓
https://discord.com/invite/dzUAC3CSMH

今回のコード
// ① アイテムプールをゲーム変数1に設定
$gameVariables.setValue(1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); // アイテムIDをリストで設定

// ② ランダムで3つ選出
const pool = $gameVariables.value(1); // アイテムプールを取得
const randomItems = pool.sort(() => Math.random() - 0.5).slice(0, 3); // ランダムに3つ選出

// ③ 選択肢を表示
const choices = randomItems.map(id => $dataItems[id].name); // アイテム名を取得して選択肢にする
const handler = index => {
const selectedItemId = randomItems[index]; // 選択されたアイテムID
$gameParty.gainItem($dataItems[selectedItemId], 1); // アイテムを付与
$gameMessage.add(`${$dataItems[selectedItemId].name}を手に入れた!`); // メッセージ表示
};
$gameMessage.setChoices(choices, 0, -1); // 選択肢を設定
$gameMessage.setChoiceCallback(handler); // コールバックを設定
ゲーム制作情報共有ディスコード
discord.com/invite/dzUAC3CSMH

普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
アバター
いづみ
記事: 59
登録日時: 2023年3月15日(水) 18:15

Re: 選択式のアイテム入手

投稿記事by いづみ » 2024年12月03日(火) 23:57

実際に入力している画像を見たほうが分かりやすいと思うので画像で説明します。

【注釈】が説明文です。

2番目の画像は変数の操作(イベント処理)の中身です。
添付ファイル
333.JPG
444.JPG
444.JPG (29.52 KiB) 閲覧数: 669 回
555.JPG
666.JPG
アバター
いづみ
記事: 59
登録日時: 2023年3月15日(水) 18:15

Re: 選択式のアイテム入手

投稿記事by いづみ » 2024年12月04日(水) 00:00

このように、一つずつ「どの乱数が出たら、どの条件を満たしたら、どのイベント(アイテム入手)が発生するのか」を決めたら、アイテム入手をランダム化することはもちろん。

会話を乱数で処理することで、「話しかけるたびに違うことを話す村人」なども作ることが簡単になります。
もっとうまい説明ができる人もいると思うので、その人に聞くのが良いでしょう~ノシ
添付ファイル
777.JPG
豆打@
記事: 3
登録日時: 2024年12月02日(月) 21:05

Re: 選択式のアイテム入手

投稿記事by 豆打@ » 2024年12月04日(水) 23:41

>>DoujinRuisさん
回答ありがとうございます。

動画の方参考にしつつ、ご提供いただいたスクリプトを導入しました。
ランダム選出→3択式のアイテム選択という希望通りの挙動で稼働しました。
ありがとうございます、とても助かりました!

他の解説動画やご紹介いただいたDiscordサーバーなども
制作に詰まった際にまた活用させていただけたらと思います!
豆打@
記事: 3
登録日時: 2024年12月02日(月) 21:05

Re: 選択式のアイテム入手

投稿記事by 豆打@ » 2024年12月05日(木) 00:01

>>いづみさん

ご回答ありがとうございます!
画像解説の方参考にしつつ設定作成しました。

「アイテムプールからランダムで3つのアイテムを選出→選択肢を作成→入手…」
という流れを作成するにあたり、アイテム選出のしくみ等に
今回紹介いただいた内容を応用できそうです…!
注釈でも細かく解説いただきとても助かりました。

ありがとうございました!
アバター
いづみ
記事: 59
登録日時: 2023年3月15日(水) 18:15

Re: 〔解決済み〕選択式のアイテム入手

投稿記事by いづみ » 2024年12月05日(木) 02:07

ちょっとでもお役に立てたなら幸いです。
よきツクールライフを

“MZ:質問” へ戻る