当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
KRD クイズ - KRD_MZ_Quiz.js
シェア用テキスト:
▼KRD クイズ(くろうど様作) - KRD_MZ_Quiz.js
https://plugin-mz.fungamemake.com/archives/6255
クイズ
ふりがな:くいず
機能概要: クイズ
利用規約(ライセンス): MITライセンス
作者:くろうど
作者サイト:https://x.com/kuroudo119/
解説ページ:https://github.com/kuroudo119/RPGMZ-Plugin
ダウンロードページ:https://raw.githubusercontent.com/kuroudo119/RPGMZ-Plug…
ファイル名:KRD_MZ_Quiz.js
プラグインのヘルプ:
*:
* @target MZ
* @plugindesc クイズ
* @url https://twitter.com/kuroudo119/
* @url https://github.com/kuroudo119/RPGMZ-Plugin
* @author kuroudo119 (くろうど)
*
* @param GLOBAL_NAME
* @text グローバル変数名
* @desc UniqueDataLoaderプラグインで設定した文字列です。
* @default $dataUniques
*
* @param PROPERTY_NAME
* @text プロパティ名
* @desc UniqueDataLoaderプラグインで設定した文字列です。
* @default quiz
*
* @help
# KRD_MZ_Quiz.js
クイズ
## 権利表記
(c) 2021 kuroudo119 (くろうど)
## 利用規約
このプラグインはMITライセンスです。
https://github.com/kuroudo119/RPGMZ-Plugin/blob/master/LICENSE
## データ
1. クイズの問題と答えを記述したjsonファイルを用意しdataフォルダに入れます。
2. UniqueDataLoaderプラグインを使用し、jsonファイルを使用可能にします。
3. プラグインパラメータにUniqueDataLoaderプラグインと同じ値を設定します。
### jsonファイル
- id 問題の番号です。
- group 問題のグループです。同じグループのクイズデータを作れます。
- name 問題の名前です。
- question 問題文です。制御文字で表示します。
- answer_1 答えの文です。1~6まで作成できます。制御文字で表示します。
- correct 正解となる答えの番号です。正解は1個です。
```json
[
{
”id”: 1,
”group”: ”基本問題”,
”name”: ”問題1”,
”question”: ”RPGツクールMZのマップ編集にはnレイヤー機能がある?”,
”answer_1”: ”あるよ”,
”answer_2”: ”ないかな”,
”correct”: 1
},
{
”id”: 2,
”group”: ”基本問題”,
”name”: ”問題2”,
”question”: ”RPGツクールMZってなんて読む?”,
”answer_1”: ”ろーぷれつくーるえむぜっと”,
”answer_2”: ”ろーぷれつくーるえむじぃ”,
”answer_3”: ”あーるぴーじーつくーるえむぜっと”,
”answer_4”: ”あーるぴーじーつくーるえむずぅいぃぃ”,
”correct”: 3
}
]
```
## スクリプト
本プラグインではプラグインコマンドを用意していないため、
スクリプトを記述して使用します。
想定する処理の流れは以下です。
1. 新規クイズデータ作成 newQuiz
2. クイズ一覧シャッフル shuffleQuizList
3. 次の問題に進む nextQuiz
4. 問題の答えをシャッフル shuffleAnswer
5. 問題文を取得 setQuestionText
6. 答えの文を取得 setAnswerText
7. 正否確認 checkAnswer
※3~7をループの中に入れ、
3で次の問題がない場合にループの中断する。
### 新規クイズデータ作成 newQuiz
本プラグインでは最初にクイズデータを作成する必要があります。
スクリプトコマンドで以下を記述します。
$gameSystem.newQuiz();
引数にはクイズのグループ名を指定できます。
章立てになっている場合にお使いください。
$gameSystem.newQuiz(”グループ名”);
### 最新クイズデータ取得 latestQuiz
クイズデータの中から最新のクイズデータを取得します。
以降、このスクリプトを使って関数を使用します。
$gameSystem.latestQuiz();
### クイズデータ削除 clearQuiz
クイズデータは累積し、セーブデータに含まれますので、
セーブデータが大きい場合などの
必要に応じて以下のスクリプトで削除してください。
$gameSystem.clearQuiz();
### クイズ一覧シャッフル shuffleQuizList
クイズ一覧の順番をシャッフルする場合に以下を記述します。
$gameSystem.latestQuiz().shuffleQuizList();
### 次の問題に進む nextQuiz
次の問題を取得します。
条件分岐コマンドのスクリプト欄で以下を記述します。
問題がなくなった場合、条件を満たさないときの分岐に進みます。
$gameSystem.latestQuiz().nextQuiz();
### 問題の答えをシャッフル shuffleAnswer
問題の順番をシャッフルする場合に、
スクリプトコマンドで以下を記述します。
$gameSystem.latestQuiz().shuffleAnswer();
### 問題文を取得 setQuestionText
問題文を指定した変数に格納します。
文章の表示コマンドで制御文字を使うと表示できます。
スクリプトコマンドで以下を記述します。
$gameSystem.latestQuiz().setQuestionText(100);
※100は変数番号。
### 答えの文を取得 setAnswerText
答えの文を指定した変数から最大6個の連続した変数に格納します。
選択肢の表示コマンドで制御文字を使うと表示できます。
スクリプトコマンドで以下を記述します。
$gameSystem.latestQuiz().setAnswerText(101);
※101は変数番号。
答えの数は固定にすること(4択など)をオススメします。
### 正否確認 checkAnswer
選択肢コマンドで選択した回答か正解かどうかチェックします。
選択肢の表示コマンドの選択肢内で、
スクリプトコマンドで以下を記述します。
$gameSystem.latestQuiz().checkAnswer(index);
※indexは、選択肢の上から順に 0 ~ 5 に変えてください。
## 更新履歴
- ver.0.0.1 (2024/04/20) 作成開始
- ver.0.1.0 (2024/04/21) 非公開版完成
- ver.1.0.0 (2024/04/21) 公開
*
*
*/