【解決済み】自動戦闘で意図した行動をさせる
Posted: 2019年3月06日(水) 09:41
自動戦闘じゃ防御を使ってくれないので、Game_Actionの行動の価値評価に
MPが最大MPの25%以下かつTPが20以上で防御、TPが足りなれば攻撃
というコードを書いてみたんですが
ここからステートも条件に加えようと思いました。
やりたいのはMPが25%以下でステート:○○なら○○させる、というもので
TPのほうは無視したいのですが、ifからifさせるような書き方がわからず
消すにも正しく動作しなくなる為、残しています。if subject.state?(7)というのはその名残です。
なので正しい分岐のさせ方をご教授いただけたらと思います。
しかし、Game_Actionに書くと行動を無理やり変化させてるようで
競合しやすいような気がしますがその辺は大丈夫なんでしょうか?あまりスクリプトの知識がないので・・・
MPが最大MPの25%以下かつTPが20以上で防御、TPが足りなれば攻撃
というコードを書いてみたんですが
ここからステートも条件に加えようと思いました。
やりたいのはMPが25%以下でステート:○○なら○○させる、というもので
TPのほうは無視したいのですが、ifからifさせるような書き方がわからず
消すにも正しく動作しなくなる為、残しています。if subject.state?(7)というのはその名残です。
なので正しい分岐のさせ方をご教授いただけたらと思います。
しかし、Game_Actionに書くと行動を無理やり変化させてるようで
競合しやすいような気がしますがその辺は大丈夫なんでしょうか?あまりスクリプトの知識がないので・・・
コード: 全て選択
def evaluate
@value = 0
stamina = subject.mmp / 4
kiai = subject.tp
if subject.mp <= stamina
if subject.state?(7)
else if kiai <= 20
set_attack
else
set_skill(subject.guard_skill_id)
end
end
end
evaluate_item if valid?
@value += rand if @value > 0
self
end