こんばんは。
デビルバスター さんが書きました:faida様、返信有難うございます。
説明不足で申し訳ございません。
こういうのような形で困ったことなのですが・・・
actor = $game_actors[$game_variables[102]]
if actor.skill_learn?($data_skills[$game_variables[104]])
≪条件達成で開始≫
end
↑でアクターIDが『ゲーム変数102で指定した数値』、条件でスキルID『ゲーム変数104で指定した数値』を習得しているかで条件を提示したスプリクトを打ち込んだのですが、エラーが出てしまい困っているので・・・。
申し訳ございません。
エラー内容が書かれていないのですが、出ているエラーは
スクリプト 'Game_Interpreter' の XXXX 行目で NoMethodError が発生しました。
undefined method 'skill_learn?' of nil:NilClass(nil という値のNilClass型の変数に、メソッド 'skill_leran?' は定義されていない)
でしょうか。
上記のエラーである場合。
原因は
1.ゲーム開始後、変数102番に一度も操作(代入)を行っていない状態で、変数102番を参照している。(この場合、2.で示す変数102番に 0 が入っている状態となります。)
2.変数102番に 0 もしくは 存在しないアクターIDの番号が入っている。
のいずれかであると思います。
まず、一度も代入等の操作が行われていないゲーム変数を参照した場合には、0という値が返ってくるようになっています。
そして、$game_actors[n] の n に 0や存在していないアクターIDの番号が指定された場合、
actorには、値が存在しないことを示す nil というデータ が入ってきます。
nil というデータには skill_learn? というメソッドは存在しませんので、 実行できずにエラーが表示されて、プログラムが停止します。
上記の以外のエラーが出ている場合は、エラーの内容を教えて頂けるようお願いします。