【解決済み】アイテムを一旦全て他のところに保存しておく

返信する
yaiyai
記事: 27
登録日時: 2016年11月29日(火) 05:47

【解決済み】アイテムを一旦全て他のところに保存しておく

投稿記事 by yaiyai »

お世話になっております。

今作っているゲームで、あるパーティーAが冒険を終えた後、別視点パーティーBに移って新たな旅が始まるとします。
そのとき、パーティーAが今持っているアイテムを全て保存しておき、パーティーBでは何も持っていない状態からスタートしたいのです。
また、後で2つのパーティーが合流したときに、パーティーAの持っていたアイテムが再び手に入るようにしたいです。
どのように作るのが楽でしょうか?
最後に編集したユーザー yaiyai [ 2017年5月16日(火) 00:15 ], 累計 1 回
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: アイテムを一旦全て他のところに保存しておく

投稿記事 by 奏ねこま »

とりあえず、スクリプトを使ったやり方を。
それぞれ目的のスクリプトを、イベントコマンド「スクリプト」で実行してください。

コード: 全て選択

// アイテムリストを変数#0001に保存
$gameVariables.setValue(1, JsonEx.makeDeepCopy($gameParty._items));
// 武器リストを変数#0002に保存
$gameVariables.setValue(2, JsonEx.makeDeepCopy($gameParty._weapons));
// 防具リストを変数#0003に保存
$gameVariables.setValue(3, JsonEx.makeDeepCopy($gameParty._armors));

// アイテムリストをクリア
$gameParty._items = {};
// 武器リストをクリア
$gameParty._weapons = {};
// 防具リストをクリア
$gameParty._armors = {};
// アイテム・武器・防具をまとめてクリア
$gameParty.initAllItems();

// 変数#0001に保存したアイテムリストを復元
$gameParty._items = JsonEx.makeDeepCopy($gameVariables.value(1));
// 変数#0002に保存した武器リストを復元
$gameParty._weapons = JsonEx.makeDeepCopy($gameVariables.value(2));
// 変数#0003に保存した防具リストを復元
$gameParty._armors = JsonEx.makeDeepCopy($gameVariables.value(3));

// 変数#0001に保存したアイテムリストを、現在のアイテムリストに合成
var items = $gameVariables.value(1);
Object.keys(items).forEach(function(id) {
    $gameParty.gainItem($dataItems[id], items[id]);
});
// 変数#0002に保存した武器リストを、現在の武器リストに合成
var weapons = $gameVariables.value(2);
Object.keys(weapons).forEach(function(id) {
    $gameParty.gainItem($dataWeapons[id], weapons[id]);
});
// 変数#0003に保存した防具リストを、現在の防具リストに合成
var armors = $gameVariables.value(3);
Object.keys(armors).forEach(function(id) {
    $gameParty.gainItem($dataArmors[id], armors[id]);
});
yaiyai
記事: 27
登録日時: 2016年11月29日(火) 05:47

Re: アイテムを一旦全て他のところに保存しておく

投稿記事 by yaiyai »

リストをそのまま変数に代入する方法があるとは、知りませんでした。
勉強になります。ありがとうございました。
返信する

“MV:質問”に戻る