イベントで、「魔法」というスキルタイプを追加しようとした時、以下の二通りのやり方を試してみたのですが・・・
1.イベントスクリプトにて、
actor = $data_actors[1]
feature = RPG::BaseItem::Feature.new(41,2,)
actor.features.push(feature)
2.ステートの変更にて、解除条件を全て無効にしてステートの特徴に「スキルタイプ追加」を選ぶ。
1の場合、ゲームをセーブして再開した時に追加したスキルタイプが解除されてしまい、
2の場合、イベントでのバトルで敗戦後も継続を選択していた場合の敗戦後、ステートが解除されてしまいました。
どちらの方法でも良いのですが、追加したスキルタイプが解除されないような方法はあるでしょうか?
もしくは、まったく違った方法でスキルタイプを追加する方法はありますか?
お分かりになる方がいましたら、ご教授下さい。
よろしくお願いします。
【解決済み】「特徴」にスキルタイプ追加をする方法
【解決済み】「特徴」にスキルタイプ追加をする方法
最後に編集したユーザー 湯喜乃湯 [ 2016年8月24日(水) 01:55 ], 累計 1 回
Re: 「特徴」にスキルタイプ追加をする方法
2の場合なのですが、「敗北可」の「負けたときの処理」に該当キャラのステートを変更させるようにしてみてはいかがでしょうか?
******************************
* い し の な か *
エターナること早数年、
MVで復帰し創作意欲を
燃やす挙動のおかしい
ザコキャラ。
* い し の な か *
******************************
* い し の な か *
エターナること早数年、
MVで復帰し創作意欲を
燃やす挙動のおかしい
ザコキャラ。
* い し の な か *
******************************
Re: 「特徴」にスキルタイプ追加をする方法
スクリプトの事はよくわからないので詳しい人にお任せしますが
2の場合、全回復しても多分ステートが消えるはずなので
ステートを付加するコモンイベントを一つ用意しておいて
全回復のイベントコマンド実行後や敗北イベント中などに
そのコモンイベントを呼び出すといいです。
また、スキルタイプの追加をデフォルトで行う場合は
初期のスキルタイプを設定した「職業」から
スキルタイプを変更した「職業」へ変更する方法があります。
イベントコマンド「職業の変更」を行うと、レベルが1 になってしまうので
直前に経験値を取得しておいて、職業変更後に経験値を戻してあげる必要があります。
また、HPやMPも現在の数値の変動が気になるようでしたら、全回復もしくは
事前に現在の値を取得しておいて、職業変更後に戻すといいです。
(どれも変数の操作で普通に取得できる情報です)
職業を変更するのは、少々面倒ですが
後々状態を監視する必要がないので
職業の変更とは別に行いたいということでないのであれば
2の方法よりオススメです。
また、スクリプト素材を使用する方法もあります。
「そのスキルタイプのスキルを1つも習得していない場合は自動的に隠す」というスクリプト素材が
「TOMOのスクリプト置き場」さんにあるようなので、試してみるのも一つかもしれません。
2の場合、全回復しても多分ステートが消えるはずなので
ステートを付加するコモンイベントを一つ用意しておいて
全回復のイベントコマンド実行後や敗北イベント中などに
そのコモンイベントを呼び出すといいです。
また、スキルタイプの追加をデフォルトで行う場合は
初期のスキルタイプを設定した「職業」から
スキルタイプを変更した「職業」へ変更する方法があります。
イベントコマンド「職業の変更」を行うと、レベルが1 になってしまうので
直前に経験値を取得しておいて、職業変更後に経験値を戻してあげる必要があります。
また、HPやMPも現在の数値の変動が気になるようでしたら、全回復もしくは
事前に現在の値を取得しておいて、職業変更後に戻すといいです。
(どれも変数の操作で普通に取得できる情報です)
職業を変更するのは、少々面倒ですが
後々状態を監視する必要がないので
職業の変更とは別に行いたいということでないのであれば
2の方法よりオススメです。
また、スクリプト素材を使用する方法もあります。
「そのスキルタイプのスキルを1つも習得していない場合は自動的に隠す」というスクリプト素材が
「TOMOのスクリプト置き場」さんにあるようなので、試してみるのも一つかもしれません。
Re: 「特徴」にスキルタイプ追加をする方法
「ひきも記は閉鎖しました。」の「パッシブスキル」はどうですか?
こちらは武器データを利用してやっているので、
そちらの特徴で追加すれば出来るはずです
また、要望通りの動作だけをするスクリプトが必要な場合は、
以下のようなスクリプトを入れれば出来ます
(スイッチID:1がONの時、アクターID:1のキャラにスキルタイプ2を追加)
あと、あまり関係ないけど、
ゆわかさんの言う私のスクリプトは、
正確には「スキルタイプを自動的に隠す」です
そっちは説明文です・・・
こちらは武器データを利用してやっているので、
そちらの特徴で追加すれば出来るはずです
また、要望通りの動作だけをするスクリプトが必要な場合は、
以下のようなスクリプトを入れれば出来ます
コード: 全て選択
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 追加スキルタイプの取得
#--------------------------------------------------------------------------
alias ex_added_skill_types added_skill_types
def added_skill_types
if @actor_id == 1 and $game_switches[1]
ex_added_skill_types + [2]
else
ex_added_skill_types
end
end
end
あと、あまり関係ないけど、
ゆわかさんの言う私のスクリプトは、
正確には「スキルタイプを自動的に隠す」です
そっちは説明文です・・・
現在サポート終了中
Re: 「特徴」にスキルタイプ追加をする方法
手元に「全回復/戦闘不能で解除されないステート」のスクリプトがあったので添付しておきます。
コード: 全て選択
=begin
◆概要
ステート解除に条件をつけます。
◆機能
・ステートのメモ欄に<MP0解除>と書くことによりMPが0の時このステートを解除します。
・ステートのメモ欄に<全回復解除無し>と書くことにより全回復してもこのステートを
解除しません。
・ステートのメモ欄に<戦闘不能解除無し>と書くことにより戦闘不能になっても
このステートを解除しません。
◆仕様
・特になし。
◆使用上の注意
・○……新規定義 ★……エイリアス
=end
#==============================================================================
# ■ RPG::State
#==============================================================================
class RPG::State < RPG::BaseItem
#--------------------------------------------------------------------------
# ○ メモ欄の取得
#--------------------------------------------------------------------------
def memo_remove
@remove_mp0 = false
@notremove_recover_all = false
@notremove_die = false
self.note.each_line{ |line|
case line
when /<MP0解除>/; @remove_mp0 = "false"
when /<全回復解除無し>/; @notremove_recover_all = "false"
when /<戦闘不能解除無し>/; @notremove_die = "false"
end
}
end
def remove_mp0; memo_remove if @remove_mp0.nil?; @remove_mp0; end
def notremove_recover_all
memo_remove if @notremove_recover_all.nil?; @notremove_recover_all
end
def notremove_die; memo_remove if @notremove_die.nil?; @notremove_die; end
end
#==============================================================================
# ■ Game_BattlerBase
#==============================================================================
class Game_BattlerBase
#--------------------------------------------------------------------------
# ★ リフレッシュ
#--------------------------------------------------------------------------
alias mp0states_refresh refresh
def refresh
mp0states_refresh
states.each{|state|erase_state(state.id) if state.remove_mp0} if @mp == 0
end
#--------------------------------------------------------------------------
# ★ 全回復
#--------------------------------------------------------------------------
alias reallstates_recover_all recover_all
def recover_all
ss = states.select{|state|state.notremove_recover_all}
reallstates_recover_all
ss.each{|state|add_state(state.id)}
sort_states
end
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ★ 戦闘不能になる
#--------------------------------------------------------------------------
alias diestates_die die
def die
ss = states.select{|state|state.notremove_die}.collect{|state|
[state.id, @state_turns[state.id], @state_steps[state.id]]
}
diestates_die
ss.each{|s|@states.push(s[0]); @state_turns[s[0]] = s[1]
@state_steps[s[0]] = s[2]
}
sort_states
end
end
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
Re: 「特徴」にスキルタイプ追加をする方法
制作物のシステムやシナリオの展開上、TOMOさんのスクリプトが最適でしたので、そちらを使わせて頂きたいと思います。
子供戦車さん、ゆわかさん、TOMOさん、faidaさん、ご教授頂きありがとうございました。感謝です!!
>TOMOさん
教えて頂いたスクリプトの著作権表記関連や使用制限の指定などがありましたらお教え下さい。
使用させて頂く当方の制作物は、個人製作の有料同人ゲーム(年齢制限無し)の予定です。
よろしくお願いします。
子供戦車さん、ゆわかさん、TOMOさん、faidaさん、ご教授頂きありがとうございました。感謝です!!
>TOMOさん
教えて頂いたスクリプトの著作権表記関連や使用制限の指定などがありましたらお教え下さい。
使用させて頂く当方の制作物は、個人製作の有料同人ゲーム(年齢制限無し)の予定です。
よろしくお願いします。
Re: 「特徴」にスキルタイプ追加をする方法
こちらのか私のサイトのかは分かりませんが、
こちらに載せたのなら特に制限などはないです






