まず、前提として $gameActors は Game_Actors クラスのインスタンスです。
rmmz_objects.js 内の Game_Actors.prototype.actors をご覧いただけると、アクターIDにデータベース上に存在しない数値を入力した場合にnullが返されることがわかるかと思います。
nullに対して .hasArmor メソッドを呼ぼうとしたため、 Cannot read property 'hasArmor' of null と怒られたというわけです。
$gameActors.actor(アクターID) の戻り値がnullでないことをチェックしましょう。
「変数1~8番に番号が格納されているアクターが防具22番を装備していたらスイッチ5をオンにする」
変数1~8にアクターIDを格納しているということですが、これが「パーティメンバー全員」という意図であるとしたら、ゲーム内変数やnullチェックなしにもっと楽に書くこともできます。
コード: 全て選択
$gameSwitches.setValue(5, $gameParty.members().some(actor => actor.hasArmor($dataArmors[22])));
※ご指摘の通り、閉じカッコが足りておりませんでした。修正しました。
このコードについては、詳しく説明しませんので、気になる場合は下記を参考に読んでみてください。
- rmmz_objects.js 内の Game_Party.prototype.members
- Array.prototype.some
https://developer.mozilla.org/ja/docs/W ... Array/some