【解決済み】YEP Item Core使用時にスクリプトコマンドで武器を装備できない

返信する
TANMI
記事: 10
登録日時: 2024年11月09日(土) 02:14

【解決済み】YEP Item Core使用時にスクリプトコマンドで武器を装備できない

投稿記事 by TANMI »

現在制作中のゲームは、装備した武器によって通常攻撃がスキルに変化するプラグインを採用しています。
更に戦闘中に武器持ち替えコマンドにより、
メイン武器とサブ武器を交換し、戦闘中に通常攻撃を2通り使えるようにしていました。

このメイン武器とサブ武器を持ち変えるシステムをコモンイベントで構築していたのですが、
YEP Item Coreの導入により、スクリプトコマンドで武器を装備することができなくなってしまいました。

武器持ち替えの詳細としては、
まず戦闘直前に

変数の操作 $gameActors.actor(1)._equips[0]._itemId
変数の操作 $gameActors.actor(1)._equips[1]._itemId

で、戦闘前にメイン武器とサブ武器(防具タイプ1)のIDをそれぞれ変数に格納し、サブ武器を解除、
戦闘中に武器持ち替えスキルでコモンイベントを起動し、スクリプトコマンドの

$gameActors.actor(1).changeEquipById(1, $gameVariables.value(n))
$gameActors.actor(1).changeEquipById(2, 0)

$gameActors.actor(1).changeEquipById(2, $gameVariables.value(n))
$gameActors.actor(1).changeEquipById(1, 0)

で、それぞれを持ち替える、という形で実行していました。

しかしYEP Item Coreを導入したところ、
一度解除した武器を再び装備することができなくなってしまったという状況です。

戦闘直前の変数操作で3000番台のIDが格納はされているようなので、恐らく持ち替えのほうで何か不具合が起きているのだと思いますが、プラグインやスクリプトの知識が浅く、自分ではどうすればいいのかわかりません。
もし解決方法の分かる方がいらっしゃいましたら、ご教授願いたいです。

もしくは、もっと簡単に2種類の武器を持ち替えられるよ、といった情報提供でもありがたいです。
何卒、宜しくお願い致します。



YEP Item Core - YEP_ItemCore.js
http://www.yanfly.moe/wiki/Item_Core_(YEP)
最後に編集したユーザー TANMI [ 2024年11月23日(土) 05:16 ], 累計 1 回
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: YEP Item Core使用時にスクリプトコマンドで武器を装備できない

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
TANMI さんが書きました:現在制作中のゲームは、装備した武器によって通常攻撃がスキルに変化するプラグインを採用しています。
更に戦闘中に武器持ち替えコマンドにより、
メイン武器とサブ武器を交換し、戦闘中に通常攻撃を2通り使えるようにしていました。

このメイン武器とサブ武器を持ち変えるシステムをコモンイベントで構築していたのですが、
YEP Item Coreの導入により、スクリプトコマンドで武器を装備することができなくなってしまいました。

武器持ち替えの詳細としては、
まず戦闘直前に

変数の操作 $gameActors.actor(1)._equips[0]._itemId
変数の操作 $gameActors.actor(1)._equips[1]._itemId

で、戦闘前にメイン武器とサブ武器(防具タイプ1)のIDをそれぞれ変数に格納し、サブ武器を解除、
戦闘中に武器持ち替えスキルでコモンイベントを起動し、スクリプトコマンドの

$gameActors.actor(1).changeEquipById(1, $gameVariables.value(n))
$gameActors.actor(1).changeEquipById(2, 0)

$gameActors.actor(1).changeEquipById(2, $gameVariables.value(n))
$gameActors.actor(1).changeEquipById(1, 0)

で、それぞれを持ち替える、という形で実行していました。

しかしYEP Item Coreを導入したところ、
一度解除した武器を再び装備することができなくなってしまったという状況です。

戦闘直前の変数操作で3000番台のIDが格納はされているようなので、恐らく持ち替えのほうで何か不具合が起きているのだと思いますが、プラグインやスクリプトの知識が浅く、自分ではどうすればいいのかわかりません。
もし解決方法の分かる方がいらっしゃいましたら、ご教授願いたいです。

もしくは、もっと簡単に2種類の武器を持ち替えられるよ、といった情報提供でもありがたいです。
何卒、宜しくお願い致します。



YEP Item Core - YEP_ItemCore.js
http://www.yanfly.moe/wiki/Item_Core_(YEP)
装備変更の時のアイテムIDは、
ベースとなっているアイテムのIDを使用するようになっているので、
3000番台以降の個別のIDを取得しても、きちんと装備変更ができないようです。

コード: 全て選択

$gameActors.actor(アクターID).equips()[スロットID].baseItemId;
で、ベースとなっているアイテムのIDを取得できますので、
このIDを使用するように変更してみてください。
TANMI
記事: 10
登録日時: 2024年11月09日(土) 02:14

