ターンの初めか終りにオートで発動するスキル
ターンの初めか終りにオートで発動するスキル
ターンの初めか終りに、オートで発動するスキル(を作れるスクリプト)がほしいです。
たとえば特定のスキルを持つキャラが参加していると、ターンの初めに勝手に敵全体のMPを下げるとか
また逆に味方のHPを回復したりとかです
よろしくお願いします
たとえば特定のスキルを持つキャラが参加していると、ターンの初めに勝手に敵全体のMPを下げるとか
また逆に味方のHPを回復したりとかです
よろしくお願いします
Re: ターンの初めか終りにオートで発動するスキル
TOMOさま>
全部のバトルイベントで設定するのは、かなり面倒かと思ってのリクエストでした
とくに、今制作中のは魔物を仲間にできたりするので、ユニット数が100を超える予定なのです
全部のバトルイベントで設定するのは、かなり面倒かと思ってのリクエストでした
とくに、今制作中のは魔物を仲間にできたりするので、ユニット数が100を超える予定なのです
Re: ターンの初めか終りにオートで発動するスキル
だったら少しだけ楽が出来るであろう方法を…
こんな感じのを入れれば、全部の敵グループに設定する手間が省けます
やってる内容は、
「敵グループID:1のバトルイベントの内容を、全敵グループとの戦闘で追加実行する」
です
あとはイベントコマンドの条件分岐で
とやれば、
「戦闘メンバー内の誰かが、スキルID:30を習得しているか?」となるので、
更に設定が楽になると思います
コード: 全て選択
class Game_Troop
#--------------------------------------------------------------------------
# ● バトルイベントのセットアップ
#--------------------------------------------------------------------------
def setup_battle_event
return if @interpreter.running?
return if @interpreter.setup_reserved_common_event
troop.pages.each do |page|
next unless conditions_met?(page)
@interpreter.setup(page.list)
@event_flags[page] = true if page.span <= 1
return
end
# 追加分
if @troop_id != 1
$data_troops[1].pages.each do |page|
next unless conditions_met?(page)
@interpreter.setup(page.list)
@event_flags[page] = true if page.span <= 1
return
end
end
# ここまで
end
#--------------------------------------------------------------------------
# ● ターンの増加
#--------------------------------------------------------------------------
def increase_turn
# 追加分
if @troop_id != 1
$data_troops[1].pages.each {|page| @event_flags[page] = false if page.span == 1 }
end
# ここまで
troop.pages.each {|page| @event_flags[page] = false if page.span == 1 }
@turn_count += 1
end
end
やってる内容は、
「敵グループID:1のバトルイベントの内容を、全敵グループとの戦闘で追加実行する」
です
あとはイベントコマンドの条件分岐で
コード: 全て選択
$game_party.battle_members.any?{|member|member.skill_learn?($data_skills[30])}
「戦闘メンバー内の誰かが、スキルID:30を習得しているか?」となるので、
更に設定が楽になると思います
現在サポート終了中
Re: ターンの初めか終りにオートで発動するスキル
>TOMOさま
これはつまり、スキル由来のイベントを1に全部設定しておけば、戦闘行動の強制に限らず、いろんなイベントを起こせるということですね。
すばらしいです!
あと、「戦闘メンバー内」ということはアクター側ということですよね。バトラーにもそういうスキルを持たせる場合は、どう表記すればよいでしょう?
これはつまり、スキル由来のイベントを1に全部設定しておけば、戦闘行動の強制に限らず、いろんなイベントを起こせるということですね。
すばらしいです!
あと、「戦闘メンバー内」ということはアクター側ということですよね。バトラーにもそういうスキルを持たせる場合は、どう表記すればよいでしょう?
Re: ターンの初めか終りにオートで発動するスキル
とりあえず1つ訂正
と、生存している戦闘メンバーだけで判定するべきでしたね
-----------------------------------------------------------------------------------------------------------------------------------
出来なくはないけど、敵側は必要?
(発動させる気のないスキルだろうし)
で、敵キャラIDで判定すればいいような…
行動条件のは、変数の操作で敵のHP・MPは取得できるし、
ステートやスイッチも条件分岐にある、
パーティレベルは
といった感じのを条件分岐でやれば出来ますし
一応書いておくと、
のスクリプトを入れて、条件分岐で
とすれば出来ます
(行動条件がある為、上記スクリプトを作って入れる必要があります)
コード: 全て選択
$game_party.battle_members.any?{|member|member.alive? && member.skill_learn?($data_skills[30])}
-----------------------------------------------------------------------------------------------------------------------------------
出来なくはないけど、敵側は必要?
(発動させる気のないスキルだろうし)
コード: 全て選択
$game_troop.alive_members.any?{|member|member.enemy_id == 1}
行動条件のは、変数の操作で敵のHP・MPは取得できるし、
ステートやスイッチも条件分岐にある、
パーティレベルは
コード: 全て選択
$game_party.highest_level >= 50
一応書いておくと、
コード: 全て選択
class Game_Enemy
def skill_learn?(skill_id)
return false if @actions.empty?
enemy.actions.any? {|a| a.skill_id == skill_id && action_valid?(a) }
end
end
コード: 全て選択
$game_troop.alive_members.any?{|member|member.skill_learn?(30)}
(行動条件がある為、上記スクリプトを作って入れる必要があります)
現在サポート終了中
Re: ターンの初めか終りにオートで発動するスキル
二つほど分かりません…
「いやし系というスキルを持つ、モンスターが」
「毎ターン最初にモンスター全体の回復をしつつ(=いやし系の効果)」
「ほかの、設定してある行動もする」
としたいのですが、
図の設定だと、
「いやし系を持たないモンスターが」
「いやし系しか行わなくなります」
どこを変えればよいでしょうか…
※ちなみに行動回数追加を入れたのは、二回行動なら「いやし系」以外のこともするかと期待してのことでしたが
戦闘行動の強制はそれ一つしか行わない仕様のようです
「いやし系というスキルを持つ、モンスターが」
「毎ターン最初にモンスター全体の回復をしつつ(=いやし系の効果)」
「ほかの、設定してある行動もする」
としたいのですが、
図の設定だと、
「いやし系を持たないモンスターが」
「いやし系しか行わなくなります」
どこを変えればよいでしょうか…
※ちなみに行動回数追加を入れたのは、二回行動なら「いやし系」以外のこともするかと期待してのことでしたが
戦闘行動の強制はそれ一つしか行わない仕様のようです
- 添付ファイル
-
- rtrt.png (6.39 KiB) 閲覧された回数 9557 回
Re: ターンの初めか終りにオートで発動するスキル
他にどんなスクリプト入れてるかとか分からんからなんだが、
いやし系しか行わないのは戦闘行動の強制で行動回数を消費するからそれで行動終了してしまうからだと思うよ。
そのイベントだと二回行動になるのは次のターンからだし。
あといやし系をパッシブスキル的な位置づけで使わせた上で他の行動もさせたいなら、
まぁ色々方法はあるけど、0ターンに設定して戦闘開始前に行動回数増加ステートつけるとか、
いっそイベントコマンドでアニメーションの表示させてHPの増減させて
文章で”~のいやし系発動”とか表示させればいいよ。
あとイベント共有のは結局の所最初からそういうのが欲しかったわけで、
なら最初からもっと詳しく書いた方が良いよ。
それにこれちょっとググれば分かる事だし俺も過去スレで答えた事もあるから、
もうちょっと調べた上でリクエストした方が良いかと。
それとこれは他の人にも言える事だけどVXなのかVXACEなのかは書いた方が良い、
作ってもらっといて実はVXで動きませんはあまりにも失礼だからね。
いやし系しか行わないのは戦闘行動の強制で行動回数を消費するからそれで行動終了してしまうからだと思うよ。
そのイベントだと二回行動になるのは次のターンからだし。
あといやし系をパッシブスキル的な位置づけで使わせた上で他の行動もさせたいなら、
まぁ色々方法はあるけど、0ターンに設定して戦闘開始前に行動回数増加ステートつけるとか、
いっそイベントコマンドでアニメーションの表示させてHPの増減させて
文章で”~のいやし系発動”とか表示させればいいよ。
あとイベント共有のは結局の所最初からそういうのが欲しかったわけで、
なら最初からもっと詳しく書いた方が良いよ。
それにこれちょっとググれば分かる事だし俺も過去スレで答えた事もあるから、
もうちょっと調べた上でリクエストした方が良いかと。
それとこれは他の人にも言える事だけどVXなのかVXACEなのかは書いた方が良い、
作ってもらっといて実はVXで動きませんはあまりにも失礼だからね。
Re: ターンの初めか終りにオートで発動するスキル
ショウさま>
おっしゃる通りの方法で、パーティやエネミー全体を対象にする場合は直接イベントコマンドでできるようになりました
ありがとうございます
しかし、たとえばパーティやエネミーの中からランダムに2体を選んで効果を及ぼすとなると、やり方が分かりません
戦闘行動の強制なら簡単でしょうが、それだと、複数回行動にしていても、通常の行動がキャンセルされてしまうようなのです
おっしゃる通りの方法で、パーティやエネミー全体を対象にする場合は直接イベントコマンドでできるようになりました
ありがとうございます
しかし、たとえばパーティやエネミーの中からランダムに2体を選んで効果を及ぼすとなると、やり方が分かりません
戦闘行動の強制なら簡単でしょうが、それだと、複数回行動にしていても、通常の行動がキャンセルされてしまうようなのです
Re: ターンの初めか終りにオートで発動するスキル
強制行動の後に行動を再作成する、とか……どうですかね。
これを行うと敵キャラの(n+1)番目の行動を再作成することができます。
「1番前はnが0」ですので、お間違えの無いよう。
コード: 全て選択
$game_troop.members[n].make_actions # nは隊列順
BattleManager.make_action_orders # おまじない
「1番前はnが0」ですので、お間違えの無いよう。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。