いつもお世話になっております。
イベント中のセーブ&ロードの処理について質問させていただきます。
会話イベント中にセーブとロードが可能な"ノベルゲー"のようなゲームを作りたいと考えています。
トリアコンタン様の『ピクチャのボタン化プラグイン』でセーブとロードを呼び出せる仕組みを作ったのですが、会話イベント中にセーブをすると、そのファイルをロードした時に文章が1つスキップされてしまいます。
「test1」「test2」「test3」という文章を表示するイベントがあったとして、test1の画面でセーブをすると"test2"をスキップした状態でロードされてしまうのです。
蔦森くいな様の『イベント実行中もセーブを可能にする(SaveInEvent)』プラグインのような形でのセーブ&ロードを実装したいのですが、MZでこれに似たプラグインや、会話中のセーブ&ロードをスムーズに行えるイベントの組み方をご存じの方がいらっしゃいましたらお教え頂ければ幸いです。
よろしくお願いいたします。
_______________
追記:蔦森くいな様の『イベント実行中もセーブを可能にする(SaveInEvent)』プラグインはこちらのサイトのものです。
https://kuina.games/p-510/
(直リンク禁止でしたら大変申し訳ございません。すぐに削除いたします。)
【解決済】イベント実行中のセーブ&ロードについて
- DoujinRuis
- 記事: 152
- 登録日時: 2022年10月25日(火) 10:59
Re: イベント実行中のセーブ&ロードについて
こんにちは!DoujinRuisと言います!
今回の質問の件について説明用の動画を用意いたしましたので、
よろしければご覧ください!
リンク
https://youtu.be/QNeb9qk2dJQ
ツクール初心者の方質問し放題のディスコードです↓
https://discord.com/invite/dzUAC3CSMH
セーブ時に文章の状態を保存すれば、問題解決かもしれません
参考コード
// セーブデータに文章の状態を保存
const _DataManager_makeSaveContents = DataManager.makeSaveContents;
DataManager.makeSaveContents = function() {
const contents = _DataManager_makeSaveContents.call(this);
contents.messageState = {
texts: $gameMessage._texts.slice(),
index: $gameMessage._index,
choices: $gameMessage._choices ? $gameMessage._choices.slice() : null,
choiceIndex: $gameMessage._choiceIndex,
faceName: $gameMessage._faceName,
faceIndex: $gameMessage._faceIndex,
background: $gameMessage._background,
positionType: $gameMessage._positionType,
scrollMode: $gameMessage._scrollMode
};
return contents;
};
// セーブデータから文章の状態を復元
const _DataManager_extractSaveContents = DataManager.extractSaveContents;
DataManager.extractSaveContents = function(contents) {
_DataManager_extractSaveContents.call(this, contents);
if (contents.messageState) {
const state = contents.messageState;
$gameMessage._texts = state.texts || [];
$gameMessage._index = state.index || 0;
$gameMessage._choices = state.choices || null;
$gameMessage._choiceIndex = state.choiceIndex || -1;
$gameMessage._faceName = state.faceName || '';
$gameMessage._faceIndex = state.faceIndex || 0;
$gameMessage._background = state.background || 0;
$gameMessage._positionType = state.positionType || 2;
$gameMessage._scrollMode = state.scrollMode || false;
}
};
今回の質問の件について説明用の動画を用意いたしましたので、
よろしければご覧ください!
リンク
https://youtu.be/QNeb9qk2dJQ
ツクール初心者の方質問し放題のディスコードです↓
https://discord.com/invite/dzUAC3CSMH
セーブ時に文章の状態を保存すれば、問題解決かもしれません
参考コード
// セーブデータに文章の状態を保存
const _DataManager_makeSaveContents = DataManager.makeSaveContents;
DataManager.makeSaveContents = function() {
const contents = _DataManager_makeSaveContents.call(this);
contents.messageState = {
texts: $gameMessage._texts.slice(),
index: $gameMessage._index,
choices: $gameMessage._choices ? $gameMessage._choices.slice() : null,
choiceIndex: $gameMessage._choiceIndex,
faceName: $gameMessage._faceName,
faceIndex: $gameMessage._faceIndex,
background: $gameMessage._background,
positionType: $gameMessage._positionType,
scrollMode: $gameMessage._scrollMode
};
return contents;
};
// セーブデータから文章の状態を復元
const _DataManager_extractSaveContents = DataManager.extractSaveContents;
DataManager.extractSaveContents = function(contents) {
_DataManager_extractSaveContents.call(this, contents);
if (contents.messageState) {
const state = contents.messageState;
$gameMessage._texts = state.texts || [];
$gameMessage._index = state.index || 0;
$gameMessage._choices = state.choices || null;
$gameMessage._choiceIndex = state.choiceIndex || -1;
$gameMessage._faceName = state.faceName || '';
$gameMessage._faceIndex = state.faceIndex || 0;
$gameMessage._background = state.background || 0;
$gameMessage._positionType = state.positionType || 2;
$gameMessage._scrollMode = state.scrollMode || false;
}
};
ゲーム制作情報共有ディスコード
discord.com/invite/dzUAC3CSMH
普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
discord.com/invite/dzUAC3CSMH
普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
Re: イベント実行中のセーブ&ロードについて
DoujinRuis様
回答していただきありがとうございます。
動画拝見しました。大変見やすい動画でした!
質問なのですが、教えていただいたコードはどこに書き込めばいいでしょうか?
恥ずかしながら当方はゲームつくりの初心者で、どこに保存すればいいのかわからず…
ご返信いただけますと大変助かります。
また、動画内でお話されていたプラグインについて本文に追記いたしました。よろしくお願いいたします。
回答していただきありがとうございます。
動画拝見しました。大変見やすい動画でした!
質問なのですが、教えていただいたコードはどこに書き込めばいいでしょうか?
恥ずかしながら当方はゲームつくりの初心者で、どこに保存すればいいのかわからず…
ご返信いただけますと大変助かります。
また、動画内でお話されていたプラグインについて本文に追記いたしました。よろしくお願いいたします。
- DoujinRuis
- 記事: 152
- 登録日時: 2022年10月25日(火) 10:59
Re: 【追記】イベント実行中のセーブ&ロードについて
下記のディスコード(無料)にプラグイン張っておきました。
ダウンロードしたjsファイルをプラグインフォルダに入れてプラグインリストから有効にしてください。
プラグインの導入は初めてでしょうか?
ツクール初心者の方質問し放題のディスコードです↓
https://discord.com/invite/dzUAC3CSMH
ダウンロードしたjsファイルをプラグインフォルダに入れてプラグインリストから有効にしてください。
プラグインの導入は初めてでしょうか?
ツクール初心者の方質問し放題のディスコードです↓
https://discord.com/invite/dzUAC3CSMH
ゲーム制作情報共有ディスコード
discord.com/invite/dzUAC3CSMH
普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
discord.com/invite/dzUAC3CSMH
普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
Re: 【追記】イベント実行中のセーブ&ロードについて
DoujinRuis様
ご回答ありがとうございます。
プラグインは導入したことがあるので操作はわかると思います。
お手数をおかけして大変申し訳ないのですが、プラグインをこちらの掲示板に貼っていただくことは可能でしょうか?
私はディスコードに登録しておらず…またツクマテに私と同じ悩みを持った方がいらした場合に、このスレッドのDoujinRuis様のご回答を閲覧することでより多くの方が助かると思うのです。
ご検討いただければ幸いです。よろしくお願いいたします。
ご回答ありがとうございます。
プラグインは導入したことがあるので操作はわかると思います。
お手数をおかけして大変申し訳ないのですが、プラグインをこちらの掲示板に貼っていただくことは可能でしょうか?
私はディスコードに登録しておらず…またツクマテに私と同じ悩みを持った方がいらした場合に、このスレッドのDoujinRuis様のご回答を閲覧することでより多くの方が助かると思うのです。
ご検討いただければ幸いです。よろしくお願いいたします。
Re: 【追記】イベント実行中のセーブ&ロードについて
DoujinRuis様
大変申し訳ございませんでした!!解決いたしました!!
最初に教えていただいた、コードをプラグインとして保存すればよかったんですね…!
私の読解力が欠如していて、本当にお恥ずかしい限りです!ありがとうございました…!
他のプラグインと競合することなく、正常に動作しております。
この度は本当に、ありがとうございました!
大変申し訳ございませんでした!!解決いたしました!!
最初に教えていただいた、コードをプラグインとして保存すればよかったんですね…!
私の読解力が欠如していて、本当にお恥ずかしい限りです!ありがとうございました…!
他のプラグインと競合することなく、正常に動作しております。
この度は本当に、ありがとうございました!