アクターがスキルを習得しているかどうかスクリプトで判定したいのですが……

もぐたん
記事: 4
登録日時: 2023年1月26日(木) 15:38

アクターがスキルを習得しているかどうかスクリプトで判定したいのですが……

投稿記事by もぐたん » 2023年1月26日(木) 15:44

ググって調べたのですが、以下のようなスクリプトがでてきました。

if($gameActors.actor(1).isLearnedSkill(1)){
$gameSwitches.setValue(1,true)
}

しかし、なぜかこれでは判定されない(スイッチ1がONにならない)ようなのです。
初歩的すぎる質問かもしれませんが、解決方法をお教えいただけないでしょうか。

やもり
記事: 7
登録日時: 2023年1月17日(火) 00:55

Re: アクターがスキルを習得しているかどうかスクリプトで判定したいのですが……

投稿記事by やもり » 2023年1月27日(金) 15:11

スクリプト自体はそれで合っています。
多分スイッチがオンにならない原因は『攻撃はスキルとして覚えていないから』だと思います。
試しに職業の習得するスキルに『攻撃』を追加するか、isLearnedSkill(n)のnに覚えているスキルのIDをいれてください。
もぐたん
記事: 4
登録日時: 2023年1月26日(木) 15:38

Re: アクターがスキルを習得しているかどうかスクリプトで判定したいのですが……

投稿記事by もぐたん » 2023年1月27日(金) 19:03

ありがとうございます。
以下のように変えてみましたが、やはりスイッチ1001はONにならず……。

if($gameActors.actor(4).isLearnedSkill(4)){
$gameSwitches.setValue(1001,true)
}

条件分岐のアクター4がスキル4を習得しているでやると、スイッチ1001はonになります。
なぜ……。
ecf5DTTzl6h6lJj02
記事: 455
登録日時: 2018年12月23日(日) 13:55

Re: アクターがスキルを習得しているかどうかスクリプトで判定したいのですが……

投稿記事by ecf5DTTzl6h6lJj02 » 2023年1月27日(金) 20:07

こんばんは。
もぐたん さんが書きました:ありがとうございます。
以下のように変えてみましたが、やはりスイッチ1001はONにならず……。

if($gameActors.actor(4).isLearnedSkill(4)){
$gameSwitches.setValue(1001,true)
}

条件分岐のアクター4がスキル4を習得しているでやると、スイッチ1001はonになります。
なぜ……。

攻撃や防御が実際にはアクターが習得していないので、isLearnedSkill で false が返ってしまうのは前述の通りですが、
isLearnedSkill ではもう一つ、武器や防具、ステートで追加されるスキルは false が返るという仕様があります。
もし、武器や防具、ステートで追加したスキルをチェックしたいという場合は、
isLearnedSkill ではなく hasSkill を使用してチェックしてください。
(条件分岐のアクター4がスキル4を習得している のチェックは この hasSkill を使用してチェックしています)
やもり
記事: 7
登録日時: 2023年1月17日(火) 00:55

Re: アクターがスキルを習得しているかどうかスクリプトで判定したいのですが……

投稿記事by やもり » 2023年1月27日(金) 20:10

すみません、こっちに直してください。このまま入れれば動くはずです

// 『== true』は条件を満たしている場合
if($gameActors.actor(4).isLearnedSkill(4) == true)
{$gameSwitches.setValue(1001,true)}
else //elseはそうで無ければ~の場合
{//ここのカッコ内は条件を満たさない場合の処理を書きます
$gameSwitches.setValue(1001, false)
}

詳しくはこちらのhttps://tkool.jp/mz/plugin/javascript/if.htmlを見てみてください。
もぐたん
記事: 4
登録日時: 2023年1月26日(木) 15:38

Re: アクターがスキルを習得しているかどうかスクリプトで判定したいのですが……

投稿記事by もぐたん » 2023年1月27日(金) 21:20

ecf5DTTzl6h6lJj02さん
やもりさん
ありがとうございました。
isLearnedSkillをhasSkillに変えたところ、 無事判定してくれました。
アクターの所でスキル追加していたのですが、どうやらそれはisLearnedSkillでは拾ってくれないようですね。
これで進めることが出来ます、ありがとうございました。

“MV:質問” へ戻る