ページ 1 / 1
RGSS3 能力値を奪う
Posted: 2017年6月09日(金) 23:04
by なたね
能力値を奪うというスクリプトを作製していただきたいです。
例「エネミーから攻撃力を10%を奪う(攻撃力10%下げる)」→「アクターに奪った攻撃力10%分を上げる」
アクターの能力分の10%分上げるという事は出来そうなのですが、エネミーから10%攻撃力を下げてその分のアクターの攻撃力を10%分上げるという方法が分からなかった為、リクエストをしました。
お時間があって作製していただける方がいましたら、是非ともよろしくお願いします。
Re: RGSS3 能力値を奪う
Posted: 2017年6月10日(土) 02:09
by TOMO
星潟様の「アイテム・スキル使用者ステート・能力変化」か「行動者・対象者ID・使用スキル/アイテムID変数格納」を使えば出来ると思います
Re: RGSS3 能力値を奪う
Posted: 2017年6月10日(土) 07:39
by faida
奪った能力値は
①戦闘中のみ適用
②戦闘後も継続(イベントコマンドの「能力値の変化」と同じ)
のどちらかにもよりますが、②は手元にあります。
ただ、割合変化でなく定数変化なのでその改造の手間だけ要りますが……。
Re: RGSS3 能力値を奪う
Posted: 2017年6月10日(土) 09:42
by なたね
TOMO様>
星潟様の「アイテム・スキル使用者ステート・能力変化」は固定数値で変化させるやり方がわかりませんでした。
「行動者・対象者ID・使用スキル/アイテムID変数格納」の使い方がわかりませんでした。
faida様>
奪った能力値は戦闘中のみ適用するものを作製していただきたいです。
Re: RGSS3 能力値を奪う
Posted: 2017年6月10日(土) 10:16
by faida
手持ちでできそうなものを探ってみました。
http://tm.yumineko.com/viewtopic.php?f= ... 9679#p9679
まずこのスクリプトで計算式による能力強化/弱体を行えるようにします。
次に、以下のスクリプトを導入し、
コード: 全て選択
=begin
◆概要
使用者に対して発動する効果を設定できます。
◆機能
・スキルとかアイテムとかのメモ欄に<使用者効果:a, b, c, d>と記入すると、
そのスキルやアイテムの使用者に対して効果を発揮します。
・効果はデータベースに準拠……なんだけど、使い方は難しいので
「使用効果」で全体検索して、出てきたメソッドの中身を見て確認してください。
a = effect.code; b = effect.data_id; c = effect.value1; d = effect.value2
例:HPを5%+100回復→<使用者効果:11, 0, 5, 100>
ステートID2を50%の確率で付加→<使用者効果:21, 2, 50>
◆仕様
・数値を省略すると0が代入されます。でも省略できるのは後ろからだから意味ない。
・複数指定したら上から順番に発動。ただし表示順はHPMPTP→その他。
・スキルやアイテムの元々の効果で最後の敵にとどめを刺しても発動。
・この効果で使用者が死んでも効果は発動し続ける(上から順番に)。
なので一度死んで生き返る、なんてことも起こったりする。
◆使用上の注意
・★……エイリアス ○……新規定義
◆作者:faida @faida3983
=end
class RPG::UsableItem
#--------------------------------------------------------------------------
# ○ パラメータ取得
#--------------------------------------------------------------------------
def user_effects
return @user_effects if @user_effects
@user_effects = []
note.each_line{|line|
if line =~ /<使用者効果\:(\d+(?:\,\s\d+)*)>/
a = line.scan(/\d+/).collect{|i|i.to_i}; 3.times{a << 0}
a[2] /= 100.0 if [11, 12, 21, 22].include?(a[0])
@user_effects << Effect.new(a[0], a[1], a[2], a[3])
end
}
@user_effects
end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ★ スキル/アイテムの使用
#--------------------------------------------------------------------------
alias user_effect_use_item use_item
def use_item
item = @subject.current_action.item
user_effect_use_item
if !item.user_effects.empty?
damaged = false
item.user_effects.each{|e|
@subject.item_effect_apply(@subject, item, e)
damaged = true if (e.code / 10) == 1
}
refresh_status
@subject.result.used = true
@log_window.display_damage(@subject, item) if damaged
@log_window.display_affected_status(@subject, item)
end
end
end
「<使用者効果:31, id, turn>」(idはパラメータのID、turnはターン数)と記入します。
(ちなみに使用者に効果があるスキルを作るスクリプトが山ほどあるのは知っていますが、
確実に動作しそうなものは手持ちのものだろうと思っただけです。多分他のでも動きます)
これで疑似的にでも再現できるかなと。
欠点は「能力強化/弱体」扱いなので、「奪った」を表示できないとかいずれ強化/弱体が切れるとかなどの
不満点が出るところですかね。
Re: RGSS3 能力値を奪う
Posted: 2017年6月13日(火) 07:29
by なたね
faida様。この度は作製していただきありがとうございました。
確認したところ思い通りの動作ができました。
前回に続き作成していただき本当にありがとうございました。