サイトのなら、商用(営利目的)利用時に報告が必須なのと、
ゲームデータを暗号化せずに配布する事等による、
直接的・間接的な「二次配布」を禁止してます

(営利目的時は報告必須)
(私へのサポート依頼は不可)

(報告必須)
(報告必須)
が、報告はこれ自体がそれなのでOKですし、
暗号化さえすれば得に問題はないです
こちらに載せたのなら特に制限などはないです






サイトのなら、商用(営利目的)利用時に報告が必須なのと、
ゲームデータを暗号化せずに配布する事等による、
直接的・間接的な「二次配布」を禁止してます






が、報告はこれ自体がそれなのでOKですし、
暗号化さえすれば得に問題はないです
現在サポート終了中
Re: 「特徴」にスキルタイプ追加をする方法
>TOMOさん
使用上の注意、了解致しました。
使用させて頂くのは、お答え頂いた中に記載されていたTOMOさんの「追加スキルタイプの取得」スクリプトになります。
これにて当質問は解決済みとさせて頂きます。
お答え頂いた皆さん、本当に有難うございました!!
使用上の注意、了解致しました。
使用させて頂くのは、お答え頂いた中に記載されていたTOMOさんの「追加スキルタイプの取得」スクリプトになります。
これにて当質問は解決済みとさせて頂きます。
お答え頂いた皆さん、本当に有難うございました!!