宝箱を開けるor敵撃破後のドロップ時等に、
3つのアイテムから一つを選んで入手するシステムを作りたいです。
イメージとしては
①敵のドロップ/宝箱ごとにドロップアイテムを10コ程度設定
②設定されたアイテムの内3つがランダムに選出され、選択肢として表示
③プレイヤーはそのうち1個を選択して入手
という処理を作れたらいいな…という感じです。
”固定のアイテムプール10個から3つのアイテムをランダムで選出”
”3択から1個アイテムを入手”
の2段階に分けて作ったらいいのかな…?と思っていますが、
こういったシステムの作り方や使えそうなプラグイン等ご存じの方おられますでしょうか?
知恵をお借りできたらうれしいです。
〔解決済み〕選択式のアイテム入手
- DoujinRuis
- 記事: 152
- 登録日時: 2022年10月25日(火) 10:59
Re: 選択式のアイテム入手
こんにちは!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); // コールバックを設定
今回の質問の件について説明用の動画を用意いたしましたので、
よろしければご覧ください!
リンク
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
discord.com/invite/dzUAC3CSMH
普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
Re: 選択式のアイテム入手
実際に入力している画像を見たほうが分かりやすいと思うので画像で説明します。
【注釈】が説明文です。
2番目の画像は変数の操作(イベント処理)の中身です。
【注釈】が説明文です。
2番目の画像は変数の操作(イベント処理)の中身です。
Re: 選択式のアイテム入手
このように、一つずつ「どの乱数が出たら、どの条件を満たしたら、どのイベント(アイテム入手)が発生するのか」を決めたら、アイテム入手をランダム化することはもちろん。
会話を乱数で処理することで、「話しかけるたびに違うことを話す村人」なども作ることが簡単になります。
もっとうまい説明ができる人もいると思うので、その人に聞くのが良いでしょう~ノシ
会話を乱数で処理することで、「話しかけるたびに違うことを話す村人」なども作ることが簡単になります。
もっとうまい説明ができる人もいると思うので、その人に聞くのが良いでしょう~ノシ
Re: 選択式のアイテム入手
>>DoujinRuisさん
回答ありがとうございます。
動画の方参考にしつつ、ご提供いただいたスクリプトを導入しました。
ランダム選出→3択式のアイテム選択という希望通りの挙動で稼働しました。
ありがとうございます、とても助かりました!
他の解説動画やご紹介いただいたDiscordサーバーなども
制作に詰まった際にまた活用させていただけたらと思います!
回答ありがとうございます。
動画の方参考にしつつ、ご提供いただいたスクリプトを導入しました。
ランダム選出→3択式のアイテム選択という希望通りの挙動で稼働しました。
ありがとうございます、とても助かりました!
他の解説動画やご紹介いただいたDiscordサーバーなども
制作に詰まった際にまた活用させていただけたらと思います!
Re: 選択式のアイテム入手
>>いづみさん
ご回答ありがとうございます!
画像解説の方参考にしつつ設定作成しました。
「アイテムプールからランダムで3つのアイテムを選出→選択肢を作成→入手…」
という流れを作成するにあたり、アイテム選出のしくみ等に
今回紹介いただいた内容を応用できそうです…!
注釈でも細かく解説いただきとても助かりました。
ありがとうございました!
ご回答ありがとうございます!
画像解説の方参考にしつつ設定作成しました。
「アイテムプールからランダムで3つのアイテムを選出→選択肢を作成→入手…」
という流れを作成するにあたり、アイテム選出のしくみ等に
今回紹介いただいた内容を応用できそうです…!
注釈でも細かく解説いただきとても助かりました。
ありがとうございました!
Re: 〔解決済み〕選択式のアイテム入手
ちょっとでもお役に立てたなら幸いです。
よきツクールライフを
よきツクールライフを