【解決】武器の非装備時にスクリプトを実行したい
Posted: 2021年1月03日(日) 05:36
スクリプト初心者です。
自分なりに色々と調べてはみたのですが、
どうしても解決できないのでお助け下さい。
実行しようとしていることは
「アクターn番の装備している武器IDを、変数kに格納する」です。
困っている部分は
「武器の非装備時にエラーでフリーズする」です。
組んだスクリプトが以下になります。
------------------------------------------------------------------------------------------------------------------------------
if ( $gameActors.actor ( $gameVariables.value( n ) ) . equips()[0] . id == null )
{
$gameVariables.setValue ( k , 0 );
} else {
$gameVariables.setValue ( k , $gameActors.actor ( $gameVariables.value( n ) ) . equips()[0] . id );
}
------------------------------------------------------------------------------------------------------------------------------
武器を装備している時は、falseの処理が正常に行われます。
しかし非装備時には "Cannot read property 'id' of null" が返ってきます。
true時の0代入は行われません。
三項演算子に変えても、1行目の "id" を "name" にしてもダメでした。
また、データ無しのことを null と呼ばないのかもと思い
" nil " " undefined " " 0 "……などと試してみましたが、いずれも同じ結果になりました。
スクリプトの組み方で間違った部分があるのでしょうか?
" null "の正しい判定名があるのでしょうか?
それとも、nullが格納された時点でスクリプトは実行されないもの(諦め案件)なのでしょうか?
何番煎じとも分からない質問で申し訳ないですが、ぜひ教えて下さい。
よろしくお願いいたします。
自分なりに色々と調べてはみたのですが、
どうしても解決できないのでお助け下さい。
実行しようとしていることは
「アクターn番の装備している武器IDを、変数kに格納する」です。
困っている部分は
「武器の非装備時にエラーでフリーズする」です。
組んだスクリプトが以下になります。
------------------------------------------------------------------------------------------------------------------------------
if ( $gameActors.actor ( $gameVariables.value( n ) ) . equips()[0] . id == null )
{
$gameVariables.setValue ( k , 0 );
} else {
$gameVariables.setValue ( k , $gameActors.actor ( $gameVariables.value( n ) ) . equips()[0] . id );
}
------------------------------------------------------------------------------------------------------------------------------
武器を装備している時は、falseの処理が正常に行われます。
しかし非装備時には "Cannot read property 'id' of null" が返ってきます。
true時の0代入は行われません。
三項演算子に変えても、1行目の "id" を "name" にしてもダメでした。
また、データ無しのことを null と呼ばないのかもと思い
" nil " " undefined " " 0 "……などと試してみましたが、いずれも同じ結果になりました。
スクリプトの組み方で間違った部分があるのでしょうか?
" null "の正しい判定名があるのでしょうか?
それとも、nullが格納された時点でスクリプトは実行されないもの(諦め案件)なのでしょうか?
何番煎じとも分からない質問で申し訳ないですが、ぜひ教えて下さい。
よろしくお願いいたします。