Re: YEP Item Core使用時にスクリプトコマンドで武器を装備できない

投稿記事 by TANMI »

ありがとうございます。
頂いたコマンドで無事変数に格納できた、のですが。

武器を何も装備していないときに武器IDを参照しようとすると、
Cannot read property ‘baseItemId’ of null というエラーが出てしまいました。
いわゆるぬるぽ?だと思うのですが、こちらを対策するにはどのようなコモンイベントを組めばいいのですか?

現在はただ

変数の操作 = $gameActors.actor(1).equips()[0].baseItemId;
変数の操作 = $gameActors.actor(1).equips()[1].baseItemId;
$gameActors.actor(1).changeEquipById(2, 0)

としているだけなのですが、
条件分岐で何も装備していない場合の変数格納を条件から弾く、などすればいいのでしょうか?

よろしければこちらもご助力お願いしたいです。
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: YEP Item Core使用時にスクリプトコマンドで武器を装備できない

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
TANMI さんが書きました:ありがとうございます。
頂いたコマンドで無事変数に格納できた、のですが。

武器を何も装備していないときに武器IDを参照しようとすると、
Cannot read property ‘baseItemId’ of null というエラーが出てしまいました。
いわゆるぬるぽ?だと思うのですが、こちらを対策するにはどのようなコモンイベントを組めばいいのですか?

現在はただ

変数の操作 = $gameActors.actor(1).equips()[0].baseItemId;
変数の操作 = $gameActors.actor(1).equips()[1].baseItemId;
$gameActors.actor(1).changeEquipById(2, 0)

としているだけなのですが、
条件分岐で何も装備していない場合の変数格納を条件から弾く、などすればいいのでしょうか?

よろしければこちらもご助力お願いしたいです。
null のチェックが必要なのが抜けてました。
失礼しました。

ちょっと式が長くなって、見返すときに見にくくなるんですが、
三項演算子、
条件式 ? 真のときの値 : 偽のときの値
を使って、

コード: 全て選択

$gameActors.actor(アクターID). equips()[スロットID] ? $gameActors.actor(アクターID).equips()[スロットID].baseItemId : 0
とすることで、
装備がある時は、その装備品のベースのアイテムID、ない時は 0 を返すようになります。

ご確認ください。
最後に編集したユーザー ecf5DTTzl6h6lJj02 [ 2024年11月21日(木) 00:32 ], 累計 1 回
TANMI
記事: 10
登録日時: 2024年11月09日(土) 02:14

Re: YEP Item Core使用時にスクリプトコマンドで武器を装備できない

投稿記事 by TANMI »

返信ありがとうございます。
ただ、今回はいただいたスクリプトで武器IDを変数に代入することができませんでした。

変数の操作 = $gameActors.actor(1). equips()[0] ? $gameActors.actor(1).equips.()[0].baseItemId : 0

としたのですが、Unexpected token( というエラーが出てしまいます。
プラグインを全てOFFにした状態でも同様でした。

こちらのコマンドは何か条件分岐などを絡めて使用するのでしょうか?
無知を晒すようで恥ずかしいのですが、イベント上での使用方法も教えていただけますでしょうか。

何度も申し訳ございません。よろしくお願いいたします。
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: YEP Item Core使用時にスクリプトコマンドで武器を装備できない

投稿記事 by ecf5DTTzl6h6lJj02 »

TANMI さんが書きました:返信ありがとうございます。
ただ、今回はいただいたスクリプトで武器IDを変数に代入することができませんでした。

変数の操作 = $gameActors.actor(1). equips()[0] ? $gameActors.actor(1).equips.()[0].baseItemId : 0

としたのですが、Unexpected token( というエラーが出てしまいます。
プラグインを全てOFFにした状態でも同様でした。

こちらのコマンドは何か条件分岐などを絡めて使用するのでしょうか?
無知を晒すようで恥ずかしいのですが、イベント上での使用方法も教えていただけますでしょうか。

何度も申し訳ございません。よろしくお願いいたします。
equips.() とか Typo しちゃってました。

アクター 1 の先頭の装備スロットのベースアイテムを取得する場合、
ただしくは、

コード: 全て選択

$gameActors.actor(1).equpis()[0] ? $gameActors.actor(1).actor(1).equips()[0].baseItemId : 0
です。

元記事の方も修正してます。
失礼いたしました。
TANMI
記事: 10
登録日時: 2024年11月09日(土) 02:14

Re: YEP Item Core使用時にスクリプトコマンドで武器を装備できない

投稿記事 by TANMI »

返信が遅れて申し訳ありません。
修正して頂いたコマンドで無事、変数に格納できました。

本当にありがとうございました。
返信する

“MV:質問”に戻る